suhyeon57 님의 상세페이지[6팀 김수현] Chapter 2-1. 클린코드와 리팩토링

과제 체크포인트

배포 링크

https://suhyeon57.github.io/front_6th_chapter2-1/

기본과제

  • 코드가 Prettier를 통해 일관된 포맷팅이 적용되어 있는가?
  • 적절한 줄바꿈과 주석을 사용하여 코드의 논리적 단위를 명확히 구분했는가?
  • 변수명과 함수명이 그 역할을 명확히 나타내며, 일관된 네이밍 규칙을 따르는가?
  • 매직 넘버와 문자열을 의미 있는 상수로 추출했는가?
  • 중복 코드를 제거하고 재사용 가능한 형태로 리팩토링했는가?
  • 함수가 단일 책임 원칙을 따르며, 한 가지 작업만 수행하는가?
  • 조건문과 반복문이 간결하고 명확한가? 복잡한 조건을 함수로 추출했는가?
  • 코드의 배치가 의존성과 실행 흐름에 따라 논리적으로 구성되어 있는가?
  • 연관된 코드를 의미 있는 함수나 모듈로 그룹화했는가?
  • ES6+ 문법을 활용하여 코드를 더 간결하고 명확하게 작성했는가?
  • 전역 상태와 부수 효과(side effects)를 최소화했는가?
  • 에러 처리와 예외 상황을 명확히 고려하고 처리했는가?
  • 코드 자체가 자기 문서화되어 있어, 주석 없이도 의도를 파악할 수 있는가?
  • 비즈니스 로직과 UI 로직이 적절히 분리되어 있는가?
  • 코드의 각 부분이 테스트 가능하도록 구조화되어 있는가?
  • 성능 개선을 위해 불필요한 연산이나 렌더링을 제거했는가?
  • 새로운 기능 추가나 변경이 기존 코드에 미치는 영향을 최소화했는가?
  • 코드 리뷰를 통해 다른 개발자들의 피드백을 반영하고 개선했는가?
  • (핵심!) 리팩토링 시 기존 기능을 그대로 유지하면서 점진적으로 개선했는가?

심화과제

  • 변경한 구조와 코드가 기존의 코드보다 가독성이 높고 이해하기 쉬운가?
  • 변경한 구조와 코드가 기존의 코드보다 기능을 수정하거나 확장하기에 용이한가?
  • 변경한 구조와 코드가 기존의 코드보다 테스트를 하기에 더 용이한가?
  • 변경한 구조와 코드가 기존의 모든 기능은 그대로 유지했는가?
  • (핵심!) 변경한 구조와 코드를 새로운 한번에 새로만들지 않고 점진적으로 개선했는가?

과제 셀프회고

만만하게 생각했다가… 큰 코 다쳐버린 이번 주 과제. 월요일부터 회식, 그리고 갑작스러운 일정들로 인해 제대로 진행이 되지 않았는데, 확실히 체력과 집중력에서 손해를 많이 봤습니다 😓

처음 코드를 봤을 때 너무 막막해서 "어디서부터 손대야 하지?" 싶은 마음뿐이었고, 평큐 타임에 테오의 힌트를 듣고 나서야 겨우 시작할 수 있었습니다. 조금만 더 여유 있었더라면 더 클린하게 리팩토링할 수 있었겠다는 아쉬움도 있습니다.. 😅

원래 이렇게 챕터 시작 주차는 유독 힘든 건가요…? ㅠㅠ

과제를 하면서 내가 제일 신경 쓴 부분은 무엇인가요?

과제를 다시 해보면 더 잘 할 수 있었겠다 아쉬운 점이 있다면 무엇인가요?

main 파일에서 로직의 분리를 통해 클린 코드로 구성해나갔지만, 각각의 로직 자체는 아직 클린 코드라고 할 수 없습니다. 과제를 다시 한다면 로직 자체도 클린하게 구현해보고 싶습니다.

리뷰 받고 싶은 내용이나 궁금한 것에 대한 질문 편하게 남겨주세요 :)

과제 피드백

"처음 코드를 봤을 때 너무 막막해서 "어디서부터 손대야 하지?" 싶은 마음뿐이었고, 평큐 타임에 테오의 힌트를 듣고 나서야 겨우 시작할 수 있었습니다. ... main 파일에서 로직의 분리를 통해 클린 코드로 구성해나갔지만, 각각의 로직 자체는 아직 클린 코드라고 할 수 없습니다. 과제를 다시 한다면 로직 자체도 클린하게 구현해보고 싶습니다." 라고 했지만 코드를 보니 충분히 잘 해냈는걸요?

뭔가 본인만의 클린코드에 대한 이상이 너무 높지 않았나 싶어요. 어쩄든 맨 처음에 제가 드렸던 코드에 비해서 지금은 충분히 쓸만해졌잖아요? 레거시 코드를 만났을때 막막하더라도 조금씩 조금씩 어찌되었든간에 지금 보다는 조금 더 낫도록 하는것들이 쌓여서 클린코드가 되는 것이니까요.

수고많았습니다. 5주차 과제에서는 너무 높은 목표보다는 지금까지 어쨌든 지금까지 했던 것에 대해서 과정을 돌이켜보는 회고를 써보길 바래요. 화이팅입니다!