개발공방

[쏙쏙 들어오는 함수형 코딩] 책을 읽게 된 이유 - 0 본문

개발 토크

[쏙쏙 들어오는 함수형 코딩] 책을 읽게 된 이유 - 0

chemi_ 2023. 6. 21. 23:17

쏙쏙 들어오는 함수형 코딩 - YES24

 

쏙쏙 들어오는 함수형 코딩 - YES24

소프트웨어의 복잡성을 다루기 위해 꼭 읽어야 할 책이 책은 함수형 사고를 통해 의도하지 않은 복잡성이 코드 전체로 퍼져나가는 것을 막고 프로그래밍을 간단하게 하는 법을 담았다. 시스템

www.yes24.com


iOS 개발 1년이 지난 시점에 직면한 문제

2022년 4월부터 iOS 개발을 시작했으니, iOS개발도 1년을 넘었다. 작년의 과정을 본다면 어떤 기능들을 만들고 서비스를 만드는데 초점이 맞춰져 있었다. 항상 시간에 쫓겼고, 무언가를 빠르게 만들고 출시하는데 급급했던 것 같다.

 

그 당시에 계획했던 서비스를 만들어내는 과정까지는 크게 문제가 없었다. 하지만 이후에 새로운 기능을 기획하고 기존의 코드에서 새 기능을 추가하려는 과정에서 문제가 많이 발생했다. 기획상으로 봤을땐 별로 어렵지 않아 보이는 기능이었다. 하지만 막상 코드를 짜려고 보니 건드려야 할 부분이 꽤나 많았다. A를 손대면 B에서 문제가 발생하기도 하고, 갑자기 C에서 문제가 발생하기도 하는 상황을 겪게되었다.

 

이런 문제들을 테스트를 통해 미리 확인할 수 있으면 좋겠다는 생각을 했고, 현재 프로젝트를 진행하고 있는 팀에선 테스트 가능한 코드를 만들자 란 목표를 만들었다. 테스트 코드 작성을 위해선 대대적인 리팩토링이 필요했다. 그 이유는 간단하다. 그 당시에 테스트 코드를 바로 도입하는건 거의 불가능에 가까운 상태였기 때문이다.

함수형 코딩 p.98

우리의 앱 상태는 위 사진의 설계가 없는 경우 처럼 매우 꼬여있다고 생각했다. 이 상태라면 테스트를 못하는게 당연하다. 그래서 꼬여있는 코드를 풀기 위해 리팩토링을 시작했다. 그 첫 단계 아키텍처 패턴을 적용하는 것이었고, 우리가 선택한 패턴은 MVVM이었다.

 

‘함수형 코딩’ 책을 읽게 된 이유

MVVM이야기는 잠시 접어두고, 내가 왜 함수형 코딩 책을 읽게됐을까??

함수형 프로그래밍 이란 단어는 은연중에 종종 들었었다. 그러다 서점에서 함수형 코딩 이란 책을 발견하고 내용을 살펴 봤다.

 

많은 개발자는 의도하지 않은 복잡성이 코드 전체로 퍼져나가는 것을 두려워한다. 이 책은 그런 개발자들의 두려움을 떨쳐 내도록 복잡성을 최소한으로 유지하면서 프로그래밍하는 방법을 설명한다. 대표적으로 시스템의 상태를 바꾸는 액션과 그렇지 않은 계산을 구분하는 법을 익히고, 액션을 계산으로 리팩터링하여 단순한 소프트웨어로 만드는 방법을 배운다. 또한, 비동기와 멀티스레드를 사용할 때 발생하는 시간에 관한 문제를 해결하는 방법을 알려준다. 마지막으로 반복적인 코드를 없애고 표현력을 높이는 방법도 알 수 있다.

- 함수형 코딩 뒷면

 

현재 직면한 문제가 결국 의도하지 않은 복잡성 때문에 앱의 상태가 위태한 것이었다. 위 내용을 읽고 내가 직면한 문제를 해결 할 수 있겠단 생각이 들었고, 과감히 구매를 결정했다.

 

아직 읽는 중이긴 하지만, 책 내용이 너무 만족스럽고 필자가 글을 너무 잘 썼다는 생각이 들었다. 생각의 흐름대로 내용이 흘러가서 내가 드는 궁금증을 다음 페이지에 바로 설명을 해주기도하고, 중간중간 연습 문제를 통해 스스로 생각할 수 있는 부분도 마련되어 있다.

이 책을 읽으면서 공유하고 싶은 내용들을 이해하기 편하게 정리해서 공유하고자 한다.

Comments