일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SwiftUI
- auto_assign
- ChatGPT
- Apple Developer Academy @ POSTECH
- LGTM
- IOS
- 하드디스크 삭제 원리
- firestore
- MVVM
- 쏙쏙 들어오는 함수형 코딩
- Swift thread
- swift CI 적용
- 2기화이팅
- 함수형 코딩
- os_log
- 오픈소스
- print 단점
- combine
- Swift
- CI
- unittest
- flutter
- xcode
- Firebase
- XCTest
- 액션과 계산 데이터
- SwiftUI VStack
- swift github action
- github
- 함수형 프로그래밍
- Today
- Total
목록분류 전체보기 (26)
개발공방
BaseViewController를 만든 이유 BaseViewController는 프로젝트가 시작될 때부터 만들어 사용하던 클래스였다. 팀원 중 한 분께서 공통으로 사용하는 BaseViewController를 만들고, 각 ViewController에서 상속받아 사용했을 때의 장점을 말씀해 주셨다. 그에 팀원 모두 납득하고 장점이 확실해서 따르기로 했다. 우리 프로젝트에서 공통으로 적용되는 부분은 세 가지가 있었다. View의 배경색 통일 커스텀 네비게이션 터치해서 키보드 내리기 위 기능들을 BaseViewController에 구현해두고 각 화면별 ViewController마다 상속받아 사용해서 불필요한 중복 코드를 줄일 수 있었다. 장점은 확실했다. 개발 시간도 줄게 되고, 내가 구현해야 하는 부분에만 ..
이 글의 목표 뭐야? 테스트 이게 끝이야? 별거 없잖아? 테스트 세팅 위 사진처럼 처음 프로젝트를 만들때 Test를 포함했다면 상관 없지만, 테스트를 포함하지 않았거나 위 사진처럼 Target에 Test가 없을땐 직접 추가해주면 된다. Test Target 추가하는 방법 위 사진 순서대로 Test Target을 추가하면 된다. 테스트 대상 우선 테스트 코드를 아주 쉽게 접근하기 위해 아주 간단한 테스트를 먼저 만나보자. 현재 애니또에서 사용하는 Entity중 하나인 RoomListItem 에 대한 테스트 코드를 작성해보겠다. struct RoomListItem { /// 방의 고유 id값 let id: Int /// 방 제목 let title: String /// 현재 진행 상태 let state: Ro..
노션에 먼저 작성한 후 블로그로 옮기기 때문에 노션이 보기에 더 편합니다 https://mingwan.notion.site/Moya-Unit-Test-5745af80d0414f3bbc8f785dd3775efd?pvs=4 들어가면서 Moya의 장점은 뭐가 있을까?? 장점으로 언급되는 곳에는 항상 테스트에 용이하다 라는 말이 항상 존재한다. 얼마나 용이하길래 항상 장점으로 꼽히는 것일까? 한번 알아보자. (Moya를 사용하면서 만들어봤던 영화 검색 프로젝트를 예시로 사용하겠다.) 간단히보는 Moya 사용법 본격적으로 알아보기 전에 아주 간단히 Moya의 사용법을 한번 더 짚고 넘어가자. 다들 알다시피 Moya를 사용하기 위해선 TargetType 이라는 protocol을 채택해야만 한다. import Fou..
노션에 먼저 작성한 후 블로그로 옮기기 때문에 노션이 보기에 더 편합니다 https://mingwan.notion.site/MVVM-Combine-Input-Output-2-3ad9c58dc84c4d0c9a14a34c52b25370?pvs=4 https://dev-workplace.tistory.com/23 [애니또] MVVM + Combine - 리팩토링 (3) 노션에 먼저 작성한 후 블로그로 옮기기 때문에 노션이 보기에 더 편합니다. https://www.notion.so/MVVM-Combine-323ab64639374213b1b1734fcea257e7?pvs=4 [애니또] ViewController와 View의 분리 - 리팩토링 (1) [애니또] View dev-workplace.tistory.co..
https://www.yes24.com/Product/Goods/108748841 쏙쏙 들어오는 함수형 코딩 - YES24 소프트웨어의 복잡성을 다루기 위해 꼭 읽어야 할 책이 책은 함수형 사고를 통해 의도하지 않은 복잡성이 코드 전체로 퍼져나가는 것을 막고 프로그래밍을 간단하게 하는 법을 담았다. 시스템 www.yes24.com 책에 나와있는 그림과 글들이 이해하기 편한 방식으로 전개되어서 최대한 내용을 그대로 옮겼습니다. 모든 내용을 다 옮긴것은 아니고 핵심이라고 생각하는 부분들을 이해하기 편할 정도로 옮겼습니다. 책의 내용이 정말 좋으니 꼭 구매하셔서 읽으시길 강추드립니다. https://mingwan.notion.site/2-148086723d0a406e9b890c71ed07b3c8?pvs=4 (..
https://www.yes24.com/Product/Goods/108748841 쏙쏙 들어오는 함수형 코딩 - YES24 소프트웨어의 복잡성을 다루기 위해 꼭 읽어야 할 책이 책은 함수형 사고를 통해 의도하지 않은 복잡성이 코드 전체로 퍼져나가는 것을 막고 프로그래밍을 간단하게 하는 법을 담았다. 시스템 www.yes24.com 책에 나와있는 그림과 글들이 이해하기 편한 방식으로 전개되어서 최대한 내용을 그대로 옮겼습니다. 모든 내용을 다 옮긴것은 아니고 핵심이라고 생각하는 부분들을 이해하기 편할 정도로 옮겼습니다. 책의 내용이 정말 좋으니 꼭 구매하셔서 읽으시길 강추드립니다. https://mingwan.notion.site/1-10f49168901b40e99f540cb1eedce92d?pvs=4 (..
쏙쏙 들어오는 함수형 코딩 - YES24 쏙쏙 들어오는 함수형 코딩 - YES24 소프트웨어의 복잡성을 다루기 위해 꼭 읽어야 할 책이 책은 함수형 사고를 통해 의도하지 않은 복잡성이 코드 전체로 퍼져나가는 것을 막고 프로그래밍을 간단하게 하는 법을 담았다. 시스템 www.yes24.com iOS 개발 1년이 지난 시점에 직면한 문제 2022년 4월부터 iOS 개발을 시작했으니, iOS개발도 1년을 넘었다. 작년의 과정을 본다면 어떤 기능들을 만들고 서비스를 만드는데 초점이 맞춰져 있었다. 항상 시간에 쫓겼고, 무언가를 빠르게 만들고 출시하는데 급급했던 것 같다. 그 당시에 계획했던 서비스를 만들어내는 과정까지는 크게 문제가 없었다. 하지만 이후에 새로운 기능을 기획하고 기존의 코드에서 새 기능을 추가하..
노션에 먼저 작성한 후 블로그로 옮기기 때문에 노션이 보기에 더 편합니다. https://www.notion.so/MVVM-Combine-323ab64639374213b1b1734fcea257e7?pvs=4 [애니또] ViewController와 View의 분리 - 리팩토링 (1) [애니또] ViewController와 View의 분리 - 리팩토링 (1) 현재 애니또 iOS팀이 직면한 문제 현재까지 개발하면서 많은 문제와 버그들을 만났다. 첫 문제들을 해결하는데는 어려움이 없었지만, 앱의 규모가 조금씩 커지면서 문제들이 서로 엮이기 시작했 dev-workplace.tistory.com 앞전에 작성한 글을 보면, UIViewController에서 View를 분리한 과정을 볼 수 있다. Delegate 패턴..
애니또 팀에서 아키텍쳐 패턴을 고민하던중 MVVM을 선택하게 되었다. 어떤 이유로 선택하게 되었는지 알아보겠다. 애니또 iOS 팀에서 MVVM을 선택한 이유 1. 테스트 가능성 우리의 목표는 테스트 가능한 코드였다. MVC에서는 테스트가 물론 가능할지 몰라도, 번거롭다. 왜냐하면 UIViewController에서 테스트가 필요한 함수들이 UI 코드와 엮여있기 때문이다. 테스트를 하기위해 UI관련 코드까지 작성해야하는 문제가 발생한다. 이런 문제들을 MVVM으로 해결할 수 있다. 비즈니스 로직들을 ViewModel이 소유하고 ViewModel은 View에 관해 일절 모른다. 그러기에 테스트 가능한 코드를 만들기 유리하다. 사실 1번의 이유만으로 충분하다. 2. 기능을 추가하기 힘든 기존의 아키텍처 패턴 M..
노션에 먼저 정리하고 블로그로 옮기기 때문에 노션이 더 보기 편할 수 있습니다. 노션 : https://star-team-55e.notion.site/LGTM-b735fbb31b314e0ebd881a2a9a2fada8 LGTM이란 뭘까?? "Looks Good To Me" 말 그대로 내가 보기엔 좋아보인다. 라는 뜻이다. LGTM은 코드리뷰에 굉장히 많이 사용되는 것 같다. 난 이 LGTM이 아주 강한 기능을 가지고 있다고 생각한다. 제목에서처럼 팀의 성장, 그리고 개개인 팀원의 성장까지 멈추게 만드는 아주 강한 단어라고 생각한다. 그렇게 생각하는 이유에 대해 적어보겠다. 읽기전에 짚고 넘어가고 싶은게, 많은 리뷰를 남기고 마지막 Approve에 LGTM에 대해서 얘기하는게 아니다. 별다른 리뷰 없이 L..