[인프런 워밍업클럽 백엔드 스터디 2기] 2주차 발자국
2주차 학습내용
Readable Code : 읽기 좋은 코드를 작성하는 사고법
강의를 학습하며 작성한 내용입니다.
1주차에 이어 강의를 듣는데 이미 진도가 약간 밀려있어서 진도표대로 수강하는 데에는 약간 어려움이 있어서 아쉽다.
코드 다듬기
주석의 양면성
주석에 너무 의존하면, 추상화 레벨이 적절하지 않아 저품질 코드가 된다. 전해야 할 히스토리를 도저히 코드로 표현할 수 없을 때 주석으로 설명한다.
변수와 메서드의 나열 순서
패키지 나누기
패키지를 쪼개지 않으면 관리가 더 어려워진다. (너무 쪼개도 어렵다)
대규모 패키지 변경은 conflict가 발생 가능하므로 팀원과 합의 후에!
리팩토링 연습
중복 제거와 메서드 추출
객체에 메시지 보내기
I/O 통합
일급 컬렉션 적용
메서드 책임의 위치
- Day7 미션
사실 이번에는 시간적 여유가 부족해 미션 제출일까지 미션을 다 수행하지 못했다.
기본적인 래픽토링인 중복을 제거 이후에는 '추상화 레벨 맞추기'에 집중하려고 했다. 강의를 보면서 실습할 때와 달리
코드에 대한 이해가 부족해서 어려움을 느꼈다.
강의에서 설명하시는 객체의 책임 분리와 일급 컬렉션 반환 부분은 혼자서는 생각하기가 어려웠다.
앞으로도 반복해서 학습해야 할 것 같다.
기억하면 좋은 조언들
능동적 읽기
능동적 읽기 -> 눈으로만 읽지 말고, 리팩토링을 해보면서 읽자. (공백으로 단락 구분, 메서드 추출 등)
git reset --hard로 언제든지 돌아갈 수 있다.
도메인 지식을 늘리는 것이 능동적 읽기의 목표
오버엔지니어링
필요한 수준 이상의 엔지니어링 -> ex) 너무 이른 추상화
중간점검(라이브)
중간점검 라이브에서 사전에 받은 질문들에 대한 답변과 미션 피드백을 들을 수 있었다.
다른 분들은 개발과 리팩토링에 대해 어떤 고민을 갖고 있는지와 그에 대한 강사님의 생각을 들을 수 있어서 유익한 시간이었다.
(신입 기준) 주니어 개발자를 뽑을 때 빠르게 적응할 수 있는지와 기존 학습의 주도성을 주로 보며 기술 자체는 크게 기대하지 않는다.
알고 있다고 한 기술에 대해서는 어느 정도까지 학습과 고민을 했는지 보여줄 수 있어야 한다.
커밋은 의도적으로 나누는 것이 좋다.
당장은 완벽한 클린코드를 만드는 게 불가능하더라도 최소한의 리팩토링을 하고 주석이라도 달아 다음에 어떤 방향으로 갈지 기록해둬야 한다.
사실 강의를 들으면서도 '내가 리팩토링 강의를 들을만큼 충분한 개발 지식과 경험을 갖고있는 게 맞나?'하는 생각이 들 때가 있지만 내가 하고 있는 개발에도 충분히 적용할만한, 적용해야 하는 부분들이 많은 것 같다.
댓글을 작성해보세요.