├── .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 | 
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 | [](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 |
--------------------------------------------------------------------------------