Search
Duplicate

2020년 11월 2주차 회고록

블로그 스터디가 끝나고는 첫 회고록이다.
4주 내내 잘 하던 회고록이 스터디가 끝남과 동시에 쓰기 싫어지는걸 보면 이 블로그 스터디가 도움이 많이 되었다는걸 느낀다. 그래도 다음주부터는 다시 블로그 스터디를 시작하니 재밌게 할 수 있을꺼라 생각한다.

이번주 즐겨들은 음악

매주 즐겨들은 음악들을 임베딩 해놨었는데 생각보다 반응이 뜨거워서(?) 뭔가 나도 노래를 좀 더 유심히 고르게 된 것 같다. 원래는 그냥 대충 들었는데... 이번 주는 가벼운 집중이 필요할 때 들었던 노래와 공부할 때 들었던 노래 두가지를 올려본다.
원래 내가 좋아하는 장르는 포크블루스, 스윙, 재즈, 시티팝들을 좋아하는데 그 중 가장 좋아하는 장르는 게임 폴아웃에 나왔던 노래들.. 올드팝들이다.
폴아웃4- 노래 리스트
공부할 때 듣던 노래

1. 클린 코드(Clean Code)

도대체 내가 읽는 속도가 빠른지 느린지 파악이 불가하다.
이번주는 읽기는 11장까지 포스팅은 10장까지 완료한 상태다.
11장까지의 내용들은 주로 코드, 클래스를 작성함에 있어서 하지말아야 할 방법과 권장하는 방법들을 실제 예제를 통해 알려준다. 여기까진 대충 하나의 언어를 어느정도 봤다 하는 사람들이라면 이해하는데 크게 문제는 없을 것으로 보인다. 소트웍스 앤솔로지에 나오는 객체지향 생활체조규칙들과도 일치하는 부분이 많다.
하지만 11~12잔부터는 읽어본 것은 아니지만 챕터 타이틀만 봐서는 창발성, 동시성, 점진적 개선, JUnint, SerialDate 리팩토링, 냄새와 휴리스틱 등 코드를 작성함에 있어서 지켜야할 간단한 규칙들을 설명하기보다는 좀 더 심화된 내용들을 다루는 것으로 보인다. 빨리 완독을 하고 다음 책도 볼 것들이 많은데, 마음이 조급해지는 기분이다.
하지만 급할수록 천천히 가는게 제일 빠르게 간다는 말을 여기저기서 많이 들었기에 마음정리를 잘 해보려 한다. 다시 본론으로 돌아와서 이번 주는 5장 형식 맞추기부터 10장 클래스까지의 포스팅을 맞춘 상태다.
물론 챕터별로 감상평도 작성을 했지만, 더 간략히 챕터별 포스팅을 하며 느낀 점은
5장 형식 맞추기
: 일상 생활로 생각하면 정리정돈을 잘 해야하는 이유에 대해 설명 해 준다고 볼 수 있다. 많은 초보 개발자들이 무의식중에 하는 무의미한 줄바꿈, 많은 메서드 체이닝으로 인한 코드의 너무 긴 가로 길이,
마구잡이 의식의 흐름에 따른 메소드와 변수의 정렬로 인한 가독성 저하에 대한 문제를 꼬집는다.
6장 객체와 자료 구조
: 내가 평소에 무의식중에 하던 실수들에 대해 자각하게 하는 챕터다. Lombok을 이용해 getter/setter를 마구잡이로 만들고 절차지향과 객체지향을 마구잡이로 기능만 구현하게 하던 나를 혼내는 챕터로 기껏 private 접근제어자를 통해 캡슐화를 해놓고 getter/setter로 변경가능하게 하면 도대체 캡슐화가 무슨의미가 있을까?
또한 객체지향만이 정답이 아니라는 내용과 상황에 따라서(자료 타입에 대한 유연성/ 새로운 동작에 대한 유연성)자료구조객체의 취사선택에 장점을 말해준다.
7장 오류 처리
단순히 주어들은 말로 try-catch는 퍼포먼스를 소모한다는 말에 오류코드로 로직을 처리했던 경험이 자주있다. 하지만, 그때마다 내가 겪은 문제를 너무나도 정확히 지적한다. 로직의 블럭 depth가 높아지며 가독성이 떨어지고 내가 실수로 놓치면 바로 치명적인 에러가 발생한다는 것이다.
그렇기에 예외를 처리하는게 더 낫다는 부분, 그리고 null을 어떻게 처리하느냐에 대해서도 단순히
메소드 호출에서 null Check를 하는 것보다는 반환하는 위치에서 null을 반환하지 않도록 하는게 낫다는 점에 대해서 알게되었다.
8장 경계
: 8장에서는 내가 직접만든 코드와 타인이 만든 코드와의 경계에 대해 이해하고 어떻게 학습하고, 이해하는지에 대해 설명해준다. 그리고 이런 외부 코드를 박싱하여 범위를 제한하고 외부코드의 기능변경과 외부요인에 따른 대처를 하는 방법에 대해 말해준다.
가령 예를들어 실시간 가변성의 API의 Inteface 분리 후 Fake 객체 생성이라던지, 일급 컬렉션을 통해 자연스레 제약조건 유효성 검증과 불변성(Imutable)을 보장하는 방법에 대해서 말이다.
9장 단위 테스트
: 내게 TDD란 그냥 코드 작성한거 테스트해서 잘 돌아가는지 확인하면 되는거 아닌가? 말하게 하는 생각을 송두리채 바꿔준 어떻게보면 가장 영향이 큰 챕터다. 기능을 만들고 테스트 코드를 작성하는게 아니라 실패하는 코드를 작성하고 그 기능을 구현해서 실패하지 않도록한다.
순서만 바꿨을 뿐인데 이게 무슨 효과지? 하지만, 실제로 효과는 뛰어나다.
테스트가 손쉬운 코드라는 말은 코드의 독립성, 순수성이 보장된다는 의미이고 이는 객체지향적으로 훌륭한 코드라는 의미가 된다.
그리고 무엇보다 TDD에서 녹색불을 킬때의 쾌감을 알려준다. 기능변경에 대해 보수적이지 않게해준다.
10장 클래스
: 객체지향 프로그래밍하면 뭐가 중요할까? 바로 객체다!
10장은 이 중요한 객체를 어떻게 쪼개고 어떻게 설계하는게 좋은지 말한다.
하나의 클래스에 수십개의 필드가 있고 수십개의 책임이 있는 나쁜 클래스의 단점과 어떻게 쪼개야 할지도 예제를 통해 보여준다. 이를 8장에서 말하는 일급 컬렉션과 boxing 개념을 사용한다면 한결 깨끗한 코드가 가능하다.
이렇게 보니 생각보다 많은 챕터를 정리한 것 같은데 요약하며 되새김질을 하려하니 생각보다 생각이 안난다.
얼마나 날로 포스팅한거지....? 무조건 2회독이상은 해야할꺼같다는 반성을 한다

클린코드 포스팅

2. TDD, Clean Code with Java

어느덧 미션1을 끝내고 미션2 로또를 진행중이다.
미션 1에서 대략적으로 클린코드의 내용들을 키워드로 꺼내어 시도해 봤다면 로또2에서는 이 내용들을 숙달 한다고 볼 수 있다. 특히 일급 컬렉션의 사용이 아주 많고 Stream API를 정말 다양하게 써보고 있는 것 같다.
확실히 백문이불여일타라고 백날 코드를 보는 것보다 한 번 쳐보는게 도움이 많이 되는 것 같다.
이제 겨우 2번째 미션인데도 정말 테스트 케이스를 작성하는데 자신감이 붙고 있다는 점이 너무 좋다.
나로썬, 정말 큰 돈을 써서 과정을 신청한만큼 최대한 많은 피드백을 받기위해 아예 새로운 미션을 시작하는 첫 시점을 제외하면 무조건 피드백을 받을 시 반나절에서 하루안에 피드백 적용 후 PR을 하려고 하며 실제로 하고있다. 하지만 아쉬운 점은 없지않아 있다. 매번 피드백이 24시간을 아슬하게 채우거나 넘어서 오기 때문에 내가 원하는 티키타카는 되지 않는다.
하지만, 불만까지는 아니고 아쉬움인 이유는 리뷰어분들도 회사생활을 하고있고, 주말이 있어야 하며 밤늦게 나를 빼고서라도 많은 사람들의 리뷰를 하나하나 상세히 하기 위해서는 결코 쉽지 않을것이다.
이전 블랙커피 FrontEnd 스터디에서 리뷰를 해 보며 나도 절절히 느꼈기에 더욱더 이해할 수밖에 없다.
그래도 아쉬운건 어쩔수 없다 ㅠㅠ... 나는 좀 더 빠른 템포로 티키타카를 하고 진행을 하고싶은데....
현재는 로또(2등) 과정을 진행 중인데, 이번 미션2에서 가장 열심히 했던 부분은 책임의 적절한 분배와 모든 원시값의 boxing이였다. 이는 클린코드 책에서도 나오는 부분으로 값을 적절히 래핑하여 일급객체, 일급 컬렉션으로 나눔으로써 책임의 분배가 이뤄지고 자신이 맡은 일만 하면 되는 것이다.
역시 가장 힘들었던 부분은 getter의 최소화였던 것 같다. 값을 getter로 꺼내서 쓰면 정말 간단한 것을 메세지만을 보냄으로써 로직을 수행하게 하려고 하니 단순히 해결될 것 같은 코드도 좀 더 생각해야 하고 골치를 썩었다. 근데 오히려 이게 너무 늦은 생각이였다는 생각도 든다. 지금까지는 너무 단순히 관성에 따라 코딩을 했기에 그로인해 겪은 수많은 버그 트레이싱이 있었는데 이번 과정이 나의 이런 관성을 멈추고 새로운 도약으로 갈 수 있게 해주면 좋겠다.

과정 피드백 정리

3. ETC

사실 이번주는 뭐 제대로 한게 없는 것 같다.
클린코드를 많이 포스팅한 것 같다고? 회사에서 거의 죙일 포스팅한게 저정도라면 처참한 것이다.
집에서는 차라리 게임이라도 열심히 했으면 모를까 그냥 멍때리고 유튜브만 보면서 시간을 보낸 것 같다.
그리고 돈을 너무 많이 쓴 것같다. 열심히 시켜먹고 사먹고.... 이번주에 군것질에 쓴 돈만 수십만원인것같은 느낌적인 느낌... 너무나도 후회가 되는 것...
이제 내년에는 아내와 전세집을 얻어서 외벌이를 해야하는 상황이 오는데, 뻔한 수입에 뻔하지 않은 지출내역은 숨통을 죄는 것 같다 ㅎㅎ 사업이나 한방에 대한 것은 사실 없다. 그저 열심히 공부하고 트렌드 읽어서 좀 더 높은 연봉을 받는 수밖에....
아무래도 스터디를 하나 더 시작하거나 다시 스터디카페를 결제하던가 해야 할 것 같다.
아무래도 집에서는 효율이 절대적으로 떨어지는 느낌..! 다행히 아내의 맥북을 내가 사용하며 스타벅스 입장권은 생겼으니 스벅에 가서 공부를 해야하나