일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 코딩테스트입문
- 앱의생명주기
- SWIFT
- TDD
- alamofire
- five lines of code
- RxSwift
- UIKit
- AutoLayout
- Safari Inspector
- 클린코드
- css학습
- 리팩터링
- RC
- firebase
- 카카오맵클론
- unittest
- ios면접
- hackerrank
- IOS
- Swift코딩테스트
- mrc
- firestore
- storekit2
- ARC
- 프로그래머스
- five lines of cdde
- Di
- Swift디자인패턴
- algorithm
- Today
- Total
목록전체 글 (97)
샘성의 iOS 개발 일지
개요 저번주에 HIG 스터디에서 Launching 부분을 주제로 공부하였다. 스터디에서 출시한 앱 중 한 앱이 ‘앱을 처음으로 설치 → 실행’ 경우 사용자 정보를 요구한 것이 떠올라 이를 회고하고 리펙토링 하기로 했다. 리펙토링 계획 우선, 해당 앱은 MVC 패턴, CoreData, Podfile, SPM등의 외부 라이브러리가 전혀 들어가있지 않은 상태이다. (심지어 네트워킹도 URLSession으로 함) 정보를 요청하는 화면 제거하기 MainVC에서 유저의 이름 부분을 터치 가능하도록 하기 유저 정보 없을 시에, "User"를 이름 대신 노출 터치시, 이름 등록 및 수정 하는 얼럿창 노출 지역을 나타내는 글자 옆에 버튼 추가하기 기본 날씨 제공 지역은 '서울'로 설정하기 버튼 터치시 CLLocation..
1. 재공학 1-1) 소프트웨어 재공학(Software Reengineering)의 개념 💡 “기존의 시스템을 변경 혹은 재구조화 해서 사용하자.” 소프트웨어 위기를 유지보수의 생산성으로 해결하려는 방법을 뜻함 1-2) 재공학의 장점, 목표, 과정 장점 개발 시간 및 비용 감소 품질 향상 (기존에 존재하는 것을 다시 만든 것이니까) 신뢰성 향상 (기존에 사용했기 때문에 검증됨) 구축 방법에 대한 지식의 공유, 프로젝트 실패 위험 감소 목표 최우선 목표는 소프트웨어 유지보수성 향상이다. 복잡한 시스템을 다루는 방법 구현, 다른 뷰의 생성, 잃어버린 정보 복구 및 제거 재사용을 수월하게 해서 소프트웨어의 수명을 연장시키자. 과정 분석(사용 가치 여부 분석) → 구성(구조 리펙토링) → 역공학(기존에 있는 것..
1. 소프트웨어 💡 컴퓨터를 동작시키고 어떤 일의 처리 순서와 방법을 지시하는 명령어의 집합인 프로그램 (e.g. 앱) 1-1) 소프트웨어 특징 상품성: 상품이 되어 판매가 가능 복잡성: 개발하는 과정이 복잡하고 관리가 어려움 변경 가능성: 프로그램 업데이트 가능 오류 개선 및 업그레이드 복제성: 복제가 용이하여 쉽게 복사 및 유통 가능 앱 하나 만들면 여러명이 다운 받을 수 있음 1-2) 시스템의 개요와 기본 요소 시스템의 개요 컴퓨터로 처리 가능한 자료를 입력, 저장, 처리, 가공해 출력할 수 있도록 하는 정보 체계 기본 요소 (5가지) 입력, 처리, 출력, 제어, 피드백 1-3) 소프트웨어 위기 소프트웨어의 개발 속도가 하드웨어의 개발 속도를 따라가지 못해 사용자들의 요구사항 감당 못 하는 문제가 ..
문제 설명: There is a large pile of socks that must be paired by color. Given an array of integers representing the color of each sock, determine how many pairs of socks with matching colors there are. Example n = 7, ar = [1, 2, 1, 2, 1, 3, 2] There is one pair of color 1 and one of color 2. There are three odd socks left, one of each color. The number of pairs is 2. Function Description Complete th..
1. 이진 탐색이란? 탐색할 자료를 두 파트로 나누어 둘 중 찾으려는 자료가 있는 파트를 탐색 하는 것. 탐색할 자료가 정렬이 된 경우에만 사용 가능하다. 2. 이진 탐색 살펴보기 이진탐색은 친구들과 많이 했던 업다운 게임의 원리와 동일하다 보면 이해하기 쉽다. 한번 어떤 원리인지 살펴보자. 1. 하단처럼 9개의 요소를 가진 정렬된 배열이 있다. 2. 해당 배열의 mid(중간 index의 값)을 추출한다. 3. 찾으려는 자료값이 mid보다 큰지 작은지 비교한다. (같을 경우 mid의 index를 return한다) 4. mid보다 큰 경우, 주황색 화살표 영역의 중간값과 다시 비교한다. 5. mid보다 작은 경우, 파란색 화살표 영역의 중간값과 다시 비교한다. 6. 2~5의 과정을 반복한다. 3. 이진 ..
1. 제어하고 싶은 앱의 요소 선정 Firebase Remote Config로 제어하고 싶은 앱의 요소를 선택한다. 필자는 'titleLabel', 'detailLabel', 'dateLabel'과 해당 'mainVC에서 해당 팝업뷰를 띄울지 여부' 총 4가지를 제어할 것이다. 2. 프로젝트에 Firebase 세팅하기 1. Firebase에서 새 프로젝트를 만든 후, 기본적인 세팅들을 다 끝낸다. 대신 유의할 점은 꼭 'Google 애널리틱스' 사용 설정이 되어야한다. 2. 하단의 2가지 pod file을 install 한다. pod 'Firebase/RemoteConfig' pod 'Firebase/Analytics' 3. install이 완료 된 프로젝트의 AppDelegate - didFinishL..
1. 테스트 내용 선정 오늘 테스트하고자 하는 것은 하단의 3가지이다. View의 Action이 Reactor에게 잘 전달 되었는지 확인 Reactor가 전달받은 Action에 대한 Mutation을 잘 작동시켰는지 State 상태 확인 Reactor의 State를 View가 잘 구독하고 있는지 확인 2. 테스트 방식 테스트 방식은 SUT 설정 테스트 시나리오 작성 및 실행 (GWT 형식) 순서로 진행될 것이다. (만약 이 내용이 이해가지 않는다면 하단의 게시글 참고 부탁드립니다.) [XCTest] Unit Test작성하기 (feat. RxSwift) 1. Unit Test란? 가장 작은 단위의 테스트로, 앱의 동작을 위해 작성한 코드(기능) 1개가 의도대로 잘 작동하는지 검증하는 것을 목적으로 둔다...
1. ReactorKit이란? 단방향 데이터 흐름을 가진 반응형 앱에 적합한 프레임워크. 기본적으로 RxSwift를 활용하고 있고 개인적으로 더 아키텍처가 통일된 MVVM(?)이라는 느낌을 준다. 2. GitHub : GitHub - ReactorKit/ReactorKit: A library for reactive and unidirectional Swift applications A library for reactive and unidirectional Swift applications - GitHub - ReactorKit/ReactorKit: A library for reactive and unidirectional Swift applications github.com 3. ReactorKit의 구..