육각형개발자
최범균님께서 새로 출간하신 육각형개발자를 읽어보았다.
부제는 '시니어 개발자로 성장하기 위한 10가지 핵심역량'인데, 주니어를 통과하고 시니어로 가고 있는 나같은 개발자들에게 큰 도움이 될 것이라고 생각한다.
( 사실 연차에 비해 부족하겠지만! )
출시되자마자 바로 사서 읽어보려고 했었는데, 지인분께서 가지고 계셔서 빌려볼까 했다.
다시 만날때 빌려주신다고 했었는데, 다시 만나기까지 시간이 흘렀다...
그러던중 집근처 도서관의 '도서신청'이 가능하여 신청후 기다리고 있었다.
내가 처음 신청했기때문에 입고가 되면 나에게 가장 먼저 연락이 온다.
토요일 5시( 주말에는 6시까지 운영한다 )에 연락이 와서 상당히 당황스러웠지만,
냉큼 달려가서 빌려왔다.
기간내에 읽기 힘들어서 조금 연체가 되었지만...만족스럽게 읽은거 같다.
다시 한번 개발자로써 마음가짐을 다잡을 수 있었던거 같다.
오래 기억하고 싶어서 필사를 하면서 읽다보니 시간이 조금 오래 걸렸다.
몇가지 문장을 남겨본다.
용기
이미 잘 동작하는 코드를 수정하는건 두려운 일이다.
수정 시 어떤 문제가 터질지 모르기 때문에.
품질이 나쁘면 두려움은 더 커진다.
두려움이 커져서 편법을 쓴다
(기존 코드를 수정하지 않고, 그대로 복사해서 일부를 변경하는)
위험을 피하려 문제가 있지만, 회피하는 대가는 유지보수 비용을 배 이상으로 높이는 결과를 부른다.
잘 돌아가는 코드라도 더 나은코드, 더 나은 구조로 변경할 수 있는 '용기'가 필요하다
변수선언
변수를 선언하고, 한번만 사용한다면 머리에 부담만 줄 뿐이다.
이 경우에는 직접 값을 사용하여 코드를 분석하는게 더 좋다.
( 어떤 의미를 부여하거나, 새로운 타입으로 변환할때 변수를 사용하면 코드를 분석하는데 도움이 된다. )
변수 선언과 사용위치는 멀어질수록 불필요한 코드분석이 생긴다
( 최초 사용하기 직전에 선언하는게 좋다 )
const, final과 같은 키워드는 코드 분석 시 값을 추적하는 부담을 줄일 수 있다.
개발 생산성과 Map
Map을 사용하면 처음에는 빠르게 기능이 만들어진다고 느낀다
하지만, 코드를 수정할때 Map이 사용되었다면 어떤 속성이 사용되는지 찾기위해
프런트의 코드부터 SQL 쿼리까지 탐색해야하는 경우가 생길 수 있다.
Map을 사용하면 코드의 양은 줄어들 수 있지만, 개발 생산성이 높아지는것은 아니다
메서드 추출
메서드 추출을 잘 활용하면 코드의 가독성이 높아진다
그렇지만, 가독성이나 응집도가 좋아지는 방향으로 추출이 필요하다
( 코드가 길든 짧든 계속 추출하는 욕구...가 생길 수 있다. 과한 추출은 분석이 어려워진다 )
for에서 하는일 분리
for문 하나에 여러가지 작업을 실행하면 서로 다른 목적을 가진 코드가 뒤섞일 수 있다.
이는 코드의 복잡도가 증가하고, 이해하기가 어려워진다.
for 루프에서 한가지 일만 하도록 수정
( 성능이슈가 있을까봐 걱정하지만, 대부분 문제가 없다. 이슈가 생길떄만 측정해서 개선하면 된다 )
복잡한 코드보다 이해하기 좋은 코드가 주는 이점이 훨씬 크다
위험관리
뭔가 잘 진행되지 않거나 모르는 것이 있을때, 명확하지 않은점이 생기면 이는 위험신호이다.
위험신호를 감지하면 빠르게 공유해서 해결해야한다.
안된다고 말하기. 대안을 제시하기
개발자는 안된다고 말할 수 있어야한다. 그렇지만, 할 수 없는 이유도 꼭 함께 전달해야한다.
매번 이유없이 방어적이라면 협의가 잘 안되는 사람으로 인식될 수 있다.
이외에도 배울게 많은 책이라고 생각한다!
꼭 한번 읽어보기를 추천하고 싶다.
'도서후기' 카테고리의 다른 글
[도서후기] 오늘, 또 일을 미루고 말았다 (0) | 2024.01.29 |
---|