최근 잘 짠 코드에 대해서 관심이 많아졌다. 근데 잘 짠 코드가 뭘까? 어떻게 짜야 잘짰다고 할 수 있는걸까?
잘 짠 코드를 결정하는 기준은 매우 주관적일 것이다. 개인이 처한 상황과 가치관, 경험 등 외부 요인에 따라서 잘 짠 코드에 대한 기준은 분명히 다를 것이다.
나는 이해하기 쉽고, 잘 동작하는 코드가 잘 짠 코드라고 생각한다. 이해하기 쉬우려면 복잡하지 않아야 한다. 그래서 이 책을 펼쳐보게 되었다.
이해하기 쉽고, 잘 동작하는 코드를 짜려고 했는데 왜 함수형 코딩에 대한 책을 펼치게 되었을까? 그것은 이 책의 부제를 보면 알 수 있다.
이 책의 전체 제목은 쏙쏙 들어오는 함수형 코딩 독서 후기 (심플한 코드로 복잡한 소프트웨어 길들이기)
이다. "심플한 코드"와 "복잡한 소프트웨어 길들이기" 라는 키워드에 매료되어 곧바로 책을 읽게 되었다.
그래서 이 책을 읽고 난 후에 이해하기 쉬운 코드를 짜게 되었을까? 당연히 아니다. 하지만 확실한 것은 이해하기 쉬운 코드에 한걸음 다가설 수 있게 되었다. 어째서 한걸음 다가설 수 있게 되었으며 어떤 부분이 좋았는지, 왜 이 책을 추천하는지와 함께 책을 소개하고자 한다.
이 책에서는 액션(Action) / 계산(Calculation) / 데이터(Data)
세 가지 기준을 제시한다. 이 세 가지 기준을 내가 작성한 코드에 대입하여 나의 코드가 액션 / 계산 / 데이터
인지 구분할 수 있게 된다. (참고로, 적은 수의 액션을 유지하는 것이 좋은 코드이다.)
여기서 주목할 점은 표현이 매우 명확하다는 점이다. 책 맨 처음에 소개되는 액션 / 계산 / 데이터
라는 표현은 책이 끝날 때까지 반복해서 등장하며, 처음부터 끝까지 세가지 기준들로만 코드를 판단하게 된다.
중간에 다른 표현을 사용하거나 기준을 절대로 바꾸지 않는다. 이런 일관된 서술과 표현 방식으로 인해서 독자는 확신을 가지게 되고 헷갈리지 않게 된다. 이 점이 내가 이 책을 추천하는 이유이다.
액션 / 계산 / 데이터
가 무엇인지 궁금한 사람은 책을 꼭 찾아보거나 여기 링크를 참고하자
책을 읽으면서 저자의 친절함에 계속 감탄하게 되었다. 이 책을 읽고 있으면 저자의 마음이 전해져서 마음이 따뜻해진다. 기술서적을 읽으면서 마음이 따뜻해져보긴 처음이다.
마치 시니어 개발자가 주니어 개발자에게 1on1 강의를 해주는 기분이었다. 그렇게 느낀 이유는 여러가지가 있다.
첫번째로, 반복적인 표현이다. 이 책에서 처음부터 끝을 모두 지탱하는 개념인 액션 / 계산 / 데이터
을 모든 장에서 계속해서 반복해서 설명해준다. 매번 설명할 때 마다 마치 처음 설명하는 것처럼 설명해준다. 이렇게 친절한 강조를 통해서 정말 중요한 개념을 자연스럽게 받아들일 수 있고 무의식 속에 넣을 수 있다.
두번째로, 학습 로드맵 제시이다. 본 도서는 입문용 도서이며, 지나치게 많은 FP의 개념을 다루지 않는다. 따라서 이 책을 읽고 FP에 관심이 생길 독자들을 위해서 책을 추천해준다.
책뿐만 아니라 FP를 연습해보기 좋은 언어들을 다수 추천해준다. 게다가 언어를 추천할 때 언어를 난이도별로 제시하며 수준별 학습을 할 수 있도록 최선을 다해서 돕는다.
프로그래밍 언어 추천에 이어서 단계별 FP 실습 방법을 제시한다. FP 실습의 최종 목표는 당연히 실무 적용이다. 아무 기대없이 펼친 책이지만 책에서 배운 지식을 실무에 적용할 수 있을 때까지 책임지려는 마음이 너무 따뜻하다고 느껴졌다.
나와 같은 상황의 주니어 개발자들이 읽으면 좋을 것 같다.
위 조건에 해당하는 독자라면 분명히 책을 읽고 만족할 것이라고 확신한다.
이 책을 읽고 시야가 넓어진 느낌이다. 코딩 실력을 늘리는 방법을 몰라서 막막했는데 이 책을 읽고 난 후 어떤 부분을 더 공부할지 길을 찾았다. (맞는 길인지는 아직 모른다) 한국의 자바/스프링 씬에는 주로 OOP에 대한 컨텐츠 밖에 없었고, 자연스럽게 OOP에만 사고가 갇혀있었는데, FP와 OOP를 적절하게 조합하여 좋은 품질의 코드를 작성할 수 있을 것 같은 생각이 든다.
좋은 코드를 짜는 능력을 손에 넣기 위해서 책에서 제시한 로드맵과 연습 방법을 꾸준히 연마할 생각이다.
함수형 프로그래밍 공부를 미루고 있었는데, 책 추천하신 내용을 보니 이 책만 있으면 드디어 시작할 수 있을 것 같다는 용기가 생기네요 ㅎㅎㅎ 이번에 꼭 구매해서 읽어봐야겠습니다
별개로 커피챗 앞두고 성찬님 벨로그 글을 쭉 읽어봤는데, 정말 매순간 충실하게 사시는 분 같아서 대단하다는 생각이 들어요
특히 쌩신입 개발자의 3개월 회고 글을 읽고 저도 많은 생각을 하게 되었습니다, 종종 글 보러 오겠습니다😄