한 일 (4월 25일 ~ 4월 30일)
Unit Test 자동화
내용
테스트는 moti 2.0의 주요 목표 중 하나입니다.
따라서 Unit Test 자동화도 꼭 적용하고 싶었고, 깃허브 액션으로 자동화를 성공했습니다.
PR이 생성될 때, develop에 push할 때 Unit Test를 자동으로 수행합니다.
잘한 점
Unit Test를 적용하면서 여러 시행착오가 있었습니다.
이런 시행착오 속에서 Unit Test 자동화를 포기하지 않은 점이 뿌듯하네요.
이 뿌듯함이 moti 2.0을 진행하면서 꾸준한 테스트를 이끌 원동력이 되지 않을까 싶습니다.
또, 이 과정을 포스팅으로도 남겼습니다. (보러 가기)
옛날에는 문제가 생겼을 때 자연스럽게 기술 포스팅으로 이어졌는데,
최근에는 의식적으로 신경을 써야한다는 걸 깨달았습니다.
사내 글쓰기 모임에 참석한 게 신의 한 수였어요 👍
참 감사하고 잘한 점 같네요.
아쉬운 점
깃허브 액션을 이용한 Unit Test가 너무 오래 걸려서 아쉽습니다. (action@cache를 적용해도 마찬가지더라고요 ㅠ)
Package Resolved 시간이 n분이 되니까 테스트 자동화가 개발의 병목이 되고 있어요.
Unit Test 자동화의 의의 중 하나는 개발 생산성을 높이는 것인데, 오히려 생상선을 낮추니 참 고민됩니다.
이에 대한 고민을 마무리하지 못한 점이 아쉽습니다.
다음 주에는 어떻게 할지 결정할 예정입니다.
moti 2.0 런치, 로그인 화면 개발
내용
moti 2.0의 런치 화면과 로그인 화면을 개발했습니다.
잘한 점
MVVM InputOutput 패턴을 연습했습니다.
저에게 가장 잘 맞고 Combine과 찰떡인 패턴이라고 느껴져요.
원본 moti를 개발할 때는 시간에 쫓기고 이미 한 것들이 아까워 적용하지 못했는데요.
moti 2.0에서 적용을 한 점이 잘했다고 느껴져요.
테스트할 때도 input과 output이 명확해져서 만족스럽습니다..
테스트를 먼저 작성한 것도 잘한 점이에요.
매번 구현 먼저 하고 싶다는 유혹이 생기는데 그걸 뿌리치고 테스트 코드로 먼저 가는 게 참 잘한 점 같습니다.
이런 유혹은 보통 로직이 간단할 때 생겼어요.
로직의 중요성과 복잡성이 비례하지는 않는데 "간단한 로직이니까 구현 먼저 할까?"라는 생각이 들더라고요.
이때 한 번 더 moti 2.0의 목표롤 상기하면서 테스트 코드를 먼저 작성했습니다.
첫 술부터 배부를 순 없으니 이런 유혹을 캐치하고 끊은 것에 의의를 두고 싶네요 😀
마지막으로 프로젝트의 구조를 다이어그램으로 그렸습니다. (README에서 볼 수 있어요 🙂)
다이어그램을 작성하면 의존성을 관리하거나 하나의 객체가 너무 많은 역할을 하는게 아닌지 살펴볼 수 있어요.
프로젝트 코드를 보기 전, 큰 구조를 그림으로 볼 수 있도록 관리하려고 합니다.
아쉬운 점
기존 디자인과 너무 상이하고 간단하게 구현한게 아쉬웠습니다.
예쁜 디자인이 1순위 목표는 아니지만 그럼에도 아쉬움은 들더라고요.
최근 디자인 시스템을 개발하면서 피그마를 살펴보고 있는데, 예쁘고 편한 UI/UX 디자인에도 도전하려고 합니다.
moti 2.0 홈 화면 테스트 코드 작성
내용
moti 2.0의 홈 화면 테스트 코드를 작성했습니다.
사진 리스트와 카테고리 리스트와 관련된 테스트 코드를 작성했어요.
잘한 점
moti 1.0을 개발하면서 겪은 시행착오를 테스트 코드에 녹였습니다.
edge 케이스나 로직 시나리오를 떠올려 테스트 코드로 작성했어요.
분명 빠진 케이스가 있겠지만, 여러 상황을 고려하여 테스트 코드를 작성한 점이 좋았습니다.
(이래서 경력직을 좋아하나 봐요 ㅎ;)
아쉬운 점
과거에는 이 많은 시나리오를 테스트 없이 작성했어요.
갑자기 아찔해지면서 과거의 제가 참 아쉽더라고요.
이왕 하는거 여러 edge 케이스도 더 궁리해서 로직을 바꿔도 안전이 보장되는 코드를 작성해야겠어요.
JeongDesignSystem JDColor 개발
내용
JeongDesignSystem 중 JDColor를 정의하여 개발했습니다.
JDColor는 저의 개인 프로젝트에서 사용하는 색상을 정의하는 모델입니다.
이번 구현에서는 primaryColor와 backgroundColor를 정의했습니다.
잘한 점
목표를 지키고자 노력한 점이 잘했습니다. (잘한 게 그만큼 없었따...)
moti 2.0 개발에 좀 더 시간을 쓰고 싶은 마음, 쉬고 싶은 마음 등 JeongDesignSystem 개발을 막는 여러 유혹이 있었는데요.
이런 유혹을 뿌리치고 정한 목표를 달성했다는 점이 잘했네요... 🫠
아쉬운 점
아직 JeongDesignSystem 개발의 필요성이 느껴지지 않는다는 게 가장 큰 아쉬움 같습니다.
그래서 가장 만만한 JDColor로 시작을 한 건데.. 좀 더 고민을 해봐야겠어요.
JeongDesignSystem을 통해 제가 이루고자 하는 목표가 무엇인지 더 고민해 봐야겠다고 느꼈어요.
할 일 (5월 1일 ~ 5월 3일)
Unit Test 자동화 결정하기
내용
5~7분이나 되는 깃허브 액션을 사용할 것인지 고민 중입니다.
만약 사용한다면 5~7분의 시간을 어떻게 활용할 수 있을 것인지 고민해 봐야겠어요.
만약 사용하지 않는다면 테스트 안정성을 어떻게 챙길 수 있을지 고민해야겠지요.
현재 대안으로는 시간 단위(e.g. 1시간마다)로 테스트를 수행하기, Firebase SPM을 프로젝트 최후반에 적용하기 등을 생각해보고 있습니다.
최소 목표
Unit Test 자동화를 적용할지 결정하기
moti 2.0 홈 화면 개발
내용
홈 화면 로직과 UI를 개발합니다.
홈 화면을 개발하면서 궁금했던 DifferenceKit도 사용해보려고 해요.
최소 목표
홈 화면 로직 개발
홈 화면 UI 개발
최대 목표
DifferenceKit 사용해 보기
알고리즘 2일 1문제, 대신 난이도 높이기
내용
알고리즘 문제 푸는 건 정말 힘드네요.
매일매일 1 레벨 ~ 2 레벨을 한 문제씩 해결했는데 크게 와닿지 않았습니다.
그래서 2일에 1문제를 풀고, 문제 난이도를 높여보려고 합니다.
최소 목표
2일 1문제 2~3 레벨 해결하기
감사합니다.