이전

리뷰 (4)

한줄평
평점 분포
  • 리뷰 총점10 100%
  • 리뷰 총점8 0%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 10.0
  • 30대 10.0
  • 40대 10.0
  • 50대 0.0

포토/동영상 (1)

리뷰 총점 종이책
도메인 주도 설계를 위한 함수형 프로그래밍
"도메인 주도 설계를 위한 함수형 프로그래밍" 내용보기
백앤드 개발자는 아니지만, 도메인 주도 설계(DDD)라는 개념은 오래전부터 한 번쯤 제대로 공부해보고 싶었다. 처음 DDD를 접했을 당시에는 관련 서적도 많지 않았고, 어렵게 읽기 시작한 책들 역시 쉽게 이해되지 않았다. 언젠가 다시 공부할 날을 기약하며 덮어두게 되었다.그러던 중 『도메인 주도 설계를 위한 함수형 프로그래밍』을 알게 되었다. 평소 관심 있던 함수형 프로그래밍
"도메인 주도 설계를 위한 함수형 프로그래밍" 내용보기

백앤드 개발자는 아니지만, 도메인 주도 설계(DDD)라는 개념은 오래전부터 한 번쯤 제대로 공부해보고 싶었다. 처음 DDD를 접했을 당시에는 관련 서적도 많지 않았고, 어렵게 읽기 시작한 책들 역시 쉽게 이해되지 않았다. 언젠가 다시 공부할 날을 기약하며 덮어두게 되었다.


그러던 중 『도메인 주도 설계를 위한 함수형 프로그래밍』을 알게 되었다. 평소 관심 있던 함수형 프로그래밍과 DDD를 함께 다룬다는 점이 무척 흥미롭게 느껴져 책을 읽기 시작했다.


DDD와 함수형 프로그래밍은 각각만으로도 학습 범위가 상당히 넓고 깊은 주제다. 실제로 관련 서적들을 읽어보면 추상적인 개념과 낯선 용어들 때문에 중간에 흐름을 놓치거나 끝까지 읽지 못하는 경우도 많다. 그런 점에서 이 책의 가장 큰 장점은, DDD와 함수형 프로그래밍의 핵심적인 사고방식을 비교적 부담 없이 경험해볼 수 있다는 점이라고 생각한다. 모든 내용을 깊고 완벽하게 다루기보다는 왜 이런 방식이 필요한지, 어떤 문제를 해결하기 위한 접근인지를 중심으로 설명해주기 때문에 끝까지 읽어나가기 수월했다.


이 책은 총 3개의 파트로 구성되어 있는데, 초반에는 현업에서 충분히 마주칠 수 있는 사례를 바탕으로 도메인 모델링과 함수형 프로그래밍에 필요한 개념들을 설명하고 이후에는 이를 실제 도메인 문제에 어떻게 적용할 수 있는지를 점차 확장해 나간다. 단순히 이론만 설명하는 것이 아니라 실제 비즈니스 규칙을 코드로 표현하는 과정 중심으로 전개된다는 점이 인상 깊었다.


객체지향 프로그래밍을 사용하면서도 종종 "객체"보다는 단순 데이터 전달에 가까운 형태로 코드를 작성하게 되는 경우가 많았는데, 이 책을 읽으며 도메인 자체를 코드 안에서 더 명확하게 표현하는 방식에 대해 다시 생각하게 되었다. 단순히 클래스를 나누는 수준이 아니라, 비즈니스 규칙과 의미를 타입 자체에 담아내려는 접근이 인상 깊었다. 특히 ID 같은 값조차 단순 문자열(String)로 다루기보다 별도의 타입으로 정의해 의미를 부여하는 방식이 인상 깊었다. DDD를 제대로 적용한다면 객체지향 프로그래밍의 완성도를 더 높일 수 있겠다는 생각이 들었다.


또 하나 좋았던 점은 대부분의 함수형 프로그래밍 관련 서적들이 스칼라나 하스켈 중심으로 설명하는 것과 달리, 이 책은 코틀린과 타입스크립트를 사용한다는 점이었다. 특히 원서에서는 F#으로 작성된 예제를 사용하고 있지만, 옮긴이가 한국 개발자들이 보다 익숙하게 접근할 수 있도록 코틀린과 타입스크립트 기반으로 예제를 재작성했다는 점이 매우 인상 깊었다. 단순 번역에 그치지 않고 국내 개발 환경과 독자층을 고려해 내용을 다시 구성했다는 점에서 옮긴이의 많은 고민과 노력이 느껴졌다.


개인적으로는 코틀린을 주 언어로 사용하고 있는 상태에서 타입스크립트를 학습해야하는 상황이었기 때문에 이 책의 구성에 큰 도움을 받았다. DDD와 함수형 프로그래밍을 학습하는 동시에, 코틀린을 기반으로 타입스크립트를 함께 이해할 수 있다는 점도 큰 장점이었다. 코틀린 코드를 먼저 이해한 뒤 타입스크립트 코드를 비교하며 읽다 보니, 타입스크립트의 함수형 스타일과 타입 시스템도 훨씬 자연스럽게 받아들일 수 있었다.


DDD 역시 거대한 아키텍처 방법론처럼 느끼고 있었는데, 실제로는 현실의 업무 규칙과 상태를 코드로 어떻게 명확하게 표현할 것인가에 대한 고민이라는 점을 조금이나마 이해할 수 있었다.


물론 한 번 읽는다고 모든 내용을 완전히 이해할 수 있는 책은 아닌 것 같다. 하지만 DDD와 함수형 프로그래밍에 대한 막연한 거리감을 느끼던 입장에서, 끝까지 읽을 수 있었고, "왜 이런 접근이 필요한가"를 이해할 수 있었다는 점만으로도 충분히 의미 있는 독서였다. DDD나 함수형 프로그래밍을 어렵게만 느끼고 있었던 개발자라면 좋은 입문서이자 오랫동안 곁에 두고 다시 펼쳐볼 만한 책이라고 생각한다.

k********7 2026.05.11. 신고 공감 1 댓글 0
리뷰 총점 종이책
기대됩니다
"기대됩니다" 내용보기
와... Scott Wlaschin 책이 번역되다니 너무 기대됩니다. 게다가 예제 코드도 타입스크립트와 코틀린으로 업데이트되었네요. 역자 정말 대단합니다. 많은 분들이 읽었으면 좋겠네요. 정말 좋은 책, 추천합니다. 기대해요!
"기대됩니다" 내용보기
와... Scott Wlaschin 책이 번역되다니 너무 기대됩니다. 게다가 예제 코드도 타입스크립트와 코틀린으로 업데이트되었네요. 역자 정말 대단합니다. 많은 분들이 읽었으면 좋겠네요. 정말 좋은 책, 추천합니다. 기대해요!
s******e 2025.11.10. 신고 공감 1 댓글 0
리뷰 총점 종이책
《도메인 주도 설계를 위한 함수형 프로그래밍》 뜬구름 잡는 DDD를 땅으로 끌어 내리기
"《도메인 주도 설계를 위한 함수형 프로그래밍》 뜬구름 잡는 DDD를 땅으로 끌어 내리기" 내용보기
백엔드 개발자를 준비하면서 가장 많이 듣게 되는 키워드 중 하나가 바로 DDD(Domain-Driven Design, 도메인 주도 설계)입니다."도메인 전문가와 대화해라", "유비쿼터스 언어를 만들어라"같은 말들은 정말 멋지게 들리지만,막상 키보드 위에 손을 올리면 머릿속이 하얗게 변하곤 했습니다. ‘그래서 이걸 코드로 어떻게 짜라는 거지? 엔티티와 VO는 알겠는데,서비스 계층은 어떻게 구
"《도메인 주도 설계를 위한 함수형 프로그래밍》 뜬구름 잡는 DDD를 땅으로 끌어 내리기" 내용보기


 

 

백엔드 개발자를 준비하면서 가장 많이 듣게 되는 키워드 중 하나가 바로 DDD(Domain-Driven Design, 도메인 주도 설계)입니다.
"도메인 전문가와 대화해라", "유비쿼터스 언어를 만들어라"
같은 말들은 정말 멋지게 들리지만,
막상 키보드 위에 손을 올리면 머릿속이 하얗게 변하곤 했습니다.

 

‘그래서 이걸 코드로 어떻게 짜라는 거지? 엔티티와 VO는 알겠는데,

서비스 계층은 어떻게 구성해야 도메인 지식이 드러나는 걸까?’

이런 고민 속에서 만난 책이 바로 <도메인 주도 설계를 위한 함수형 프로그래밍>입니다.

 

결론부터 말하자면, 이 책은 추상적인 DDD의 개념을 '타입(Type)'과 '함수(Function)'라는 구체적인 도구로 묶어 실체화시켜 줍니다.

 

(한번만 읽으면서 바로 이해는 쉽지 않은 것 같습니다. 천천히 음미하며 2~3번 반복으로 읽는것을 추천드립니다!)

 

1. 이 책을 선택한 이유: 이론과 구현의 연결 고리



시중의 많은 DDD 책들은 '전략적 설계(비즈니스 이해)'에 많은 지면을 할애하거나,

객체 지향의 복잡한 패턴(팩토리, 레포지토리 등)에 집중하느라

정작 "비즈니스 로직을 명확하게 표현하는 법"을 놓치는 경우가 있습니다.

 

하지만 이 책의 목차를 보면 PART II 도메인 모델링하기와 PART III 모델 구현하기가 책의 핵심입니다.

특히 Chapter 4, 5의 '타입' 이야기와 Chapter 7의 '파이프라인' 이야기는

백엔드 개발자가 비즈니스 로직을 어떻게 코드로 번역해야 하는지에 대한 새로운 시각을 제공합니다.

 



 

 

2. 제가 생각하는 이 책의 강력한 장점 3가지

① 타입 시스템 자체가 '살아있는 문서'가 된다

 

보통 우리는 주석이나 위키 문서를 통해 비즈니스 룰을 설명합니다.

하지만 이 책은 타입 시스템을 활용해 문서 없이도 코드가 비즈니스를 설명하게 만듭니다.

"Email은 단순한 String이 아니다. VerifiedEmail과 UnverifiedEmail은 서로 다른 타입이다."

 

책에서는 AND 타입(객체/레코드)과 OR 타입(선택/열거형)을 조합하여,

불가능한 상태를 컴파일 시점에 막아버리는 모델링을 보여줍니다.

 

유효하지 않은 상태는 아예 코드로 표현할 수 없게 만드는 것, 이것이 진정한 도메인 보호라는 것을 깨닫게 해줍니다.

 

② 파이프라인으로 그려내는 비즈니스 프로세스

백엔드 개발의 핵심은 결국 Input -> 검증 -> 처리 -> 저장 -> Output으로 이어지는 데이터의 흐름입니다.

이 책은 이 흐름을 '철도(Railway) 지향 프로그래밍' 혹은 '파이프라인' 패턴으로 설명합니다.

  • Validate -> Price -> Order

위와 같이 함수들을 레고 블록처럼 연결하여 비즈니스 로세스를 구성합니다.

이는 거대한 서비스 클래스에 절차지향적으로 로직을 때려 넣던 방식에서 벗어나,

작고 테스트 가능한 함수들의 조합으로 아키텍처를 바라보게 합니다.

 

특히 Chapter 3에서 언급되는

'양파 아키텍처(Onion Architecture)'와 결합되어, 외부 의존성(DB, API)을 가장자리로 밀어내고

순수한 도메인 로직을 지키는 방법을 명확히 보여줍니다.

 

③ 예외 처리를 비즈니스 로직의 일부로

백엔드 개발에서 가장 골치 아픈 것이 try-catch와 예외 처리입니다.

이 책은 에러를 단순히 던져야 할(throw) 예외가 아니라, 비즈니스 프로세스의 결과값(Result/Either)으로 다룹니다.

성공했을 때의 경로와 실패했을 때의 경로를 명시적으로 타입에 드러냄으로써,

어떤 에러가 발생할 수 있는지 함수 시그니처만 보고도 파악할 수 있게 돕습니다.

 

3. 총평: 객체지향 개발자에게 던지는 신선한 충격

저는 주로 Java와 같은 객체지향 언어를 공부했지만,

이 책을 읽으면서 언어의 패러다임을 떠나 "설계의 본질"을 다시 생각하게 되었습니다.

 

저자가 말하는 함수형 프로그래밍은 난해한 수학 공식이 아닙니다.

"부수 효과(Side Effect)를 격리하고, 타입을 통해 도메인을 명확히 정의하며, 데이터의 흐름을 파이프라인으로 연결하라"는 실용적인 조언들입니다.

이는 현대적인 Java나 Go, Kotlin을 사용하는 백엔드 개발자라면 반드시 갖춰야 할 사고방식입니다.


📚 추천 대상 (Who)

이 책은 다음과 같은 분들에게 강력히 추천합니다.

  1. DDD 이론은 알겠는데 구현이 막막한 백엔드 개발자: "그래서 Entity에 로직을 넣으라는 거야, 말라는 거야?"라고 고민해본 적이 있다면 해답을 얻을 수 있습니다.
  2. Java/Kotlin/TypeScript 사용자: 책의 예제는 함수형 언어(F#) 기반이지만, 번역서에서는 Kotlin/TypeScript 맥락을 반영하고 있어(Chapter 4) 현대적인 백엔드 언어 사용자에게도 충분히 적용 가능합니다.
  3. Clean Architecture에 관심 있는 분: 도메인 로직을 외부(DB, UI)로부터 격리하는 가장 깔끔한 방법을 제시합니다.

📖 이 책을 읽는 방법 (How)

  1. 언어 문법(Syntax)에 집착하지 X:
    책에 나오는 F#이나 함수형 문법이 낯설 수 있습니다.
    코드 한 줄 한 줄을 해석하기보다,
    "타입으로 도메인을 표현하는 사고방식"과 "파이프라인 설계 구조"를 파악하는 데 집중하는게 좋습니다.
    (코드가 있다면 가볍게 보고 빠르게 넘기는것도 방법입니다, 늬양스만 알면되니까요!)
  2. PART 1 -> PART 2 -> PART 3 순서대로 읽되, Chapter 6, 7은 정독:
    도메인의 무결성을 지키는 법(Ch 6)과 워크플로우를 파이프라인으로 만드는 법(Ch 7)이 이 책의 백미입니다.
  3. 자신의 언어로 변환:
    앞서 1번에서 코드를 가볍게 하라고 말했지만,
    다시 2회독 3회독에서는 스스로의 코드로 한번 변환해본다면 더 체감이 가능할 것 같습니다.
    책의 예제를 내가 사용하는 언어(Java, Go 등)로는 어떻게 구현할 수 있을지 고민하며 읽으면 학습 효과가 배가 됩니다.
b*****0 2025.12.17. 신고 공감 0 댓글 0
리뷰 총점 종이책
도메인 주도 설계를 위한 함수형 프로그래밍 리뷰
"도메인 주도 설계를 위한 함수형 프로그래밍 리뷰" 내용보기
제이펍 출판사에서 책을 제공받아 작성한 리뷰입니다.✨ 책의 구성· Part 1: 도메인 이해하기 (DDD 기본 개념, 함수형 아키텍처)· Part 2: 도메인 모델링하기 (타입 중심 모델링, 파이프라인)· Part 3: 모델 구현하기 (함수 조합, 오류 처리, 영속화)Part1에서는 개발자와 도메인 전문가가 대화하며 도메인을 파악해가는 과정을 스토리텔링 방식으로 보여줍니다. 스토리텔링 방식이라 몰
"도메인 주도 설계를 위한 함수형 프로그래밍 리뷰" 내용보기
제이펍 출판사에서 책을 제공받아 작성한 리뷰입니다.
✨ 책의 구성
· Part 1: 도메인 이해하기 (DDD 기본 개념, 함수형 아키텍처)
· Part 2: 도메인 모델링하기 (타입 중심 모델링, 파이프라인)
· Part 3: 모델 구현하기 (함수 조합, 오류 처리, 영속화)

Part1에서는 개발자와 도메인 전문가가 대화하며 도메인을 파악해가는 과정을 스토리텔링 방식으로 보여줍니다. 스토리텔링 방식이라 몰입도 되고, 도메인을 이해하는데에도 많은 도움이 되었습니다.

2장에서 데이터베이스 중심 디자인과 클래스 중심 디자인을 지양하라는 내용이 나올 때 정말 놀랐습니다. 프로젝트를 진행하면서 자연스럽게 DB 스키마부터 설계하거나 클래스 다이어그램부터 떠올렸기 때문입니다.

도메인 주도 설계에서는 스키마나 클래스가 아닌 '도메인'이 설계를 주도해야 한다고 말합니다. 핵심은 도메인 전문가와 개발자, 팀원이 모두 이해할 수 있는 언어(공용어)로 모델을 표현하는 것이었습니다.

🎯 핵심 학습 내용
1. 공용어(Ubiquitous Language)의 중요성
2. 타입으로 도메인 제약을 표현하는 방법
3. 함수 파이프라인으로 작업 흐름 모델링
4. 도메인 이벤트와 경계 진 맥락(Bounded Context)
5. TypeScript와 Kotlin에서의 타입 시스템 활용

객체 지향이 아닌 타입과 함수 중심으로 DDD를 설명하고, TypeScript와 Kotlin 두 언어로 상세한 예제를 제공해 구현 과정을 쉽게 따라갈 수 있었습니다.

서비스를 설계할 때 단순히 "기능을 어떻게 구현할 것인가?"가 아니라, "서비스 안에서 어떤 경계를 나누고 도메인을 어떻게 표현해야 하는지"에 대해 고민해보는 계기가 되었습니다.

"어디서부터 생각을 시작해야 하는지"에 대한 감은 잡을 수 있었고, "이런 게 있구나", "이런 식으로 생각할 수도 있구나"를 알게 해주는 것 만으로도 충분한 가치가 있는 책입니다.

읽다 보니 도메인 주도 설계의 핵심은 구현이나 패턴보다도, 팀 내의 의사소통을 어떻게 구조화할 것인가에 있다는 생각이 들었습니다. 구현보다 앞선 세계가 있다는 것을 알게 해준 책입니다.

📌 추천 대상
✅ TypeScript나 Kotlin을 다룰 수 있는 개발자
✅ DDD가 궁금하지만 어디서부터 시작해야 할지 모르는 초중급자
✅ 함수형 프로그래밍과 DDD를 함께 경험해보고 싶은 분
✅ 팀 내 의사소통 개선에 관심 있는 분

#제이펍




z*******d 2025.12.13. 신고 공감 0 댓글 0