본문 바로가기
내일배움캠프 TIL

2023-11-29 본 캠프 40일차 / 59일차 TIL

by KMS_99 2023. 11. 30.

2023-11-29 본 캠프 40일차 / 59일차 TIL

 

주요 진행사항

- 내일배움캠프 리액트 심화과정 개인과제 수행

- 클린코드 책 스터디


개인과제 진행사항

1. 과제 정보

과제 내용: 팬레터 프로젝트를 redux toolkit과 axios 등을 통해서 리펙토링

과제 기간 : 11/29 ~ 12/4

2. 진행사항

1) 기존 코드 리펙토링 

기존에 작성했던 코드를 보니 정말 마음에 들지 않았다.

제일 먼저 마음에 들지 않는 부분을 간단하게 리펙토링을 하였다.

 

- themeprovider 개선

기존에 mainColor와 subColor 두가지로 되어있던 theme.js를 팀별 theme로 묶이도록 리펙토링하였다.

 

좌측코드의 문제점은 각 css 요소 별로 따로 객체로 묶어야한다는 점이다. 현재 나의 프로젝트는 소규모이지만, 대규모 프로젝트라고 가정을 하였을 때 정말 문제가 많은 코드라고 생각한다.

지금 보기에는 우측 코드가 더 길고 복잡해보이지만, 충분히 개선된 코드이다.

 

- Router.jsx 개선

기존 코드에는 Route.jsx를 거의 루트 파일처럼 사용하고 있었다.

하지만 Router.jsx는 페이지 전환의 용도인 컴포넌트인데 목적에 맞지 않았다.

 

따라서 Router.jsx의 코드를 루트 파일인 App.jsx에 적용시키는 개선작업을 실시하였다.

 

좀더 컴포넌트 목적과 용도에 맞게 리펙토링이 되었다.

 

2) 기존 redux 세팅 redux toolkit 세팅으로 변경

 

3) 로그인 페이지 생성 및 로그인 기능 추가

과제에서 제공되는 로그인 서버를 통해서 회원가입, 로그인 기능을 구현하였다.

이때 주어지는 메세지를 windows.alert 이 아닌 react-toast 라이브러리를 사용하여 처리하였다.

 


클린코드 책 스터디

1. 책 소개

책 이름 : PPP CleanCode

책 저자 : 로버트 C.마틴

 

우연치 않은 기회로 이 책을 얻게되었다.. 이책을 기반으로 같이 공부하는 분들과 스터디를 하기로 하였다.

책의 내용은 JAVA 기반 코드로 설명을 한다.

사실 JAVA에 대한 내용을 정확히 알지는 못하지만, 깨끗한 코드의 조건은 모든 언어가 비슷할 것이라고 생각한다.

코드보다는 내용위주로 학습, 독해 할 예정이다.

 

2. 스터디 내용

스터디 범위 : ~38p (의미있는 이름)

이번 스터디의 내용은 의미있는 이름이다.

 

코드를 한번이라도 작성해본 분들이라면 변수명, 함수명, 컴포넌트 명, 파일 명 등 이름 짓기가 어렵다는 것을 공감을 할 것이다. 사실 정말 귀찮은 작업이라고 생각한다.

 

이 책에서는 이름을 지을 때 고려해야할 사항들을 몇가지 알려주었다.

 

1. 의미를 고려한 이름

2. 가독성이 좋은 이름

3. 숫자와 혼동되지 않는 이름

4. 모호한 의미를 가지지 않는 이름

5. 통일성 있는 이름

 

이 밖에도 여러개 소개해 주었지만, 이정도가 기억에 남는다.

사실 이 부분에 대한 중요성은 이전부터 알고 있었고 때문에 신경을 쓰고 있던 부분이긴 하다.

하지만 프로젝트 규모가 커지면 커질 수록 다른 곳에 집중하기 때문에 잘 신경쓰지 못한다.

 

이 책에서 좋았던 구절이 있다. 이 구절로 정리 할 수 있을 것 같다.


Javadoc에서 @author 필드는 저자를 소개한다. 우리는 저자다. 저자에게는 독자가 있다. 그리고 저자에게는 독자와 잘 소통할 책임도 있다.

 

이 구절이 우리가 클린코드를 작성해야하는 이유라고 생각한다.

앞으로 코드를 작성할 때 이 구절을 생각하며, 오늘 배웠던 이름짓기를 더 열심히 해보겠다.