항해플러스 6주차 회고록
항해플러스 6주차 회고록입니다.
지금 그만두면 맛있는것도 못사먹는다.
서론
드디어 3주간 클린코드 챕터가 끝이났다. 3주간 깨끗한 코드란 뭘까에 대한 고민을 스스로 해보면서 그동안 내가 작성해왔던 코드 스타일이나 방식이 뭔가 많이 잘못되었음을 뼈맞는 주차였다.
잘하는 개발자는 빠르게 요구사항을 구현해낼 수 있는 개발자라고 생각했다. 물론 맞는 말이다. 납기 일정이 제일 중요하기 때문에 요구사항을 빠르게 쳐낼 수 있는 사람은 잘하는 사람이 맞다. 하지만 조금 더 나아가 유지보수와 확장성에 신경쓴다면 이후 변화하는 요구사항에 유연하게 대응할 수 있는 코드를 작성하는 것이 잘하는 개발자인 것 같다.
이번 클린코드 챕터를 마무리하면서 그간 작성한 코드에 대해서 반성해보며 앞으로는 나만의 컨벤션들을 적립해보려고 한다.
나의 가장 안좋았던 습관중 ESLint에 경고가 뜨면 그냥 disable 해버리는 습관이 있었는데 이것부터 고치려고한다. → 운서님이 클린코드 챕터인데 왜 ESLint disable 해버리냐고 팩폭날림.
두번째로 좀더 관심사 분리와 응집도, 결합도에 대해서 신경을 쓰면서 코드를 작성하자.
특히 UI로직과 비즈니스 로직을 같은 관심사로 생각하지말고 항상 어떻게 분리해서 재사용할 지 고민하면서 코드를 작성해보자.
그리고 이번 과제를 수행하면서 구린내 클럽에 가입했다. 코드에서 구린내가 날 것 같은 사람(?)을 모집한다했는데 마침 내 코드는 구린내가 술술 풍기고 있었기 때문에 ㅋㅋ 과감하게 가입함.

도은님이 정해주신 구클원칙 ㅋㅋㅋㅋ
구린내 클럽 스레드 알림이 꺼져있어서(내가 설정한거 아님) 같이 많은 고민은 못했는데 암튼 재밌는 사람들이 너무 많아서 과제할때 소소한 힐링이 되었다.
그리고 다른 주차와 달리 더더욱 정답이 없는 주차였기 때문에 사람들과 다양한 의견들을 공유해볼 수 있어서 좋았다.
FSD를 사용하면서 느낀점
장점
관심사 분리적인 측면
항상 프로젝트할 때 폴더명이나 파일 위치에 대해 고민을 많이 했는데, FSD는 명확한 폴더 구조와 계층이 정해져 있어서 파일을 분리할 때 훨씬 편했다. 특히 기능 단위로 관심사를 묶어서 관리하다 보니 관련된 코드가 한곳에 모여 있어 찾기도 쉽고, 수정할 때도 영향 범위를 예측하기 수월했다.
또한 계층이 명확하다 보니, "이 코드가 어디에 있어야 할지"에 대한 불필요한 고민이 줄어들어서 좋았던것 같다.
확장성
새로운 코드가 추가될 때 기존코드를 거의 수정하지 않고 새로운 코드들만 추가하면 되기때문에 확장성이 매우 좋았다고 생각한다.
명확한 계층
명확한 계층이 나누어져 있기 때문에 각 폴더의 역할과 책임이 뚜렸했다. 특히 제일 마음에 들었던 부분은 두 가지인대 entities와 shared이다. entities는 도메인 관련된 로직을 한 곳에 모아놓아서 좋았고 거의 변하지 않는 원시 데이터라 엔티티에 묶어두면 관리하기 수월할 것 같았다. 두 번째는 shared 폴더인데 전역에서 사용하는 lib나 유틸함수, 훅 같은걸 한 곳에서 관리할 수 있어서 좋았다. 이 부분은 다른 프로젝트를 진행할때도 적용해보고싶다.
단점
배럴 익스포트
파일을 찾을 때 이름으로 검색하는 습관이 있었던지라 모든 파일을 배럴 익스포트로 해버리니 이부분에서 조금 불편함을 겪었다.
Features에서 너무 많은 기능이 추가됨
이 부분에 대해서 다른사람들의 고민글을 봤는데 조금은 공감하게 되었다. 내가 느낀 불편한점은 features에 너무 많은 폴더와 기능이 추가되었다. 예를들어 엔티티 하나당 CRUD 기능이 4개라고 치면 4가지의 관심사별로 폴더가 생기는건데 한 프로젝트에 관리해야하는 엔티티가 10개만되어도 최소 Features에는 폴더가 40가지가 생기는 셈이다. 이 부분은 관점을 합쳐서 도메인 + 동사를 하나의 depth로 보고 해결했다.
Keep
과제를 하면서 스스로 고민을 많이 했다. 또한 이 고민을 다른사람들과 함께 이야기하며 공유할 수 있어서 좋았다. 다음 주차인 테스트코드도 내 의견이나 고민을 많이 물어보고 공유하자.
3줄 일기를 쓰기 시작했다. 오프코치님이 말한 작은 시도를 꾸준하게 해보는 것에 영감을 받았는데 이 작은 태스크들 부터 하나씩 깨부수며 성취감을 찾아보려고한다.

Problem
과제 + 이력서 수정하면서 개인공부하는 시간이 부쩍 줄어들었다. 그래서 이번주도 기술블로그 2개쓰기 목표를 달성하지 못했는데. 다음주는 목표를 하나로 줄여서 설정해보자.
Try
항상 작은 태스크라도 성공해보기