728x90

분류 전체보기 80

패스트캠퍼스 챌린지 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..

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

2월 23일 수요일 / 31일 차 Part 4 - CH 05 GitHub 앱 만들기 내용 요약 비동기 API - Notification Center - The delegate pattern - Grand Central Dispatch(GCD) - Closures RxSwift 사용시 Benefits - Composable - Reusable - Declarative - Understandable and concise - Stable - Less stateful - Without leaks RxSwift 기본 개념 Every Observable instance is just a sequence 구성 요소 - Observable - Rx 코드의 기반 - T 형태의 데이터 snapshot을 '전달' 할 수 있..

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

2월 22일 화요일 / 30일 차 Part 4 - Ch 04 인스타그램 앱 만들기 내용 요약 강의 순서 1. 인스타그램 피드 화면 구현하기 2. 프로필 화면 구현하기 3. 인스타그램 게시물 업로드 화면 구현하기 4. 인스타그램 게시물 업로드 기능 구현하기 5. 버전관리와 Git 6. Xcode Project를 GitHub 과 연동시키기 화면 구성 UITabBarController - 두 개의 Tab으로 구성 - FeedViewController - house (선택되어 있지 않을 때) - house.fill (선택되었을 때) - ProfileViewController - person (선택되어 있지 않을 때) - person.fill (선택되었을 때) FeedViewController - UINaviga..

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

2월 21일 월요일 / 29일 차 Part 4 - Ch 03 지하철 도착 정보 앱 만들기 내용 요약 구현 순서 1. 지하철역 검색화면 구현하기 2. 도착 정보 화면 구현하기 3. 비동기 처리 알아보기 4. 지하철 도착 정보를 가져오는 네트워크 통신 구현하기 5. 지하철 도착 정보 데이트를 화면에 표시하기 1 6. 지하철 도착 정보 데이트를 화면에 표시하기 2 UINavigationBar UISearchController - UIKit의 UI 컴포넌트 중 하나 - UINavigationItem으로 사용 - 검색창을 유저가 선택했을때 모든 동작을 컨트롤할수 있는 집약체 UISearchBar - UISearchController에 소속되어 있는 검색창 모양의 UI 컴포넌트 UITableView - UISear..

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

2월 20일 일요일 / 28일 차 Part 4 - Ch 02 앱스토어 앱 만들기 마무리 내용 요약 앱스토어 앱 구현 순서 0.UITabBarController 구현 - 투데이 Tab Bar - 앱 Tab Bar 1. 투데이 Tab 화면 구현하기 - UICollectionView Header - UICollectionView Cell 2. 앱 Tab 화면 구현하기 - UINavigationBar - UIScrollView, UIStackView, UICollectionView 3. 앱 상세 화면 구현하기 4. UI와 앱스토어 데이터 연동하기 5. Share Sheet 알아보기 6. 앱 상세 화면에서 공유 기능 구현하기 데이터 연동하기 (plist 이용) - 애플에서 앱스토어 앱 API를 제공하지 않으므로 ..

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

2월 19일 토요일 / 27일 차 Part 4 - CH 01, 02 자산 관리 앱 오류 수정 및 복습 앱스토어 앱 만들기 예습 내용 요약 앱스토어 앱 구현 순서 1. 투데이 Tab 화면 구현하기 2. 앱 Tab 화면 구현하기 3. 앱 상세 화면 구현하기 4. UI와 앱스토어 데이터 연동하기 5. Share Sheet 알아보기 6. 앱 상세 화면에서 공유 기능 구현하기 *오탈자 확인을 잘하자.. 복습할 내용 - 반복 확인의 중요성 깨닫기 - 문제가 생겼을 때는 원초적인 문제부터 확인하기.. 오늘의 공부 후기 어제 자산 관리 앱을 만들고 사실 오류에 부딪혀 막히는 현상이 발생했습니다.. 실습을 그대로 따라 했지만 AssetSummaryView에서 데이터를 계속 못 받아오는 상황이 생겨서 몇 시간에 거쳐 코..

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

2월 18일 금요일 / 26일 차 Part 4 - CH 01 자산관리 앱 만들기 내용 요약 Stack - HStack : 수평으로 View를 쌓는 Stack - VStack : 수직으로 View를 쌓는 Stack - ZStack : 동일한 수직과 수평 값을 갖지만 View를 겹쳐서 쌓는 Stack Grid - LazyVGrid : 위,아래로 스크롤 하는 그리드 뷰 - LazyHGrid : 좌우로 스크롤 하는 그리드 뷰 * Lazy - 그릴 필요 없는 아이템들은 생성하고 있지 않다가 사용자가 스크롤을 하면서 화면에 그려야하는 시점에 아이템을 생성하게 됩니다 List - 이름 그대로 목록(List) 인터페이스를 구현하기 위해 존재합니다 - UIKit의 UITableView와 하는 일이 유사합니다 Form -..

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

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

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

2월 16일 수요일 / 24일 차 Part 3 내용 총정리 및 복습 UICollectionView를 구현하기 위한 Class와 Protocol (CH 06 중요 부분) Purpose Classes/Protocols Top-level containment and management UICollectionView UICollectionViewController Content management UICollectionViewDataSource UICollectionViewDelegate Presentation UICollectionViewReusableView UICollectionViewCell Layout UICollectionViewLayout UICollectionViewAttributes UIColl..

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

2월 15일 화요일 / 23일 차 Part 3 내용 총정리 및 복습 내용 요약 OAuth - 사용자 인증 방식에 대한 업계 표준 - ID/PW를 노출하지 않고 OAuth를 사용하는 업체의 API 접근 권한을 위임 받음 APNS(Apple Push Notification Service) : 각 기기의 상태를 확인하여 상태에 따라서 알림을 저장후에 보내주고, 최신의 알림 상태를 관리하는 등에 관리 센터 역할을 함 Firebase Cloud Messaging 주요 기능 - 원격 알림 메시지 전송 : 사용자에게 표시되는 알림 메시지를 실시간 또는 예약 전송 - 다양한 메시지 타겟팅 : 단일 기기, 기기 그룹, 주제를 구독한 기기 - 발송 메시지 저장, 관리 : 알림 내용, 상태, 플랫폼, 최종 전송 시간, 열람..

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

2월 14일 월요일 / 22일 차 CH07 브루어리 소개 앱 만들기 내용 요약 [OSI 7계층] 1레벨: 물리 계층 - 전압 레벨, 데이터 속도, 최대 전송 거리, 커넥터 - 케이블, 모뎀, 리피터 2레벨: 데이터 링크 계층 - 데이터 오류 감지, 복구 - MAC 주소 3레벨: 네트워크 계층 - 논리 주소 정의 - IP 주소 4레벨: 전송 계층 - 데이터 흐름 제어 - TCP, UDP 5레벨: 세션 계층 - 통신 장치간의 상호작용 설정, 유지, 관리 6레벨: 표현 계층 - 7레벨에 적용되는 데이터 형식, 코딩, 변환 기능 - 파일 확장자 7레벨: 응용 계층 - 앱 상의 네트워크 - HTTP URL(Uniform Resource Locator) ex) http:// iosgoal.tistory.com :8..

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

2월 13일 일요일 / 21일 차 CH06 넷플릭스 스타일 영화 추천 앱 만들기 UICollectionView를 구현하기 위한 Class와 Protocol Purpose Classes/Protocols Top-level containment and management UICollectionView UICollectionViewController Content management UICollectionViewDataSource UICollectionViewDelegate Presentation UICollectionViewReusableView UICollectionViewCell Layout UICollectionViewLayout UICollectionViewAttributes UICollection..

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

2월 12일 토요일 / 20일 차 CH05 재난문자 푸시 알림 구현하기 - 개발자 등록 내용 요약 Remote Notification APNS(Apple Push Notification Service) : 각 기기의 상태를 확인하여 상태에 따라서 알림을 저장후에 보내주고, 최신의 알림 상태를 관리하는 등에 관리 센터 역할을 함 - 보안 관리 : 보안 아키텍쳐를 통해 보안을 관리함(Connection trust, Device token) Connection trust ㄴ Provider(Server) - APNs (애플과 계약을 맺은 회사가 소유한 승인된 공급자만 APNs와 연결하여 Push전달을 하게 함) 1. token-based : valid authentication key certificate(토..

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

2월 11일 금요일 / 19일 차 CH04 물 마시기 알람 앱 만들기 내용 요약 기능 구현 - 알림을 추가할 수 있음 - Trigger 중 Calendar을 이용하여 알림 발송 조건을 설정해줌 - 스위치를 통해 알림을 끄고 켤수 있음 - 알림이나 소리 설정이 꺼져있으면 알림이 발송되지 않고, 켜져있으면 알림 발송 Local Notification(로컬 알림) - 사용자의 관심을 끌기위해 소리나 화면에 알림을 표시해 줌 UN(User Notification)NotificationRequest : 알림 요청 ㄴ identifier : 각각의 요청을 구분할 수 있는 ID ㄴ Content : 알림에 나타날 내용 정의(타이틀, 내용, 소리 등) ㄴ Trigger : 알람이 어떤 기준에서 발송될건지 선언하는 일종..

서버에 Push한 Commit 삭제하기

멍청하게도 깃허브에 API 키 값을 Push 해버리는 일이 발생했다.. API Key를 깃허브에 올리게 된다면 GitGuardian에서 감지하여 가입 시 설정해둔 메일로 안내 메일이 날아온다. 이래서 철저하게 검사하고 신중히 Push 하는 습관이 중요한 것 같다ㅠ 이럴 때 깃허브에 Push 한 Commit을 제거하는 명령어는 다음과 같다. 1. 터미널에서 해당 폴더 경로로 이동하여 삭제할 Commit을 확인한다 git log 2. 가장 마지막에 있는 Commit을 지우고 싶기 때문에 다음 명령어를 통해 삭제한다 git reset HEAD^ 3. Commit을 삭제했다는 것을 깃허브 서버에 알려주어 깃허브에서 해당 Commit을 삭제한다 git push -f origin 브랜치명 //브랜치명은 예를 들어 ..

Git 2022.02.11

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

2월 10일 목요일 / 18일 차 CH03 실시간 공지사항 팝업 만들기 내용 요약 Firebase Remote Config - 배포없이, 업데이트 다운로드 없이 앱 변경 - 기본값 설정 후 값 재정의 - 클라우드 기반 key-value 저장소 주요기능 - 앱 사용자층에 변경사항을 빠르게 적용 ㄴ 업데이트 없이 앱의 UI/UX 변경 지원 - 사용자층의 특정 세그먼트에 앱 맞춤설정 ㄴ 앱 버전, 언어 등으로 분류된 사용자 세그먼트별 환경 제공 - A/B 테스트를 실행하여 앱 개선 ㄴ 사용자 세그먼트별로 개선사항을 검증 후 점진적 적용 A/B 테스팅 - Google Analytics, Firebase 예측을 통한 사용자 타겟팅 - 원격 구성(Remote Config 또는 알람작성기(Cloud Messaging..

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

2월 9일 수요일 / 17일 차 CH02 카드 추천 리스트 앱 만들기 - 기능 구현 내용 요약 카드 추천 리스트 앱에 사용된 Firebase Database연동 방법 1. Firebase 모듈 불러오기 import FirebaseDatabase 2. Firebase Realtime Database 연결 var ref: DatabaseReference! 3. Database에 접근 ref = Database.database().reference() 4. 추가한 데이터에 접근 ref.observe(.value) { snapshot in guard let value = snapshot.value as? [String: [String: Any]] else { return } do { let jsonData = ..

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

2월 8일 화요일 / 16일 차 CH02 신용카드 추천 리스트 앱 만들기 - UI 구현 내용 요약 Database - 데이터의 집합체 - 일반적으로 관계형 데이터 베이스 형태 (행과 열로 이루어진 테이블을 구성하며, 테이블 끼리 관계형을 이루어 모인 것이 데이터베이스) 쿼리 (Query) - 데이터베이스에 정보를 요청하는 것을 의미 Firebase Realtime Database, Cloud Firestore (Firebase에서 제공하는 데이터베이스) - 비관계형 클라우스 데이터 베이스 - 실시간 (HTTP 요청이 아닌 동기화 방식) - 오프라인 (로컬에 저장 후 네트워크 연결시 동기화) - 서버 없이 (데이터베이스와 클라이언트 직접 액세스 차이점 용도 Realtime Database - 하나의 큰 J..

728x90