한 일 (22일 ~ 24일)
moti 2.0 개발 시작
내용
일이 바쁘다는 핑계로 미뤘던 moti 리팩토링을 시작했습니다. (Github Repository)
지금까지 느낀 moti의 문제점과 저의 문제점을 개선하는 게 가장 큰 목표이고,
주요 개선 사항은
1. 서버를 Firebase로 변경한다.
2. 테스트를 적극 연습한다.
입니다.
잘한 점
1.
시작을 했다는 게 가장 잘한 거 같아요.
시작으로 반을 채웠으니, 나머지 반도 열심히 채우겠습니다.
2.
프로젝트의 목표를 명확히 정하고 글로 정리했습니다. (보러가기)
해야 하는 것과 하지 말아야 할 것으로 나누어 적었더니 제가 이 프로젝트로 무엇을 이루고 싶은지 명확해졌어요.
시간과 열정은 무한하지 않으니 효율적이고 알차게 다루려고 합니다.
3.
테스트를 적극 연습하기로 결심했습니다.
네이버 부스트캠프에서 들었던 "테스트 없는 리팩토링은 기적에 의지하는 것이다"라는 말이 떠올랐어요.
moti 2.0이 테스트를 연습할 최고의 기회라고 느껴졌고, 바로 실행하기로 결심했습니다.
깃허브 액션을 이용해 PR을 생성하면 자동으로 Unit 테스트를 수행하도록 설정도 했답니다.
테스트 코드를 먼저 작성하는 게 아직은 낯설고 어렵지만, 점차 속도가 붙는 것을 기대하고 있어요.
단, 지나친 TDD에 테스트에 부정적인 경험을 남기지 않도록 주의하려고 해요.
제가 연습하고 싶은 건 "테스트"지 TDD가 아니라는 것을 꾸준히 상기할 예정입니다.
아쉬운 점
1.
개발 진척이 느렸어요.
퇴근 후 집중력이 많이 떨어진 게 체감되더라고요.
약한 체력이 문제라고 생각해서 출근 전 시간을 이용해 가벼운 산책부터 해보려고 해요.
2.
코딩테스트 대비를 못했어요.
꾸준한 코테 준비의 필요성을 느끼는데 반해 실행을 못하고 있네요.
열정으로 해결할 수 있는 문제라서 자괴감이 더 큰 거 같습니다.
쉬운 문제라도 무조건 하나씩 해결해보려고 해요.
JeongDesignSystem 개발 시작
내용
개인 프로젝트에서 사용할 디자인 시스템 라이브러리 개발을 시작했습니다.
모든 개인 앱에 디자인 시스템을 도입하여 일관성 있는 UI를 가지는 게 목표입니다.
다만,
1. 자세한 규칙과 샘플 앱이 있다면 피그마가 없어도 된다.
2. 디자인 시스템이니 디자인 프로그램으로 작성한 디자인 결과물이 있어야 한다.
두 개의 의견이 싸우는 상태예요 ㅠ
잘한 점
1.
시작했다는 게 가장 잘한 일 같아요.
최근 디자이너와 협업하며 겪은 좋은 경험 덕분에 의욕이 샘솟았던 거 같아요 :)
위에서 말한 moti 2.0에 도입하는 날까지 파이팅 하려고 합니다.
아쉬운 점
1.
프로젝트만 생성했다는 게 아쉬워요.
내용에서 언급한 고민이 가장 큰 원인 같아요.
이것도 일단 시작하고 프로젝트 사이즈가 커지면 다음 고민을 해봐야겠어요.
2.
어떤 컴포넌트를 정리할지 정하지 않는 게 아쉬워요.
단순히 모든 View를 디자인 시스템에 넣는 게 최선은 아니라고 생각해요.
제 개인 앱에서 통일하고 싶은 컴포넌트가 무엇인지부터 파악하려고 해요.
개인 학습 - Swift difference(from:)
내용
당근이 공개한 KarrotListKit을 보고 Swift의 difference에 대해 알게 되었습니다.
difference(from:)를 학습하고 블로그에 정리하였습니다. (보러가기)
잘한 점
1.
오랜만에 Swift 문법 포스팅을 작성했어요.
Swift 학습은 언제나 새롭고 재밌는 거 같아요.
2.
다른 사람의 코드로 학습했어요.
"다른 사람의 코드를 봐야 성장할 수 있다."를 체감하고,
특히 팀원, 지인이 아닌 아예 모르는 사람의 코드로 배웠다는 의미가 컸어요.
고수의 코드를 본다는 것이 조금은 두려웠는데, 두려움은 줄어들고 즐거움은 커진 거 같아요.
아쉬운 점
1.
옛날처럼 깊게 학습하지 못했어요.
예를 들어, KarrotListKit에서는 DifferenceKit이라는 라이브러리를 사용하고 있어요.
Swift의 difference는 O(NM)인데 반면 DifferenceKit은 O(N)이라는 장점이 있어요.
그래서 DifferenceKit까지 학습하는 게 목표였는데 달성하지 못했네요.
단순 DifferenceKit 이론 학습이 아니라, moti 2.0에 도입해 보면서 DifferenceKit 라이브러리 자체를 익혀보려고 해요.
할 일 (25일 ~ 28일)
moti 2.0 개발
내용
moti 2.0 개발을 진행할 예정입니다.
개발 진척이 느렸던 것을 반성하고, 조금 더 속도를 내보려고 해요.
최소 목표
1. Launch 화면 개발 및 테스트 완료, 개선 후기 작성
2. Login 화면 개발 및 테스트 완료, 개선 후기 작성
3. moti 2.0에서 사용할 third-party 라이브러리 확정
최대 목표
1. Home 화면 테스트 코드 작성
2. Snapkit 대신 사용할 오토 레이아웃 모듈 개발
코딩테스트 준비
내용
쉬운 문제라도 무조건 하루에 한 문제는 해결할 예정입니다.
코테 준비는 하기 싫지만, 그만큼 iOS 개발이 재밌어지지 않을까 기대 중입니다 ㅎ;
최소 목표
1. 하루 한 문제 해결 및 push
최대 목표
1. 주말에는 두 문제 해결
JeongDesignSystem 개발
내용
JeongDesignSystem도 조금씩 개발하려고 해요.
개발이 아니더라도 정책 확립, 구체적인 방법 등을 고민할 예정입니다.
최소 목표
1. JeongDesignSystem의 유니크 네이밍 결정하기 (e.g. JYButton, JDButton, JSButton...)
2. DesignSystem Rule 결정하고, Readme에 작성하기
최대 목표
1. Button 컴포넌트 개발하기