오랜만에 쓰는 회고인데 그 때의 기억을 살려서 최대한 작성해보겠습니다.
점심 뭐 먹지 2단계 미션.. 쉽지 않았다.
왜냐하면 이 주 화수목을 예비군 훈련을 다녀오느라 구현할 시간이 이틀 정도였기 때문
그래서 이번 미션에서의 목표를 기능 구현으로만 잡았다. 테스트까지 작성하는 것은 과감하게 포기했다.
이번 step2의 미션은 자주 가는 음식점으로, step1에서 추가된 기능으로는
- 음식점 상세 정보를 확인할 수 있다.
- 카테고리, 이름, 거리, 설명, 참고 링크를 확인할 수 있다.
- 음식점을 삭제할 수 있다.
- 자주 가는 음식점을 추가하고 목록으로 확인할 수 있다.
- 음식점 목록에서 자주 가는 음식점을 추가할 수 있다.
- 음식점 상세 정보에서 자주 가는 음식점으로 추가할 수 있다.
- 자주 가는 음식점 탭에서 추가한 음식점 목록을 확인할 수 있다.
- 새로고침해도 추가한 정보들이 유지되어야 한다.
등록한 음식점에 대한 상세 모달을 띄워야하고, 자주 가는 음식점 기능과 리스트로 보여주는 기능이다.
step2에서 고민한 내용
별 이미지 동기화 문제
모달 내에서 별 버튼을 눌렀을 때, 모달 내의 상태도 변해야하지만, 모달 외부의 리스트에도 별 상태가 변해야하고, 자주 가는 리스트에도 상태가 변해야한다.
이게 생각보다 쉽지 않았다. 컴포넌트 인스턴스 내에서 상태를 변화시키는 것은 간단하지만, 다른 인스턴스로 상태를 전달해주는 방법이 어려웠다. 결국은 또 커스텀 이벤트를 생성해서, 상태가 변했을 때 다른 별의 상태도 변화시키는 방식으로 구현했지만, 뭔가 다른 방법이 있었을까..? step2를 마무리하면서도 이 문제는 해결하지 못했다.
컴포넌트의 관심사 분리
구현에만 초점을 맞추다보니 앱 컴포넌트가 너무 많은 일을 담당하고 있었다.
앱에서 맛집 등록, 필터링, 맛집 삭제, 탭 이벤트 여러 일을 담당하다보니 app.ts가 맡는 일을 줄였으면 한다는 피드백을 받았고, 각 컴포넌트로 책임을 옮기게 되었다.
리스트 컴포넌트에서 맛집 추가, 삭제, 필터링 컴포넌트에서 필터링, 탭에서 탭 전환 이벤트들을 넣으니, 확실히 app 컴포넌트가 깔끔해진 모습이다. 기존에는 커스텀 이벤트를 발생시켜서 앱에서 받아서 처리했다면, 각 컴포넌트 내로 기능을 이동시키니 커스텀 이벤트를 발생시킬 필요도 없었다.
컴포넌트의 관심사 분리,, 개발하면서 꼭 신경써야 할 내용인 것 같다.
Level1이 종료된 지금 드는 생각은 이번 점뭐먹이 제일 어려웠던 미션인 것 같았다.
step1 때도 처음 컴포넌트로 분리하다보니 오는 시행착오가 많았고.. step2 에서는 동기화 문제 이것이 정말 괴롭혔고, 컴포넌트의 책임에 대해서 고민하고 리팩토링하느라 정말 애를 많이 먹었던 것 같다.
하지만 어려울수록 나에게 더 다가오는 법!
[2단계 - 자주 가는 음식점] 쿠키(김진호) 미션 제출합니다. by jinhokim98 · Pull Request #162 · woowacourse/
안녕하세요 샐리! 2단계 pr입니다. 아래 링크를 누르면 step2 버전의 점심 뭐 먹지를 이용하실 수 있습니다. 배포 주소 ⚠️주의점 맛집 리스트에서 id 필드를 추가해서 로컬스토리지를 리셋하고
github.com
'우아한테크코스 > 레벨 회고' 카테고리의 다른 글
우아한테크코스 영화 리뷰 step2 회고 (2) | 2024.04.08 |
---|---|
우아한테크코스 영화 리뷰 step1 회고 (0) | 2024.04.08 |
우아한테크코스 3/15 컴포넌트 생성방법, 테코톡 스터디 (4) | 2024.03.16 |
우아한테크코스 1주차 회고 (사실 일기) (1) | 2024.03.12 |
우아한테크코스 점심 뭐 먹지 step1 미션 회고 (0) | 2024.03.11 |