{"id":33990,"date":"2020-01-03T10:43:08","date_gmt":"2020-01-03T01:43:08","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kr\/?p=494"},"modified":"2020-07-01T13:16:21","modified_gmt":"2020-07-01T13:16:21","slug":"appcode-2019-3-s","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/ko\/2020\/01\/03\/appcode-2019-3-s\/","title":{"rendered":"AppCode 2019.3 : \ube68\ub77c\uc9c4 \ucf54\ub4dc \uac15\uc870 \ud45c\uc2dc, \ucf54\ub4dc \uc644\uc131 \ubc0f \ud0d0\uc0c9, \ud5a5\uc0c1\ub41c Swift \uc9c0\uc6d0, \uc0c8\ub85c\uc6b4 Swift \uc778\ud150\uc158\uacfc \ube4c\ub4dc \uba54\uc2dc\uc9c0, Mac Catalyst \uc9c0\uc6d0\uacfc \ud568\uaed8 \ucd9c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4!"},"content":{"rendered":"\uc131\ub2a5 \uac1c\uc120\uc5d0 \ucd08\uc810\uc744 \ub454 \ud2b9\ubcc4 \uc5c5\ub370\uc774\ud2b8, AppCode 2019.3\uc744 \ud658\uc601\ud574 \uc8fc\uc138\uc694!\r\n\r\nAppCode 2019.3 \ub2e4\uc6b4\ub85c\ub4dc\r\n\r\nSwift\r\n\uc131\ub2a5\r\n\uc774 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 \uc131\ub2a5 \uac1c\uc120\uc5d0 \uc804\ub150\ud558\uae30\ub85c \ud55c \uacb0\uacfc, \ub2e4\uc74c\uacfc \uac19\uc740 \uc131\uacfc\ub97c \uc5bb\uc5c8\uc2b5\ub2c8\ub2e4.\r\n\r\n\uc21c\uc218 Swift \ubc0f \ud63c\ud569 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uac15\uc870 \ud45c\uc2dc, \ucf54\ub4dc \uc644\uc131 \ubc0f \ud0d0\uc0c9 \uae30\ub2a5\uc774 AppCode 2019.2\uc5d0\uc11c\ubcf4\ub2e4 \ud6e8\uc52c \ube60\ub974\uac8c \uc791\ub3d9\ud569\ub2c8\ub2e4.\r\n\ub610\ud55c \uce90\uc2f1 \uae30\ub2a5\uc774 \ud5a5\uc0c1\ub418\uc5b4 \"Processing Swift Modules\"(Swift \ubaa8\ub4c8 \ucc98\ub9ac) \uc18d\ub3c4\uac00 \uc774\uc804 AppCode \ubc84\uc804\ubcf4\ub2e4 \ud6e8\uc52c \ube68\ub77c\uc84c\uc2b5\ub2c8\ub2e4.\r\n\r\n\uc774 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c \uc2dc\uc791\ub41c \uc77c\ubd80 \uc8fc\uc694 \uac1c\uc120 \uc0ac\ud56d\uc740 \uc5ec\uc804\ud788 \uc791\uc5c5 \uc911\uc774\uba70 \ub2e4\uc74c \ub9b4\ub9ac\uc2a4\uc5d0 \ud3ec\ud568\ub420 \uc608\uc815\uc785\ub2c8\ub2e4. \uac1c\uc120 \uc791\uc5c5\uc744 \uc9c4\ud589\ud558\uba74\uc11c 2020.1\uc5d0\uc11c\ub3c4 \uc131\ub2a5 \ud5a5\uc0c1\uacfc \uc5b8\uc5b4 \uc9c0\uc6d0\uc5d0 \uc911\uc810\uc744 \ub458 \uac83\uc785\ub2c8\ub2e4. \r\n\uc5b8\uc5b4 \uc9c0\uc6d0\r\nAppCode 2019.3\uc740 \ub2e4\uc74c Swift 5.1 \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.\r\n\r\nSE-0244: Opaque \uacb0\uacfc \uc720\ud615\r\n\uc18d\uc131 \ub798\ud37c: \uc778\uc218 \ubb38\uc81c \ud574\uacb0(OC-18766)\r\nSE-0252 \ucf54\ub4dc \uc644\uc131(\ud0a4 \uacbd\ub85c \uba64\ubc84 \uac80\uc0c9)\r\n\ub9e4\uac1c\ubcc0\uc218 \uc18d\uc131 \uac15\uc870 \ud45c\uc2dc\r\n\r\n\uc0c8\ub85c\uc6b4 \uc778\ud150\uc158\r\n\uc0dd\uc0b0\uc131\uc744 \ub192\uc774\uae30 \uc704\ud574 \uc218\ub9ce\uc740 Swift \uc778\ud150\uc158\uc774 \uc0c8\ub85c \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\r\n\r\n\ubcc0\uc218 \uc120\uc5b8 \ubc0f \uc9c0\uc815 \ubd84\ud560\/\ubcd1\ud569:\r\n\ubcc0\uc218 \uc120\uc5b8\uc744 \uc5ec\ub7ec \uc694\uc18c\ub85c \ubd84\ud560:\r\n\uc911\ucca9\ub41c if\/else \uad6c\ubb38\uc744 \ubd84\ud560\/\ubcd1\ud569:\r\n\ube44\uad50 \ubc0f \uc774\uc9c4 \ud45c\ud604\uc2dd \ub300\uce6d:\r\nif \uc870\uac74 \ubc18\uc804:\r\n\r\n\uc870\uac74 \ubcd1\ud569\/\ubd84\ub9ac:\r\n\r\n\ub4dc\ubaa8\ub974\uac04 \ubc95\uce59:\r\n\r\n\r\n\ucf54\ub4dc \uc0dd\uc131\r\nSwift \ucf54\ub4dc\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub294 \ub450 \uac00\uc9c0 \uc0c8\ub85c\uc6b4 \uc635\uc158\uc778 Prefer Void over () \ubc0f Prefer explicit return\uc774 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \uc635\uc158\uc740 Editor(\uc5d0\ub514\ud130) | Code Style(\ucf54\ub4dc \uc2a4\ud0c0\uc77c) | Swift | Code Generation(\ucf54\ub4dc \uc0dd\uc131) | General(\uc77c\ubc18)\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\r\n\ucf54\ub4dc \uc11c\uc2dd \uc9c0\uc815\r\n\uc0c8\ub85c\uc6b4 \uc720\uc6a9\ud55c \ucf54\ub4dc \uc11c\uc2dd \uc9c0\uc815 \uc635\uc158\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.\r\n\r\nwillSet\/didSet\uc744 \uc0ac\uc6a9\ud574 \uc18d\uc131 \ube14\ub85d\uc744 \ud55c \uc904\ub85c \uac04\uacb0\ud558\uac8c \uc720\uc9c0(Preferences(\uae30\ubcf8 \uc124\uc815) | Editor(\uc5d0\ub514\ud130) | Code Style(\ucf54\ub4dc \uc2a4\ud0c0\uc77c) | Swift | Wrapping and Braces(\uc904 \ubc14\uafc8 \ubc0f \uad04\ud638) | Keep when reformatting(\uc11c\uc2dd \uc7ac\uc9c0\uc815 \uc2dc \uc720\uc9c0) | Methods and functions in one line(\uba54\uc18c\ub4dc \ubc0f \ud568\uc218\ub97c \ud55c \uc904\ub85c))\r\n\ube48 \uc720\ud615 \uc120\uc5b8\uc744 \ud55c \uc904\ub85c \uc720\uc9c0(Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Empty type declarations in one line(\ube48 \uc720\ud615 \uc120\uc5b8\uc744 \ud55c \uc904\ub85c))\r\n\r\n\ub2e4\ub978 Swift \ud234\uccb4\uc778 \uc9c0\uc6d0\r\nSwift Tensorflow \ud234\uccb4\uc778\uc774\ub098 \ub2e4\ub978 \uc0ac\uc6a9\uc790 \uc9c0\uc815 Swift \ud234\uccb4\uc778\uc73c\ub85c \uc791\uc5c5\ud558\uace0 \uacc4\uc2e0\uac00\uc694? \uc774\uc81c \uc0ac\uc6a9\uc790 \uc9c0\uc815 Swift \ud234\uccb4\uc778\uc5d0 \ub300\ud55c \ubaa8\ub4e0 \ucf54\ub4dc \uad6c\ubb38\uc774 \uc62c\ubc14\ub974\uac8c \ub85c\ub4dc\ub418\uc5b4 \ube4c\ub4dc, \uc2e4\ud589, \ub514\ubc84\uadf8, \ud14c\uc2a4\ud2b8\uc5d0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \r\n\ube4c\ub4dc \uba54\uc2dc\uc9c0\r\nMessages(\uba54\uc2dc\uc9c0) \ud2b8\ub9ac\uac00 \uc7ac\uc791\uc5c5\ub418\uc5b4 \uc218\uc2ed \uac1c\uc758 UX \ubb38\uc81c\uac00 \ud574\uacb0\ub418\uc5c8\uc73c\uba70 \uc774\uc81c Xcode\uc5d0\uc11c \ubcf4\ub358 \uac83\uacfc \ub3d9\uc77c\ud55c \uc815\ubcf4\uac00 \ud2b8\ub9ac\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4:\r\n\r\n\ube4c\ub4dc \uc9c4\ud589\ub960 \ud45c\uc2dc\uc904\uc5d0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ucef4\ud30c\uc77c\ud558\ub294 \ub370 \uac78\ub9ac\ub294 \uc2dc\uac04\uc774 \uc815\ud655\ud558\uac8c \ud45c\uc2dc\ub429\ub2c8\ub2e4. \r\n\r\n\uba54\uc2dc\uc9c0 \ud544\ud130\uac00 \uac04\uc18c\ud654\ub418\uc5b4 Xcode\uc640 \ub3d9\uc77c\ud558\uac8c All Issues(\ubaa8\ub4e0 \ubb38\uc81c), Errors and Warnings(\uc624\ub958 \ubc0f \uacbd\uace0), Errors Only(\uc624\ub958\ub9cc) \uc635\uc158\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.\r\n\r\nMac Catalyst \uc9c0\uc6d0\r\n\ucf54\ub4dc \uc9c0\uc6d0, \ube4c\ub4dc, \uc2e4\ud589, \ub514\ubc84\uadf8 \uae30\ub2a5\uc774 \uc774\uc81c Mac Catalyst \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c\ub3c4 \uc791\ub3d9\ud569\ub2c8\ub2e4.\r\n  JetBrains \uc6f9\uc0ac\uc774\ud2b8\uc5d0\uc11c \ubaa8\ub4e0 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc744 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uace0 30\uc77c \ubb34\ub8cc \ud3c9\uac00\ud310\uc744 \uc2dc\uc791\ud558\uc5ec \uc2e4\uc81c\ub85c \uc0ac\uc6a9\ud574 \ubcf4\uc138\uc694!\r\nAppCode 2019.3 \ub2e4\uc6b4\ub85c\ub4dc\r\nAppCode \ud300\r\nJetBrains\r\nThe Drive to Develop\r\n\r\n\ubcf8\ubb38\uc740 Stanislav Dombrovsky\uc758 AppCode 2019.3 Is Here With Faster Code Highlighting, Completion, and Navigation, Improved Swift Support, New Swift Intentions and Build Messages, and Mac Catalyst Support!\ub97c \ubc88\uc5ed\ud55c \uae00\uc785\ub2c8\ub2e4.","protected":false},"excerpt":{"rendered":"\uc131\ub2a5 \uac1c\uc120\uc5d0 \ucd08\uc810\uc744 \ub454 \ud2b9\ubcc4 \uc5c5\ub370\uc774\ud2b8, AppCode 2019.3\uc744 \ud658\uc601\ud574 \uc8fc\uc138\uc694!AppCode 2019.3 \ub2e4\uc6b4\ub85c\ub4dcSwift\uc131\ub2a5\uc774 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 \uc131\ub2a5 \uac1c\uc120\uc5d0 \uc804\ub150\ud558\uae30\ub85c \ud55c \uacb0\uacfc, \ub2e4\uc74c\uacfc \uac19\uc740 \uc131\uacfc\ub97c \uc5bb\uc5c8\uc2b5\ub2c8\ub2e4.\uc21c\uc218 Swift \ubc0f \ud63c\ud569 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uac15\uc870 \ud45c\uc2dc, \ucf54\ub4dc \uc644\uc131 \ubc0f \ud0d0\uc0c9 \uae30\ub2a5\uc774 AppCode 2019.2\uc5d0\uc11c\ubcf4\ub2e4 \ud6e8\uc52c \ube60\ub974","protected":false},"author":{"name":"Jessie Cho","link":"https:\/\/blog.jetbrains.com\/ko\/author\/jessie-chojetbrains-com"},"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[4244,907],"tags":[28,4245,5431],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/33990"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=33990"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/33990\/revisions"}],"predecessor-version":[{"id":52626,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/33990\/revisions\/52626"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=33990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=33990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=33990"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=33990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}