[인프런 워밍업 클럽 스터디 2기 백엔드] 2주차 발자국

[인프런 워밍업 클럽 스터디 2기 백엔드] 2주차 발자국

개요

2주차 종료!

image

Readable Code: 읽기 좋은 코드를 작성하는 사고법 을 완강했다.

2주차 공부한 내용

image목요일에 Readable Code 강의를 완강하고, 금요일 부터는 Practical Testing 강의를 수강 시작했다.

 

배운 것들

1. 일급 컬렉션

일급 컬렉션이란 걸 처음 알게 되었다.

일급 시민과 컬렉션(List, Set, Map)이 합쳐진 개념이다.

컬렉션을 가공하는 로직을 캡슐화할 수 있는 장점이 있다.

처음 접하는 개념이라 코드로 적용하는 하는 부분에서 어려움을 느꼈다.

그렇지만, 잘만 사용하면 엄청 유용한 기법이라는 생각이 든다.

 

2. supports()

이 메서드를 Spring Security 학습하면서 많이 봤었다.

그 때는 이게 왜 필요하지 했었는데, 강의를 보면서 궁금증이 해소되었던 것 같다.

다형성, 객체지향에 대해서 좀 더 가까워진 느낌?

 

3. 주석을 어떨 때 써야하는지

주석은 웬만하면 사용하지 않는 편이 좋다고 생각했다.

하지만, "코드에 히스토리, 개발자의 의도를 전부 녹일 수 없을 때"에는 주석을 써야 한다는 걸 배웠다.

 

4. 메서드 배치 순서

이거 진짜 유용했다.

메서드를 어떤 기준으로 배치해야 하는지 고민이 많았었는데,

덕분에 기준을 세울 수 있었다.

 

5. sonarlint

정적 코드 분석 도구로, 인텔리제이에서 플러그인 형태로 사용 가능하다.

앞으로 Stack Queue 를 쓸 일이 있을 때는 무조건 Deque을 사용할 거다.

sonarlintDeque을 사용하라고 추천해줬음.

 

미션

이번 주차에는 Day.7 미션이 있었다.

 

Day.7 미션 - 스터디 카페 프로젝트 리팩토링 실습하기

강의에서 배운 것을 토대로 실제로 리팩토링하는 실습이었다.

추상화 레벨, 일급 컬렉션, DIP, SRP 를 염두에두고 리팩토링 했다.

생각보다 쉽지 않았다.

스스로 해보고 답지(강의)를 보니 갈 길이 멀어보인다.

나의 가장 큰 문제점은 주어진 틀에서만 해결하려고 한다는 점이다.

그래서 새로운 객체를 만든다든지, 기존의 if 문들을 다른 구조로 변경하는 것에 두려움을 느끼는 것 같다.

문제를 마주할 때 넓게 보는 연습이 필요한 것 같다. 차분히.

리팩토링을 더 잘하기 위해서 섹션 8 - 기억하면 좋은 조언들 - 능동적 읽기 강의 내용을 적용하면 좋을 듯 하다.

 

  1. 공백으로 단락 구분하면서 읽기

  2. 메서드와 객체로 추상화하면서 읽기

  3. 주석으로 이해한 내용 표기하면서 읽기

Day.7 미션을 수행할 때 위의 조언들을 적용했더라면 좀 더 나은 결과물을 얻을 수 있었을 것 같다.

 

마무리

2주 동안 Readable Code 보면서 많이 배웠다.

배운 내용들을 체화시키려면 좀 더 노력해야 할 것이다.

일단은 3주차부터 테스트 코드 진도를 나가야하니 테스트 코드에 신경을 쓰도록 하고

테스트 코드를 빨리 끝낼 수 있다면, Readable Code의 내용을 복습하면 좋겠다.

 

댓글을 작성해보세요.

채널톡 아이콘