[인프런 워밍업 클럽 스터디 2기 백엔드] 2주차 발자국
개요
2주차 종료!
Readable Code: 읽기 좋은 코드를 작성하는 사고법 을 완강했다.
2주차 공부한 내용
목요일에 Readable Code 강의를 완강하고, 금요일 부터는 Practical Testing 강의를 수강 시작했다.
배운 것들
1. 일급 컬렉션
일급 컬렉션이란 걸 처음 알게 되었다.
일급 시민과 컬렉션(List, Set, Map
)이 합쳐진 개념이다.
컬렉션을 가공하는 로직을 캡슐화할 수 있는 장점이 있다.
처음 접하는 개념이라 코드로 적용하는 하는 부분에서 어려움을 느꼈다.
그렇지만, 잘만 사용하면 엄청 유용한 기법이라는 생각이 든다.
2. supports()
이 메서드를 Spring Security
학습하면서 많이 봤었다.
그 때는 이게 왜 필요하지 했었는데, 강의를 보면서 궁금증이 해소되었던 것 같다.
다형성, 객체지향에 대해서 좀 더 가까워진 느낌?
3. 주석을 어떨 때 써야하는지
주석은 웬만하면 사용하지 않는 편이 좋다고 생각했다.
하지만, "코드에 히스토리, 개발자의 의도를 전부 녹일 수 없을 때"에는 주석을 써야 한다는 걸 배웠다.
4. 메서드 배치 순서
이거 진짜 유용했다.
메서드를 어떤 기준으로 배치해야 하는지 고민이 많았었는데,
덕분에 기준을 세울 수 있었다.
5. sonarlint
정적 코드 분석 도구로, 인텔리제이에서 플러그인 형태로 사용 가능하다.
앞으로 Stack
과 Queue
를 쓸 일이 있을 때는 무조건 Deque
을 사용할 거다.
sonarlint
가 Deque
을 사용하라고 추천해줬음.
미션
이번 주차에는 Day.7 미션이 있었다.
Day.7 미션 - 스터디 카페 프로젝트 리팩토링 실습하기
강의에서 배운 것을 토대로 실제로 리팩토링하는 실습이었다.
추상화 레벨, 일급 컬렉션, DIP
, SRP
를 염두에두고 리팩토링 했다.
생각보다 쉽지 않았다.
스스로 해보고 답지(강의)를 보니 갈 길이 멀어보인다.
나의 가장 큰 문제점은 주어진 틀에서만 해결하려고 한다는 점이다.
그래서 새로운 객체를 만든다든지, 기존의 if 문들을 다른 구조로 변경하는 것에 두려움을 느끼는 것 같다.
문제를 마주할 때 넓게 보는 연습이 필요한 것 같다. 차분히.
리팩토링을 더 잘하기 위해서 섹션 8 - 기억하면 좋은 조언들 - 능동적 읽기 강의 내용을 적용하면 좋을 듯 하다.
공백으로 단락 구분하면서 읽기
메서드와 객체로 추상화하면서 읽기
주석으로 이해한 내용 표기하면서 읽기
Day.7 미션을 수행할 때 위의 조언들을 적용했더라면 좀 더 나은 결과물을 얻을 수 있었을 것 같다.
마무리
2주 동안 Readable Code 보면서 많이 배웠다.
배운 내용들을 체화시키려면 좀 더 노력해야 할 것이다.
일단은 3주차부터 테스트 코드 진도를 나가야하니 테스트 코드에 신경을 쓰도록 하고
테스트 코드를 빨리 끝낼 수 있다면, Readable Code의 내용을 복습하면 좋겠다.
댓글을 작성해보세요.