닫기
HOME
국내도서
국내도서
건강/취미
경제경영
공무원 수험서
과학
달력/기타
대학교재
만화
사회과학
소설/시/희곡
수험서/자격증
어린이
에세이
여행
역사
예술/대중문화
외국어
요리/살림
유아
인문학
자기계발
잡지
장르소설
전집/중고전집
종교/역학
좋은부모
청소년
컴퓨터/모바일
초등학교참고서
중학교참고서
고등학교참고서
베스트셀러
새로나온책
재정가도서
이벤트
독자북펀드
외국도서
외국도서
영미도서
ELT/어학/사전
가정/원예/인테리어
건강/스포츠
경제경영
공예/취미/수집
만화
소설/시/희곡
여행
역사
요리
인문/사회
종교/명상/점술
청소년
해외잡지
대학교재/전문서
건축/디자인
교육/자료
기술공학
법률
수험서
언어학
예술/대중문화
의학
자연과학
컴퓨터
기타 언어권
독일 도서
스페인 도서
중국 도서
어린이
그림책
동화책
리더스
영어학습
챕터북
코스북
일본도서
문학
애니메이션 굿즈
잡지
코믹
베스트셀러
새로나온책
특가도서
이벤트
LEXILE 지수별
원서 읽기
eBook
eBook
건강/취미
경제경영
과학
라이트노벨
로맨스
만화
사회과학
소설/시/희곡
어린이
에세이
여행
역사
예술/대중문화
외국어
요리/살림
인문학
자기계발
좋은부모
청소년
판타지/무협
BL
오디오북
베스트셀러
새로나온eBook
대여eBook
연재eBook
알라딘굿즈
알라딘굿즈
가방.파우치
데스크용품
독서용품
디지털
리빙·키친
문구
생활용품
의류·잡화
노트
독서대
북마크
북커버
사무용품
조명
파우치
필기구
피너츠
어린왕자
우주
앨리스
빨강머리 앤
고양이
모비딕
베스트셀러
생활용품연구소
알라딘 문방구
굿즈한정할인
온라인중고
온라인중고
경제경영
만화
사회과학
소설/시/희곡
수험서/자격증
어린이
에세이
역사
예술/대중문화
외국어
요리/살림
유아
인문학
자기계발
종교/역학
좋은부모
청소년
컴퓨터/모바일
중고 국내도서
중고 음반
중고 DVD/블루레이
중고 외국도서
많이 판매된 중고
새로 등록된 상품
어제 베스트 중고
역대 베스트 중고
최종 땡처리
단골 판매자 보기
판매자매니저
알라딘에 중고팔기
판매가능여부 &
판매가격 확인하기
온라인중고FAQ
우주점
중고매장
중고매장
서울
가로수길점
강남점
강서홈플러스점
건대점
구로디지털단지역점
노원역점
대학로점
목동점
서울대입구역점
수유점
신논현점
신림점
신촌점
연신내점
영등포점
이수역점
잠실롯데월드타워점
잠실새내역점
종로점 내부수리중
천호점
합정점
경기
동탄2하나로마트점
동탄점
범계점
부천점
분당서현점
분당야탑점
산본점
수원시청역점
수원점
수지점
안산고잔점
의정부홈플러스점
일산점
평택점
화정점
광역시 등
광주상무점
광주충장로점
김해점
대구동성로점
대구상인점
대전시청역점
대전은행점
동대구역점
마산합성점
부산경성대 부경대역점
부산덕천점
부산서면역점
부산센텀점
울산점
인천계산홈플러스점
인천구월점
인천송도점
인천청라점
전주점
창원상남점
천안신불당점
청주점
중고매장 FAQ
판매가이드
판매가능여부 & 판매가격 확인하기
커피
커피
원두
드립백
콜드브루
커피 도구
스탬프 이벤트
일산 커피 팩토리
음반
음반
가요
국악
월드뮤직
재즈
종교/명상/기타
클래식
팝
J-POP
LP
OST
베스트셀러
예약음반
새로나온음악
이벤트
해외구매
블루레이
블루레이
블루레이
3D 블루레이
공포/스릴러
다큐멘터리
드라마/코미디
애니메이션
액션/SF
음악
DVD
공포/스릴러
교양/다큐멘터리
드라마/코미디
박스세트
성인
애니메이션
액션/어드벤쳐
유아/아동
음악DVD
제작국가별
취미/스포츠
S.F./판타지
TV시리즈
VCD
VHS
베스트셀러
예약 블루레이
새로나온 블루레이
예약알림 신청
이벤트
초특가아울렛
단독특가
중고블루레이
로그인
회원가입
마이페이지
나의계정
주문/배송조회
보관함
구매함
나의서재
고객센터
장바구니
(0)
국내도서
통합검색
국내도서
외국도서
eBook
알라딘굿즈
온라인중고
중고매장
커피
음반
블루레이
서재검색
서재태그
마이리뷰
마이리스트
마이페이퍼
서재
검색
검색
상세검색
분야보기
국내도서
건강/취미
경제경영
공무원 수험서
과학
달력/기타
대학교재
만화
사회과학
소설/시/희곡
수험서/자격증
어린이
에세이
여행
역사
예술/대중문화
외국어
요리/살림
유아
인문학
자기계발
잡지
장르소설
전집/중고전집
종교/역학
좋은부모
청소년
컴퓨터/모바일
초등학교참고서
중학교참고서
고등학교참고서
알라딘 굿즈
가방.파우치
데스크용품
독서용품
디지털
문구
생활용품
의류.잡화
리빙.키친
외국도서
영미도서
ELT/어학/사전
가정/원예/인테리어
건강/스포츠
경제경영
공예/취미/수집
만화
소설/시/희곡
여행
역사
요리
인문/사회
종교/명상/점술
청소년
해외잡지
일본도서
문학
애니메이션 굿즈
어린이
그림책
동화책
리더스
영어학습
챕터북
코스북
중국도서
소설
중국어 교재
기타 언어권
독일 도서
베트남 도서
스페인 도서
프랑스 도서
기타 도서
잡지
코믹
eBook
경제경영
과학
라이트노벨
로맨스
만화
사회과학
소설/시
어린이
에세이
역사
예술/대중문화
인문학
자기계발
종교/역학
청소년
판타지/무협
BL
오디오북
온라인중고
중고매장
중고 국내도서
경제경영
만화
사회과학
소설/시/희곡
어린이
에세이
유아
인문학
중고 음반
가요
국악
월드뮤직
클래식
팝
중고 DVD/블루레이
중고 외국도서
음반
가요
국악
월드뮤직
재즈
종교/명상/기타
클래식
팝
J-POP
LP
OST
블루레이
공포/스릴러
드라마/코미디
블루레이
애니메이션
액션/어드벤쳐
음악DVD
S.F./판타지
TV시리즈
21세기
최고의 책
21세기
추천마법사
마법사의 선택
신간알림
서재 이웃의 선택
오늘 본 상품
베스트셀러
새로나온책
이벤트
이벤트
굿즈 총집합
정가인하도서
정가인하도서
함께 사면 무료배송
추천도서
N
추천도서
이 책의 한 문장
카드리뷰
북트레일러
작가와의 만남
작가와의 만남
만권당TV
라이브 북토크
알라딘 아카데미
북펀드
북펀드
단한권 인쇄소
북플
서재
투비컨티뉴드
창작플랫폼
투비컨티뉴드
위로가기
1
/0 photos
신간알리미 신청
상품평점
분류
이름:
마이클 나이가드 (Michael Nygard)
최근작
2023년 11월 <
Release의 모든 것
>
전체보기
전체작품
저자의추천
저자의말
저자의추천
작가 행사, 책 머리말, 보도자료 등에서 저자가 직접 엄선하여 추천한 도서입니다.
이 분야에
1
개의 상품이 있습니다.
판매량순
출간일순
등록일순
상품명순
평점순
리뷰순
저가격순
고가격순
옵션 설정
출간일
1M
6M
12M
18M
36M
전체
판매가
1천원
2천원
3천원
4천원
5천원
전체
품질등급
최상
상
중
전체
상품진열수
25개
50개
25개
25개
50개
전체선택
장바구니 담기
보관함 담기
마이리스트 담기
1.
미리보기
데이터 지향 프로그래밍
- 불필요한 복잡도를 낮추는 설계 원칙의 발견
ㅣ
에이콘 프로그래밍 언어 시리즈
예호나탄 샤르빗
(지은이),
박성철
(옮긴이) |
에이콘출판
| 2024년 10월
40,000
원 →
36,000원
(
10%
할인), 마일리지
2,000
원
10.0
(
2
) | 세일즈포인트 :
1,063
양탄자배송
밤 11시
잠들기전 배송
지역변경
장바구니
바로구매
보관함
보관함
마이리스트
프로그래밍 원리, 설계 방법, 아키텍처 방식, 심지어 언어의 기능조차 모두 (변화에) 적응하면서도 복잡성을 조직화하는 일과 관련돼 있다. 나는 2009년에 불변 데이터(immutable data)와 프로그램의 일부를 프로그램 자체 내부 데이터로 전환하는 두 가지 특성 때문에 클로저(Clojure)에 이끌렸고, 같은 이유로 최근에는 예호나탄 샤르빗이 쓴 이 책에 이끌렸다. 2005년에는 좋아하는 사람들과 함께 좋아하는 프로젝트 중 하나를 수행했다. 그 프로젝트는 자바 프로젝트였는데, 당시 자바 세계에서 일반적이지 않은 두 가지를 시도했다. 먼저, 핵심 데이터값을 불변으로 만들었다. 쉽지 않았지만, 효과가 아주 좋았다. 많은 클래스의 clone과 deepClone 메서드를 직접 작성했는데, 그로 인한 이득은 대단했다. 한 가지 예로, 사용자마다 개별화할 템플릿 문서가 필요하다고 가정하자. 전체 객체 트리의 복사본을 만들 수 있다면 객체 스스로는 자신이 템플릿 데이터인지 개별화된 데이터인지 알 필요가 없다. 결정은 그 참조를 가진 객체에 달렸다. 또 다른 큰 이점은 비교할 때다. 값이 불변이므로, 식별자가 동일하다는 것은 곧 값이 동등하다는 것을 의미한다. 따라서 동등성 확인을 매우 빠르게 할 수 있다. 두 번째 기법은 (예호나탄이 이 책에서 보인 정도까지는 아니지만) 범용 데이터(generic data)를 활용하는 것이었다. 어떤 계층에 클래스 계층 구조가 있다고 할 때, 인접한 계층은 이 클래스를 좀 더 일반적인 클래스의 인스턴스로 표현한다. 한 계층의 멤버 변수는 다른 계층에서 맵에 담긴 필드로 서술될 수 있다. 이런 방식은 분명히 팀에서 몇몇 사람이 잡담처럼 가볍게 제안한 의견에 영향을 받은 것으로 보인다. 이 또한 바로 이득이 됐다. 다양한 구성으로 객체를 조합하고 재조합할 수 있었기 때문이다. 이와 같이 데이터 지향 프로그래밍(DOP, Data-Oriented Programming)은 우발적 복잡도(accidental complexity)를 줄이고 작업하는 추상화의 수준을 높일 수 있다. 클래스에 범용 함수(generic function)를 만들어 넣은 결과, 프로그램의 반복되는 동작이 자연스럽지 않아 보일 것이다. 범용 함수가 있는 클래스는 프로그램 내부 값의 특정 부분 집합을 전담하는 작은 이름 공간(namespace) 같은 역할을 한다. 프로그램의 거의 모든 값은 맵과 리스트로 접어 넣을 수 있다. 객체 멤버의 이름(리플렉션 API를 사용해야 겨우 얻을 수 있는 데이터)은 맵의 키로 바꿀 수 있다. 이렇게 하면 코드가 조금씩 사라지는데, 이것이 깨달음의 첫 단계다. 이쯤 되면, 컴파일러가 컴파일하면서 멤버 이름을 사용해 코드에 오류가 없는지 확인하지 않느냐며 반대하는 사람이 있을 수 있다. 실제로 그렇다. 하지만 예호나탄이 컴파일 시점의 확인은 값에 오류가 없는지 확인하는 방법의 작은 하위 집합일 뿐이라는, 깨달음의 다음 단계로 우리를 안내할 것이니 믿어보자. 오류 확인 자체도 데이터로 만들 수 있다. 스키마를 프로그램 내부 값으로 만들 수 있을 뿐 아니라, 타입 시스템(type system)의 최전선에 있는 연구자들이 여전히 알아내려고 노력 중인 규칙도 적용할 수 있다. 이것이 두 번째 단계의 깨달음이다. 데이터 지향 프로그래밍은 특히 웹 API로 일할 때 빛난다. 통신에는 타입 시스템이 없으므로 요청에 포함된 데이터를 도메인 클래스에 그대로 매핑하려고 하면 구현이 복잡해질 뿐 아니라 쉽게 깨진다. 데이터를 데이터로 남겨두면 코드가 더 단순해지고 수백 메가바이트 크기의 프레임워크 라이브러리를 사용할 필요가 대폭 줄어든다. 그렇다면 캡슐화, 상속, 다형성이라는 객체지향 프로그래밍(OOP, Object-Oriented Programming)의 미덕은 이제 쓸모없는 것일까? 이 세 가지를 나눠 마치 ‘일품요리’처럼 각각 따로 맛볼 수 있다는 사실이 밝혀졌다(내 생각에 구현 상속은 이 중에서 가장 중요하지 않다. 종종 가장 먼저 배운 것임에도 그렇다. 나는 이제 프로토콜과 공유된 함수 서명을 통한 인터페이스 상속을 선호한다). 데이터 지향 프로그래밍은 전통적인 유형의 다형성을 제공한다. 첫 번째 인수의 자료형에 따라 여러 함수 중 하나로 디스패치(dispatch)하는 것이다(객체지향 언어에서 this는 암묵적인 메서드의 첫 번째 인자다. 생략된 첫 인자가 점(.) 앞에 올 뿐이다). 하지만 데이터 지향 프로그래밍은 스키마 확인처럼 더 많은 역동성을 허용한다. 처음 두 인자의 자료형에 따라 디스패치한다고 생각해보자. 또는 인자에 오늘 날짜가 들어가 있는 ‘생일’ 필드가 있는지에 따라 디스패치된다고 상상해보자. 이것이 깨달음의 세 번째 단계다. 캡슐화는 여전히 프로그램을 조직하는 논리에 적용해야 한다. 우리는 값이 아닌 하위 시스템을 캡슐화한다. 이 캡슐화는 데이비드 파나스(David Parnas)의 설계 결정 은닉(design decision hiding)을 구현한다. 하위 시스템 내부에서는 클래스가 강요하는, 단절된 이름 공간으로 데이터를 나누는 것을 그만둘 수 있다. 앨런 펄리스(Alan Perlis)는 “자료구조 열 개에 함수 열 개가 동작하는 것보다 자료구조 하나에 함수 100개가 동작하는 것이 더 낫다”고 말했다. 엔트로피와의 끝없는 전투 중에는 데이터 지향 프로그래밍으로 코드양을 줄여 싸움을 계속할 수 있고 추상화 수준을 높여 프로그램의 논리와 의미를 정확하고 명료하게 만들 수 있다. 데이터 지향 프로그래밍으로의 여정을 즐기고, 새로운 고원에 도착할 때면 잠시 멈춰 전망을 즐기면서 스스로에게 “데이터일 뿐이야!”라고 말하자.
전체선택
장바구니 담기
보관함 담기
마이리스트 담기
국내저자찾기
해외저자찾기
주제 분류별
소설
l
에세이
l
시
l
희곡
l
문학일반
l
문화평론
l
만화
l
어린이/유아
l
인문/사회과학
l
역사
l
경제경영/자기계발
l
과학/공학/기술
l
여행
l
예술
l
취미/실용/레저
l
가정/건강/요리/교육
l
외국어/사전
l
잡지
l
종교/역학
l
컴퓨터/인터넷
l
학습서/수험서
l
교재
l
번역
l
사진/그림
가나다별
가
l
나
l
다
l
라
l
마
l
바
l
사
l
아
l
자
l
차
l
카
l
타
l
파
l
하
l
기타
주제 분류별
소설
l
에세이
l
시
l
희곡
l
문학일반
l
문화평론
l
만화
l
어린이/유아
l
인문/사회과학
l
역사
l
경제경영/자기계발
l
과학/공학/기술
l
여행
l
예술
l
취미/실용/레저
l
가정/건강/요리/교육
l
외국어/사전
l
잡지
l
종교/역학
l
컴퓨터/인터넷
l
학습서/수험서
l
교재
l
번역
l
사진/그림
가나다별
가
l
나
l
다
l
라
l
마
l
바
l
사
l
아
l
자
l
차
l
카
l
타
l
파
l
하
l
기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자