확장메뉴
주요메뉴


닫기
사이즈 비교
소득공제 강력추천
켄트 벡의 구현 패턴

켄트 벡의 구현 패턴

: 읽기 쉬운 코드를 작성하는 77가지 자바 코딩 비법

리뷰 총점7.8 리뷰 4건 | 판매지수 927
베스트
IT 모바일 top20 2주
eBook이 출간되면 알려드립니다. eBook 출간 알림 신청
분철서비스 시작 시 알려드립니다. 분철서비스 알림신청

품목정보

품목정보
발행일 2008년 02월 14일
쪽수, 무게, 크기 184쪽 | 578g | 185*235*20mm
ISBN13 9788960770317
ISBN10 8960770310

이 상품의 태그

팩트풀니스

팩트풀니스

17,820 (10%)

'팩트풀니스' 상세페이지 이동

떨림과 울림

떨림과 울림

13,500 (10%)

'떨림과 울림' 상세페이지 이동

나는 4시간만 일한다

나는 4시간만 일한다

15,120 (10%)

'나는 4시간만 일한다' 상세페이지 이동

혼자 공부하는 머신러닝+딥러닝

혼자 공부하는 머신러닝+딥러닝

23,400 (10%)

'혼자 공부하는 머신러닝+딥러닝' 상세페이지 이동

Clean Code 클린 코드

Clean Code 클린 코드

29,700 (10%)

'Clean Code 클린 코드' 상세페이지 이동

지금 이 순간을 살아라

지금 이 순간을 살아라

11,250 (10%)

'지금 이 순간을 살아라' 상세페이지 이동

클린 아키텍처

클린 아키텍처

26,100 (10%)

'클린 아키텍처' 상세페이지 이동

한 권으로 읽는 컴퓨터 구조와 프로그래밍

한 권으로 읽는 컴퓨터 구조와 프로그래밍

31,500 (10%)

'한 권으로 읽는 컴퓨터 구조와 프로그래밍' 상세페이지 이동

객체지향의 사실과 오해

객체지향의 사실과 오해

18,000 (10%)

'객체지향의 사실과 오해' 상세페이지 이동

이펙티브 자바 Effective Java 3/E

이펙티브 자바 Effective Java 3/E

32,400 (10%)

'이펙티브 자바 Effective Java 3/E' 상세페이지 이동

미래를 바꾼 아홉 가지 알고리즘

미래를 바꾼 아홉 가지 알고리즘

16,920 (10%)

'미래를 바꾼 아홉 가지 알고리즘' 상세페이지 이동

리팩터링 2판

리팩터링 2판

31,500 (10%)

'리팩터링 2판' 상세페이지 이동

밑바닥부터 시작하는 딥러닝

밑바닥부터 시작하는 딥러닝

21,600 (10%)

'밑바닥부터 시작하는 딥러닝 ' 상세페이지 이동

구글 엔지니어는 이렇게 일한다

구글 엔지니어는 이렇게 일한다

40,500 (10%)

'구글 엔지니어는 이렇게 일한다' 상세페이지 이동

인스파이어드

인스파이어드

21,600 (10%)

'인스파이어드' 상세페이지 이동

핸즈온 머신러닝

핸즈온 머신러닝

49,500 (10%)

'핸즈온 머신러닝' 상세페이지 이동

CODE 코드

CODE 코드

22,500 (10%)

'CODE 코드' 상세페이지 이동

딥러닝 파이토치 교과서

딥러닝 파이토치 교과서

32,400 (10%)

'딥러닝 파이토치 교과서' 상세페이지 이동

딥 워크

딥 워크

15,300 (10%)

'딥 워크' 상세페이지 이동

오브젝트

오브젝트

34,200 (10%)

'오브젝트' 상세페이지 이동

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

1장 소개
2장 패턴
3장 프로그래밍 이론
4장 동기유발
5장 클래스
6장 상태
7장 행위
8장 메소드
9장 컬렉션
10장 발전하는 프레임워크
부록 A 성능 측정

사양 사양 보이기/감추기

< 추천의 글 > 켄트 벡은 커뮤니케이션 하기 쉽고, 이해하고 읽기 쉬운 코드를 작성하는 법을 마스터했다. 이 책에서는 품질 높은 코드와 클래스를 만들 때 지속적으로 내리게 되는 작지만 중요한 결정 사항들에 대한 설명과 통찰을 담고 있다. - 에리히 감마, IBM 최고 엔지니어 대부분 팀에는 탁월한 결정을 재빨리 내리는 핵심 개발자가 한두 명쯤은 있게 마련이다. 그들이 작성한 코드는 읽기 쉽고 빠르게 수정할 수 있으며, 안전하게 느껴지고 작업하기도 편리하다. 그들에게 왜 그런 방식으로 코드를 짰냐고 물으면, 모두 자신만의 훌륭한 해답을 갖고 있다. 여러분도 이 책을 읽고 잘 활용하면 핵심 개발자로 성장할 수 있을 것이다. 고급 개발자는 이 책에서 다루는 주제의 넓이와 깊이를 이해함으로써 새로운 기법을 배우고 기존에 사용하던 기법을 향상시킬 수 있을 것이다. 하지만 책이 명료하고 읽기 쉽게 쓰여진 덕에 초보 개발자도 얼마든지 무리 없이 읽을 수 있다. - 러스 루퍼, 실리콘 밸리 패턴 그룹 사람들은 코드를 얼마나 알기 쉽게 짤 수 있는지, 또 이해하기 쉬운 코드가 얼마나 큰 가치를 지니는지 제대로 알지 못한다. 켄트는 내게 많은 가르침을 주었다. 이 책을 통해 많은 사람들이 켄트의 내공을 전수받을 수 있게 되어 기쁘게 생각한다. - 마틴 파울러, 쏘트웍스(ThoughtWorks)의 수석 과학자, 쏘우트웍스 코드는 컴파일러는 물론이고 사람도 읽기 쉬워야 한다. 켄트 벡은 자신의 경험들을 집약해서 응집된 구현 패턴 모음을 만들어냈다. 이 조언들을 따르면 여러분은 정말 읽기 쉬운 코드를 만들 수 있을 것이다. - 그레고 호프, 『Enterprise Integration Patterns』의 저자 이 책에서 켄트 벡은 단순한 원칙을 통해 어떻게 명료하고 읽기 쉬운 코드를 작성할 수 있는지 보여줬다. 구현 패턴을 통해 개발자들은 읽기 쉬우면서도 미래 확장이 유연한 의도를 드러내는 코드를 작성할 수 있다. 이 책은 프로그래밍에 대해 진지한 자세를 지닌 모든 사람을 위한 필독서다. - 스벤 고츠 구현 패턴은 설계와 코딩 사이의 간극을 메워준다. 켄트 벡은 가치와 원칙을 통해 프로그래밍에 대한 새로운 사고법을 제시했다. - 디오미디스 스피넬리스, 『Code Reading and Code Quality』의 저자

저자 소개 관련자료 보이기/감추기

저자 : 켄트 벡
소프트웨어 산업계에서 가장 창조적이고 가장 유명한 지도자 중 한 명으로, 일관되게 기존의 소프트웨어 엔지니어링 규범에 도전해서 패턴, 테스트 기반 개발, 익스트림 프로그래밍 등을 주창해왔다. 현재는 쓰리 리버 인스티튜트(Three Rivers Institute)와 아지타 소프트웨어(Agitar Software) 소속이며, 애디슨 웨슬리 출판사에서 『테스트 주도 개발(Test-Driven Development)』, 『익스트림 프로그래밍 익스플레인드(Extreme Programming Explained, Second Edition)』 등의 책을 펴냈다.
역자 : 전동환
서울대학교 컴퓨터공학과를 졸업하고 MDS 테크놀로지에서 순수 국산 RTOS인 Velos 개발에 참여했다. 현재 미국 UC San Diego의 컴퓨터 공학과에서 박사과정을 밟으며 새로운 컴퓨터 프로세서에 대한 연구를 하고 있다. 표지가 예쁜 중고 음반과 세일 폭이 큰 와인을 사랑한다.

책 속으로 책속으로 보이기/감추기

이 책은 다른 사람들이 이해하기 쉬운 코드를 만드는 프로그래밍에 대한 내용을 담고 있다. 하지만 너무 큰 기대는 금물이다. 아쉽게도 그런 코드를 만드는 비법 같은 것은 없다. 읽기 쉬운 코드를 작성하는 과정은 읽기 쉬운 글을 쓰는 것과 같다. 대상 독자를 정해야 하고, 명확한 전체 구조를 갖고 있어야 하며, 전체 줄거리를 생각하며 세부를 묘사해야 한다. 자바는 다른 사람이 이해할 수 있는 코드를 작성하는 여러 가지 방법을 제공한다. 이 책은 읽기 쉬운 코드를 작성하는 자바 프로그래밍 습관을 모은 것이다.

이 책은 “어떻게 하면 다른 사람들에게 코드를 전달(커뮤니케이션)할 것인가?”라는 고민에 대한 답이기도 하다. 프로그래머는 혼자 생각하면서 보내는 시간이 너무 많으므로, 다른 사람의 관점에서 코드를 바라보려 시도하는 것 자체가 커다란 변화이다. 프로그래머는 “컴퓨터가 이 코드를 어떻게 처리할까”뿐 아니라 “내 생각을 다른 사람에게 어떻게 전달할까”하는 고민까지 해야 된다. 하지만 기존 코드를 이해하는 데 엄청난 소프트웨어 개발 비용이 투입되는 것을 감안하면, 이러한 변화는 건전할 뿐 아니라 경제적 이득을 가져올 수도 있다.

미국 TV 프로그램 중에 ‘제퍼디(Jeopardy)’라는 게임 쇼가 있다. 쇼 진행자가 정답을 알려주면, 각 참가자들은 질문을 유추해내는 게임이다. 예를 들어 진행자가 “2월”이라고 하면 참가자가 “1년 열두 달 중 가장 짧은 달은?”이라 대답하는 형식이다.

코딩은 제퍼디와 비슷하다. 자바는 언어를 구성하는 요소들을 통해 정답을 제공한다. 프로그래머는 언어에서 제공하는 각 요소들이 어떤 문제를 해결하기 위해 설계된 것인지 알아내야 한다. 예를 들어 정답이 “Set 클래스를 사용하라”라면, 질문은 “다른 프로그래머에게 중복 원소를 허용하지 않는 자료 모음이란 사실을 어떻게 전달할 것인가?”가 될 것이다. 구현 패턴은 프로그래밍을 할 때 빈번히 발생하는 문제들과, 그 문제들에 대한 해결책을 자바로 제시한 것이다.

프로그래밍에서 변수가 사용되는 범위를 정하는 것(scope management)이 중요한 것처럼, 책을 쓸 때도 책에서 다룰 내용의 범위를 정하는 것이 매우 중요하다. 이 책은 스타일에 대해 많은 설명을 하고 있지만, 최종 결정을 독자에게 맡기고 있으므로, 스타일 안내서는 아니다. 또한 프로그래머가 하루에도 여러 번 내려야 하는 자잘한 결정 사항에 관한 책이지 설계에 관한 책은 아니다. 이 책에서 다루는 패턴의 형태는 일반적이지 않고 특정 목적을 위한 것이므로, 패턴에 관한 책도 아니다. 아울러 자바의 많은 기능에 대해 다루지만, 독자가 자바를 이미 알고 있다고 가정하므로 자바에 관한 책도 아니다.

사실 이 책은 “좋은 코드는 중요하다”라는 빈약한 전제를 기반으로 만들어졌다. 좋은 코드가 상업적 성공이나 광범위한 사용자 확보에 대한 필요조건 혹은 충분조건이라고 믿기에는, 사람들이 조잡한 코드로 돈을 많이 버는 사례를 너무 많이 봐왔다. 코드 품질이 회사나 개인의 미래를 좌우하는 요소가 아니라 할지라도, 나는 여전히 코드 품질이 매우 중요하다고 믿는다. 자신 있게 코드를 개발, 출시하고 기회와 경쟁 상황에 따라 개발 방향을 바꿀 수 있으며 위기 속에서도 직원들의 사기를 높일 수 있는 회사는 조잡하고 버그가 있는 코드를 작성하는 회사에 비해 성공할 확률이 높다.

설사 좋은 코딩이 장기적으로 경제적 이득을 가져오지 못한다고 하더라도 나는 여전히 내가 작성할 수 있는 최고의 코드를 작성할 것이다. 인생이 70년이라 할 때 우리 인생은 20억 초에 불과하다. 그 소중한 순간들을 자랑스럽지 않는 일을 하면서 낭비하고 싶지는 않다. 코딩을 잘하는 것은 그 자체로도 프로그래머에게 만족감을 주지만, 다른 사람들이 내 코드를 이해하고 감탄해주며 내 코드를 사용하고 점차 발전시킨다는 점을 생각할 때 더욱 중요하다.

결국 이 책은 책임감에 대한 이야기이다. 여러분은 프로그래머로서 시간과 재능과 돈과 기회를 부여 받았다. 이러한 자원들을 책임감 있게 잘 사용하려면 어떻게 해야 하는가? 이 책은 이러한 고민에 대한 나의 답이다. 프로그래머는 자기 자신과 CPU뿐 아니라, 자신의 코드를 보고 사용할 다른 사람들을 배려해서 코딩을 해야 한다.
--- 저자 서문
한글 맞춤법을 안다고 글을 잘 쓰는 것은 아니다. 마찬가지로 자바 문법을 안다고 자바 프로그램을 잘 짜는 것도 아니다. 내가 쓰는 한글과 김훈 같은 작가가 구사하는 한글의 공력에 엄청난 차이가 있는 것처럼, 훌륭한 프로그래머와 초보 프로그래머가 작성하는 코드의 품질 차이는 엄청나다.

그렇다면 어떤 코드가 좋은 코드인가? 켄트 벡은 명쾌하게 말한다. 다른 사람 입장에서 읽기 쉬운 코드가 좋은 코드라고. 여러분도 다른 사람이 짠 코드를 받았는데, 도대체 이해하기가 너무 어렵고 수정하기도 쉽지 않아서 차라리 새로 짜는 편이 낫겠다고 푸념하곤 했던 기억들이 있을 것이다. 이런 코드는 사람들의 사기를 저하시킬 뿐 아니라, 유지 보수 비용을 크게 증가시키므로 경제적 관점에서도 좋지 않다.

그러면 어떻게 해야 읽기 쉬운 코드를 작성할 수 있을까? 지금까지 많은 사람들이 읽기 쉬운 코드를 작성하는 기법은 경험을 통해서만 얻을 수 있다고 생각했다(그래서 읽기 쉬운 코드를 짜는 능력에 대해 ‘내공’과 같은 단어를 사용했다). 하지만 켄트 벡은 자신의 경험을 반추해가며 읽기 쉬운 코드를 만드는 법을 77개의 패턴으로 정형화하는 데 성공했다. 또한 책에 제시된 패턴으로 해결할 수 없는 문제에 부딪혔을 경우에 대비해, 물고기 잡는 법에 해당하는 가치와 원칙들을 제시했다(가치와 원칙 - 익스트림 프로그래밍의 주창자답다).

하지만 가장 중요한 것은 스스로의 코드에 자부심을 갖고 더 좋은 코드를 작성하려는 마음 가짐이라 본다. 백 개의 구현 패턴을 알고 있더라도 실전에서 사용하지 않으면 아무 소용이 없다. 늘 자신의 코드를 읽게 될 동료들을 생각하면서 조금이라도 이해하기 쉬운 코드를 작성하려는 자세야 말로 그 어떤 패턴보다도 강력한 힘이 될 것이다.

개인적으로 박사 과정 연구를 하면서 자바로 차세대 컴파일러를 작성하고 있는데, 내가 많은 시간을 들여서 체득한 기법들을 책에서 정형화된 패턴으로 접할 때마다 이 책을 미리 봤더라면 하는 안타까움이 들었다. 켄트 벡의 조언이 이후 나의 컴파일러 코드 품질 향상에 큰 기여를 했음은 물론이다. 역자의 경우에서와 마찬가지로 여러분의 프로젝트에서도 구현 패턴이 큰 도움이 되리라 확신한다.
--- 역자 서문

출판사 리뷰 출판사 리뷰 보이기/감추기

기능적으로 올바르게 동작한다고 해서 모두 훌륭한 코드는 아니다. 훌륭한 코드는 프로그래머의 의도를 일관되게 전달해서, 다른 프로그래머들이 코드를 쉽게 이해하고 사용하며 자신 있게 수정할 수 있어야 한다. 그러나 훌륭한 코드는 쉽게 탄생하지 않는다. 훌륭한 코드는 프로그래머가 하루에도 수백 번 이상 내리는 작지만 중요한 결정의 산물이다. 이러한 중요한 결정들에 대해, XP를 만들고 소프트웨어 패턴과 테스트 기반 개발을 선도한 전설적인 소프트웨어 혁신자인 켄트 벡이 강력한 “구현 패턴”을 공개한다. 구현 패턴을 사용하면 더 간결하고 명쾌하며 체계적이고 비용 대비 효과적인 코드를 작성할 수 있다.



구현 패턴을 통해 다양한 수준의 프로그래머, 특히 소프트웨어 패턴이나 기민한 방법론을 사용하는 프로그래머들이 이득을 얻을 수 있을 것이다. 또한 이 책은 더 효율적으로 협업하고 싶거나 유지 보수가 쉬운 소프트웨어를 작성하고자 하는 팀에게 더할 나위 없이 좋은 자료가 될 것이다. 구현 패턴은 여러분이 매일 작성하는 프로그램의 면면을 바꿔놓을 것이 분명하다.

♦ 이 책에서 다루는 내용

■ 코드를 통한 커뮤니케이션의 가치와 패턴에 깔려 있는 철학
■ 언제 어떻게 클래스를 생성해야 하는가, 클래스는 어떻게 로직을 담아야 하는가
■ 상태를 저장하고 얻어오는 최선의 기법
■ 로직, 특히 대안 경로를 표현하는 행위에 관한 패턴
■ 메소드를 어떻게 작성하고 이름 짓고 나눠야 하는가
■ 컬렉션의 선택과 사용
■ 프레임워크를 작성할 때 필요한 구현 패턴의 변형

추천평 추천평 보이기/감추기

켄트 벡은 커뮤니케이션 하기 쉽고, 이해하고 읽기 쉬운 코드를 작성하는 법을 마스터했다. 이 책에서는 품질 높은 코드와 클래스를 만들 때 지속적으로 내리게 되는 작지만 중요한 결정 사항들에 대한 설명과 통찰을 담고 있다.
- 에리히 감마, IBM 최고 엔지니어

대부분 팀에는 탁월한 결정을 재빨리 내리는 핵심 개발자가 한두 명쯤은 있게 마련이다. 그들이 작성한 코드는 읽기 쉽고 빠르게 수정할 수 있으며, 안전하게 느껴지고 작업하기도 편리하다. 그들에게 왜 그런 방식으로 코드를 짰냐고 물으면, 모두 자신만의 훌륭한 해답을 갖고 있다. 여러분도 이 책을 읽고 잘 활용하면 핵심 개발자로 성장할 수 있을 것이다. 고급 개발자는 이 책에서 다루는 주제의 넓이와 깊이를 이해함으로써 새로운 기법을 배우고 기존에 사용하던 기법을 향상시킬 수 있을 것이다. 하지만 책이 명료하고 읽기 쉽게 쓰여진 덕에 초보 개발자도 얼마든지 무리 없이 읽을 수 있다.
- 러스 루퍼, 실리콘 밸리 패턴 그룹

사람들은 코드를 얼마나 알기 쉽게 짤 수 있는지, 또 이해하기 쉬운 코드가 얼마나 큰 가치를 지니는지 제대로 알지 못한다. 켄트는 내게 많은 가르침을 주었다. 이 책을 통해 많은 사람들이 켄트의 내공을 전수받을 수 있게 되어 기쁘게 생각한다.
- 마틴 파울러, 쏘트웍스(ThoughtWorks)의 수석 과학자, 쏘우트웍스

코드는 컴파일러는 물론이고 사람도 읽기 쉬워야 한다. 켄트 벡은 자신의 경험들을 집약해서 응집된 구현 패턴 모음을 만들어냈다. 이 조언들을 따르면 여러분은 정말 읽기 쉬운 코드를 만들 수 있을 것이다.
- 그레고 호프,
『Enterprise Integration Patterns』의 저자

이 책에서 켄트 벡은 단순한 원칙을 통해 어떻게 명료하고 읽기 쉬운 코드를 작성할 수 있는지 보여줬다. 구현 패턴을 통해 개발자들은 읽기 쉬우면서도 미래 확장이 유연한 의도를 드러내는 코드를 작성할 수 있다. 이 책은 프로그래밍에 대해 진지한 자세를 지닌 모든 사람을 위한 필독서다.
- 스벤 고츠

구현 패턴은 설계와 코딩 사이의 간극을 메워준다. 켄트 벡은 가치와 원칙을 통해 프로그래밍에 대한 새로운 사고법을 제시했다.
- 디오미디스 스피넬리스,
『Code Reading and Code Quality』의 저자

회원리뷰 (4건) 리뷰 총점7.8

혜택 및 유의사항?
구매 Implementation Patterns 내용 평점3점   편집/디자인 평점3점 n**l | 2018.11.10 | 추천1 | 댓글0 리뷰제목
  자바 개발자라면 한번 쯤 읽어보아야 한다고들 하는 책이다. 근데 생각보다 기대를 많이 하고 봐서 그런지 그렇~~게 감명깊지는 않았지만 재미있게 읽었다. 켄트 벡옹의 깊은 내공과 JUnit을 만들면서 했던 경험과 시행착오들이 많이 반영 된 것을 느낄 수 있었다(많이 언급 되기도 함). <본문 p.27>  책의 구성은 위의 그림으로 모두 표현할 수 있다. 클래스의;
리뷰제목



  자바 개발자라면 한번 쯤 읽어보아야 한다고들 하는 책이다. 근데 생각보다 기대를 많이 하고 봐서 그런지 그렇~~게 감명깊지는 않았지만 재미있게 읽었다. 켄트 벡옹의 깊은 내공과 JUnit을 만들면서 했던 경험과 시행착오들이 많이 반영 된 것을 느낄 수 있었다(많이 언급 되기도 함). 


<본문 p.27>


  책의 구성은 위의 그림으로 모두 표현할 수 있다. 클래스의 행위와 상태를 토대로 그것들에 맞는 패턴들을 설명해 나가고 있다.


목차

  1. 소개
  2. 패턴
  3. 프로그래밍 이론
  4. 동기유발
  5. 클래스
  6. 상태
  7. 행위
  8. 메소드
  9. 컬렉션
  10. 발전하는 프레임워크
  11. 부록A 성능 측정


  가치와 원칙, 패턴의 기치아래 구현 패턴의 이론적 토대를 설명한다. 

지금까지 살펴본 세 가지 요소인 가치, 원칙, 패턴을 사용하면 균형 있는 개발 스타일을 얻을 수 있다. 패턴은 지금 당장 무엇을 해야 할지를 알려주고, 가치는 패턴을 사용해야 하는 동기를 알려주며, 원칙은 동기를 행동으로 어떻게 바꿔줄지 알려준다. <본문 p.34>

  가치와 원칙은 아래 세부 사항들을 통해 설명하고 있다.
  • 가치
    • 커뮤니케이션
    • 단순성
    • 유연성
  • 원칙
    • 지역적 변화
    • 최소 중복
    • 로직과 데이터의 결합
    • 대칭성
    • 선언적 표현
    • 변화율


  3장 프로그래밍 이론에 나오는 내용들인데 4장부터 뒤의 내용들을 굳이 보지 않더라도 가치와 원칙을 잘 지키려고 노력한다면 좋은 개발자가 될 수 있을 것이다. 4장부터의 내용은 그것을 더 쉽게 하기 위해 켄트 벡이 정리하고 경험한 내용들을 서술했다고 볼 수 있다.


  한 메소드 안에서 같은 추상화 레벨 유지하고 세부 구현은 최대한 숨겨서 코드를 읽기 쉽게 해야 한다는 부분이 가장 기억에 남는다. 실제 로직이 어떻게 되어있는지 궁금하다면 그 때 세부적으로 살펴봐도 늦지 않을 것이다. 추상화 레벨을 잘 유지하고 세부 구현을 숨김으로서 읽기 쉽고 깔끔한 코드를 만드는 것이 가장 중요하지 않을까 생각이 든다.


  몇가지 아쉬운 점은 실제 예제 코드를 많이 보여주었다면 더 좋지 않았을까 싶다. 예제 코드가 많이 없고 드문드문 있어서 설명을 읽어도 실제로 어떨때 어떻게 쓰이는지 이해하기 어려운 부분들이 종종 있었다. 또한 개발 서적인데 번역을 고려하지 않고 한 것 같다. 전용(private), 보호(protected), 공용(public), J유닛(JUnit) 등 차라리 그냥 원어로 쓰는 편이 더 좋았을 것들을 번역해서 오히려 읽기 어려웠다.


  77가지의 다양한 상황에서의 구현 패턴들을 설명했지만 결국 절대적인 답은 없다. 상황에 맞게 처지에 맞게 코드를 만들어 나가는 것이 답일 것이다. 


켄트 벡의 구현패턴, 에이콘(켄트 벡)


출처: http://countryxide.tistory.com/99 [배워서 남주자]

댓글 0 1명이 이 리뷰를 추천합니다. 공감 1
켄트 벡의 구현 패턴 내용 평점5점   편집/디자인 평점5점 오*원 | 2012.12.18 | 추천0 | 댓글0 리뷰제목
오랜 시간 프로그래밍을 해왔음에도 코딩, 설계 방식에 대한 뚜렷한 주관이 없다는것에 대한 부담감을 마음속에 항상 갖고 있습니다. 코딩이나 설계 스타일에 대한 문서라도 작성해 놓을걸 이라는 생각도 하고 실제 시도도 해보지만 글로 풀어 쓴다는것이 여간 힘든게 아닙니다. 막연히 머리로 생각하던것을 글로 쓸때 수반되는 적절한 단어에 대한 필요성을 충분히 충족시킬 자신이 없기;
리뷰제목

오랜 시간 프로그래밍을 해왔음에도 코딩, 설계 방식에 대한 뚜렷한 주관이 없다는것에 대한 부담감을 마음속에 항상 갖고 있습니다. 코딩이나 설계 스타일에 대한 문서라도 작성해 놓을걸 이라는 생각도 하고 실제 시도도 해보지만 글로 풀어 쓴다는것이 여간 힘든게 아닙니다. 막연히 머리로 생각하던것을 글로 쓸때 수반되는 적절한 단어에 대한 필요성을 충분히 충족시킬 자신이 없기 때문입니다.

 

간혹 오픈 소스등을 보다보면 맘에 드는 스타일이 보이곤 합니다. 그 부분을 현재의 방식과 혼용하다보면 나비효과 처럼 전혀 관련이 없을꺼라 생각되던 부분들까지 불가피한 변경이 일어나는 경우가 있습니다. 그럴수록 명확한 스타일에 대한 필요가 절실해지곤 합니다. 이런식으로 매번 고민하는 이유는 아마 기존의 스타일에 대한 확신이 부족하기 때문일것입니다. 구글에서 제시하는 코딩 스타일처럼 이유와 확신을 근거로 문서로 제공되어진다면 그것만큼 좋은건 없을 겁니다.

 

이런 생각들을 하고 있을 즈음에 보게된 것이 '켄트 벡의 구현 패턴'입니다. 저자의 서문을 보면 '다른 사람들이 이해하기 쉬운 코드를 만드는 프로그래밍에 대한 내용을 담고 있다' 라고 쓰여져 있습니다. 다른 사람들이 이해하기 쉬운 코드란 것이 어떤 것일까요? 본인의 속한 그룹에 의해서는 찬양 받는 스타일임에도 불구하고 그룹에 속하지 않은 다른 사람이 봤을때는 어렵게 보이는 문제에 대해서는 어떤 생각을 가져야 할까요?

 

제 경우에는 기존 팀의 스타일에 대해서 기존 그룹 구성원들은 모두 찬양하였지만 저만은 불편하고 어렵게만 느껴졌던 경험이 있습니다. 그 이유를 기존 팀원들은 초반부터 써왔기 때문이고 전 다른 스타일로 작업을 하다가 뒤늦게 프로젝트에 참여하게 되어 변화가 느린것이라 생각하였습니다. 즉 노출빈도에 따른 적응의 문제였다고 생각할 수밖에 없었습니다.

 

하지만 지금에 와서야 생각을 해보면 이유는 아마 스타일에 대한 가르침을 필요가 있을 경우에 적절하지 못한 말로 설명을 듣거나 기존에 코딩된 내용을 보고 따라 하면서 익혔기 때문이 가장 큰 것으로 보입니다. 만약 구글 코딩 스타일 처럼 스타일에 대한 이유와 상황이 문서로 존재하고 그걸 보고 배웠다면 조금은 더 빠른 시간안에 익숙해졌을거라 확신합니다.

 

예를 들자면 클래스 이름을 지어서 검수받을때 '이 클래스의 이름은 이것보다는 이게 더 나을거 같은데?' 라는 말을 들은 경우가 있습니다. '이거나 저거나 비슷해 보이는데 무슨 이유죠?' 라고 되물을 경우 '여기엔 이런 이름이 더 어울려' 라는 등의 왠지 불명확한 답변을 들을경우 이해하지 못하고 그냥 넘어간 경우가 있습니다.

 

만약 켄트 벡이라면 어떤식으로 우리를 이해시켜 주었을까요? 상위 클래스 이름을 지을때의 규칙은 무엇이 있는지 켄트 벡의 얘기를 들어보도록 하겠습니다.

 

클래스 이름을 지을 때는 간결성과 표현성 사이에서 고민하게 된다.이런 딜레마에서 벗어나는 방법은 메타포metaphor, 은유를 사용하는 것이다.

 

간결성, 표현성, 은유 이런 단어들을 보자마자 항상 머릿속으로만 고민하던 내용들이 이런 내용이었구나 란 생각과 함께 명확해짐을 느낄 수 있었습니다. 만약 '이 클래스에서는 이러한 이유로 인해 간결성이 있는 이름 필요하고 여기서는 표현성이 부각되어야 되요' 란 설명과 함께 가르침을 받았다면 그 이해도는 분명 달라졌을 거라 생각되어 집니다.

 

이런 클래스의 이름 짓는 방법에 대한 적절한 단어의 필요성을 찾던차에 보게 되어서 그런지 너무나 유익한 도움이 되었습니다. 다만 후반으로 갈수록 조금은 지루해지는 면이 있습니다. 아직 필요에 대한 요구가 없기 때문일수도 있고 별다른 코딩이 없이 개념만 나열하기 때문일수도 있습니다.

 

하지만 이 책은 한번 읽어서 정보를 얻고 덮는 책이 아닌 옆에 두고 주기적으로 반복해서 읽어야할 책 중의 하나라는 생각이듭니다. 이를 테면 프로젝트가 새로이 시작되는 시기라든가 프로젝트가 끝난후의 시점이 될수 있을것입니다.

 

만약 개발 경력이 오래 되지 않았다면 쉽게 와닿지 않는 그저 지루한 책에 불과할 수도 있습니다. 좋은 책이란 기본적으로 좋은 내용을 알려주어야 함은 물론이거니와 독자의 이해와 필요 요구가 함께 수반되어야 하기 때문입니다. 경험이 쌓일때마다 반복해서 읽어보시길 추천드립니다.

 

http://raid79.tistory.com/696

 

댓글 0 이 리뷰가 도움이 되었나요? 공감 0
켄트 벡의 구현 패턴 내용 평점4점   편집/디자인 평점4점 j***o | 2010.08.01 | 추천0 | 댓글0 리뷰제목
책을 받아보고 사실 두께가 생각보다 얇아서 조금 놀랐다. 보통 패턴책은 조금 두꺼운 감이 있는데 .     일단 기존에 패턴책과는 접근방법이 달랐다.   자바에 속성, 메소드, 클래스, 패키지 와 같은 그 구성구성을 어떻게 구성하느냐에 따라 코드간의 유연성 등이 어떻게 달라지는지에 대해서 다루고 있다.   자바의 구성단위를 다루었다는 점이 참;
리뷰제목

책을 받아보고 사실

두께가 생각보다 얇아서 조금 놀랐다.

보통 패턴책은 조금 두꺼운 감이 있는데 .

 

 

일단 기존에 패턴책과는 접근방법이 달랐다.

 

자바에 속성, 메소드, 클래스, 패키지

와 같은 그 구성구성을 어떻게 구성하느냐에 따라

코드간의 유연성 등이 어떻게 달라지는지에 대해서 다루고 있다.

 

자바의 구성단위를 다루었다는 점이 참 좋았던거 같다.

 

조금 아쉬웠던 점은

해당하는 점에 대한 예제가 조금더 많았었다면 하는 아쉬움이 있다.

 

그리고 용어의 경우

조금 익숙하지 않은 용어들이 조금 아쉬웠다

예를 들면 전역변수를 필드 라고 표현한듯 한데

필드라는 단어보단 전역변수가 나았지 않나 싶다.

 

이 책을 읽고

리팩토링이나 디자인 패턴 책을 읽으면 참 좋을거 같다.

 

 

댓글 0 이 리뷰가 도움이 되었나요? 공감 0

한줄평 (2건) 한줄평 총점 8.0

혜택 및 유의사항 ?
구매 평점5점
잘 읽어보겠읍니다
이 한줄평이 도움이 되었나요? 공감 0
YES마니아 : 로얄 s*******5 | 2023.04.20
평점3점
아직 내공이 부족한지 읽어도 무슨 말인지 모를 내용이 많았음..
이 한줄평이 도움이 되었나요? 공감 0
p*****h | 2018.06.07
  •  쿠폰은 결제 시 적용해 주세요.
1   19,800
뒤로 앞으로 맨위로 공유하기