πŸ’» 개발/TIL

    [TIL] 22.06.03 - iOS ν™”λ©΄ μ „ν™˜

    iOS μ—μ„œ ν™”λ©΄ 이동을 ν•˜λŠ” λ°©λ²•μ—λŠ” 4가지가 μžˆλ‹€. ViewController μ—μ„œ ν™”λ©΄ μ „ν™˜ ViewController κ°€ λ‹€λ₯Έ ViewController λ₯Ό ν˜ΈμΆœν•˜μ—¬ ν™”λ©΄ μ „ν™˜ NavigationViewController λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™”λ©΄ μ „ν™˜ ν™”λ©΄ μ „ν™˜μš© 객체 Segue λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™”λ©΄ μ „ν™˜ 1. ViewController μ—μ„œ ν™”λ©΄ μ „ν™˜ ViewController μœ„μ˜ View λ₯Ό λ‹€λ₯Έ View 둜 κ΅μ²΄ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ‘œ 인해 μ‚¬μš©μ„ μ§€μ–‘ν•œλ‹€. νŠΉμ •ν•œ κ²½μš°μ—λ§Œ μ‚¬μš©ν•œλ‹€. μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œλŠ” View 의 Visibility 속성을 μ΄μš©ν•˜μ—¬ λ³€κ²½ν•˜λŠ” 방식을 자주 μ‚¬μš©ν–ˆμ—ˆλŠ”λ° iOS μ—μ„œλŠ” μ§€μ–‘ν•œλ‹€κ³  ν•˜λ‹ˆ μ’€ μ‹ κΈ°ν–ˆλ‹€. 이 뢀뢄에 λŒ€ν•΄μ„  μ’€ 더 찾아보고 정리해봐야겠닀. 2. ViewContr..

    [TIL] 22.05.27

    κ³΅λΆ€ν•œ 것 Swift 문법 μ•Œκ²Œλœ 것 1. Guard Guard ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 쑰건에 false인 κ²½μš°μ—λŠ” else ꡬ문이 μ‹€ν–‰λ˜μ–΄ μ΄ν›„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ§€ λͺ»ν•˜κ²Œ ν•œλ‹€. continue 와 λΉ„μŠ·ν•˜λ‹€. import Foundation func guardTest(value : Int?) { guard let value = value else {return} print(value) } guardTest(value : 2) guardTest(value : nil) // 아무것도 좜λ ₯λ˜μ§€ μ•ŠμŒ 쑰건문과 μœ μ‚¬ν•œ κΈ°λŠ₯이라고 λ³Ό 수 μžˆλŠ”λ° Guard λŠ” else λ₯Ό κ°•μ œν•œλ‹€. // 일반적인 쑰건문 if 쑰건 == true { // 참인 κ²½μš°μ— μ‹€ν–‰ν•  μ½”λ“œ } else { // 거짓인 κ²½μš°μ— μ‹€ν–‰ν•  μ½”λ“œ } // G..

    [TIL] 22.05.26

    κ³΅λΆ€ν•œ 것 Swift 문법 μ•Œκ²Œλœ 것 1. ν΄λž˜μŠ€μ™€ ꡬ쑰체의 차이 1. 곡톡점 값을 μ €μž₯ν•  ν”„λ‘œνΌν‹°λ₯Ό μ„ μ–Έν•  수 있음 ν•¨μˆ˜μ  κΈ°λŠ₯을 ν•˜λŠ” λ©”μ†Œλ“œλ₯Ό μ„ μ–Έν•  수 있음 λ‚΄λΆ€ 값을 .λ₯Ό 톡해 μ ‘κ·Όν•  수 있음 μƒμ„±μžλ₯Ό μ‚¬μš©ν•΄ 초기 μƒνƒœλ₯Ό μ„€μ •ν•  수 있음 Extension 을 μ‚¬μš©ν•˜μ—¬ κΈ°λŠ₯을 ν™•μž₯ν•  수 있음 Protocol 을 μ±„νƒν•˜μ—¬ κΈ°λŠ₯을 μ„€μ •ν•  수 있음 2. 차이점 - 클래슀 μ°Έμ‘° νƒ€μž… ARC 둜 λ©”λͺ¨λ¦¬λ₯Ό 관리 상속 κ°€λŠ₯ νƒ€μž… μΊμŠ€νŒ… 을 톡해 λŸ°νƒ€μž„μ—μ„œ 클래슀 μΈμŠ€ν„΄μŠ€μ˜ νƒ€μž…μ„ 확인할 수 있음 deinit 을 μ‚¬μš©ν•˜μ—¬ 클래슀 μΈμŠ€ν„΄μŠ€μ˜ λ©”λͺ¨λ¦¬ 할당을 ν•΄μ œν•  수 있음 같은 클래슀 μΈμŠ€ν„΄μŠ€λ₯Ό μ—¬λŸ¬ 개의 λ³€μˆ˜μ— ν• λ‹Ήν•œ 뒀에 값을 λ³€κ²½μ‹œν‚€λ©΄ λͺ¨λ“  λ³€μˆ˜μ— 영ν–₯을 쀌 (λ©”λͺ¨λ¦¬λ₯Ό 볡사) - ꡬ쑰체 κ°’ νƒ€μž… 같은 ꡬ쑰체λ₯Ό ..

    [TIL] 22.04.20

    κ³΅λΆ€ν•œ 것 μ •μ²˜κΈ° 21λ…„ 3회차 μ•Œκ²Œλœ 것 [1κ³Όλͺ©] μ†Œν”„νŠΈμ›¨μ–΄ 섀계 1. λžŒλ°”μš° 뢄석 기법 - 객체 λͺ¨λΈλ§ -> 동적 λͺ¨λΈλ§ -> κΈ°λŠ₯ λͺ¨λΈλ§ 순으둜 진헹 - 객체 λͺ¨λΈλ§ : 정보 λͺ¨λΈλ§μ΄λΌκ³ λ„ λΆ€λ₯΄λ©° 클래슀 λ‹€μ΄μ–΄κ·Έλž¨μ„ μž‘μ„± - 동적 λͺ¨λΈλ§ : μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨μ„ μž‘μ„± - κΈ°λŠ₯ λͺ¨λΈλ§ : 자료 흐름도(Data Flow Diagram)을 μž‘μ„± 2. μš”κ΅¬μ‚¬ν•­ 개발 ν”„λ‘œμ„ΈμŠ€ λ„μΆœ(μš”κ΅¬μ‚¬ν•­ μˆ˜μ§‘) -> 뢄석 -> λͺ…μ„Έ -> 확인(μš”κ΅¬μ‚¬ν•­ 검증) 3. μ• μžμΌ 개발 ν”„λ‘œμ„ΈμŠ€ - 읡슀트림 ν”„λ‘œκ·Έλž˜λ° : XP, 고객과 함꼐 2μ£Ό μ •λ„μ˜ 반볡 개발, TDD - 슀크럼 : 30μΌλ§ˆλ‹€ λ™μž‘ κ°€λŠ₯ν•œ μ œν’ˆμ„ μ œκ³΅ν•˜λŠ” μŠ€ν”„λ¦°νŠΈ 개발 4. UML 관계 - μΌλ°˜ν™” : Generalization, μ‹€μ„  삼각 ν™”μ‚΄ν‘œ, 일반적인 것과 ..

    [TIL] 22.04.18

    κ³΅λΆ€ν•œ 것 μ •μ²˜κΈ° 21λ…„ 1회차 μ•Œκ²Œλœ 것 [1κ³Όλͺ©] μ†Œν”„νŠΈμ›¨μ–΄ 섀계 1. λ””μžμΈ νŒ¨ν„΄ - 생성 νŒ¨ν„΄ : 좔상 νŒ©ν† λ¦¬, λΉŒλ”, νŒ©ν† λ¦¬ λ©”μ†Œλ“œ, ν”„λ‘œν† νƒ€μž…, 싱글톀 - ꡬ쑰 νŒ¨ν„΄ : μ–΄λŒ‘ν„°, λΈŒλ¦¬μ§€, μ»΄νΌμ§€νŠΈ, λ°μ½”λ ˆμ΄ν„°, νΌμ‚¬λ“œ, ν”„λ‘μ‹œ - ν–‰μœ„ νŒ¨ν„΄ : 컀맨트, μ˜΅μ €λ²„, μ „λž΅, μƒνƒœ 2. 객체지ν–₯ 뢄석 방법둠 - Cord-Yourdon : E-R λ‹€μ΄μ–΄κ·Έλž¨μ„ μ‚¬μš©ν•˜μ—¬ 객체의 ν–‰μœ„λ₯Ό 데이터 λͺ¨λΈλ§ ν•˜λŠ”λ° 초점 3. μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œ 뢄석 - ν”Œλž«νΌ κΈ°λŠ₯ 뢄석 - ν”Œλž«νΌ μ„±λŠ₯ νŠΉμ„± 뢄석 - 운영체제 뢄석 - λ„€νŠΈμ›Œν¬ 뢄석 - DBMS 뢄석 4. UML - 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ : μ‹œμŠ€ν…œμ„ κ΅¬μ„±ν•˜λŠ” ν΄λž˜μŠ€λ“€ μ‚¬μ΄μ˜ 관계λ₯Ό ν‘œμ‹œ - μ•‘ν‹°λΉ„ν‹° λ‹€μ΄μ–΄κ·Έλž¨ : μ‹œμŠ€ν…œ 내뢀에 μ‘΄μž¬ν•˜λŠ” μ—¬λŸ¬ ν–‰μœ„μ™€ λΆ„κΈ° 및 쑰건을 ν‘œμ‹œ ..

    [TIL] 22.04.17

    κ³΅λΆ€ν•œ 것 μ •μ²˜κΈ° 22λ…„ 1회차 μ•Œκ²Œλœ 것 [1κ³Όλͺ©] μ†Œν”„νŠΈμ›¨μ–΄ 섀계 1. μ†Œν”„νŠΈμ›¨μ–΄ 섀계 방법 - 상ν–₯식 섀계 방법 : λ°”ν…€μ—…, μž‘μ€ 문제λ₯Ό ν•΄κ²°ν•˜μ—¬ 큰 문제둜 톡합, 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° (Java) - ν•˜ν–₯식 섀계 방법 : νƒ‘λ‹€μš΄, 큰 문제λ₯Ό μž‘μ€ 문제둜 λΆ„ν•΄, 절차 쀑심 ν”„λ‘œκ·Έλž˜λ° (C) 2. 데이터 흐름도 - ν”„λ‘œμ„ΈμŠ€ : 원 - 데이터 흐름 : ν™”μ‚΄ν‘œ - 데이터 μ €μž₯ : 평행선 - μ’…λ£Œ : μ‚¬κ°ν˜• 3. UI 섀계 도ꡬ - 와이어 ν”„λ ˆμž„ : νŽ˜μ΄μ§€μ— λŒ€ν•œ λŒ€λž΅μ μΈ λ ˆμ΄μ•„μ›ƒ 및 UI μš”μ†Œ 섀계 - λͺ©μ—… : 와이어 ν”„λ ˆμž„μ—μ„œ λ””μžμΈ, μ‚¬μš© 방법 μ„€λͺ…, 평가λ₯Ό μœ„ν•΄ μ‹€μ œ ν™”λ©΄κ³Ό μœ μ‚¬ν•˜λ„λ‘ UIλ₯Ό λ³€κ²½ (정적) - μŠ€ν† λ¦¬λ³΄λ“œ : 와이어 ν”„λ ˆμž„μ—μ„œ μ½˜ν…μΈ  μ„€λͺ…, 흐름도 μΆ”κ°€ - ν”„λ‘œν† νƒ€μž… : 와이어 ν”„λ ˆμž„..

    [TIL] 22.03.23

    κ³΅λΆ€ν•œ 것 코루틴 μ•Œκ²Œλœ 것 1. 코루틴 μ–΄μ œμ— 이어 코루틴 에 λŒ€ν•΄ ν•™μŠ΅ν–ˆλ‹€. 코루틴은 코루틴 μŠ€μ½”ν”„ λ₯Ό ν†΅ν•΄μ„œ μ‹€ν–‰ν•  수 μžˆλ‹€. 코루틴 μŠ€μ½”ν”„ λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ 코루틴을 μ‹€ν–‰ν•  수 μžˆμ§€λ§Œ 이런 κ²½μš°μ— μž‘μ—…μ΄ μ’…λ£Œλœ 코루틴에 λŒ€ν•΄ λ³„λ„μ˜ 처리λ₯Ό ν•΄μ€˜μ•Ό ν•œλ‹€. Coroutine Scope Coroutine Scope λŠ” μ½”λ£¨ν‹΄μ˜ λ²”μœ„λ₯Ό μ •μ˜ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€ 이닀. 말 κ·ΈλŒ€λ‘œ 코루틴이 μ‹€ν–‰λ˜λŠ” λ²”μœ„λ₯Ό μ§€μ •ν•œλ‹€. λͺ¨λ“  코루틴은 Scope λ‚΄μ—μ„œ μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜κ³  μ•‘ν‹°λΉ„ν‹° λ‚˜ ν”„λž˜κ·Έλ¨ΌνŠΈ 의 생λͺ…μ£ΌκΈ° 에 따라 코루틴 을 μ·¨μ†Œ ν•˜μ—¬ λ©”λͺ¨λ¦¬ λ¦­ 을 λ°©μ§€ν•œλ‹€. Global Scope 와 Coroutine Scope κ°€ μ‘΄μž¬ν•œλ‹€. 1. Global Scope : μ•±μ˜ 생λͺ…주기와 ν•¨κ»˜ λ™μž‘ν•˜κΈ°μ— λ³„λ„μ˜ 생λͺ… μ£ΌκΈ° 관리가 ..

    [TIL] 22.03.22

    κ³΅λΆ€ν•œ 것 코루틴 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 1문제 μ•Œκ²Œλœ 것 1. 코루틴 코루틴 은 비동기 처리 λ₯Ό μœ„ν•΄ μ½”ν‹€λ¦° μ—μ„œ μ§€μ›ν•˜λŠ” 라이브러리 이닀. μš°μ„  동기 와 비동기 에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž. λ™κΈ°λŠ” 응닡을 μš”μ²­ν–ˆμ„ λ•Œ λ°˜ν™˜ 값을 μ–»κΈ° μ „κΉŒμ§€ λŒ€κΈ°ν•˜λŠ” 것을 λœ»ν•˜κ³ , λΉ„λ™κΈ°λŠ” λŒ€κΈ°μ‹œκ°„ λ³„λ„μ˜ Taskλ₯Ό μˆ˜ν–‰ν•˜λŠ” 것을 λœ»ν•œλ‹€. λ™μ‹œμ„± 처리 μž‘λ…„ OS μˆ˜μ—…μ„ 듀을 λ•Œ λ™μ‹œμ„± 처리 에 λŒ€ν•΄μ„œ λ°°μ› μ—ˆλ‹€. 그런데 κ°‘μžκΈ° λ™μ‹œμ„± 처리λ₯Ό μ™œ μ–˜κΈ°ν•˜λŠλƒ, λ™μ‹œμ„± μ²˜λ¦¬κ°€ λΉ„λ™κΈ°μ˜ κ°œλ…μ΄ μ μš©λ˜μ–΄ 있기 λ•Œλ¬Έμ΄λ‹€. λ™μ‹œμ„± μ²˜λ¦¬λŠ” 말 κ·ΈλŒ€λ‘œ λ™μ‹œμ— μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λŠ” 것이닀. (Context Switching 이 λ°œμƒν•œλ‹€.) μ‹±κΈ€ μ½”μ–΄ μ—μ„œ λ©€ν‹° μ“°λ ˆλ“œ λ₯Ό ν†΅ν•΄μ„œ 이λ₯Ό κ΅¬ν˜„ν•˜κ³  μžˆλ‹€. μ“°λ ˆλ“œ λ™μ‹œμ„± 처리λ₯Ό μœ„ν•΄μ„œ..

    [TIL] 22.03.20

    κ³΅λΆ€ν•œ 것 μ•ˆλ“œλ‘œμ΄λ“œ κ°•μ˜ μˆ˜κ°• μ˜μ‘΄μ„± μ£Όμž… ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 1문제 μ•Œκ²Œλœ 것 1. μ˜μ‘΄μ„± μ£Όμž… (Dependancy Injection) μ΄λ²ˆμ— μ˜μ‘΄μ„± μ£Όμž…μ΄λΌλŠ” 것을 처음 μ ‘ν•˜κ²Œ 됐닀. μ˜μ‘΄μ„± μ΄λΌλŠ” 단어 자체λ₯Ό build.gradle 에 μ„ μ–Έν•˜λŠ” implementation 'org.jetbrains... 처럼 라이브러리 μΆ”κ°€ λ§κ³ λŠ” μ ‘ν•΄λ³Έ 적이 μ—†μ—ˆλ‹€. μ•„λ¬΄νŠΌ 였늘 κ°•μ˜ λ₯Ό μˆ˜κ°•ν•˜λ©΄μ„œ μ˜μ‘΄μ„± μ£Όμž… 라이브러리인 Koin 을 μ ‘ν–ˆκ³  이에 κ΄€ν•΄μ„œ μ’€ 더 μ°Ύμ•„λ³΄λŠ” μ‹œκ°„μ„ κ°€μ‘Œλ‹€. μ˜μ‘΄μ„± μ£Όμž… μ΄λΌλŠ” κ°œλ… μžμ²΄λŠ” 어렡지 μ•Šμ•˜λ‹€. μš°μ„  μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄μž. class Car { private val engine = Engine() private fun start() { engine.start() } } class En..

    [TIL] 22.03.19

    κ³΅λΆ€ν•œ 것 MVC, MVP, MVVM, AAC μ•Œκ²Œλœ 것 1. MVC μš°μ„  κ°€μž₯ 일반적으둜 μ‚¬μš©λ˜λŠ” 아킀텍쳐 νŒ¨ν„΄μ΄λ‹€. Model, View, Controller 둜 λ‚˜λ‰œλ‹€. Model 은 데이터 생성, μ‚­μ œ, κ°±μ‹  λ“±μ˜ 둜직이 λ“€μ–΄μžˆλ‹€. View λŠ” μ‚¬μš©μžμ—κ²Œ λ³΄μ—¬μ§€λŠ” 화면이닀. Controller λŠ” μ‚¬μš©μžμ˜ μž…λ ₯을 μ²˜λ¦¬ν•œλ‹€. μš°μ„  μ‚¬μš©μžκ°€ View λ₯Ό ν†΅ν•΄μ„œ μž…λ ₯이 λ“€μ–΄μ˜€κ³  Controller κ°€ 이λ₯Ό μ²˜λ¦¬ν•œλ‹€. 이 λ•Œ μž…λ ₯을 λΆ„μ„ν•΄μ„œ Model κ³Ό View 에 κ°±μ‹  μš”μ²­μ„ ν•œλ‹€. Model 은 데이터λ₯Ό κ°±μ‹ ν•˜κ³  View λŠ” UI λ₯Ό κ°±μ‹ ν•œλ‹€. μ •λ¦¬ν•˜μžλ©΄, Controller λŠ” Model κ³Ό View κ°€ 무엇을 ν•΄μ•Όν•  지 μ•Œκ³  있고 이λ₯Ό ν†΅μ œν•˜κ³  μžˆλ‹€. Controller λ₯Ό ν†΅ν•΄μ„œ Model κ³Ό..