├── .gitignore ├── Article ├── 0708_ImageViewContentMode │ └── ImageViewContentMode.md ├── 0708_iOS_Animation │ └── 0708_animation.md ├── 0730_Intrinsic_Content_View │ └── intrinsic_content_view.md ├── 0812_mobileComputing │ └── 0812_mobileComputing_ML.md ├── 0923_URLSession_tutorial.md ├── Algorithms │ ├── CircularSLL.md │ └── Circular_DLL.md ├── Camera │ └── Camera.md ├── ClassCopyAndArchiving │ ├── ClassCopyAndArchiving.md │ ├── Codable.md │ ├── Decodable-Beyond_The_Basics.md │ ├── HeterogeneousArrayCodable.md │ ├── HeterogeneousArrayCodableEx2.md │ ├── UserDefaults.md │ └── locality.jpeg ├── CoordinatesSystem │ ├── CoordinateSystem.md │ └── images │ │ ├── 1_Points.png │ │ ├── 2_RenderedPixels.png │ │ ├── 3_PhysicalPixels.png │ │ ├── 4_PhysicalDevice.png │ │ ├── CGRect.png │ │ ├── SuperView.png │ │ ├── SuperViewBoundsMove.png │ │ └── SuperViewFrameMove.png ├── CoreData │ └── CoreData.md ├── GCD_Study │ └── Concurrent_GCD.md ├── HIG-Adaptivity&Layout │ └── AdaptivityAndLayout.md ├── HTTP.md ├── HTTP_2.md ├── InternationalizationAndLocalization.md ├── JSONSerialization │ ├── JSONSerialization.md │ └── JWT_JsonWebToken.md ├── KeyChain │ └── keychain.md ├── Networks │ └── CISCO_Networks_part1_1.md ├── Queue_Sync_Async │ ├── GrandCentralDispatch.md │ └── Quene_Sync_Async.md ├── TheArtofReadableCode │ ├── chap1 │ │ └── 1_EasyCodeToUnderstand.md │ └── chap2 │ │ └── 2_NamingWithInformation.md ├── UIApplication │ ├── Responder_Chain.md │ └── UIApplication.md ├── UITest │ ├── UITest.md │ └── images │ │ ├── 0.png │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ └── 7.png ├── WWDC │ ├── CoreML_Framework.md │ ├── Finance_Markov_chain_example_state_space.png │ ├── ML_Presentation.md │ ├── WWDC18_Introducing_Create_ML .md │ ├── WWDC18_Vision_with_Core_ML .md │ ├── WWDC18_createML_717.md │ └── images │ │ ├── 1_6h80oAa3_bfUboWLXVYasA.gif │ │ ├── FacialRecognition-FINAL.jpg │ │ ├── Thomas_Bayes.png │ │ ├── ai_ml_dl.png │ │ ├── atari_games.jpg │ │ ├── coreML.png │ │ ├── coreMLEx.png │ │ ├── coreML_Architecture.png │ │ ├── coreMLs.png │ │ ├── deepface.jpg │ │ ├── hiddenlayer.jpeg │ │ ├── imageLabel.png │ │ ├── 비지도학습.png │ │ ├── 조건부확률.png │ │ ├── 지도학습.png │ │ ├── 트리다이어그램-조건부확률예.png │ │ └── 확률밀도함수.png ├── Xib_vs_Code_vs_StoryBoard_vs_SwiftUI │ └── Xib_vs_Code_vs_StoryBoard_vs_SwiftUI.md ├── apitest.md ├── background지식.md ├── iOSLifeCycle │ ├── Preparing Your UI to Run in the Foreground .md │ └── iOS_LifeCycle.md ├── iOS_Network │ ├── iOS network.md │ ├── iOS_Cache.md │ └── images │ │ ├── downloadTask.png │ │ ├── ex1_modifiedError1.png │ │ ├── ex1_modifiedError2.png │ │ ├── loadimage.png │ │ ├── mainSync_erro.png │ │ ├── uimainthread.png │ │ └── uploadTask.png ├── images │ ├── affine_transformation.png │ ├── bezier_curve.png │ ├── debugSettingForTouchEvent.png │ ├── debugViewHierarchy.png │ ├── ios12LifeCycle.png │ └── ios13SceneSupport.png └── 사용성분석 │ └── UA_user_analytics.md ├── AutoLayoutEx ├── 7_2_오토레이아웃학습정리.md └── AutoLayoutEx │ ├── AutoLayoutEx.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ ├── AutoLayoutEx │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift │ ├── AutoLayoutExTests │ ├── AutoLayoutExTests.swift │ └── Info.plist │ └── AutoLayoutExUITests │ ├── AutoLayoutExUITests.swift │ └── Info.plist ├── CS23 └── STEP_1_DIGITAL_LOGIC_CIRCUIT │ └── STEP_1-1_NAND_GATE_SWIFT │ ├── STEP_1-1_NAND_GATE_SWIFT.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── STEP_1-1_NAND_GATE_SWIFT │ ├── ANDGate.swift │ ├── BinaryAdder.swift │ ├── CommonFormatter.swift │ ├── Convertor.swift │ ├── EightBitAdder.swift │ ├── INVERTORGate.swift │ ├── InputView.swift │ ├── NANDGate.swift │ ├── NORGate.swift │ ├── ORGate.swift │ └── main.swift ├── CodeSquard_Pre_Step ├── step1 │ └── timestable.playground │ │ ├── Contents.swift │ │ └── contents.xcplayground ├── step2-1_UnitConverter │ ├── step2-1_UnitConverter.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── step2-1_UnitConverter │ │ └── main.swift └── step2_4-7 │ ├── step2_4-7.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── step2_4-7 │ └── main.swift ├── ComputerSciences ├── Algorithms │ ├── BST │ │ ├── BST_1.md │ │ ├── BinaryTreeToBST .md │ │ └── self-balanced_BST │ │ │ ├── AVL_Tree.md │ │ │ └── RedBlackTree.md │ ├── NetworkFlow │ │ └── BipartiteMatching │ │ │ ├── BipartiteMatching.md │ │ │ └── KMP.md │ ├── String │ │ ├── KMP.md │ │ └── PrefixTrie_.md │ └── Trie │ │ └── PrefixTrie_.md ├── CS_DB_요약.md ├── CS_Network_요약.md ├── CS_OS_에버노트기반_요약.md ├── CS_Studies.md ├── CS_알고리즘_정렬_ETC_요약.md ├── DB │ └── images │ │ └── B_Tree │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 13.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ ├── 9.png │ │ └── 스크린샷 2019-10-05 오후 9.41.36.png ├── DB_파일인덱싱기법 │ ├── DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html │ └── DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources │ │ ├── 0340E9F6-69CD-47AB-B7ED-2753B39E39C1.png │ │ ├── 082B84CC-9DF6-4AE0-8D63-F165273062AB.png │ │ ├── 37007F33-B74B-4A41-A962-3A6F9FFDA14F.png │ │ ├── 3777713E-AAAB-49E9-BDC9-85A5DF6F3680.png │ │ ├── 3EC26EC9-6EC6-408C-9EF2-B5B489AF94FD.png │ │ ├── 4B47C224-F2C9-4F19-9606-D0D34EFEE049.png │ │ ├── 547B3941-4E3A-48B2-9DE1-A78E60C3CCA3.png │ │ ├── 7A3AD7DD-35C8-4E17-9069-6C64C311D246.png │ │ ├── 97FE5C5E-9484-4EBF-9410-79C5045D24F0.png │ │ ├── B41D3F14-26CF-40AD-8B71-73C3C56F880E.png │ │ ├── D8D8AE14-C2A3-45B7-94DE-B174128645F6.png │ │ ├── DAF0856B-4ADC-4C56-A76C-2C61649ECFE2.png │ │ ├── DFC41B49-C31E-4D57-B3E5-D91C82EC50B3.png │ │ ├── E7E1AB87-14FC-443E-8EF5-8EB8BCD37641.png │ │ ├── EA569673-F2BF-4B4C-96EE-DAD49F8A3876.png │ │ └── FFA5C39D-364C-4A25-93D4-DD3B0284AE3F.png ├── Network │ ├── Application_1.md │ ├── Application_2.md │ ├── NetworkLayer_1.md │ ├── NetworkLayer_2.md │ ├── NetworkLayer_3.md │ ├── NetworkLayer_4.md │ ├── Network_1.md │ ├── TransportLayer_2.md │ ├── TransportLayer_3.md │ ├── TransportLayer_4.md │ ├── TransportLayer_Recap.md │ ├── images │ │ ├── NetworkLayer │ │ │ ├── 스크린샷 2019-10-11 오후 5.16.19.png │ │ │ ├── 스크린샷 2019-10-11 오후 6.22.28.png │ │ │ ├── 스크린샷 2019-10-11 오후 6.37.22.png │ │ │ ├── 스크린샷 2019-10-11 오후 7.01.27.png │ │ │ ├── 스크린샷 2019-10-11 오후 7.06.41.png │ │ │ ├── 스크린샷 2019-10-11 오후 7.06.54.png │ │ │ ├── 스크린샷 2019-10-12 오전 11.10.41.png │ │ │ ├── 스크린샷 2019-10-12 오전 11.33.34.png │ │ │ ├── 스크린샷 2019-10-12 오전 11.44.18.png │ │ │ ├── 스크린샷 2019-10-12 오전 11.53.15.png │ │ │ ├── 스크린샷 2019-10-12 오전 11.53.24.png │ │ │ ├── 스크린샷 2019-10-12 오전 11.55.30.png │ │ │ ├── 스크린샷 2019-10-12 오후 1.37.36.png │ │ │ ├── 스크린샷 2019-10-12 오후 1.40.54.png │ │ │ ├── 스크린샷 2019-10-12 오후 1.42.56.png │ │ │ ├── 스크린샷 2019-10-12 오후 1.44.47.png │ │ │ ├── 스크린샷 2019-10-12 오후 1.57.54.png │ │ │ ├── 스크린샷 2019-10-12 오후 1.59.26.png │ │ │ ├── 스크린샷 2019-10-12 오후 2.04.53.png │ │ │ ├── 스크린샷 2019-10-12 오후 2.07.32.png │ │ │ ├── 스크린샷 2019-10-12 오후 2.08.55.png │ │ │ ├── 스크린샷 2019-10-12 오후 3.13.58.png │ │ │ ├── 스크린샷 2019-10-12 오후 3.14.02.png │ │ │ ├── 스크린샷 2019-10-12 오후 3.28.09.png │ │ │ ├── 스크린샷 2019-10-12 오후 3.55.40.png │ │ │ ├── 스크린샷 2019-10-12 오후 3.55.44.png │ │ │ ├── 스크린샷 2019-10-12 오후 4.12.34.png │ │ │ ├── 스크린샷 2019-10-12 오후 4.19.15.png │ │ │ ├── 스크린샷 2019-10-12 오후 4.21.01.png │ │ │ └── 스크린샷 2019-10-12 오후 4.24.46.png │ │ ├── Subnet_mask │ │ │ ├── 스크린샷 2019-10-05 오후 2.31.38.png │ │ │ ├── 스크린샷 2019-10-05 오후 2.38.48.png │ │ │ ├── 스크린샷 2019-10-05 오후 2.52.03.png │ │ │ ├── 스크린샷 2019-10-05 오후 3.11.01.png │ │ │ ├── 스크린샷 2019-10-05 오후 3.11.07.png │ │ │ └── 스크린샷 2019-10-05 오후 3.11.12.png │ │ ├── TPL_2 │ │ │ ├── 스크린샷 2019-10-04 오후 1.13.10.png │ │ │ ├── 스크린샷 2019-10-04 오후 1.25.12.png │ │ │ ├── 스크린샷 2019-10-04 오후 1.25.28.png │ │ │ ├── 스크린샷 2019-10-04 오후 1.25.39.png │ │ │ ├── 스크린샷 2019-10-04 오후 2.25.20.png │ │ │ ├── 스크린샷 2019-10-04 오후 2.25.23.png │ │ │ └── 스크린샷 2019-10-04 오후 2.25.27.png │ │ ├── TPL_4 │ │ │ ├── 스크린샷 2019-10-04 오후 3.54.42.png │ │ │ ├── 스크린샷 2019-10-04 오후 4.19.19.png │ │ │ └── 스크린샷 2019-10-04 오후 4.23.55.png │ │ ├── 스크린샷 2019-10-03 오후 4.19.40.png │ │ ├── 스크린샷 2019-10-03 오후 4.25.19.png │ │ ├── 스크린샷 2019-10-03 오후 4.44.28.png │ │ ├── 스크린샷 2019-10-03 오후 4.50.11.png │ │ ├── 스크린샷 2019-10-03 오후 5.04.25.png │ │ ├── 스크린샷 2019-10-03 오후 5.14.04.png │ │ ├── 스크린샷 2019-10-03 오후 5.14.27.png │ │ ├── 스크린샷 2019-10-03 오후 5.16.02.png │ │ ├── 스크린샷 2019-10-03 오후 5.37.29.png │ │ ├── 스크린샷 2019-10-03 오후 5.39.23.png │ │ ├── 스크린샷 2019-10-03 오후 5.45.21.png │ │ ├── 스크린샷 2019-10-03 오후 5.49.32.png │ │ ├── 스크린샷 2019-10-03 오후 5.56.53.png │ │ ├── 스크린샷 2019-10-03 오후 5.57.17.png │ │ ├── 스크린샷 2019-10-03 오후 5.58.37.png │ │ ├── 스크린샷 2019-10-03 오후 5.58.52.png │ │ ├── 스크린샷 2019-10-03 오후 6.06.37.png │ │ ├── 스크린샷 2019-10-03 오후 6.07.35.png │ │ ├── 스크린샷 2019-10-03 오후 6.21.47.png │ │ └── 스크린샷 2019-10-03 오후 6.39.38.png │ └── 질답 │ │ ├── 네트워크+1장 (1).doc │ │ ├── 네트워크+1장.doc │ │ ├── 네트워크+2장.doc │ │ ├── 네트워크+3장.doc │ │ ├── 네트워크+문답+1장.doc │ │ ├── 네트워크+문답+3장.doc │ │ ├── 네트워크+문답+4장.doc │ │ ├── 네트워크+문답+5장+(2).doc │ │ ├── 네트워크+문답+5장.doc │ │ └── 면접강의정리.docx ├── iOS_Theory │ ├── Introduction.md │ ├── MVVM_Study.md │ ├── Part01_Overview.md │ ├── Part03_LanguageBasics.md │ ├── Part03_LanguageBasics_Part2.md │ ├── Part04_MemoryManagement.md │ ├── RxSwift_step1_2.md │ ├── RxSwift_step3.md │ ├── RxSwift_step4-mvvm.md │ └── RxSwift_step5-mvvm_season2.md ├── os_process ├── os예상질문.enex ├── 네이버기술면접자료구조알고리즘.enex ├── 네이버기술면접자료구조알고리즘.zip └── 오라클 관련 신입으로 취업하려면 적어도 이정도는 해야.... _ 네이버 카페1.pdf ├── GrammarStudy ├── CallByValueReference_Ex │ ├── CallByValueReferenceEx.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── Main │ │ └── main.swift ├── ClassCodableTestEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── ClassCodableTestEx2 │ ├── ClassCodableTestEx2.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ClassCodableTestEx2 │ │ ├── HeterogenousArray.swift │ │ ├── HeterogenousArray_backup.swift │ │ └── main.swift ├── ClassCopyAndArchivingEx │ ├── ClassCopyAndArchivingEx.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── ClassCopyAndArchivingEx │ │ └── main.swift ├── ClosedRangeEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── CoreDataEx │ ├── ContactInfo+CoreDataClass.swift │ ├── ContactInfo+CoreDataProperties.swift │ ├── CoreDataEx.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── CoreDataEx │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── CoreDataEx.xcdatamodeld │ │ │ ├── .xccurrentversion │ │ │ └── CoreDataEx.xcdatamodel │ │ │ │ └── contents │ │ ├── DetailViewController.swift │ │ ├── Info.plist │ │ └── MasterViewController.swift │ ├── Person+CoreDataClass.swift │ └── Person+CoreDataProperties.swift ├── DictionaryReduceEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── LayoutAdaptivityEx │ ├── LayoutAdaptivityEx.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── LayoutAdaptivityEx │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift ├── LayoutEx │ ├── LayoutEx.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── LayoutEx │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── LayoutEx.entitlements │ │ └── ViewController.swift ├── ProtocolOrientedProgramming_EX │ ├── POP_EX.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── POP_EX │ │ ├── AmphibiousBus.swift │ │ ├── Boat.swift │ │ ├── Bus.swift │ │ ├── Car.swift │ │ ├── Protocols.swift │ │ └── main.swift ├── SingletonPatternEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── TableViewEx │ ├── TableViewEx.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── TableViewEx │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── MyDataSource.swift │ │ ├── MyDelegate.swift │ │ └── ViewController.swift ├── TouchEventEx │ └── TouchEventEX │ │ ├── TouchEventEX.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── TouchEventEX │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── BlueView.swift │ │ ├── BlueView.xib │ │ ├── Info.plist │ │ ├── SecondScene.storyboard │ │ ├── ViewController.swift │ │ └── YelloView.swift ├── URLTest.playground │ ├── Contents.swift │ └── contents.xcplayground ├── UnicodeTestEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── classInClassRepeatingEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── inheritanceExTest.playground │ ├── Contents.swift │ └── contents.xcplayground ├── lec_4_18_structInitializer.playground │ ├── Contents.swift │ └── contents.xcplayground ├── macOSTestEx │ ├── macOSTestEx.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── macOSTestEx │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── ViewController.swift │ │ └── macOSTestEx.entitlements ├── monadEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── numberToStringFormat.playground │ ├── Contents.swift │ └── contents.xcplayground ├── propertyAllocationEx.playground │ ├── Contents.swift │ └── contents.xcplayground ├── test0711-enum-private_class.playground │ ├── Contents.swift │ └── contents.xcplayground └── testDateManipulation.playground │ ├── Contents.swift │ └── contents.xcplayground ├── InternationalizationAndLocalization ├── InternationalizationAndLocalization.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── InternationalizationAndLocalization.xcscheme └── InternationalizationAndLocalization │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── icons8-taco-128.imageset │ │ ├── Contents.json │ │ ├── icons8-kawaii-taco-60.png │ │ └── icons8-taco-128.png │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── LocalizationSetting │ ├── en.xcloc │ │ ├── Localized Contents │ │ │ ├── InternationalizationAndLocalization │ │ │ │ └── Assets.xcassets │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── icons8-taco-128.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── icons8-taco-128_en.png │ │ │ └── en.xliff │ │ ├── Source Contents │ │ │ └── InternationalizationAndLocalization │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-taco-128.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── icons8-taco-128.png │ │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ │ └── en.lproj │ │ │ │ ├── InfoPlist.strings │ │ │ │ └── Localization.strings │ │ └── contents.json │ └── ko.xcloc │ │ ├── Localized Contents │ │ ├── InternationalizationAndLocalization │ │ │ └── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-taco-128.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-kawaii-taco-60.png │ │ └── ko.xliff │ │ ├── Source Contents │ │ └── InternationalizationAndLocalization │ │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ └── icons8-taco-128.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-taco-128.png │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ └── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localization.strings │ │ └── contents.json │ ├── LocalizationSettings │ ├── en.xcloc │ │ ├── Localized Contents │ │ │ ├── InternationalizationAndLocalization │ │ │ │ └── Assets.xcassets │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── icons8-taco-128.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── icons8-taco-128_en.png │ │ │ └── en.xliff │ │ ├── Source Contents │ │ │ └── InternationalizationAndLocalization │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-taco-128.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── icons8-taco-128.png │ │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ │ └── en.lproj │ │ │ │ ├── InfoPlist.strings │ │ │ │ └── Localization.strings │ │ └── contents.json │ └── ko.xcloc │ │ ├── Localized Contents │ │ ├── InternationalizationAndLocalization │ │ │ └── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-taco-128.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-taco-128_ko.png │ │ └── ko.xliff │ │ ├── Source Contents │ │ └── InternationalizationAndLocalization │ │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ └── icons8-taco-128.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons8-taco-128.png │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ └── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localization.strings │ │ └── contents.json │ ├── SceneDelegate.swift │ ├── ViewController.swift │ ├── en.lproj │ └── Localization.strings │ ├── es.lproj │ ├── LaunchScreen.strings │ ├── Localization.strings │ └── Main.strings │ ├── ko.lproj │ ├── LaunchScreen.strings │ ├── Localization.strings │ └── Main.strings │ └── zh-Hans.lproj │ ├── LaunchScreen.strings │ ├── Localization.strings │ └── Main.strings ├── Jercy_iOS_Interview_Question.md ├── LICENSE ├── LectureNote ├── OOP_FP.md ├── fizzbuzz.md ├── image │ ├── InternetSocketBasicDiagram_zhtw.png │ ├── asynchronous_logic.png │ ├── synchrnonouse_logic.png │ └── synchronouse_result.png └── networkprogramming-sync.md ├── MyFirebaseBooks ├── MyFirebaseBooks.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── MyFirebaseBooks │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ └── ViewController.swift ├── NetworkAsyncEx ├── NetworkAsyncEx.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── NetworkAsyncEx │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── NetworkModel.swift │ └── ViewController.swift ├── README.md ├── SOLID_EX ├── SOLID_EX.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── SOLID_EX │ ├── SRP.swift │ └── main.swift ├── SOLID_LSP │ ├── ErrorCode.swift │ ├── LSP.swift │ ├── Rectangle.swift │ └── Square.swift └── SOLID_OCP │ └── OCP.swift ├── SWIFT_ALGORITHM_SOLVING ├── DataStructures │ ├── CircularLinkedList.swift │ ├── LinkedList.swift │ ├── Queue_LinkedList.swift │ └── SingleLinkedList.swift ├── HuffmanCoding │ └── HuffmanCodingEx1.swift ├── K번째수_42748 │ └── Solution_42748.swift ├── LeetCode │ ├── 581_Shortest Unsorted Continuous Subarray │ │ └── Solution_581.swift │ ├── OnGoing │ │ ├── 47_Permutations II │ │ │ └── Solution_LeetCode_47.swift │ │ └── 77_Combination │ │ │ └── Solution_LeetCode_77.swift │ ├── Solved │ │ ├── 128_Longest Consecutive Sequence │ │ │ └── Solution_128.swift │ │ ├── 14_Longest Common Prefix │ │ │ └── Solution_14.swift │ │ ├── 162_Find Peak Element │ │ │ └── Solution_162.swift │ │ ├── 17_Letter Combinations of a Phone Number │ │ │ └── Solution_LeetCode_17.swift │ │ ├── 189_Rotate Array │ │ │ └── Solution_189.swift │ │ ├── 230_Kth Smallest Element in a BST │ │ │ └── Solution_230.swift │ │ ├── 31_Next Permutation │ │ │ └── Solution_LeetCode_31.swift │ │ ├── 581_Shortest Unsorted Continuous Subarray copy │ │ │ └── Solution_581.swift │ │ ├── 692_Top K Frequent Words │ │ │ └── Solution_LeetCode_692.swift │ │ ├── 700_Search in a Binary Search Tree │ │ │ └── Solution_700.swift │ │ ├── 746_Min Cost Climbing Stairs │ │ │ └── Solution_LeetCode_746.swift │ │ ├── 852_Peak Index in a Mountain Array │ │ │ └── Solution_852.swift │ │ └── 884_Uncommon Words from Two Sentences │ │ │ └── Solution_LeetCode_884.swift │ └── UnSolved │ │ ├── 112_Path_Sum │ │ └── Solution_112.swift │ │ └── 174_Dungeon Game │ │ └── Solution_LeetCode_174.swift ├── MinHeap │ ├── MinHeap.swift │ └── MinHeapEx2.swift ├── Permutation │ ├── CombinationEx1.swift │ ├── PermuationEx2_iteration.swift │ ├── PermutationEx0.swift │ ├── RepeatPermuationEx1.swift │ └── RepeatPermuationEx2.swift ├── PriorityQueue │ ├── Heap.swift │ └── PriorityQueue.swift ├── Programmers │ ├── Kakao2017 │ │ ├── 1차 │ │ │ ├── 뉴스_클러스터링_17677 │ │ │ │ └── Solution_17677.swift │ │ │ ├── 다크게임_17682 │ │ │ │ └── Solution_17682.swift │ │ │ ├── 비밀지도_17681 │ │ │ │ └── Solution_17681.swift │ │ │ └── 캐시_17680 │ │ │ │ └── Solution_17680.swift │ │ └── 3차 │ │ │ └── 압축_17684 │ │ │ └── Solution_17684.swift │ ├── Kakao2018 │ │ ├── 길찾기게임_42892 │ │ │ └── Solution_42892.swift │ │ ├── 매칭점수_42893 │ │ │ └── Solution_42893.swift │ │ ├── 무지의먹방라이브_42891 │ │ │ ├── Dealerable.swift │ │ │ ├── Playable.swift │ │ │ └── Solution_42891.swift │ │ ├── 블록게임_42894 │ │ │ └── Solution_42894.swift │ │ ├── 실패율_42889 │ │ │ └── Solution_42889.swift │ │ ├── 오픈채팅방_42888 │ │ │ └── Solution_42888.swift │ │ └── 후보키_42890 │ │ │ └── Solution_42890.swift │ ├── Kakao2019 │ │ ├── Sol1 │ │ │ └── Solution_kakao1.swift │ │ ├── Sol2 │ │ │ └── Solution_kakao2.swift │ │ ├── Sol3 │ │ │ └── Solution_kakao3.swift │ │ ├── Sol4 │ │ │ └── Solution_kakao4.swift │ │ ├── Sol5 │ │ │ └── Solution_kakao5.swift │ │ ├── Sol6 │ │ │ └── Solution_kakao6.swift │ │ └── Sol7 │ │ │ └── Solution_kakao7.swift │ └── Level2 │ │ └── Solution_43165.swift ├── RegEx │ ├── RegularEx.swift │ └── Subscript.swift ├── SWIFT_ALGORITHM_SOLVING.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── SWIFT_ALGORITHM_SOLVING │ └── main.swift ├── Topological_Sort │ └── Topological_sort.swift ├── Trie │ └── Trie.swift ├── 가장큰수_42746 │ └── Solution_42746.swift └── 체육복_30 │ └── Solution_42862.swift ├── Seminar_Summaries ├── 20190803_LetusGo_Summer.md ├── 20190821_Naver_Glace_Meetup_Summary.md └── Woowabros │ ├── 글로벌_서비스_개발하기_사례경험공유.md │ └── 사례공유2.md ├── backend_json.md ├── crash_algorithm.md └── iOS_Basic ├── CameraApp ├── SimpleFullScreenCameraApp │ ├── SimpleFullScreenCameraApp.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── SimpleFullScreenCameraApp │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── ic_camera_front.imageset │ │ │ ├── Contents.json │ │ │ └── ic_camera_front@2x.png │ │ ├── ic_camera_rear.imageset │ │ │ ├── Contents.json │ │ │ └── ic_camera_rear@2x.png │ │ └── ic_photo_camera.imageset │ │ │ ├── Contents.json │ │ │ └── ic_photo_camera@2x.png │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── CameraViewController.swift │ │ ├── Info.plist │ │ └── PreviewView.swift ├── ic_camera_front@2x.png ├── ic_camera_rear@2x.png └── ic_photo_camera@2x.png ├── GCD_basic ├── GCD_basic │ ├── GCD_basic.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── GCD_basic │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift └── GCD_basic_ex.playground │ ├── Contents.swift │ └── contents.xcplayground ├── ML_Model ├── CreateMLModel │ ├── CreateMLModel.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── CreateMLModel │ │ └── main.swift └── ML_Model_demo.playground │ ├── Contents.swift │ └── contents.xcplayground ├── MusicApp ├── MusicApp.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── MusicApp │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── 7 rings.imageset │ │ ├── 7 rings@2x.png │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Believer.imageset │ │ ├── Believer@2x.png │ │ └── Contents.json │ ├── Best Mistake.imageset │ │ ├── Best Mistake@2x.png │ │ └── Contents.json │ ├── Blue Birds.imageset │ │ ├── Blue Birds@2x.png │ │ └── Contents.json │ ├── Contents.json │ ├── Dip.imageset │ │ ├── Contents.json │ │ └── Dip@2x.png │ ├── Swish.imageset │ │ ├── Contents.json │ │ └── Swish@2x.png │ ├── The Harlem Barber Swing.imageset │ │ ├── Contents.json │ │ └── The Harlem Barber Swing@2x.png │ ├── icClose.imageset │ │ ├── Contents.json │ │ └── icClose@2x.png │ ├── icPause.imageset │ │ ├── Contents.json │ │ └── icPause@2x.png │ ├── icPlay.imageset │ │ ├── Contents.json │ │ └── icPlay@2x.png │ └── thank u, next.imageset │ │ ├── Contents.json │ │ └── thank u, next@2x.png │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── MusicApp.xcdatamodeld │ ├── .xccurrentversion │ └── MusicApp.xcdatamodel │ │ └── contents │ ├── PlayerViewController.swift │ ├── Track.swift │ ├── TrackCell.swift │ └── TrackListViewController.swift ├── chap11-12 ├── BountyListApp │ ├── BountyListApp.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── BountyListApp │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── brook.imageset │ │ │ ├── Contents.json │ │ │ └── brook@2x.jpg │ │ ├── chopper.imageset │ │ │ ├── Contents.json │ │ │ └── chopper@2x.jpg │ │ ├── close_ic.imageset │ │ │ ├── Contents.json │ │ │ └── close_ic@2x.png │ │ ├── franky.imageset │ │ │ ├── Contents.json │ │ │ └── franky@2x.jpg │ │ ├── luffy.imageset │ │ │ ├── Contents.json │ │ │ └── luffy@2x.jpg │ │ ├── nami.imageset │ │ │ ├── Contents.json │ │ │ └── nami@2x.jpg │ │ ├── robin.imageset │ │ │ ├── Contents.json │ │ │ └── robin@2x.jpg │ │ ├── sanji.imageset │ │ │ ├── Contents.json │ │ │ └── sanji@2x.jpg │ │ └── zoro.imageset │ │ │ ├── Contents.json │ │ │ └── zoro@2x.jpg │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── BountyInfo.swift │ │ ├── BountyViewController.swift │ │ ├── DetailViewController.swift │ │ └── Info.plist └── mvc-pattern-summary.md ├── chap13 └── UICollectionView.md ├── chap15_musicApp └── MusicApp │ ├── MusicApp.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── MusicApp │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── 7 rings.imageset │ │ ├── 7 rings@2x.png │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Believer.imageset │ │ ├── Believer@2x.png │ │ └── Contents.json │ ├── Best Mistake.imageset │ │ ├── Best Mistake@2x.png │ │ └── Contents.json │ ├── Blue Birds.imageset │ │ ├── Blue Birds@2x.png │ │ └── Contents.json │ ├── Contents.json │ ├── Dip.imageset │ │ ├── Contents.json │ │ └── Dip@2x.png │ ├── Swish.imageset │ │ ├── Contents.json │ │ └── Swish@2x.png │ ├── The Harlem Barber Swing.imageset │ │ ├── Contents.json │ │ └── The Harlem Barber Swing@2x.png │ ├── icClose.imageset │ │ ├── Contents.json │ │ └── icClose@2x.png │ ├── icPause.imageset │ │ ├── Contents.json │ │ └── icPause@2x.png │ ├── icPlay.imageset │ │ ├── Contents.json │ │ └── icPlay@2x.png │ └── thank u, next.imageset │ │ ├── Contents.json │ │ └── thank u, next@2x.png │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── MusicApp.xcdatamodeld │ ├── .xccurrentversion │ └── MusicApp.xcdatamodel │ │ └── contents │ ├── PlayerViewController.swift │ ├── Track.swift │ ├── TrackCell.swift │ └── TrackListViewController.swift ├── chap2 ├── WantedPoster │ ├── WantedPoster.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── WantedPoster │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── icon@2x.png │ │ ├── Contents.json │ │ └── poster.imageset │ │ │ ├── Contents.json │ │ │ └── poster@2x.jpg │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift ├── iOS_how_to_application_work.md ├── icon@2x.png └── poster@2x.jpg └── chap4 └── chap4_stylingIntro.md /Article/0812_mobileComputing/0812_mobileComputing_ML.md: -------------------------------------------------------------------------------- 1 | # Mobile Computing and ML 2 | 3 | 4 | 5 | ### `모바일 컴퓨팅`이란? 6 | 7 | 엘런 케이 8 | 9 | - oop / smalltalk 10 | 11 | 12 | 13 | `언제` 든지 `어디서` 나 `어떤것` 이든 네트워크에 연결되어 사용할 수 있는 컴퓨팅 환경 14 | 15 | IoT 위한 통신방법 16 | 17 | 18 | 19 | **PAN (Personal Area Network) 대두** 20 | 21 | 22 | 23 | iOS 개발자에게 ML이란? 24 | 25 | 26 | 27 | 형식지와 암묵지 28 | 29 | 프로그래밍 쉬움 vs 어려움 / 신경망 유사 -------------------------------------------------------------------------------- /Article/ClassCopyAndArchiving/locality.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/ClassCopyAndArchiving/locality.jpeg -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/1_Points.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/1_Points.png -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/2_RenderedPixels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/2_RenderedPixels.png -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/3_PhysicalPixels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/3_PhysicalPixels.png -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/4_PhysicalDevice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/4_PhysicalDevice.png -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/CGRect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/CGRect.png -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/SuperView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/SuperView.png -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/SuperViewBoundsMove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/SuperViewBoundsMove.png -------------------------------------------------------------------------------- /Article/CoordinatesSystem/images/SuperViewFrameMove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/CoordinatesSystem/images/SuperViewFrameMove.png -------------------------------------------------------------------------------- /Article/CoreData/CoreData.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | memory - Data structure 4 | 5 | storage - DB 6 | 7 | 8 | 9 | ## 코어 데이터 10 | 11 | - Apple의 데이터베이스 12 | 13 | - CoreData - 기본적으로 SQLite DB를 사용함 14 | 15 | CoreData Framework 16 | 17 | 18 | 19 | ### Entity 20 | 21 | - `Entity` 는 일반적인 RDB에서 말하는 `테이블` 의 개념과 유사 22 | - (Entity 추가 -> `CREATE TABLE` 과 비슷한 효과) 23 | 24 | 25 | 26 | ### Attribute 27 | 28 | - Attribute는 Table의 Column을 구성하는 엔티티 속성을 의미한다. 29 | - Core Data에서는 `property` 용어로 언급 30 | 31 | 32 | 33 | ### Relationship 34 | 35 | - 코어 데이터 엔티티(Entity) 간의 `관계` 를 표현 36 | 37 | - 사람은 여러 종류의 연락처를 보유 (전화번호, 이메일, 주소, 직장번호 등) 38 | - 사람은 연락처와 1:N의 관계에 있음 39 | - Core Data에서는 `property` 용어로 언급 40 | 41 | 42 | 43 | ### 기존 스키마 변경하려면? 44 | 45 | - DB의 기존 구조를 변경하고, 그에 맞게 데이터를 변경하는 마이그레이션을 진행 46 | - Lightweight Migration 이라는 방법을 제공 47 | 48 | 49 | 50 | ### 참고 51 | 52 | [What Are Core Data Entities And Attributes](https://cocoacasts.com/what-are-core-data-entities-and-attributes) 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Article/HIG-Adaptivity&Layout/AdaptivityAndLayout.md: -------------------------------------------------------------------------------- 1 | ### Constraint 2 | 3 | ​ Blue |—8—| Red 4 | 5 | RedView(item1).Leading(Attribute 1) **=(relationship)** 1.0(Multiplier) x BlueView(item2).trailing(Attribute 2)+8.0 (constant) 6 | 7 | 8 | 9 | 10 | 11 | ## Layout Ex 12 | 13 | - Auto layout 설정시, 위 수식과 같은 방식으로 Alignment Constraint가 표현된다. 14 | 15 | -------------------------------------------------------------------------------- /Article/HTTP_2.md: -------------------------------------------------------------------------------- 1 | # HTTP/1.1 vs HTTP/2 2 | 3 | [https://www.popit.kr/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-http2/](https://www.popit.kr/나만-모르고-있던-http2/) 4 | 5 | https://americanopeople.tistory.com/115 6 | 7 | https://www.imperva.com/learn/performance/http2/ 8 | 9 | [https://medium.com/@shlee1353/http1-1-vs-http2-0-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0-5727b7499b78](https://medium.com/@shlee1353/http1-1-vs-http2-0-차이점-간단히-살펴보기-5727b7499b78) -------------------------------------------------------------------------------- /Article/JSONSerialization/JWT_JsonWebToken.md: -------------------------------------------------------------------------------- 1 | ## JWT (Json web token) 2 | 3 | - WEB API를 통한 인증 4 | - 인증을 통해 권한이 있는 사람에게만 API 요청을 허용 5 | - API Request에 Token을 함께 전달하여 요청 6 | - 토큰은 **쿠키**나 **헤더**에 넣어서 전달가능 7 | - 토큰 자체에 **의미있는 값**이 들어있음 8 | - 토큰은 **Encoding**되어있음 9 | 10 | 11 | 12 | #### 기존의 쿠키/세션 방식과의 차이 13 | 14 | - 기존 방식은 API를 사용하기 위해 `login` 을 해야하는 절차가 필요. 15 | - 중앙에서 세션을 관리해야할 시스템이 잘 작동해야 API 제공이 원활함 16 | 17 | 18 | 19 | ### Example 20 | 21 | POST /login (id, pw) 대신에 22 | 23 | -> JWT (ID, Name / ISAdmin) 으로 토큰을 받음 24 | 25 | 이후에 news/1 + token 값으로 GET 요청 26 | 27 | 28 | 29 | ### cf REST API vs WEB API vs 일반 HTTP응답 30 | 31 | - #### Restful API 32 | 33 | - 로이 필딩이 만듦 34 | - (과거) http 요청 > html 문서 받기 였음 35 | - API 도입으로 http 요청 방식이 잘 지켜지지 않음 36 | - 자원에 대한 설명을 명세한 규칙 37 | 38 | 39 | 40 | - #### Web API 41 | 42 | - `JSON` / `XML` (only Data) 로 전달받음 43 | - Restful API 를 포함함 44 | 45 | 46 | 47 | - #### 일반 HTTP 응답 48 | 49 | - `html` (디자인 등표현 방법 + 데이터) 로 전달받음 50 | 51 | 52 | 53 | 54 | 55 | 생코 Ouath 2.0, JWT 참고 -------------------------------------------------------------------------------- /Article/Networks/CISCO_Networks_part1_1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/Networks/CISCO_Networks_part1_1.md -------------------------------------------------------------------------------- /Article/Queue_Sync_Async/Quene_Sync_Async.md: -------------------------------------------------------------------------------- 1 | # Concurrency & Parallelism (동시성과 병렬성) 2 | 3 | 4 | 5 | ### 배달회사 예시 6 | 7 | - 일의 과정 8 | - 전화로 주문을 받음(2분) 9 | - 주문 받은 내용대로 음식점에서 구매 (10분) 10 | - 음식 받아서 배달 완료(10분) 11 | - 전화주문(request) 완료 후 > 음식점 구매 > 배달 순서로 가는 경우 request에 대한 동시성 저하 12 | 13 | - 동시성 높이기 14 | - 주문은 언제든지 받도록 하자 15 | - 병렬성 저하 16 | - 요청과 응답 사이의 respond time이 길어짐 17 | - 병렬성 높이기 18 | - 배달원(스레드) 의 숫자를 늘리기 19 | - App의 Main 스레드는 event loop에 대해 처리하는 등의 역할을 맡음 20 | - 별도의 스레드들을 만들어서 서비스로직에 대응해야 함 21 | 22 | 23 | 24 | # Queue, Sync and Async 25 | 26 | - 배달 성과가 높은 직원 (Async) 27 | - 전화주문(Request)은 1,2,3의 순서로 받음 28 | - 일을 처리할 때는 빨리 끝내기 쉬운 일을 먼저 끝내기도 함. 29 | - 동시다발적으로 일을 수행함 30 | - 성과가 좋지 못한 직원 (Sync) 31 | - 전화주문(Request)은 1,2,3의 순서로 받음(동일) 32 | - 일을 처리할 때는 request 1에 해당하는 것을 먼저 전부 진행 33 | - request가 들어온 순서대로 음식사기 -> 배달 -> 배달완료 보고 를 진행함 34 | - 직원들이 할 일을 적어놓은 Todo list (Queue) 35 | 36 | 37 | 38 | - App은 여러 스레드를 통해서 작업을 수행 39 | 40 | - 각 스레드는 Queue에 있는 작업을 순서대로 꺼내서 수행하게 됨 41 | 42 | - 수행 방식은 Sync or Async 43 | - 가령, Network 스레드가 작업(다운로드) 완료 시 Main스레드에 전달하여, 메인스레드는 이에 대한 후속 작업(UI 갱신)을 진행함 44 | 45 | -------------------------------------------------------------------------------- /Article/TheArtofReadableCode/chap1/1_EasyCodeToUnderstand.md: -------------------------------------------------------------------------------- 1 | ## 핵심 : 코드는 이해하기 쉬워야 한다. 2 | 3 | - 무엇이 코드를 더 좋게 하는가? 4 | 5 | 6 | 7 | ### 가독성 기본 정리 (Fundamental Theorem of Readability) 8 | 9 | > 코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다. 10 | 11 | - 코드 이해를 위한 시간은 최소화 되어야 한다. 12 | - 다른사람이 나의 코드를 이해한다는 것은, 코드를 자유롭게 수정/디버깅/수정된 내용이 기존에 내가 작성한 코드들과 어떻게 상호작용하는지 알 수 있어야 한다는 것을 의미한다. 13 | 14 | 15 | 16 | > 일반적으로는 분량이 더 적은 코드가 이해하기 쉽다. 17 | 18 | - 분량이 적다고 해서 항상 더 좋은 것은 아니다. 19 | 20 | ```c++ 21 | assert((!(bucket = FindBucket(key))) || !bucket -> IsOccupied()); 22 | ``` 23 | 24 | ```c++ 25 | bucket = FindBucket(key); 26 | if (bucket != NULL) assert(!bucket -> IsOccupied()) 27 | ``` 28 | 29 | - 적은 분량의 코드로 작성, but 이해하기 위한 시간을 최소화 하는 정도로 고려해야 한다. 30 | 31 | 32 | 33 | ### 이해를 위한 시간은 다른 목표들과 충돌하는가? 34 | 35 | - 코드의 효율성, well done 아키텍처, 테스트 용이성등의 제약조건이 이해하기 쉬운 코드 작성과 충돌하지는 않는다. 오히려 반대 36 | - 의심스러울 때는 언제나 `가독성의 기본 정리`가 다른 규칙보다 우선되어야 한다. 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Article/UITest/images/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/0.png -------------------------------------------------------------------------------- /Article/UITest/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/1.png -------------------------------------------------------------------------------- /Article/UITest/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/2.png -------------------------------------------------------------------------------- /Article/UITest/images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/3.png -------------------------------------------------------------------------------- /Article/UITest/images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/4.png -------------------------------------------------------------------------------- /Article/UITest/images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/5.png -------------------------------------------------------------------------------- /Article/UITest/images/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/6.png -------------------------------------------------------------------------------- /Article/UITest/images/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/UITest/images/7.png -------------------------------------------------------------------------------- /Article/WWDC/CoreML_Framework.md: -------------------------------------------------------------------------------- 1 | # Core ML Framework 2 | 3 | - 머신러닝 모델을 앱에 적용시키기 위해 사용하는 프레임워크. 4 | 5 | - 모든 모델에 대해 균일한 표현을 제공한다. 6 | 7 | - 앱은 사용자 디바이스에서 Core ML APIs와 user data를 통해 예측을 하고, 보다 정교한 모델을 만들기 위해 트레이닝을 시킬 수 있다. 8 | 9 | ![이미지](https://docs-assets.developer.apple.com/published/7e05fb5a2e/4b0ecf58-a51a-4bfa-a361-eb77e59ed76e.png) 10 | 11 | 12 | 13 | ### model 14 | 15 | - 훈련을 위한 데이터 집합에 머신러닝 알고리즘을 적용한 결과를 말한다. 16 | 17 | -------------------------------------------------------------------------------- /Article/WWDC/Finance_Markov_chain_example_state_space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/Finance_Markov_chain_example_state_space.png -------------------------------------------------------------------------------- /Article/WWDC/WWDC18_createML_717.md: -------------------------------------------------------------------------------- 1 | wwdc 18 요약 2 | 3 | https://developer.apple.com/videos/play/wwdc2018/717 -------------------------------------------------------------------------------- /Article/WWDC/images/1_6h80oAa3_bfUboWLXVYasA.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/1_6h80oAa3_bfUboWLXVYasA.gif -------------------------------------------------------------------------------- /Article/WWDC/images/FacialRecognition-FINAL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/FacialRecognition-FINAL.jpg -------------------------------------------------------------------------------- /Article/WWDC/images/Thomas_Bayes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/Thomas_Bayes.png -------------------------------------------------------------------------------- /Article/WWDC/images/ai_ml_dl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/ai_ml_dl.png -------------------------------------------------------------------------------- /Article/WWDC/images/atari_games.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/atari_games.jpg -------------------------------------------------------------------------------- /Article/WWDC/images/coreML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/coreML.png -------------------------------------------------------------------------------- /Article/WWDC/images/coreMLEx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/coreMLEx.png -------------------------------------------------------------------------------- /Article/WWDC/images/coreML_Architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/coreML_Architecture.png -------------------------------------------------------------------------------- /Article/WWDC/images/coreMLs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/coreMLs.png -------------------------------------------------------------------------------- /Article/WWDC/images/deepface.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/deepface.jpg -------------------------------------------------------------------------------- /Article/WWDC/images/hiddenlayer.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/hiddenlayer.jpeg -------------------------------------------------------------------------------- /Article/WWDC/images/imageLabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/imageLabel.png -------------------------------------------------------------------------------- /Article/WWDC/images/비지도학습.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/비지도학습.png -------------------------------------------------------------------------------- /Article/WWDC/images/조건부확률.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/조건부확률.png -------------------------------------------------------------------------------- /Article/WWDC/images/지도학습.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/지도학습.png -------------------------------------------------------------------------------- /Article/WWDC/images/트리다이어그램-조건부확률예.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/WWDC/images/트리다이어그램-조건부확률예.png -------------------------------------------------------------------------------- /Article/background지식.md: -------------------------------------------------------------------------------- 1 | 이전 버전에서는 Controller에 UIApplication이 존재하였다. 2 | 3 | - 해당 클래스 객체는 Event Loop를 처리하는 메인 스레드를 보유하며, 모든 ios의 이벤트를 수행하고, 화면처리도 동시에 수행하는 객체이다. 4 | - 따라서 Event Loop는 무한루프로 실행되며 5 | - UIApplication은 UI 처리와 관련된 일을 `Application Delegate`에게 위임한다. 6 | - `Application Delegate`은 `UIWindow`를 보유한다. 7 | - Application Delegate는 적어도 하나의 view controller를 지닌 채로 생성되는데, 이 viewcontroller가 rootVC가 되어 window에 나타날 흰 바탕화면을 출력하는 역할을 한다. 8 | - -------------------------------------------------------------------------------- /Article/iOSLifeCycle/Preparing Your UI to Run in the Foreground .md: -------------------------------------------------------------------------------- 1 | # Preparing Your UI to Run in the Foreground 2 | 3 | -------------------------------------------------------------------------------- /Article/iOS_Network/images/downloadTask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/iOS_Network/images/downloadTask.png -------------------------------------------------------------------------------- /Article/iOS_Network/images/ex1_modifiedError1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/iOS_Network/images/ex1_modifiedError1.png -------------------------------------------------------------------------------- /Article/iOS_Network/images/ex1_modifiedError2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/iOS_Network/images/ex1_modifiedError2.png -------------------------------------------------------------------------------- /Article/iOS_Network/images/loadimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/iOS_Network/images/loadimage.png -------------------------------------------------------------------------------- /Article/iOS_Network/images/mainSync_erro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/iOS_Network/images/mainSync_erro.png -------------------------------------------------------------------------------- /Article/iOS_Network/images/uimainthread.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/iOS_Network/images/uimainthread.png -------------------------------------------------------------------------------- /Article/iOS_Network/images/uploadTask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/iOS_Network/images/uploadTask.png -------------------------------------------------------------------------------- /Article/images/affine_transformation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/images/affine_transformation.png -------------------------------------------------------------------------------- /Article/images/bezier_curve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/images/bezier_curve.png -------------------------------------------------------------------------------- /Article/images/debugSettingForTouchEvent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/images/debugSettingForTouchEvent.png -------------------------------------------------------------------------------- /Article/images/debugViewHierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/images/debugViewHierarchy.png -------------------------------------------------------------------------------- /Article/images/ios12LifeCycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/images/ios12LifeCycle.png -------------------------------------------------------------------------------- /Article/images/ios13SceneSupport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/Article/images/ios13SceneSupport.png -------------------------------------------------------------------------------- /Article/사용성분석/UA_user_analytics.md: -------------------------------------------------------------------------------- 1 | # 2019/09/19 사용성 분석 2 | 3 | > 사용자가 앱을 사용할 때 겪는 일을 추적하고, 이를 분석하는 것을 총칭 4 | 5 | 6 | 7 | ### 사용성 분석 툴 8 | 9 | ##### [google analytics -> firebase](https://firebase.google.com/docs/analytics/?hl=ko) 10 | 11 | ##### Beusable 12 | 13 | ##### [Flurry - yahoo](https://www.flurry.com/) 14 | 15 | ##### [facebook analytics](https://analytics.facebook.com/) 16 | 17 | 18 | 19 | 20 | 21 | ### References 22 | 23 | https://brunch.co.kr/@beusable/107 24 | 25 | [https://trello.com/c/xjqFLkXz/84-11-%EC%82%AC%EC%9A%A9%EC%84%B1-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%9E%80](https://trello.com/c/xjqFLkXz/84-11-사용성-테스트란) 26 | 27 | http://uxblogger.net/usability-evaluation-1/ 28 | http://www.thinkuser.com/general-ut/ 29 | http://story.pxd.co.kr/341 30 | 31 | -------------------------------------------------------------------------------- /AutoLayoutEx/7_2_오토레이아웃학습정리.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/AutoLayoutEx/7_2_오토레이아웃학습정리.md -------------------------------------------------------------------------------- /AutoLayoutEx/AutoLayoutEx/AutoLayoutEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AutoLayoutEx/AutoLayoutEx/AutoLayoutEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /AutoLayoutEx/AutoLayoutEx/AutoLayoutEx/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /AutoLayoutEx/AutoLayoutEx/AutoLayoutEx/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // AutoLayoutEx 4 | // 5 | // Created by hw on 02/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view. 16 | } 17 | 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /AutoLayoutEx/AutoLayoutEx/AutoLayoutExTests/AutoLayoutExTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AutoLayoutExTests.swift 3 | // AutoLayoutExTests 4 | // 5 | // Created by hw on 02/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import AutoLayoutEx 11 | 12 | class AutoLayoutExTests: XCTestCase { 13 | 14 | override func setUp() { 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDown() { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | } 21 | 22 | func testExample() { 23 | // This is an example of a functional test case. 24 | // Use XCTAssert and related functions to verify your tests produce the correct results. 25 | } 26 | 27 | func testPerformanceExample() { 28 | // This is an example of a performance test case. 29 | self.measure { 30 | // Put the code you want to measure the time of here. 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /AutoLayoutEx/AutoLayoutEx/AutoLayoutExTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /AutoLayoutEx/AutoLayoutEx/AutoLayoutExUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /CS23/STEP_1_DIGITAL_LOGIC_CIRCUIT/STEP_1-1_NAND_GATE_SWIFT/STEP_1-1_NAND_GATE_SWIFT.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CS23/STEP_1_DIGITAL_LOGIC_CIRCUIT/STEP_1-1_NAND_GATE_SWIFT/STEP_1-1_NAND_GATE_SWIFT.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CS23/STEP_1_DIGITAL_LOGIC_CIRCUIT/STEP_1-1_NAND_GATE_SWIFT/STEP_1-1_NAND_GATE_SWIFT/ANDGate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ANDGate.swift 3 | // STEP_1-1_NAND_GATE_SWIFT 4 | // 5 | // Created by hw on 30/04/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct ANDGate{ 12 | 13 | static func and ( paramA: Bool, paramB: Bool) -> Bool { 14 | var answer = false 15 | if paramA && paramB { 16 | answer = true 17 | } 18 | return answer 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CS23/STEP_1_DIGITAL_LOGIC_CIRCUIT/STEP_1-1_NAND_GATE_SWIFT/STEP_1-1_NAND_GATE_SWIFT/INVERTORGate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // INVERTORGate.swift 3 | // STEP_1-1_NAND_GATE_SWIFT 4 | // 5 | // Created by hw on 30/04/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct INVERTORGate{ 12 | static func invert (_ param: Bool) -> Bool { 13 | return !param 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /CS23/STEP_1_DIGITAL_LOGIC_CIRCUIT/STEP_1-1_NAND_GATE_SWIFT/STEP_1-1_NAND_GATE_SWIFT/NANDGate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NANDGate.swift 3 | // STEP_1-1_NAND_GATE_SWIFT 4 | // 5 | // Created by hw on 30/04/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | 10 | /** 11 | 릴레이가 동작하지 않을 때 전압이 출력되고 전구에 불이 들어오는 특징이 있다. 12 | 이 논리 게이트는 AND 게이트의 동작과 완전히 반대로 동작한다. 13 | 회로에서 나오는 출력이 연결되어 있어서 OR 게이트처럼 비슷하게 보인다. 14 | 이 회로는 두 스위치가 모두 닫혀있을 때만 전구에 불이 꺼집니다. 그 외에 나머지 경우에는 불이 켜진다. 15 | 그래서 이 논리 게이트의 이름을 NOT AND (줄여서 NAND) 게이트라고 한다. 16 | NAND false true 17 | false true true 18 | true true false 19 | */ 20 | import Foundation 21 | 22 | struct NANDGate { 23 | static func nand( paramA: Bool, paramB: Bool) -> Bool { 24 | var answer = true 25 | if ANDGate.and(paramA: paramA, paramB: paramB) { 26 | answer = false 27 | } 28 | return answer 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /CS23/STEP_1_DIGITAL_LOGIC_CIRCUIT/STEP_1-1_NAND_GATE_SWIFT/STEP_1-1_NAND_GATE_SWIFT/NORGate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NORGate.swift 3 | // STEP_1-1_NAND_GATE_SWIFT 4 | // 5 | // Created by hw on 30/04/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct NORGate { 12 | static func nor( paramA: Bool, paramB: Bool) -> Bool { 13 | let answer = INVERTORGate.invert(ORGate.or(paramA: paramA, paramB: paramB)) 14 | return answer 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /CS23/STEP_1_DIGITAL_LOGIC_CIRCUIT/STEP_1-1_NAND_GATE_SWIFT/STEP_1-1_NAND_GATE_SWIFT/ORGate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ORGate.swift 3 | // STEP_1-1_NAND_GATE_SWIFT 4 | // 5 | // Created by hw on 30/04/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | struct ORGate { 13 | static func or (paramA: Bool, paramB: Bool) -> Bool{ 14 | var answer = true 15 | if INVERTORGate.invert(paramA) && INVERTORGate.invert(paramB) { 16 | answer = false 17 | } 18 | return answer 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CodeSquard_Pre_Step/step1/timestable.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /CodeSquard_Pre_Step/step2-1_UnitConverter/step2-1_UnitConverter.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CodeSquard_Pre_Step/step2-1_UnitConverter/step2-1_UnitConverter.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CodeSquard_Pre_Step/step2_4-7/step2_4-7.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CodeSquard_Pre_Step/step2_4-7/step2_4-7.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ComputerSciences/Algorithms/BST/self-balanced_BST/RedBlackTree.md: -------------------------------------------------------------------------------- 1 | ## Red-Black Tree 2 | 3 | https://www.geeksforgeeks.org/red-black-tree-set-1-introduction-2/ 4 | 5 | ### Introduction 6 | 7 | 레드-블랙 트리는 자가 균형 BST이며 아래의 규칙을 따른다. 8 | 9 | [![RedBlackTree](https://www.geeksforgeeks.org/wp-content/uploads/RedBlackTree.png)](https://www.geeksforgeeks.org/wp-content/uploads/RedBlackTree.png) 10 | **1)** 모든 노드는 red or black의 색을 지닌다. 11 | 12 | **2)** 트리의 Root는 항상 black이다. 13 | 14 | **3)** 두 가지 인접한 red nodes는 존재하지 않는다. 인접이란, 부모 자식간의 연결을 의미한다. 15 | 16 | **4)** (Root를 포함한) 한 노드로부터 leaf 까지 black 노드의 개수는 모두 동일하다. 17 | 18 | 19 | 20 | ### **Why Red-Black Trees?** 21 | 22 | 대부분의 BST의 연산(검색, 최대,최소, 삽입, 삭제)은 O(h)의 시간이 소요된다. (h는 BST 높이) 23 | 24 | 편향 이진 트리의 경우 이 연산의 비용은 O(n) 으로 증가한다. 따라서 만약에 우리가 모든 삽입/삭제 후의 BST 트리의 높이가 O(log n)임을 보장할 수 있다면, 우리는 모든 연산의 비용 상한을 O(log n)으로 보장할 수 있다. R-B Tree의 높이는 항상 O(log n) 이며, n은 트리의 노드의 개수를 의미한다. 25 | 26 | 27 | 28 | ### AVL Tree 와의 비교 -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/1.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/10.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/11.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/12.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/13.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/2.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/3.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/4.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/5.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/6.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/7.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/8.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/9.png -------------------------------------------------------------------------------- /ComputerSciences/DB/images/B_Tree/스크린샷 2019-10-05 오후 9.41.36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB/images/B_Tree/스크린샷 2019-10-05 오후 9.41.36.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/0340E9F6-69CD-47AB-B7ED-2753B39E39C1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/0340E9F6-69CD-47AB-B7ED-2753B39E39C1.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/082B84CC-9DF6-4AE0-8D63-F165273062AB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/082B84CC-9DF6-4AE0-8D63-F165273062AB.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/37007F33-B74B-4A41-A962-3A6F9FFDA14F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/37007F33-B74B-4A41-A962-3A6F9FFDA14F.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/3777713E-AAAB-49E9-BDC9-85A5DF6F3680.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/3777713E-AAAB-49E9-BDC9-85A5DF6F3680.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/3EC26EC9-6EC6-408C-9EF2-B5B489AF94FD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/3EC26EC9-6EC6-408C-9EF2-B5B489AF94FD.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/4B47C224-F2C9-4F19-9606-D0D34EFEE049.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/4B47C224-F2C9-4F19-9606-D0D34EFEE049.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/547B3941-4E3A-48B2-9DE1-A78E60C3CCA3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/547B3941-4E3A-48B2-9DE1-A78E60C3CCA3.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/7A3AD7DD-35C8-4E17-9069-6C64C311D246.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/7A3AD7DD-35C8-4E17-9069-6C64C311D246.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/97FE5C5E-9484-4EBF-9410-79C5045D24F0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/97FE5C5E-9484-4EBF-9410-79C5045D24F0.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/B41D3F14-26CF-40AD-8B71-73C3C56F880E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/B41D3F14-26CF-40AD-8B71-73C3C56F880E.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/D8D8AE14-C2A3-45B7-94DE-B174128645F6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/D8D8AE14-C2A3-45B7-94DE-B174128645F6.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/DAF0856B-4ADC-4C56-A76C-2C61649ECFE2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/DAF0856B-4ADC-4C56-A76C-2C61649ECFE2.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/DFC41B49-C31E-4D57-B3E5-D91C82EC50B3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/DFC41B49-C31E-4D57-B3E5-D91C82EC50B3.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/E7E1AB87-14FC-443E-8EF5-8EB8BCD37641.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/E7E1AB87-14FC-443E-8EF5-8EB8BCD37641.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/EA569673-F2BF-4B4C-96EE-DAD49F8A3876.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/EA569673-F2BF-4B4C-96EE-DAD49F8A3876.png -------------------------------------------------------------------------------- /ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/FFA5C39D-364C-4A25-93D4-DD3B0284AE3F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/DB_파일인덱싱기법/DB - 파일 인덱싱 기법, B Tree, B+ Tree 등.html.resources/FFA5C39D-364C-4A25-93D4-DD3B0284AE3F.png -------------------------------------------------------------------------------- /ComputerSciences/Network/NetworkLayer_1.md: -------------------------------------------------------------------------------- 1 | ## Network Layer 01 2 | 3 | - 네트워크 계층 서비스 모델들 4 | - **IP 프로토콜** 5 | - 포워딩 vs 라우팅 6 | - 라우터 작동 방식 7 | - 라우팅 (path selection) 8 | - 브로드캐스트, 멀티캐스트 9 | 10 | - instantiation, implementation in the Internet 11 | 12 | 13 | 14 | ### Network Layer 15 | 16 | - 전송 세그먼트를 수신 호스트로 전송하는 역할을 담당한다. 17 | - 전송측에서는 **segments를 캡슐화하여 datagram으로 내보낸다**. 18 | - 수신측에서는 segments를 transport layer로 운반한다. 19 | - network layer 프로토콜은 모든 호스트와 라우터에 존재 20 | - **라우터는** 자신을 거쳐가는 **모든 IP 데이터 그램의 헤더필드를 검사**한다. 21 | 22 | 23 | 24 | ### 라우터의 역할 25 | 26 | #### 1) 포워딩 27 | 28 | - 라우터의 input으로 받은 패킷을 적절한 router output을 통해 패킷을 옮긴다. 29 | - 라우터는 내부에 local **forwarding table**을 지닌다. 30 | - header value에 맞는 output link로 보내면 목적지로 정해진 다음 라우터로 이동하게 된다. 31 | 32 | - Forwarding Table은 우편번호처럼 분류되어있다. 33 | - 예시 34 | - Longest prefix matching 35 | - 주어진 목적지 주소를 FT 엔트리와 비교할 때, **가장 긴 주소 접두사가 매칭**되는 목적지 주소로 **링크 인터페이스를 연결**한다. 36 | - 여러개 매칭이 되어도 가장 길게 매칭되는 것으로 연결시킨다. 37 | 38 | 39 | 40 | #### 2) 라우팅 41 | 42 | // 추후 설명 43 | 44 | -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 5.16.19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 5.16.19.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 6.22.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 6.22.28.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 6.37.22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 6.37.22.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 7.01.27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 7.01.27.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 7.06.41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 7.06.41.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 7.06.54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-11 오후 7.06.54.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.10.41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.10.41.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.33.34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.33.34.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.44.18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.44.18.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.53.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.53.15.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.53.24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.53.24.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.55.30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오전 11.55.30.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.37.36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.37.36.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.40.54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.40.54.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.42.56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.42.56.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.44.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.44.47.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.57.54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.57.54.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.59.26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 1.59.26.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 2.04.53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 2.04.53.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 2.07.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 2.07.32.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 2.08.55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 2.08.55.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.13.58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.13.58.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.14.02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.14.02.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.28.09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.28.09.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.55.40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.55.40.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.55.44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 3.55.44.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.12.34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.12.34.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.19.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.19.15.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.21.01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.21.01.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.24.46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/NetworkLayer/스크린샷 2019-10-12 오후 4.24.46.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 2.31.38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 2.31.38.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 2.38.48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 2.38.48.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 2.52.03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 2.52.03.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 3.11.01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 3.11.01.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 3.11.07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 3.11.07.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 3.11.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/Subnet_mask/스크린샷 2019-10-05 오후 3.11.12.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.13.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.13.10.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.25.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.25.12.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.25.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.25.28.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.25.39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 1.25.39.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 2.25.20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 2.25.20.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 2.25.23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 2.25.23.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 2.25.27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_2/스크린샷 2019-10-04 오후 2.25.27.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_4/스크린샷 2019-10-04 오후 3.54.42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_4/스크린샷 2019-10-04 오후 3.54.42.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_4/스크린샷 2019-10-04 오후 4.19.19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_4/스크린샷 2019-10-04 오후 4.19.19.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/TPL_4/스크린샷 2019-10-04 오후 4.23.55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/TPL_4/스크린샷 2019-10-04 오후 4.23.55.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.19.40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.19.40.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.25.19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.25.19.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.44.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.44.28.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.50.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 4.50.11.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.04.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.04.25.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.14.04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.14.04.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.14.27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.14.27.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.16.02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.16.02.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.37.29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.37.29.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.39.23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.39.23.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.45.21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.45.21.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.49.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.49.32.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.56.53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.56.53.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.57.17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.57.17.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.58.37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.58.37.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.58.52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 5.58.52.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.06.37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.06.37.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.07.35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.07.35.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.21.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.21.47.png -------------------------------------------------------------------------------- /ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.39.38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/images/스크린샷 2019-10-03 오후 6.39.38.png -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+1장 (1).doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+1장 (1).doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+1장.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+1장.doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+2장.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+2장.doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+3장.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+3장.doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+문답+1장.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+문답+1장.doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+문답+3장.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+문답+3장.doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+문답+4장.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+문답+4장.doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+문답+5장+(2).doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+문답+5장+(2).doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/네트워크+문답+5장.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/네트워크+문답+5장.doc -------------------------------------------------------------------------------- /ComputerSciences/Network/질답/면접강의정리.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/Network/질답/면접강의정리.docx -------------------------------------------------------------------------------- /ComputerSciences/iOS_Theory/RxSwift_step5-mvvm_season2.md: -------------------------------------------------------------------------------- 1 | ## season 2 - MVVM 연습 2 | 3 | https://www.youtube.com/watch?v=sZjwyvY-xUM&list=PL03rJBlpwTaBrhux_C8RmtWDI_kZSLvdQ&index=2 4 | 5 | 6 | 7 | ### Preview : season2 - step3 예제를 기반으로 MVVM연습 8 | 9 | -------------------------------------------------------------------------------- /ComputerSciences/os_process: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/os_process -------------------------------------------------------------------------------- /ComputerSciences/네이버기술면접자료구조알고리즘.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/네이버기술면접자료구조알고리즘.zip -------------------------------------------------------------------------------- /ComputerSciences/오라클 관련 신입으로 취업하려면 적어도 이정도는 해야.... _ 네이버 카페1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/ComputerSciences/오라클 관련 신입으로 취업하려면 적어도 이정도는 해야.... _ 네이버 카페1.pdf -------------------------------------------------------------------------------- /GrammarStudy/CallByValueReference_Ex/CallByValueReferenceEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/CallByValueReference_Ex/CallByValueReferenceEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/ClassCodableTestEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/ClassCodableTestEx2/ClassCodableTestEx2.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/ClassCodableTestEx2/ClassCodableTestEx2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/ClassCopyAndArchivingEx/ClassCopyAndArchivingEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/ClassCopyAndArchivingEx/ClassCopyAndArchivingEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/ClosedRangeEx.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | 4 | var range = 1...10_000_000_000 5 | print(range.contains(100)) 6 | -------------------------------------------------------------------------------- /GrammarStudy/ClosedRangeEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/ContactInfo+CoreDataClass.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContactInfo+CoreDataClass.swift 3 | // CoreDataEx 4 | // 5 | // Created by hw on 26/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | @objc(ContactInfo) 14 | public class ContactInfo: NSManagedObject { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/ContactInfo+CoreDataProperties.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContactInfo+CoreDataProperties.swift 3 | // CoreDataEx 4 | // 5 | // Created by hw on 26/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | 14 | extension ContactInfo { 15 | 16 | @nonobjc public class func fetchRequest() -> NSFetchRequest { 17 | return NSFetchRequest(entityName: "ContactInfo") 18 | } 19 | 20 | @NSManaged public var type: String? 21 | @NSManaged public var contact: String? 22 | @NSManaged public var person: Person? 23 | 24 | } 25 | -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/CoreDataEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/CoreDataEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/CoreDataEx/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/CoreDataEx/CoreDataEx.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | CoreDataEx.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/Person+CoreDataClass.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Person+CoreDataClass.swift 3 | // CoreDataEx 4 | // 5 | // Created by hw on 26/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | @objc(Person) 14 | public class Person: NSManagedObject { // 관리 객체 모델 15 | 16 | } 17 | -------------------------------------------------------------------------------- /GrammarStudy/CoreDataEx/Person+CoreDataProperties.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Person+CoreDataProperties.swift 3 | // CoreDataEx 4 | // 5 | // Created by hw on 26/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | 14 | extension Person { 15 | 16 | @nonobjc public class func fetchRequest() -> NSFetchRequest { 17 | return NSFetchRequest(entityName: "Person") 18 | } 19 | 20 | @NSManaged public var name: String? 21 | @NSManaged public var contacts: NSSet? 22 | 23 | } 24 | 25 | // MARK: Generated accessors for contacts 26 | extension Person { 27 | 28 | @objc(addContactsObject:) 29 | @NSManaged public func addToContacts(_ value: ContactInfo) 30 | 31 | @objc(removeContactsObject:) 32 | @NSManaged public func removeFromContacts(_ value: ContactInfo) 33 | 34 | @objc(addContacts:) 35 | @NSManaged public func addToContacts(_ values: NSSet) 36 | 37 | @objc(removeContacts:) 38 | @NSManaged public func removeFromContacts(_ values: NSSet) 39 | 40 | } 41 | -------------------------------------------------------------------------------- /GrammarStudy/DictionaryReduceEx.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | 3 | var histSet = [ 4 | "top": 3, 5 | "hotsix": 6, 6 | "milk" : 2 7 | ] 8 | 9 | let mapped = histSet.map { (val1: String, val2: Int) -> Int in return val2} 10 | 11 | let total = mapped.reduce(0) { (s1: Int, s2:Int) -> Int in 12 | 13 | return s1+s2 14 | 15 | } 16 | 17 | print(total) 18 | -------------------------------------------------------------------------------- /GrammarStudy/DictionaryReduceEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutAdaptivityEx/LayoutAdaptivityEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutAdaptivityEx/LayoutAdaptivityEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutAdaptivityEx/LayoutAdaptivityEx/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrammarStudy/LayoutEx/LayoutEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutEx/LayoutEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutEx/LayoutEx/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // LayoutEx 4 | // 5 | // Created by hw on 25/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | @NSApplicationMain 12 | class AppDelegate: NSObject, NSApplicationDelegate { 13 | 14 | 15 | 16 | func applicationDidFinishLaunching(_ aNotification: Notification) { 17 | // Insert code here to initialize your application 18 | } 19 | 20 | func applicationWillTerminate(_ aNotification: Notification) { 21 | // Insert code here to tear down your application 22 | } 23 | 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutEx/LayoutEx/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrammarStudy/LayoutEx/LayoutEx/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2019 hwj. All rights reserved. 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutEx/LayoutEx/LayoutEx.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /GrammarStudy/LayoutEx/LayoutEx/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // LayoutEx 4 | // 5 | // Created by hw on 25/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class ViewController: NSViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | override var representedObject: Any? { 20 | didSet { 21 | // Update the view, if already loaded. 22 | } 23 | } 24 | 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /GrammarStudy/ProtocolOrientedProgramming_EX/POP_EX.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/ProtocolOrientedProgramming_EX/POP_EX.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/ProtocolOrientedProgramming_EX/POP_EX/AmphibiousBus.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AmphibiousBus.swift 3 | // POP_EX 4 | // 5 | // Created by hw on 14/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | struct AmphibiousBus : Carable, Waterproofable { 13 | func go(to destination: String) { 14 | print("\(destination) 으로 달려갑니다.") 15 | } 16 | 17 | var numberOfPassengers: Int = 20 18 | var ipGrade: String = "IP68" 19 | 20 | } 21 | -------------------------------------------------------------------------------- /GrammarStudy/ProtocolOrientedProgramming_EX/POP_EX/Boat.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Boat.swift 3 | // POP_EX 4 | // 5 | // Created by hw on 14/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | //class Boat { 12 | // func go(to destination: String){ 13 | // print("\(destination)으로 달려갑니다.") 14 | // } 15 | // var numberOfPassengers: Int = 0 16 | // 17 | //} 18 | -------------------------------------------------------------------------------- /GrammarStudy/ProtocolOrientedProgramming_EX/POP_EX/Bus.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ㅠㅕㄴ.swift 3 | // POP_EX 4 | // 5 | // Created by hw on 14/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | //class Buss: Car{ 12 | // var fare: Int = 1200 13 | // 14 | //} 15 | 16 | 17 | class Bus : Carable, NeedFare { 18 | 19 | func go(to destination: String) { 20 | print("요금은 \(fare)입니다.") 21 | print("\(destination) 으로 달려갑니다.") 22 | } 23 | 24 | var numberOfPassengers: Int = 28 25 | 26 | var fare: Int = 1200 27 | 28 | } 29 | -------------------------------------------------------------------------------- /GrammarStudy/ProtocolOrientedProgramming_EX/POP_EX/Car.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Car.swift 3 | // POP_EX 4 | // 5 | // Created by hw on 14/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | //class Car { 12 | // func go (to destination : String){ 13 | // print("\(destination) 으로 달려갑니다.") 14 | // } 15 | // var numberOfPassengers: Int = 0 16 | //} 17 | 18 | class Car : Carable { 19 | var numberOfPassengers: Int = 4 20 | } 21 | -------------------------------------------------------------------------------- /GrammarStudy/ProtocolOrientedProgramming_EX/POP_EX/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // POP_EX 4 | // 5 | // Created by hw on 14/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | func main () { 13 | let benz = Car() 14 | benz.go(to: "부산") 15 | 16 | let bus = Bus() 17 | bus.go(to: "대전") 18 | } 19 | 20 | main() 21 | -------------------------------------------------------------------------------- /GrammarStudy/SingletonPatternEx.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class MyClassSingleton { 4 | static let sharedInstance = MyClassSingleton() 5 | private init(){} 6 | var state = 5 7 | func helloClass() { print("hello from class Singleton: \(state)") } 8 | } 9 | 10 | struct MyStructSingleton { 11 | static let sharedInstance = MyStructSingleton() 12 | private init() {} 13 | var state = 5 14 | func helloStruct() { print("hello from struct Singleton: \(state)") } 15 | } 16 | 17 | let csi = MyClassSingleton.sharedInstance 18 | csi.state = 42 19 | MyClassSingleton.sharedInstance.helloClass() //42 20 | 21 | var ssi = MyStructSingleton.sharedInstance 22 | ssi.state = 42 23 | MyStructSingleton.sharedInstance.helloStruct() //5 24 | -------------------------------------------------------------------------------- /GrammarStudy/SingletonPatternEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/TableViewEx/TableViewEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/TableViewEx/TableViewEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/TableViewEx/TableViewEx/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrammarStudy/TableViewEx/TableViewEx/MyDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MyDelegate.swift 3 | // TableViewEx 4 | // 5 | // Created by hw on 01/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | ///Delegate를 구현하는 부분 12 | class MyDelegate: NSObject, UITableViewDelegate{ 13 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 14 | print("\(indexPath.section), \(indexPath.row)") 15 | tableView.deselectRow(at: indexPath, animated: true) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /GrammarStudy/TableViewEx/TableViewEx/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // TableViewEx 4 | // 5 | // Created by hw on 01/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | @IBOutlet weak var tableView: UITableView! 13 | 14 | private let dataSource = MyDataSource() 15 | private let delegate = MyDelegate() 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | 19 | // self.tableView.dataSource = MyDataSource() //이대로 놔두면 weak 참조로 viewDidLoad 호출 끝나면 사라진다. 20 | self.tableView.dataSource = self.dataSource 21 | self.tableView.delegate = self.delegate 22 | } 23 | 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /GrammarStudy/TouchEventEx/TouchEventEX/TouchEventEX.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/TouchEventEx/TouchEventEX/TouchEventEX.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/TouchEventEx/TouchEventEX/TouchEventEX/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrammarStudy/TouchEventEx/TouchEventEX/TouchEventEX/BlueView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BlueView.swift 3 | // TouchEventEX 4 | // 5 | // Created by hw on 22/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BlueView: UIView { 12 | var timestamp: Date 13 | var myFont: UIFont 14 | 15 | 16 | @IBOutlet weak var mainView: UIView! 17 | ///view 객체 만들 때는 생성자가 2개 필요 18 | /// 코드레벨에서 생성하는 View는 override init을 구현해주어야 한다. 19 | override init(frame: CGRect){ 20 | timestamp = Date() 21 | myFont = UIFont.systemFont(ofSize: 18) 22 | super.init(frame: frame) 23 | } 24 | 25 | /// storyboard에서 생성한 UIView의 경우.. 26 | /// 아카이브되었다가, unarchived될 때 생성되는 생성자함수 27 | /// View 내 프로퍼티를 모두 초기화 한다. 28 | required init?(coder aDecoder: NSCoder) { 29 | timestamp = Date() 30 | myFont = UIFont.systemFont(ofSize: 18) 31 | super.init(coder: aDecoder) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /GrammarStudy/URLTest.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | 2 | import Foundation 3 | 4 | print("begin", CFAbsoluteTimeGetCurrent()) 5 | let url = URL(string: "http://www.apple.com/v/home/ek/images/heroes/watch-series-4/watch__csqqcayzqueu_large.jpg")! 6 | let data = try Data.init(contentsOf: url) 7 | print("recv", CFAbsoluteTimeGetCurrent()) 8 | print("done") 9 | 10 | var data2 : Data! 11 | print("begin2", CFAbsoluteTimeGetCurrent()) 12 | DispatchQueue.global().async { 13 | do { 14 | data2 = try Data.init(contentsOf: url) 15 | } 16 | catch { 17 | 18 | } 19 | } 20 | print("recv2", CFAbsoluteTimeGetCurrent()) 21 | print("done2") 22 | -------------------------------------------------------------------------------- /GrammarStudy/URLTest.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/UnicodeTestEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/classInClassRepeatingEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/inheritanceExTest.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | 4 | class 탈것 { 5 | internal var 경적소리 = "Bang" 6 | private let serialNumber : Int = 1234 7 | func 사운드 () { 8 | print (self.경적소리) 9 | } 10 | } 11 | 12 | class 자동차 : 탈것 { 13 | override var 경적소리 : String { 14 | get { 15 | return "BBB" 16 | } 17 | set { 18 | self.경적소리 = newValue 19 | } 20 | } 21 | override func 사운드 () { 22 | print (self.경적소리) 23 | } 24 | } 25 | 26 | var car = 자동차() 27 | 탈것().사운드() 28 | 29 | //car.사운드() 30 | car.경적소리 = "CCC" 31 | car.사운드() 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /GrammarStudy/inheritanceExTest.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/lec_4_18_structInitializer.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | var str = "Hello, playground" 4 | 5 | struct Person { 6 | let name: String 7 | var age: UInt = 0 8 | var nickname: String? = nil 9 | init(name: String, age: UInt){ 10 | self.name = name 11 | self.age = age 12 | } 13 | init(name: String, age: UInt, nickname: String? = nil){ 14 | self.name = name 15 | self.age = age 16 | self.nickname = nickname 17 | } 18 | 19 | init(name: String){ 20 | self.name = name 21 | } 22 | } 23 | 24 | 25 | var yagom: Person = Person(name: "son", age: 27) 26 | //or 27 | //var yagom: Perosn = Person.init(name: <#T##String#>, age: <#T##UInt#>, nickname: <#T##String?#>) 28 | -------------------------------------------------------------------------------- /GrammarStudy/lec_4_18_structInitializer.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/macOSTestEx/macOSTestEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GrammarStudy/macOSTestEx/macOSTestEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GrammarStudy/macOSTestEx/macOSTestEx/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // macOSTestEx 4 | // 5 | // Created by hw on 22/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | @NSApplicationMain 12 | class AppDelegate: NSObject, NSApplicationDelegate { 13 | 14 | 15 | 16 | func applicationDidFinishLaunching(_ aNotification: Notification) { 17 | // Insert code here to initialize your application 18 | } 19 | 20 | func applicationWillTerminate(_ aNotification: Notification) { 21 | // Insert code here to tear down your application 22 | } 23 | 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /GrammarStudy/macOSTestEx/macOSTestEx/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GrammarStudy/macOSTestEx/macOSTestEx/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2019 hwj. All rights reserved. 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /GrammarStudy/macOSTestEx/macOSTestEx/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // macOSTestEx 4 | // 5 | // Created by hw on 22/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class ViewController: NSViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | override var representedObject: Any? { 20 | didSet { 21 | // Update the view, if already loaded. 22 | } 23 | } 24 | 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /GrammarStudy/macOSTestEx/macOSTestEx/macOSTestEx.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /GrammarStudy/monadEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/numberToStringFormat.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Foundation 3 | 4 | var str = "Hello, playground" 5 | 6 | var a = 3 7 | /// String.init(format: )을 사용하면 빈 자릿수를 채워주는 string format을 구현할 수 있다. 8 | var stringNumber = String.init(format: "%.2d", a) 9 | print(stringNumber) 10 | -------------------------------------------------------------------------------- /GrammarStudy/numberToStringFormat.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/propertyAllocationEx.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/test0711-enum-private_class.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GrammarStudy/testDateManipulation.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | 4 | 5 | class CustomDateFormatter { 6 | 7 | static func convertDateToString(_ input: Date) -> String{ 8 | let dateFormatter = DateFormatter() 9 | dateFormatter.dateFormat = "YYYYMMdd" 10 | let result = dateFormatter.string(from: input) 11 | return result 12 | } 13 | 14 | static func convertStringToDate(year: Int, month : Int, day: Int) -> Date { 15 | let dateFormatter = DateFormatter() 16 | dateFormatter.locale = Locale(identifier:"ko_KR") 17 | dateFormatter.dateFormat = "yyyy-MM-dd" 18 | let dDay = dateFormatter.date(from: "\(year)-\(month)-\(day)") 19 | return dDay! 20 | } 21 | } 22 | 23 | 24 | var cur = Date.init() + TimeInterval(90*24*60*60) 25 | print(cur) 26 | 27 | //var after = cur + 90*24*60*60 28 | 29 | //print(after) 30 | 31 | -------------------------------------------------------------------------------- /GrammarStudy/testDateManipulation.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-kawaii-taco-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-kawaii-taco-60.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "locale" : "en", 5 | "idiom" : "universal", 6 | "filename" : "icons8-taco-128_en.png", 7 | "scale" : "2x" 8 | } 9 | ], 10 | "info" : { 11 | "version" : 1, 12 | "author" : "xcode" 13 | }, 14 | "properties" : { 15 | "localizable" : true 16 | } 17 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128_en.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icons8-taco-128.png", 6 | "scale" : "2x" 7 | } 8 | ], 9 | "info" : { 10 | "version" : 1, 11 | "author" : "xcode" 12 | }, 13 | "properties" : { 14 | "localizable" : true 15 | } 16 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Bundle name */ 2 | "CFBundleName" = "InternationalizationAndLocalization"; 3 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localization.strings 3 | InternationalizationAndLocalization 4 | 5 | Created by hw on 23/09/2019. 6 | Copyright © 2019 hwj. All rights reserved. 7 | */ 8 | "greeting"="Hello"; //eng 9 | 10 | 11 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/en.xcloc/contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "developmentRegion" : "en", 3 | "targetLocale" : "en", 4 | "toolInfo" : { 5 | "toolBuildNumber" : "11A420a", 6 | "toolID" : "com.apple.dt.xcode", 7 | "toolName" : "Xcode", 8 | "toolVersion" : "11.0" 9 | }, 10 | "version" : "1.0" 11 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "locale" : "ko", 5 | "idiom" : "universal", 6 | "filename" : "icons8-kawaii-taco-60.png", 7 | "scale" : "2x" 8 | } 9 | ], 10 | "info" : { 11 | "version" : 1, 12 | "author" : "xcode" 13 | }, 14 | "properties" : { 15 | "localizable" : true 16 | } 17 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-kawaii-taco-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-kawaii-taco-60.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icons8-taco-128.png", 6 | "scale" : "2x" 7 | } 8 | ], 9 | "info" : { 10 | "version" : 1, 11 | "author" : "xcode" 12 | }, 13 | "properties" : { 14 | "localizable" : true 15 | } 16 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Bundle name */ 2 | "CFBundleName" = "InternationalizationAndLocalization"; 3 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localization.strings 3 | InternationalizationAndLocalization 4 | 5 | Created by hw on 23/09/2019. 6 | Copyright © 2019 hwj. All rights reserved. 7 | */ 8 | "greeting"="Hello"; //eng 9 | 10 | 11 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSetting/ko.xcloc/contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "developmentRegion" : "en", 3 | "targetLocale" : "ko", 4 | "toolInfo" : { 5 | "toolBuildNumber" : "11A420a", 6 | "toolID" : "com.apple.dt.xcode", 7 | "toolName" : "Xcode", 8 | "toolVersion" : "11.0" 9 | }, 10 | "version" : "1.0" 11 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "locale" : "en", 5 | "idiom" : "universal", 6 | "filename" : "icons8-taco-128_en.png", 7 | "scale" : "2x" 8 | } 9 | ], 10 | "info" : { 11 | "version" : 1, 12 | "author" : "xcode" 13 | }, 14 | "properties" : { 15 | "localizable" : true 16 | } 17 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128_en.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icons8-taco-128.png", 6 | "scale" : "2x" 7 | } 8 | ], 9 | "info" : { 10 | "version" : 1, 11 | "author" : "xcode" 12 | }, 13 | "properties" : { 14 | "localizable" : true 15 | } 16 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Bundle name */ 2 | "CFBundleName" = "InternationalizationAndLocalization"; 3 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localization.strings 3 | InternationalizationAndLocalization 4 | 5 | Created by hw on 23/09/2019. 6 | Copyright © 2019 hwj. All rights reserved. 7 | */ 8 | "greeting"="Hello"; //eng 9 | 10 | 11 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/en.xcloc/contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "developmentRegion" : "en", 3 | "targetLocale" : "en", 4 | "toolInfo" : { 5 | "toolBuildNumber" : "11A420a", 6 | "toolID" : "com.apple.dt.xcode", 7 | "toolName" : "Xcode", 8 | "toolVersion" : "11.0" 9 | }, 10 | "version" : "1.0" 11 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "locale" : "ko", 5 | "idiom" : "universal", 6 | "filename" : "icons8-taco-128_ko.png", 7 | "scale" : "2x" 8 | } 9 | ], 10 | "info" : { 11 | "version" : 1, 12 | "author" : "xcode" 13 | }, 14 | "properties" : { 15 | "localizable" : true 16 | } 17 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128_ko.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Localized Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128_ko.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icons8-taco-128.png", 6 | "scale" : "2x" 7 | } 8 | ], 9 | "info" : { 10 | "version" : 1, 11 | "author" : "xcode" 12 | }, 13 | "properties" : { 14 | "localizable" : true 15 | } 16 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Source Contents/InternationalizationAndLocalization/Assets.xcassets/icons8-taco-128.imageset/icons8-taco-128.png -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Bundle name */ 2 | "CFBundleName" = "InternationalizationAndLocalization"; 3 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/Source Contents/InternationalizationAndLocalization/en.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localization.strings 3 | InternationalizationAndLocalization 4 | 5 | Created by hw on 23/09/2019. 6 | Copyright © 2019 hwj. All rights reserved. 7 | */ 8 | "greeting"="Hello"; //eng 9 | 10 | 11 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/LocalizationSettings/ko.xcloc/contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "developmentRegion" : "en", 3 | "targetLocale" : "ko", 4 | "toolInfo" : { 5 | "toolBuildNumber" : "11A420a", 6 | "toolID" : "com.apple.dt.xcode", 7 | "toolName" : "Xcode", 8 | "toolVersion" : "11.0" 9 | }, 10 | "version" : "1.0" 11 | } -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // InternationalizationAndLocalization 4 | // 5 | // Created by hw on 23/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | @IBOutlet weak var greetingLabel: UILabel! 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | greetingLabel.text = "greeting".localized 17 | //선호 언어 설정 가능 18 | print(Locale.preferredLanguages) 19 | print(Bundle.main.preferredLocalizations) 20 | } 21 | 22 | @IBAction func touchUpSettingButton(_ sender: Any){ 23 | //세팅 열기 24 | UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) 25 | } 26 | 27 | } 28 | 29 | extension String { 30 | var localized: String?{ 31 | return NSLocalizedString(self, 32 | tableName: "Localization", 33 | bundle: .main, 34 | comment: "") 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/en.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localization.strings 3 | InternationalizationAndLocalization 4 | 5 | Created by hw on 23/09/2019. 6 | Copyright © 2019 hwj. All rights reserved. 7 | */ 8 | "greeting"="Hello"; //eng 9 | 10 | 11 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/es.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/es.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localization.strings 3 | InternationalizationAndLocalization 4 | 5 | Created by hw on 23/09/2019. 6 | Copyright © 2019 hwj. All rights reserved. 7 | */ 8 | "greeting"="halo"; 9 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/es.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UIButton"; normalTitle = "설정"; ObjectID = "MKb-94-dyx"; */ 3 | "MKb-94-dyx.normalTitle" = "설정"; 4 | 5 | /* Class = "UILabel"; text = "Label"; ObjectID = "N7i-zZ-Co2"; */ 6 | "N7i-zZ-Co2.text" = "Label"; 7 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/ko.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/ko.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* Localization.strings 2 | InternationalizationAndLocalization 3 | 4 | Created by hw on 23/09/2019. 5 | Copyright © 2019 hwj. All rights reserved. & eng */ 6 | "greeting" = "안녕하세요"; 7 | 8 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/ko.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | /* Class = "UIButton"; normalTitle = "settings"; ObjectID = "MKb-94-dyx"; */ 2 | "MKb-94-dyx.normalTitle" = "환경 설정"; 3 | 4 | /* Class = "UILabel"; text = "First View"; ObjectID = "N7i-zZ-Co2"; */ 5 | "N7i-zZ-Co2.text" = "첫 화면임"; 6 | 7 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/zh-Hans.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/zh-Hans.lproj/Localization.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localization.strings 3 | InternationalizationAndLocalization 4 | 5 | Created by hw on 23/09/2019. 6 | Copyright © 2019 hwj. All rights reserved. 7 | */ 8 | "greeting"="你好"; 9 | -------------------------------------------------------------------------------- /InternationalizationAndLocalization/InternationalizationAndLocalization/zh-Hans.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UIButton"; normalTitle = "설정"; ObjectID = "MKb-94-dyx"; */ 3 | "MKb-94-dyx.normalTitle" = "설정"; 4 | 5 | /* Class = "UILabel"; text = "Label"; ObjectID = "N7i-zZ-Co2"; */ 6 | "N7i-zZ-Co2.text" = "Label"; 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 hwj0623 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LectureNote/image/InternetSocketBasicDiagram_zhtw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/LectureNote/image/InternetSocketBasicDiagram_zhtw.png -------------------------------------------------------------------------------- /LectureNote/image/asynchronous_logic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/LectureNote/image/asynchronous_logic.png -------------------------------------------------------------------------------- /LectureNote/image/synchrnonouse_logic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/LectureNote/image/synchrnonouse_logic.png -------------------------------------------------------------------------------- /LectureNote/image/synchronouse_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/LectureNote/image/synchronouse_result.png -------------------------------------------------------------------------------- /MyFirebaseBooks/MyFirebaseBooks.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MyFirebaseBooks/MyFirebaseBooks.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /MyFirebaseBooks/MyFirebaseBooks/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /MyFirebaseBooks/MyFirebaseBooks/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // MyFirebaseBooks 4 | // 5 | // Created by hw on 26/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view. 16 | } 17 | 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /NetworkAsyncEx/NetworkAsyncEx.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NetworkAsyncEx/NetworkAsyncEx.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /NetworkAsyncEx/NetworkAsyncEx/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /NetworkAsyncEx/NetworkAsyncEx/NetworkModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkModel.swift 3 | // NetworkAsyncEx 4 | // 5 | // Created by hw on 19/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct Name: Codable { 12 | let title: String 13 | let first: String 14 | let last: String 15 | } 16 | 17 | struct PersonInfo: Codable{ 18 | enum Gender: String, Codable{ 19 | case male, female 20 | } 21 | var gender: String 22 | var nat: String 23 | var name: Name 24 | } 25 | 26 | struct RandomUserResponse: Codable{ 27 | let results: [PersonInfo] 28 | let info: Info 29 | } 30 | 31 | struct Info: Codable { 32 | let seed: String 33 | let results: Int 34 | let page: Int 35 | let version: String 36 | } 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## swift 공부 저장소 2 | 3 | **Article** : iOS 및 swift 관련 개념 정리하는 디렉토리 4 | 5 | **GrammerStudy** : 문법 실습 코드 더미 6 | 7 | **iOS_Basic** : FastCampus iOS 코스 앱 실습 저장소 8 | 9 | **SWIFT_ALGORITHM_SOLVING** : 프로그래머스 문제, LeetCode, 자료구조 구현 등 swift 알고리즘 공부 내용 정리 10 | 11 | **Seminar_Summaries** : 외부 세미나 정리 12 | 13 | **CS23** : 코드스쿼드 CS Step 23 정리 14 | 15 | - STEP 1 : 논리연산 구현 -------------------------------------------------------------------------------- /SOLID_EX/SOLID_EX.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SOLID_EX/SOLID_EX.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SOLID_EX/SOLID_EX/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // SOLID_EX 4 | // 5 | // Created by hw on 16/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | var doWork = DoWork() 13 | try doWork.work() 14 | 15 | -------------------------------------------------------------------------------- /SOLID_EX/SOLID_LSP/ErrorCode.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ErrorCode.swift 3 | // SOLID_EX 4 | // 5 | // Created by hw on 20/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum ErrorCode : Error, CustomStringConvertible { 12 | case InvalidArea 13 | 14 | var description: String{ 15 | switch self{ 16 | case .InvalidArea: 17 | return "면적은 20이여야 합니다." 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SOLID_EX/SOLID_LSP/LSP.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LSP.swift 3 | // SOLID_EX 4 | // 5 | // Created by hw on 20/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class DoWork { 12 | func work() throws { 13 | let rectangle: Rectangle = Square() 14 | rectangle.setWidth(5) 15 | rectangle.setHeight(4) 16 | if(!isCheck(rectangle)){ 17 | throw ErrorCode.InvalidArea 18 | } 19 | print("\(rectangle.area)") 20 | } 21 | func isCheck(_ rectangle: Rectangle) -> Bool { 22 | return Int(rectangle.area) == 20 23 | } 24 | } 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /SOLID_EX/SOLID_LSP/Rectangle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Rectangle.swift 3 | // SOLID_EX 4 | // 5 | // Created by hw on 20/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | class Rectangle { 13 | var width: Double 14 | var height: Double 15 | init () { 16 | self.width = 0 17 | self.height = 0 18 | } 19 | init (width: Double, height: Double){ 20 | self.width = width 21 | self.height = height 22 | } 23 | 24 | func setWidth(_ width: Double){ 25 | self.width = width 26 | } 27 | func setHeight(_ height: Double){ 28 | self.height = height 29 | } 30 | var area: Double{ 31 | get { 32 | return self.width * self.height 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SOLID_EX/SOLID_LSP/Square.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Square.swift 3 | // SOLID_EX 4 | // 5 | // Created by hw on 20/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Square : Rectangle { 12 | override init () { 13 | super.init() 14 | } 15 | init (_ width: Double, _ height: Double){ 16 | super.init(width: width, height: width) 17 | } 18 | 19 | override func setWidth(_ width: Double) { 20 | self.width = width 21 | self.height = width 22 | } 23 | 24 | override func setHeight(_ height: Double) { 25 | self.width = height 26 | self.height = height 27 | } 28 | override var area: Double{ 29 | get { 30 | return self.width * self.height 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/DataStructures/CircularLinkedList.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CircularLinkedList.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 25/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct CircularLinkedList{ 12 | var head: Node? 13 | ///노드리스트가 빈 경우에만 14 | mutating func addToEmptyList(node: Node?){ 15 | if (node != nil) { 16 | return 17 | } 18 | head = node 19 | head?.next = node 20 | } 21 | ///맨 앞에 삽입 22 | mutating func addHead(node: Node){ 23 | if head == nil { 24 | addToEmptyList(node: node) 25 | } 26 | 27 | } 28 | ///맨 마지막에 삽입 29 | ///두 노드 사이에 삽입 30 | 31 | } 32 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/DataStructures/Queue_LinkedList.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Queue_LinkedList.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 25/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct Queue{ 12 | var list = LinkedList() 13 | public var isEmpty: Bool { 14 | return list.isEmpty 15 | } 16 | public mutating func enqueue(_ element : T){ 17 | list.append(element) 18 | } 19 | public mutating func dequeue() -> T?{ 20 | guard !list.isEmpty, let element = list.first else { return nil } 21 | list.removeNode(node: element) 22 | return element.value 23 | } 24 | public mutating func peek() -> T?{ 25 | return list.first?.value 26 | } 27 | public mutating func search(at index: Int) -> T?{ 28 | return list.nodeAt(index)?.value 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/K번째수_42748/Solution_42748.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 24/05/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_42748 { 12 | 13 | init() {} 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/LeetCode/581_Shortest Unsorted Continuous Subarray/Solution_581.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_581.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 18/06/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_581 { 12 | func findUnsortedSubarray(_ nums: [Int]) -> Int { 13 | 14 | for (index, value) in nums.enumerated() { 15 | 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/LeetCode/OnGoing/47_Permutations II/Solution_LeetCode_47.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_LeetCode_47.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 01/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_LeetCode_47{ 12 | func permuteUnique(_ nums: [Int]) -> [[Int]] { 13 | 14 | return [[]] 15 | } 16 | func start(){ 17 | let input = [1,1,2] 18 | print(permuteUnique(input)) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/LeetCode/OnGoing/77_Combination/Solution_LeetCode_77.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_LeetCode_77.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 03/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/LeetCode/UnSolved/112_Path_Sum/Solution_112.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_112.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 15/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_Leetcode_112{ 12 | class TreeNode{ 13 | public var val: Int 14 | public var left: TreeNode? 15 | public var right: TreeNode? 16 | public init(_ val: Int) { 17 | self.val = val 18 | self.left = nil 19 | self.right = nil 20 | } 21 | } 22 | 23 | // func hasPathSum(_ root: TreeNode?, _ sum: Int) -> Bool { 24 | // 25 | // } 26 | 27 | func start(){ 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/MinHeap/MinHeapEx2.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MinHeapEx2.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 06/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Permutation/CombinationEx1.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CombinationEx1.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 03/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | // 출처 : https://gorakgarak.tistory.com/523?category=265216 9 | // https://limkydev.tistory.com/156?category=1006099 10 | import Foundation 11 | /* 12 | combination도 항상 두가지 경우가 합쳐져서 나오는 경우다. 13 | 1. 이미 앞자리 하나가 정해졌기 때문에 경우 r-1 개로 나머지를 정해야 하는 경우, 14 | 2. 그 나머지 경우인 앞자리는 다른걸로 정해졌다고 치고 r개로 정해야하는 경우다. 15 | 16 | combination(int[] arr, int index, int n, int r, int target) 17 | 18 | */ 19 | class CombinationEx1{ 20 | 21 | func combinattion(combinationArr: [Int], n: Int, r: Int, index: Int, target:Int, origin: [Int]){ 22 | 23 | } 24 | func start(){ 25 | let test = [1,2,3,4] 26 | var arr = [Int].init(repeating: 0, count: test.count) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Permutation/RepeatPermuationEx1.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RepeatPermuationEx1.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 03/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | // 중복순열 9 | // https://limkydev.tistory.com/175 참고 10 | import Foundation 11 | 12 | class RepeatPermutationEx1 { 13 | /* 14 | n 은 전체 개수 15 | r 은 중복을 포함하여 뽑을 개수 16 | arr은 현재 조합중인 배열 17 | subject는 원본 배열 18 | */ 19 | func rePermutate(n: Int, r: Int, arr: [Int], subject: [Int]){ 20 | var curArr = arr 21 | if arr.count == r { 22 | print(arr) 23 | return 24 | } 25 | for i in 1...n { 26 | curArr.append(subject[i-1]) 27 | rePermutate(n: n, r: r, arr: curArr, subject: subject) 28 | curArr.removeLast() 29 | } 30 | } 31 | func start(){ 32 | let test1 = [1,2,3,4] 33 | rePermutate(n: 4, r: 2, arr: [Int](), subject: test1) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/PriorityQueue/PriorityQueue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PriorityQueue.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 06/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// MinHeap ex나 Heap ex 12 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2017/1차/뉴스_클러스터링_17677/Solution_17677.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_17677.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 06/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_17677{ 12 | 13 | } 14 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2017/1차/다크게임_17682/Solution_17682.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_17682.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 06/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2017/1차/비밀지도_17681/Solution_17681.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_17681.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 06/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_17681 { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2018/매칭점수_42893/Solution_42893.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_42893.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 31/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | // https://programmers.co.kr/learn/courses/30/lessons/42893 10 | /** 11 | 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀에 편입될 수 있었고, 대망의 첫 프로젝트를 맡게 되었다. 12 | 그 프로젝트는 검색어에 가장 잘 맞는 웹페이지를 보여주기 위해 아래와 같은 규칙으로 검색어에 대한 웹페이지의 매칭점수를 계산 하는 것이었다. 13 | 14 | 한 웹페이지에 대해서 기본점수, 외부 링크 수, 링크점수, 그리고 매칭점수를 구할 수 있다. 15 | 한 웹페이지의 기본점수는 해당 웹페이지의 텍스트 중, 검색어가 등장하는 횟수이다. (대소문자 무시) 16 | 한 웹페이지의 외부 링크 수는 해당 웹페이지에서 다른 외부 페이지로 연결된 링크의 개수이다. 17 | 한 웹페이지의 링크점수는 해당 웹페이지로 링크가 걸린 다른 웹페이지의 기본점수 ÷ 외부 링크 수의 총합이다. 18 | 한 웹페이지의 매칭점수는 기본점수와 링크점수의 합으로 계산한다. 19 | 예를 들어, 다음과 같이 A, B, C 세 개의 웹페이지가 있고, 검색어가 hi라고 하자. 20 | 21 | 22 | */ 23 | import Foundation 24 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2018/무지의먹방라이브_42891/Dealerable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dealerable.swift 3 | // PokergameApp 4 | // 5 | // Created by hw on 22/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2018/무지의먹방라이브_42891/Playable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Playable.swift 3 | // PokergameApp 4 | // 5 | // Created by hw on 22/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2019/Sol2/Solution_kakao2.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_kakao2.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 07/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_kakao2 { 12 | 13 | 14 | func start(){ 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2019/Sol3/Solution_kakao3.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_kakao3.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 07/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution_kakao3 { 12 | 13 | 14 | func start(){ 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2019/Sol4/Solution_kakao4.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_kakao4.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 07/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | class Solution_kakao4 { 13 | 14 | 15 | func start(){ 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2019/Sol5/Solution_kakao5.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_kakao5.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 07/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | class Solution_kakao5 { 13 | 14 | 15 | func start(){ 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Programmers/Kakao2019/Sol7/Solution_kakao7.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Solution_kakao7.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 07/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | class Solution_kakao7 { 13 | 14 | 15 | func start(){ 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/RegEx/RegularEx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RegularEx.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 07/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | func pattern(for regex: String, in inputString: String) -> [String] { 13 | do { 14 | if let regex = try? NSRegularExpression(pattern: regex, options: .caseInsensitive){ 15 | let test = regex.matches(in: inputString, options: [], range: NSRange(location:0, length: inputString.count)) 16 | let result : [String] = test.map{ String(inputString[Range($0.range, in: inputString)!])} 17 | return result 18 | } 19 | } 20 | //if fails 21 | return [] 22 | } 23 | } 24 | 25 | 26 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/SWIFT_ALGORITHM_SOLVING.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/SWIFT_ALGORITHM_SOLVING.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SWIFT_ALGORITHM_SOLVING/Topological_Sort/Topological_sort.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Topological_sort.swift 3 | // SWIFT_ALGORITHM_SOLVING 4 | // 5 | // Created by hw on 07/09/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_camera_front.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_camera_front@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_camera_front.imageset/ic_camera_front@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_camera_front.imageset/ic_camera_front@2x.png -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_camera_rear.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_camera_rear@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_camera_rear.imageset/ic_camera_rear@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_camera_rear.imageset/ic_camera_rear@2x.png -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_photo_camera.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ic_photo_camera@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_photo_camera.imageset/ic_photo_camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/Assets.xcassets/ic_photo_camera.imageset/ic_photo_camera@2x.png -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/SimpleFullScreenCameraApp/SimpleFullScreenCameraApp/PreviewView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PreviewView.swift 3 | // SimpleFullScreenCameraApp 4 | // 5 | // Created by hw on 08/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class PreviewView: UIView { 12 | 13 | /* 14 | // Only override draw() if you perform custom drawing. 15 | // An empty implementation adversely affects performance during animation. 16 | override func draw(_ rect: CGRect) { 17 | // Drawing code 18 | } 19 | */ 20 | 21 | } 22 | -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/ic_camera_front@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/CameraApp/ic_camera_front@2x.png -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/ic_camera_rear@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/CameraApp/ic_camera_rear@2x.png -------------------------------------------------------------------------------- /iOS_Basic/CameraApp/ic_photo_camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/CameraApp/ic_photo_camera@2x.png -------------------------------------------------------------------------------- /iOS_Basic/GCD_basic/GCD_basic/GCD_basic.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /iOS_Basic/GCD_basic/GCD_basic/GCD_basic.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/GCD_basic/GCD_basic/GCD_basic/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /iOS_Basic/GCD_basic/GCD_basic/GCD_basic/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // GCD_basic 4 | // 5 | // Created by hw on 11/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | 12 | 13 | 14 | class ViewController: UIViewController { 15 | 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | // Do any additional setup after loading the view. 19 | } 20 | /// Queue 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /iOS_Basic/GCD_basic/GCD_basic_ex.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /iOS_Basic/GCD_basic/GCD_basic_ex.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /iOS_Basic/ML_Model/CreateMLModel/CreateMLModel.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /iOS_Basic/ML_Model/CreateMLModel/CreateMLModel.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/ML_Model/CreateMLModel/CreateMLModel/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // CreateMLModel 4 | // 5 | // Created by hw on 08/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import CreateMLUI 11 | 12 | 13 | print("Hello, World!") 14 | 15 | -------------------------------------------------------------------------------- /iOS_Basic/ML_Model/ML_Model_demo.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import CreateMLUI 3 | 4 | 5 | let builder = MLImageClassifierBuilder() 6 | builder.showInLiveView() 7 | -------------------------------------------------------------------------------- /iOS_Basic/ML_Model/ML_Model_demo.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/7 rings.imageset/7 rings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/7 rings.imageset/7 rings@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/7 rings.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "7 rings@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Believer.imageset/Believer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Believer.imageset/Believer@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Believer.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Believer@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Best Mistake.imageset/Best Mistake@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Best Mistake.imageset/Best Mistake@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Best Mistake.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Best Mistake@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Blue Birds.imageset/Blue Birds@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Blue Birds.imageset/Blue Birds@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Blue Birds.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Blue Birds@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Dip.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Dip@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Dip.imageset/Dip@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Dip.imageset/Dip@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Swish.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Swish@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Swish.imageset/Swish@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/Swish.imageset/Swish@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/The Harlem Barber Swing.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "The Harlem Barber Swing@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/The Harlem Barber Swing.imageset/The Harlem Barber Swing@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/The Harlem Barber Swing.imageset/The Harlem Barber Swing@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icClose.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icClose@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icClose.imageset/icClose@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icClose.imageset/icClose@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icPause.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icPause@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icPause.imageset/icPause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icPause.imageset/icPause@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icPlay.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icPlay@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icPlay.imageset/icPlay@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/icPlay.imageset/icPlay@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/thank u, next.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "thank u, next@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Assets.xcassets/thank u, next.imageset/thank u, next@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/MusicApp/MusicApp/Assets.xcassets/thank u, next.imageset/thank u, next@2x.png -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/MusicApp.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | MusicApp.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/MusicApp.xcdatamodeld/MusicApp.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/Track.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Track.swift 3 | // MusicApp 4 | // 5 | // Created by hw on 07/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import AVFoundation 11 | 12 | class Track{ 13 | var title: String 14 | var thumbnail: UIImage 15 | var artist: String 16 | init(title: String, thumbnail: UIImage, artist: String) { 17 | self.title = title 18 | self.thumbnail = thumbnail 19 | self.artist = artist 20 | } 21 | 22 | /// path로부터 url을 만들어서 해당 Asset을 가져온다. 23 | var asset: AVAsset{ 24 | let path = Bundle.main.path(forResource: title, ofType: "mov")! 25 | let url = URL(fileURLWithPath: path) 26 | let asset = AVAsset(url: url) 27 | return asset 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /iOS_Basic/MusicApp/MusicApp/TrackCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TrackCell.swift 3 | // MusicApp 4 | // 5 | // Created by hw on 07/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TrackCell: UITableViewCell { 12 | @IBOutlet weak var thumbnail: UIImageView! 13 | @IBOutlet weak var title: UILabel! 14 | @IBOutlet weak var artist: UILabel! 15 | } 16 | -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/brook.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "brook@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/brook.imageset/brook@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/brook.imageset/brook@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/chopper.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "chopper@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/chopper.imageset/chopper@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/chopper.imageset/chopper@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/close_ic.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "close_ic@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/close_ic.imageset/close_ic@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/close_ic.imageset/close_ic@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/franky.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "franky@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/franky.imageset/franky@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/franky.imageset/franky@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/luffy.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "luffy@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/luffy.imageset/luffy@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/luffy.imageset/luffy@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/nami.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nami@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/nami.imageset/nami@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/nami.imageset/nami@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/robin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "robin@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/robin.imageset/robin@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/robin.imageset/robin@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/sanji.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sanji@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/sanji.imageset/sanji@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/sanji.imageset/sanji@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/zoro.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "zoro@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/zoro.imageset/zoro@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap11-12/BountyListApp/BountyListApp/Assets.xcassets/zoro.imageset/zoro@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/BountyListApp/BountyListApp/BountyInfo.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BountyInfo.swift 3 | // BountyListApp 4 | // 5 | // Created by hw on 18/07/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BountyInfo: NSObject { 12 | var name: String 13 | var bounty: Int 14 | var image: UIImage?{ 15 | return UIImage(named: "\(name).jpg") 16 | } 17 | init(name: String, bounty: Int){ 18 | self.name = name 19 | self.bounty = bounty 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /iOS_Basic/chap11-12/mvc-pattern-summary.md: -------------------------------------------------------------------------------- 1 | # MVC 패턴 2 | 3 | ### Model 4 | 5 | - 어떤 데이터(도메인)를 오브젝트 형태로 표현한 것을 의미한다. 6 | 7 | 8 | 9 | ### View 10 | 11 | - 클라이언트에서 화면에 표현하는 내용 12 | - 사용자의 제스쳐(이벤트)를 받아오거나, 사용자에게 보여주는 화면을 구성한다. 13 | - 사용자와 상호작용하는 이벤트를 자체적으로 처리하지는 않고, 컨트롤러에 전달한다. 14 | 15 | ### Controller 16 | 17 | - model과 view의 mediator 18 | - 모델의 변경사항을 뷰에 전달하고, 뷰로부터 받은 사용자 상호작용에 대해 새로 모델을 추가하거나, 기존 모델에 전달하여 원하는 값을 가져오도록 한다. 19 | 20 | 21 | 22 | # Refactoring 23 | 24 | ### 10, 200 rule 25 | 26 | - 클래스는 200줄 이내 27 | - 메서드는 10줄 이내 -------------------------------------------------------------------------------- /iOS_Basic/chap13/UICollectionView.md: -------------------------------------------------------------------------------- 1 | ## UICollectionView 2 | 3 | - UITableView는 리스트형태로 1열로 보여주는 형태로 구성되어있음. 4 | 5 | - 화면을 그리드 형태로 다양하게 레이아웃하여 보여줄 수 있음 6 | - 하나 이상의 컬럼 7 | - 데이터의 나열을 수평/수직방향으로 줄 것인지 지정 가능 8 | - 직접 커스터마이징 가능 9 | 10 | 11 | 12 | ## UICollectionViewLayout 13 | 14 | - 줄 정렬 등 CollectionView를 꾸미기 위한 레이아웃 객체 15 | 16 | - **`UICollectionViewFlowLayout`** 은 iOS에서 기본으로 제공하는 레이아웃 17 | - Datasource & Delegate 패턴을 사용 18 | 19 | 20 | 21 | TableView나 CollectionView도 cell에 대한 reuse를 위해 cell에 대해 Attribute Inspector에서 identifier를 지정하는 것이 좋다. 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | ---- 30 | 31 | # Animation 32 | 33 | ### Position & Size 34 | 35 | - bounds 36 | - frame 37 | - center 38 | 39 | 40 | 41 | ### Transformation 42 | 43 | - rotation 44 | - scale 45 | - translation 46 | - CGAffineTransform을 사용ㄴ 47 | 48 | - 중첩하여 사용 가능 49 | 50 | 51 | 52 | ### Appearance 53 | 54 | - backgroundColors 55 | - alpha 56 | 57 | 58 | 59 | ### 주의 60 | 61 | - Autolayout과 상충되는 것에 대해서 조심해야 한다. 62 | 63 | -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/7 rings.imageset/7 rings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/7 rings.imageset/7 rings@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/7 rings.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "7 rings@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Believer.imageset/Believer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Believer.imageset/Believer@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Believer.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Believer@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Best Mistake.imageset/Best Mistake@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Best Mistake.imageset/Best Mistake@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Best Mistake.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Best Mistake@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Blue Birds.imageset/Blue Birds@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Blue Birds.imageset/Blue Birds@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Blue Birds.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Blue Birds@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Dip.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Dip@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Dip.imageset/Dip@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Dip.imageset/Dip@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Swish.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Swish@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Swish.imageset/Swish@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/Swish.imageset/Swish@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/The Harlem Barber Swing.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "The Harlem Barber Swing@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/The Harlem Barber Swing.imageset/The Harlem Barber Swing@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/The Harlem Barber Swing.imageset/The Harlem Barber Swing@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icClose.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icClose@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icClose.imageset/icClose@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icClose.imageset/icClose@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icPause.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icPause@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icPause.imageset/icPause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icPause.imageset/icPause@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icPlay.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icPlay@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icPlay.imageset/icPlay@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/icPlay.imageset/icPlay@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/thank u, next.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "thank u, next@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/thank u, next.imageset/thank u, next@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Assets.xcassets/thank u, next.imageset/thank u, next@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/MusicApp.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | MusicApp.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/MusicApp.xcdatamodeld/MusicApp.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/Track.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Track.swift 3 | // MusicApp 4 | // 5 | // Created by hw on 07/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import AVFoundation 11 | 12 | class Track{ 13 | var title: String 14 | var thumbnail: UIImage 15 | var artist: String 16 | init(title: String, thumbnail: UIImage, artist: String) { 17 | self.title = title 18 | self.thumbnail = thumbnail 19 | self.artist = artist 20 | } 21 | 22 | /// path로부터 url을 만들어서 해당 Asset을 가져온다. 23 | var asset: AVAsset{ 24 | let path = Bundle.main.path(forResource: title, ofType: "mov")! 25 | let url = URL(fileURLWithPath: path) 26 | let asset = AVAsset(url: url) 27 | return asset 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /iOS_Basic/chap15_musicApp/MusicApp/MusicApp/TrackCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TrackCell.swift 3 | // MusicApp 4 | // 5 | // Created by hw on 07/08/2019. 6 | // Copyright © 2019 hwj. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TrackCell: UITableViewCell { 12 | @IBOutlet weak var thumbnail: UIImageView! 13 | @IBOutlet weak var title: UILabel! 14 | @IBOutlet weak var artist: UILabel! 15 | } 16 | -------------------------------------------------------------------------------- /iOS_Basic/chap2/WantedPoster/WantedPoster.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /iOS_Basic/chap2/WantedPoster/WantedPoster.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /iOS_Basic/chap2/WantedPoster/WantedPoster/Assets.xcassets/AppIcon.appiconset/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap2/WantedPoster/WantedPoster/Assets.xcassets/AppIcon.appiconset/icon@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap2/WantedPoster/WantedPoster/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /iOS_Basic/chap2/WantedPoster/WantedPoster/Assets.xcassets/poster.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "poster@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /iOS_Basic/chap2/WantedPoster/WantedPoster/Assets.xcassets/poster.imageset/poster@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap2/WantedPoster/WantedPoster/Assets.xcassets/poster.imageset/poster@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap2/iOS_how_to_application_work.md: -------------------------------------------------------------------------------- 1 | # 앱은 어떻게 동작하는가? 2 | 3 | - 앱은 여러개의 오브젝트로 이루어져있다. 4 | 5 | - 오브젝트는 iOS에서 제공하거나, 필요에 따라 만든다 6 | 7 | - 오브젝트는 서로 메시지를 보내면서 커뮤니케이션한다. 8 | 9 | - 사용자가 버튼 클릭시 (상호작용) -> 버튼은 뷰 컨트롤러에게 터치 이벤트가 작동했음을 알린다. 10 | 11 | - iOS는 event Driven으로 작동한다. 12 | - 이벤트에 의해 프로세스가 동작한다. 13 | 14 | 15 | 16 | # 앞으로 알아볼 것들 17 | 18 | - Object, Data, Method 19 | - Object 20 | - 객체는 각각의 역할이 존재 21 | - 데이터와 메서드를 지님 22 | - Strings and Variable 23 | - 24 | - Connecting Outlet 25 | - Writing Method 26 | - Local vs Instance Variable 27 | - Closure 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /iOS_Basic/chap2/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap2/icon@2x.png -------------------------------------------------------------------------------- /iOS_Basic/chap2/poster@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hwj0623/ios_swift/d9abfb9eff609fa3d300546ad2f59963f306a6e4/iOS_Basic/chap2/poster@2x.jpg -------------------------------------------------------------------------------- /iOS_Basic/chap4/chap4_stylingIntro.md: -------------------------------------------------------------------------------- 1 | # Chapter4 Styling Intro 2 | 3 | - Styling Image and Labels 4 | - Assests에 이미지 넣고 UIImageView의 Attributes Inspector에서 해당 이미지 선택 5 | - Styling Button 6 | - Auto Layout 7 | - App Icon and Display name 8 | - ... 9 | 10 | 11 | 12 | --------------------------------------------------------------------------------