728x90

패스트캠퍼스후기 51

패스트캠퍼스 챌린지 최종 후기

드디어 이 날이 올까 싶었던 챌린지 최종 후기를 적게 되었습니다. 보시는 분들이 계실지는 모르겠지만!.. 혹시나 강의를 듣게 되시거나 추후 진행하는 챌린지에 참여하시는 분들에게 도움이 되셨으면 합니다. 아이폰 앱 개발자가 되겠다고 마음먹고 나서 어떤 것부터 공부해야 할지 감이 안 잡히던 저는 무작정 인터넷에 검색을 하여 iOS 도서 중 베스트셀러인 Swift 문법책과 앱 만들기 실습 책 두 권을 구매하여 공부했었는데요 당시 기초적인 내용을 포함하고 있는 앱 만들기 실습 책을 다 끝내고 나서 자신감이 붙어 있던 상태였지만 어느 날 문뜩 Swift 문법 공부 중 이렇게 준비해도 되는 걸까 하는 의문이 들었습니다. 주변에 물어볼 iOS 개발자 지인이 없어 구글링을 통해 선배님들의 과정을 찾아보기 시작했고 당연..

패스트캠퍼스 챌린지 50일차

3월 14일 월요일 / 50일 차 Part 5 - CH 05, 06 도서 리뷰 앱, 영화 평점 앱 마무리 Test 개발자가 작성한 코드가 의도한 대로 작동하는지 확인하는 과정 - UI 표시 - UI Layout 설정 - API request - UserDefaults 저장하기 / 가져오기 등등 Unit Test 특정 함수, 메서드의 동작에 대한 테스트 Scene을 테스트 대상으로 실행 UI Test UI Component의 표시와 동작이 의도한 대로 잘 작동하는지 확인하는 Test UI 표시 or UI Action에 대한 테스트 하나의 앱을 테스트 대상으로 실행 class XCUIApplication BDD (Behavior Driven Develop) 시나리오를 기반으로 테스트 케이스를 작성하는 테스트..

패스트캠퍼스 챌린지 49일차

3월 13일 일요일 / 49일 차 Part 5 - CH 08 트위터 앱 만들기 구현 순서 1. 트위터 글 게시 기능 구현하기 2. 피드 화면 구현하기 3. 트윗 상세 화면 구현하기 4. 글 작성 화면 구현하기 5. 프로필 화면 구현하기 6. 에러 메시지 표시 기능 구현하기 7. Unit Test 작성하기 - Test 작성용 파일, class 생성 - Mock 작성 - Unit Test 작성 8. 앱스토어 업로드, 심사, 배포 과정에 대해서 알아보기 9. 앱스토어에 개인 앱 업로드 하기 10. 앱스토어에 개인 앱 심사 신청하기 앱 등록 과정 앱 구현 - TestFlight에 QA용 빌드 배포 - QA 실시 - 앱스토어용 빌드 배포 - 앱 심사 신청 - 심사 통과 후 앱 스토어 공개 MVP Model 기존의..

패스트캠퍼스 챌린지 48일차

3월 12일 토요일 / 48일 차 Part 5 - CH 07 뉴스 앱 만들기 WebView UIWebView (현재는 사용되지 않음) - UIKit 프레임워크에 있는 UIView를 상속하는 class - 메모리 관리 방식이 WKWebView와 다름 - WKWebView에 비해 성능이 좋지 않음 SFSafariView - UIViewController를 상속하는 class - Safari 앱과 동일한 기능을 갖고 있는 ViewController - Safari와 동일한 쿠키, 웹사이트 데이터 등을 공유 WKWebView - WebKit 프레임워크의 class - 메모리가 앱과 별도의 스레드로 관리됨 (웹 페이지에 메모리가 많이 할당되더라도 앱은 죽지 않음) - UIWebView와 비교했을 때, 성능이 좋음..

패스트캠퍼스 챌린지 47일차

3월 11일 금요일 / 47일 차 Part 5 - CH 05 도서 리뷰 앱 마무리 MVP Model 기존의 Model 역할과 같다. 실제적 데이터를 가지고 있고 이것을 Presenter가 소유하고 갱신하는 역할을 한다. View와는 독립되어있다 View iOS의 UIView와 UIViewController가 여기에 속하며 모든 비즈니스 로직은 Presenter에 맡긴다. 그래서 Passive View라고도 불린다 Presenter UIKit을 사용하지 않는 비즈니스 로직을 모두 수행한다. 또 Model의 데이터를 가공해 View에서 보여주기 위한 UI 친화적인 포맥으로 바꾸는 역할도 한다. 장점 기존의 MVC 패턴이 가지고 있는 장점을 유지한 채 보여주는 부분과 비즈니스 로직 부분을 나눠 모듈화의 정도를..

패스트캠퍼스 챌린지 46일차

3월 10일 목요일 / 46일 차 Part 5 - CH 01 내 근처 편의점 찾기 앱 마무리 CLLocationManager - 앱에 대한 위치 관련 이벤트 전달을 시작하거나 중지하는 데 사용하는 객체 - 앱에 위치 서비스를 추가하려면 CLLocationManager을 사용해서 CLLocationManagerDelegate를 구현하고 앱에 필요한 위치 정보에 액세스 할 수 있는 권한을 부여할지 여부를 결정하게 됨 - 사용자가 권한을 거부했을 때 오류처리를 할 수 있음 - 앱에 필요한 승인 상태를 결정할 수 있음(항상 사용, 이번 한 번만 사용, 앱을 실행할 때만 사용) - 사용자의 현재 위치에서 크거나 작은 변화를 추적 - 나침반에서 방향 변경 추적 - 사용자 위치 기반 이벤트 생성 - 근거리 데이터 통..

패스트캠퍼스 챌린지 45일차

3월 9일 수요일 / 45일 차 Part 4 - CH 07 당근마켓 스타일 중고거래 앱 만들기 막혔던 부분 MVVM 역할 및 동작 원리 View iOS는 ViewController까지 View가 됩니다 사용자가 보여지는 View를 생각하면 된다. 유저 인터랙션을 받는 역할, 인터랙션을 받을 시 ViewModel에게 명령을 내립니다. ViewModel View를 표현하기 위해 만들어진 View를 위한 Model View와는 Binding을 하여 연결 후 View에게서 액션을 받고 또한 View를 업데이트합니다 ex) textView에 보여줄 내용을 담당하는 함수 등, View에서 변화가 일어나는 ViewController의 역할을 담당 Model 데이터, 비즈니스 로직, 서비스 클라이언트 등으로 구성 실제..

패스트캠퍼스 챌린지 44일차

3월 8일 화요일 / 44일 차 Part 5 - CH 06 영화 평점 앱 만들기 SwiftLint XCode내에서 Swift 코드 스타일을 통일시킬 수 있도록 도와줌 - class 내의 코드 수가 너무 길면 경고를 띄워줌(코드가 길면 유지보수가 힘들기 때문) - 변수명 뒤에 콜론의 위치 등 스타일을 지정해 줌 - 무의미한 공백을 알려주어 코드 정리를 도와줌 이번 강좌에서 수정한 점(Swiftlint 관련) disabled_rules: - leading_whitespace - trailing_whitespace 내용을 가진 .swiftlint.yml 파일을 추가하여 공백에 오류를 표시하는 swiftlint의 작동에 규칙을 정해줌 Naver Developers의 검색 API 이용 - JSON 파일에서 Dec..

패스트캠퍼스 챌린지 43일차

3월 7일 월요일 / 43일 차 Part 6 - CH 02 화면/기능을 개발하면서 발생할 수 있는 에러 대처 방법 Xcode에서 Build 하고자 하는 기기의 iOS 버전과 Xcode의 최대 서포트 OS 버전이 맞지 않을 때 - Xcode를 업데이트하거나 Xcode의 최대 버전과 맞는 기기에서 Build를 실행 Xcode Project의 최소 서포트 버전에서 사용할 수 없는 코드가 사용되었을 때의 컴파일 에러 - OS 버전별, 실행 코드를 분기 No such module - Product > Clean을 실행 - Xcode 종료 - Build 실행 or - 해당 모듈을 uninstall - Product > Clean을 실행 - uninstall 한 모듈을 다시 install IBOutlet 연결이 끊..

패스트캠퍼스 챌린지 42일차

3월 6일 일요일 / 42일 차 Part 5 - CH 06 영화 평점 앱 만들기 SwiftLint XCode내에서 Swift 코드 스타일을 통일시킬 수 있도록 도와줌 - class 내의 코드 수가 너무 길면 경고를 띄워줌(코드가 길면 유지보수가 힘들기 때문) - 변수명 뒤에 콜론의 위치 등 스타일을 지정해 줌 - 무의미한 공백을 알려주어 코드 정리를 도와줌 Naver Developers의 검색 API 이용 - JSON 파일에서 Decodable을 통해 title, image, pubDate, diretor, actor, userRating의 값을 받아옴 - 공식 도큐멘트에는 userRating이 Integer로 되어있지만 실제로 내려오는 값은 String이므로 개발에 주의 필요 복습할 내용 - API 사..

패스트캠퍼스 챌린지 41일차

3월 5일 토요일 / 41일 차 Part 5 - CH 05 도서 리뷰 앱 만들기 MVP Model 기존의 Model 역할과 같다. 실제적 데이터를 가지고 있고 이것을 Presenter가 소유하고 갱신하는 역할을 한다. View와는 독립되어있다 View iOS의 UIView와 UIViewController가 여기에 속하며 모든 비즈니스 로직은 Presenter에 맡긴다. 그래서 Passive View라고도 불린다 Presenter UIKit을 사용하지 않는 비즈니스 로직을 모두 수행한다. 또 Model의 데이터를 가공해 View에서 보여주기 위한 UI 친화적인 포맥으로 바꾸는 역할도 한다. 장점 기존의 MVC 패턴이 가지고 있는 장점을 유지한 채 보여주는 부분과 비즈니스 로직 부분을 나눠 모듈화의 정도를 ..

패스트캠퍼스 챌린지 40일차

3월 4일 금요일 / 40일 차 Part 5 - CH 04 번역기 앱 만들기 NSAtributedString 텍스트 자체에 스타일(색상, 자간, 행간 등)을 설정할 수 있는 텍스트 타입 [ class NSAttributedString : NSObject ] NSMutableAttributedString NSAttributedString의 특정 범위 NSRange에 다양한 스타일(색상, 자간, 행간 등)을 설정할 수 있는 텍스트 타입 [ class MSMutableAttributedString : NSObject ] 복습할 내용 - Delegate를 이용한 UI 작동 이해 오늘의 공부 후기 오늘은 강의 시간만 4시간가량 되는 번역기 앱을 구현해봤습니다. 앱을 만들어보기 전에는 UI만 보고 간단할 것 같다고..

패스트캠퍼스 챌린지 39일차

3월 3일 목요일 / 39일 차 Part 5 - CH 03 별다방 앱 만들기 HStack, LazyHStack ,List는 Cell의 재사용 여부와 정도에 따라 가장 크게 구분된다(Reuse) HStack 초기화 시점에 모든 View를 생성함 LazyHStack 초기화 시점에 모든 Cell을 생성하지 않음 최대 index 31까지 데이터의 Cell(View)를 생성 List 초기화 시점에 모든 Cell을 생성하지 않음 UITableView와 비슷함 보여질 필요가 있는 Cell(View)만 생성 Cell의 삭제/추가 기능이 있음 @State 화면 상태를 나타내거나 표시할 때 사용되는 타입 String, Int, Bool과 같은 간단한 값을 저장하고 View의 현재 상태를 표시하기 위해 사용 [ ex) @S..

패스트캠퍼스 챌린지 38일차

3월 2일 수요일 / 38일 차 Part 5 - CH 02 코로나19 예방 접종 센터 조회 앱 만들기 내용 요약 Combine - Combine 프레임워크는 시간이 지남에 따라 값을 처리하기 위한 선언적 스위프트 API를 제공한다. - 이러한 값은 여러 종류의 비동기 이벤트를 나타낼 수 있습니다. - 게시자를 결합하여 시간이 지남에 따라 변경될 수 있는 값을 노출시키고, 가입자는 게시자로부터 해당 값을 수신합니다 - Publishers (RxSwift로 비교하자면 Observable) 하나 이상의 Subscriber 인스턴스로 요소를 전달합니다. subscriber의 Input 및 Failure 관련 타입은 게시자가 선언한 Output 및 Failure 타입과 일치해야 합니다. subscriber를 받기..

패스트캠퍼스 챌린지 37일차

3월 1일 화요일 / 37일 차 Part 5 - CH 01 내 근처 편의점 찾기 앱 내용 요약 CLLocationManager - 앱에 대한 위치관련 이벤트 전달을 시작하거나 중지하는데 사용하는 객체 - 앱에 위치 서비스를 추가하려면 CLLocationManager을 사용해서 CLLocationManagerDelegate를 구현하고 앱에 필요한 위치 정보에 액세스 할 수 있는 권한을 부여할지 여부를 결정하게 됨 - 사용자가 권한을 거부했을 때 오류처리를 할 수 있음 - 앱에 필요한 승인상태를 결정할 수 있음(항상사용, 이번 한번만 사용, 앱을 실행할 때만 사용) - 사용자의 현재 위치에서 크거나 작은 변화를 추적 - 나침반에서 방향 변경 추적 - 사용자 위치 기반 이벤트 생성 - 근거리 데이터 통신기기(..

패스트캠퍼스 챌린지 36일차

2월 28일 월요일 / 36일 차 Part 4 중요 내용 전체 복습 내용 요약 SwiftUI 2019년 Apple의 WWDC에서 처음 소개가 되었습니다 기존에는 스토리보드(Storyboard)로 모든 화면의 구축과 흐름을 구성하고 ViewController에서 로직을 구현했지만 SwiftUI는 Swift 언어만으로 간편하고 더 빠르게 사용자 인터페이스를 구현할 수 있게 되었습니다. 선언적 구문을 사용하여 단순하지만 직관적인 구문을 이용하여 화면을 구성할 수 있게 해줍니다 기본적으로 레이아웃에 포함될 컴포넌트와 그 컴포넌트가 속하게 될 레이아웃 매니저의 종류과 속성만 선언해주면 됩니다. 레이아웃의 위치와 컨스트레인트, 렌더링 방식은 swifUI가 효율적인 방법으로 자동으로 처리하게 됩니다. 레이아웃이 선언..

패스트캠퍼스 챌린지 35일차

2월 27일 일요일 / 35일 차 Part 4 - CH 05, 06, 07 RxSwift, RxCocoa, MVVM 복습 내용 요약 RxSwift 구성 요소 - Observable - Rx 코드의 기반 - T 형태의 데이터 snapshot을 '전달' 할 수 있는 일련의 이벤트를 비동기적으로 생성하는 기능 - 하나 이상의 observers가 실시간으로 어떤 이벤트에 반응 - 세 가지 유형의 이벤트만 방출 - Operator - 주로 비동기 입력을 받아서 출력만 생성하기 때문에 퍼즐처럼 자신들끼리 조합하고 결합할 수 있다 - Scheduler Observable - Rx의 심장 - Observable = Observable Sequence = Sequence - 비동기적(asynchronous) - Obse..

패스트캠퍼스 챌린지 34일차

2월 26일 토요일 / 34일 차 Part 4 - CH 07 당근 마켓 스타일 중고거래 앱 만들기 MVC - Model - View - Controller - View + Controller - 비즈니스 로직과 View가 혼합되기 쉬움 MVVM - Model - View - ViewModel - Cocoa Framework 의존도 낮음 - 순수한 비즈니스 로직 보존 - VIewModel은 View를 몰라도 되는 장점 복습할 내용 - MVC와 MVVM의 차이점 - MVVM으로 리팩토링 하는 과정 오늘의 공부 후기 오늘은 개인적으로 가장 중요하다고 생각되는 MVVM에 대해서 배워봤습니다. 기존에 MVVM에 대해서 간단하게만 알고 있었고 채용 공고 우대사항에 대부분 MVVM 사용 경험이 있는 사람을 찾아서 꼭..

패스트캠퍼스 챌린지 33일차

2월 25일 금요일 / 33일 차 Part 4 - CH 06 다음 카페/블로그 검색 앱 만들기 내용 요약 Observable = Observable Sequence = Sequence - next(element) : element를 감싸서 내뿜는 이벤트 - error(Swift.Error) : Error를 발생하고 해당 Observable을 종료시켜서 이 후에 더 이상 이벤트가 발생하지 않게 함 - completed : 해당 Observable이 종료되고 더 이상 이벤트가 발생하지 않음 Traits - Single - Maybe : Single과 유사하지만 completed 이벤트까지 포함함 - Completable : complete와 failure만 가짐 subject - PublishSubjext(..

패스트캠퍼스 챌린지 32일차

2월 24일 목요일 / 32일 차 Part 4 - CH 05 RxSwift 복습 내용 요약 Single - Success 또는 Error 이벤트를 한번만 방출하는 Observable Maybe - 성공적으로 Complete 되더라도 아무런 값을 방출하지 않는 형태의 Complete을 포함함 Completable - Completed 또는 Error 만 방출함 - Completable Create를 이용하여 생성 (Single이나 Maybe처럼 as로 Observable을 변환할 수 없음) - 어떠한 값도 방출하지 않음 - 동기식 연산의 성공 여부를 확인할 때 유용함 Subject - Observable이자 Observer - PublishSubject : 빈 상태로 시작하여 새로운 값만을 subscri..

728x90