제 1부: 소개
제 2부: 벽돌부터 시작하기: 프로그래밍 패러다임
스터디를 시작한 계기는 회사에서 코드 리뷰를 진행할 때 팀 내에 정해진 코드 컨벤션이 부족하다는 문제를 인식하고, 이를 해결하기 위해 점진적으로 코드 규칙을 정립하고자 하게 되었다. 스터디할 책으로는 클린 아키텍처, 클린 코드, 오브젝트가 고려되었는데, 클린 코드는 이미 모두 읽었기 때문에 클린 아키텍처를 선택하여 큰 틀을 먼저 잡아나가기로 결정하였다.
현재 회사에서, 백엔드는 코틀린을 사용한 객체 지향 프로그래밍을, 프론트엔드는 자바스크립트를 사용한 객체 지향 프로그래밍과 함수형 프로그래밍 기법을 지향하고 있다. 자바스크립트는 대표적인 함수형 프로그래밍 언어로 알려져 있어, 실제로 어떻게 사용하는지 궁금했다. 완벽한 함수형 프로그래밍을 목표로 하는지 질문드렸을 때, 상황에 따라 객체 지향과 함수형을 적절히 섞어서 사용할 수밖에 없다는 답변을 들었다.
제 멋대로 작성한 부분.. 아래와 같이 수정하겠습니다..
디엠으로 질문드리니 프론트는 위와 같은 패러다임보다는 구조가 UI에 더 중점을 두고 있다고 하셨다.
Compound 패턴: https://patterns-dev-kr.github.io/design-patterns/compound-pattern/
Headless UI: https://velog.io/@heelieben/Headless-UI
위 두가지를 적용하려고 노력하신다 하심
자바를 사용할 때만 해도 함수형 프로그래밍에 대해 거의 알지 못했지만, 코틀린을 사용하면서 함수형 프로그래밍을 접하게 되었다. GPT에게 코드 리팩토링을 요청했을 때 함수형 코드 제시안을 보면서 처음으로 함수형 프로그래밍을 접하게 되었다. 그 코드를 보며 '와, 이건 절대 내가 짤 수 없다'라고 생각했을 정도로 함수형 코드를 짤수있는 사고가 아직 준비되지 않았다.
함수형 프로그래밍은 많이 보고 배우며 점진적으로 익혀나가야 한다고 생각했다. 코틀린을 사용할 때 최대한 많이 다루어봐야겠다고 결심했다.