간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (34,200원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (25,200원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (28,800원)
(최대할인 4만원 / 2만원 이상 결제)
Close

파이썬을 활용한 소프트웨어 아키텍처 : 견고하고 확장 가능한 애플리케이션 아키텍처 설계

원제 : Software Architecture with Python
소득공제

2013년 9월 9일 이후 누적수치입니다.

공유하기
정가

40,000원

  • 36,000 (10%할인)

    2,000P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 11/29(화) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(21)

  • 상품권

AD

책소개

파이썬이 애플리케이션의 아키텍처 작업에 얼마나 적합한지를 설명하며 시작한다. 아키텍처에 중요한 요구사항과 이들을 결정하는 방법을 이해할 수 있다. 또한 아키텍트가 비즈니스 요구사항을 만족하는 제품을 만드는 데 도움이 되는 유지보수성/재사용성, 테스트 용이성, 확장성, 성능, 사용성, 보안성 같은 다양한 아키텍처의 품질 요구사항을 완전히 이해하게 될 것이다.
데브옵스, 지속적인 통합과 같은 기법을 사용해 애플리케이션을 더 견고하게 만드는 방법을 살펴본다. 애플리케이션에 객체지향 기법을 언제 사용하고, 언제 사용하지 말아야 하는지를 이해하게 될 것이다. 또한 미래를 생각해 비즈니스 성장에 비례해 확장 가능한 애플리케이션을 설계할 수 있다.
파이썬의 세부사항을 이해하는 데 도움이 되며, 고객의 예상에 부응하는 동시에 고객의 예상을 뛰어 넘는 중요한 설계 결정도 할 수 있을 것이다.

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 올바른 아키텍처 속성을 갖는 프로그램 작성
■ 엔터프라이즈 아키텍처 패턴을 사용한 웹 확장성 문제 해결
■ 파이썬 관점의 디자인 패턴 이해
■ 파이썬 성능 테스팅 도구의 최적화 방법
■ 파이썬을 이용한 원격 환경 및 클라우드 환경으로의 코드 배포
■ 안전한 애플리케이션을 위한 파이썬의 아키텍처 작성법

★ 이 책의 대상 독자 ★

엔터프라이즈 애플리케이션에 경험이 있는, 아키텍트가 되려는 파이썬 개발자에게 적합하다. 애플리케이션의 효과적인 청사진을 만들기 위해 파이썬을 이용하려는 소프트웨어 아키텍트도 커다란 효과를 볼 수 있을 것이다.

★ 이 책의 구성 ★

1장, ‘소프트웨어 아키텍처의 원칙'에서는 소프트웨어 아키텍처가 갖는 주요 사항을 소개한다. 아키텍처 품질속성과 아키텍처의 배경이 되는 원칙을 간단하게 설명한다. 소프트웨어 아키텍처 원칙과 기본 속성을 파악하는 데 탄탄한 기반이 된다.
2장, ‘변경 가능하고 가독성 있는 코드'에서는 작성 개발에 관련된 아키텍처 품질속성인 변경 용이성과 가독성을 다룬다. 아키텍처 품질속성인 유지보수성과 애플리케이션의 테스트를 위한 코드를 파이썬으로 작성하는 전술을 이해할 수 있게 된다.
3장, ‘테스트 용이성 - 테스트 가능한 코드 작성'에서는 아키텍처 품질속성인 테스트 용이성과 테스트 용이성을 위해 파이썬 애플리케이션의 구조를 잡는 방법을 배운다. 테스트 용이성과 소프트웨어 테스팅의 다양한 관점을 학습하고 테스트 가능한 애플리케이션을 파이썬으로 작성하기 위해 이용할 수 있는 다양한 라이브러리와 모듈을 익힌다.
4장, ‘좋은 성능은 보상이다!'에서는 성능 관점에서 파이썬 코드를 작성하는 방법을 다룬다. 성능을 최적화하는 시기에 아키텍처에서 품질속성은 물론 성능 관련 지식도 갖추게 된다. 소프트웨어 수명주기에서 성능 최적화를 하는 시기도 알게 된다.
5장, ‘확장 가능한 애플리케이션 작성'에서는 확장 가능한 애플리케이션의 중요성을 이야기한다. 애플리케이션의 확장성을 달성하는 다양한 방법을 설명하고 파이썬에서 사용하는 확장성 관련 기법을 알아본다. 확장성의 이론적 측면과 업계의 모범 사례도 배운다.
6장, ‘보안- 안전한 코드 작성'에서는 아키텍처의 보안 측면, 관련 모범 사례와 안전한 애플리케이션의 작성 기법을 다룬다. 조심해야 할 다양한 보안 문제도 짚고 넘어간다. 처음부터 파이썬으로 안전한 애플리케이션 아키텍처를 만드는 방법을 깨닫게 된다.
7장, ‘파이썬 디자인 패턴'에서는 실용적인 프로그래머 관점에서 각 패턴에 대한 이론적인 배경과 더불어, 파이썬에서 디자인 패턴의 개요를 다룬다. 실용적인 프로그래머에게 유용한 파이썬의 디자인 패턴 지식을 얻게 된다.
8장, ‘파이썬 아키텍처 패턴 고수준의 현대적인 파이썬 아키텍처 패턴을 소개한다. 고준 아키텍처 문제를 해결하기 위한 패턴들의 접근방법을 알 수 있도록 파이썬 라이브러리와 프레임워크 예제도 제공한다.
9장, ‘파이썬으로 애플리케이션 배포'에서는 파이썬을 이용해 올바른 방법으로 원격환경이나 클라우드에 쉽게 코드를 배포하는 방법을 설명한다.
10장, ‘디버깅 기법'에서는 파이썬 코드의 디버깅 기법을 다룬다. 프로그래머에게 가장 간단하면서도 매우 편리한, 그리고 전략적으로 배치된 print문에서부터 로깅과 시스템 호출(system call) 추적까지 다룬다. 이러한 기법들은 시스템 아키텍트가 팀을 이끄는 데 도움이 된다.

목차

1장. 소프트웨어 아키텍처의 원칙들

__소프트웨어 아키텍처의 정의
____소프트웨어 아키텍처 대 디자인
____소프트웨어 아키텍처의 여러 측면
__소프트웨어 아키텍처의 특성
____아키텍처는 구조를 정의한다
____아키텍처는 핵심 요소의 집합을 선택한다
____아키텍처는 초기 디자인 결정사항을 기술한다
____아키텍처는 이해당사자의 요구사항을 관리한다
____아키텍처는 조직 구조에 영향을 미친다
____아키텍처는 환경의 영향을 받는다
____아키텍처는 시스템을 문서화한다
____아키텍처는 패턴을 준수한다
__소프트웨어 아키텍처의 중요성
__시스템 아키텍처 대 엔터프라이즈 아키텍처
__아키텍처 품질속성
____변경 용이성
____테스트 용이성
____확장성
____성능
____가용성
____보안
____배포 용이성
__요약

2장. 변경하기 쉽고 가독성 있는 코드 작성

__변경 용이성이란 무엇인가?
__변경 용이성의 관련 측면
__가독성 이해하기
____파이썬과 가독성
____가독성 - 안티패턴
____가독성 기법
____코드의 문서화
____코딩 및 스타일 가이드라인 준수하기
____코드를 리뷰하고 리팩토링하기
____코드에 주석 달기
__변경 용이성의 기본 사항 - 응집도와 결합도
____응집도와 결합도 측정하기
____응집도와 결합도의 측정 - 문자열과 텍스트 처리
__변경 용이성을 위한 전략
____명시적인 인터페이스 제공하기
____양방향 의존성 감소시키기
____공통 서비스 추상화하기
____상속 기법 사용하기
____늦은 바인딩 기법의 사용
__메트릭 - 정적 분석을 위한 도구
____코드의 나쁜 냄새란 무엇인가?
____순환 복잡도 - 맥케이브 메트릭
____정적 체커 수행하기
__코드 리팩토링하기
____코드 리팩토링 - 복잡도 수정하기
____코드 리팩토링 - 코드의 나쁜 냄새 제거하기
____코드 리팩토링 - 스타일 및 코딩 문제 수정하기
__요약

3장. 테스트 용이성 - 테스트 가능한 코드 작성하기

__테스트 용이성 이해하기
____소프트웨어 테스트 용이성과 관련 속성
____아키텍처 측면의 테스트 용이성
____테스트 용이성 전략들
__화이트 박스 테스팅 원칙
____단위 테스팅
____실제 단위 테스팅
____nose2로 정보 알아내기
____코드 커버리지
____py.test로 테스트하기
__모의객체 생성
__문서의 인라인 테스트 - doctests
__통합 테스트
__테스트 자동화
____셀레늄 웹 드라이버를 사용한 테스트 자동화
테스트 주도 개발
팰린드롬 예제를 통한 TDD
요약

4장. 좋은 성능은 보상이다!

__성능이란 무엇인가?
__소프트웨어 성능 엔지니어링
__성능 테스팅과 측정 도구
__성능 복잡도
__성능 측정
____컨텍스트 관리자를 사용한 시간 측정
____timeit 모듈을 사용한 타이밍 코드
____시간 복잡도 확인하기 - 그래프
____timeit을 사용한 CPU 시간 측정
__프로파일링
____결정론적 프로파일링
____cProfile과 profile을 사용한 프로파일링
____프로파일링 - 통계 수집 및 보고
____서드 파티 프로파일러
__다른 도구들
____Objgraph
____Pympler
__성능을 위한 프로그래밍 - 데이터 구조
____변경 가능한 컨테이너 - 리스트, 딕셔너리, 세트
____변경이 불가능한 컨테이너 - 튜플
____고성능 컨테이너- 컬렉션 모듈
____확률론적 데이터 구조 - 블룸 필터
__요약

5장. 확장 가능한 애플리케이션 작성

__확장성과 성능
__동시성
____동시성과 병렬처리
____파이썬에서의 동시성 - 멀티스레딩
__썸네일 생성기
____썸네일 생성기 - 생산자/소비자 아키텍처
____썸네일 생성기 - 잠금을 사용하는 자원 제한
____썸네일 생성기 - 세마포어를 사용하는 리소스 제한
____리소스 제한 - 세마포어 대 잠금
____썸네일 생성기 - 조건을 사용하는 URL 비율 컨트롤러
__멀티스레딩 - 파이썬과 GIL
____파이썬의 동시성 처리 - 멀티 프로세싱
____소수 검사기
____디스크 파일 정렬
__멀티스레딩 대 멀티 프로세싱
____파이썬에서의 동시성-비동기 실행
__선점형 멀티태스킹 대 협력형 멀티태스킹
__파이썬의 asyncio 모듈
__future의 실행 완료 대기하기 - async와 await
__동시 실행되는 future 객체들 - 고수준의 동시 처리
____디스크 썸네일 생성기
____동시성 옵션 - 선택 방법
____병렬 처리 라이브러리
____Joblib
____PyMP
____프렉탈 - 만델브로트 세트
__웹 스케일링
____워크플로우 확장 - 메시지 큐와 태스크 큐
__셀러리 - 분산 태스크 큐
____셀러리를 사용하는 멘델로브 세트
____파이썬으로 웹 서비스하기 - WSGI
____uWSGI - 강력한 WSGI 미들웨어
____Gunicorn - WSGI용 유니콘
____Gunicorn 대 uWSGI
____확장 아키텍처
__요약

6장. 보안 - 안전한 코드 작성

__정보보안 아키텍처
__안전한 코딩
__일반적인 보안 취약점
__파이썬은 안전한가?
____입력 읽기
____임의의 입력 값 평가
____오버플로우 오류
____객체 직렬화
__웹 애플리케이션의 보안 문제
____서버 사이트 템플릿 주입
____서버 사이드 템플릿 주입 - 완화 전략
____서비스 거부
____크로스 사이트 스크립팅
____DoS와 XSS 공격 완화
__파이썬 보안 전략
__안전한 코딩 전략
__요약

7장. 파이썬 디자인 패턴

__디자인 패턴의 요소
__디자인 패턴의 분류
____플러그 가능한 해싱 알고리즘
____플러그 가능한 해싱 알고리즘 요약
__파이썬의 생성 패턴
____싱글톤 패턴
____상태 공유 - 보그 대 싱글톤
____팩토리 패턴
____프로토타입 패턴
____빌더 패턴
__파이썬의 구조 패턴
____어댑터 패턴
____파사드 패턴
____프록시 패턴
__파이썬의 행위 패턴
____이터레이터 패턴
____옵저버 패턴
____상태 패턴
__요약

8장. 파이썬 아키텍처 패턴

__MVC 소개
____모델 템플릿 뷰(MTV) - 장고
____장고 관리자 - 자동화된 모델 중심 뷰
____유연한 마이크로 프레임워크 - 플라스크
__이벤트 주도 프로그래밍
____select 모듈과 I/O 멀티플랙싱을 사용하는 채팅 서버와 클라이언트
____이벤트 주도 프로그래밍 대 동시성 프로그래밍
____Twisted
____Eventlet
____Greenlets과 Gevent
__마이크로서비스 아키텍처
____파이썬의 마이크로서비스 프레임워크
____마이크로서비스 예제 - 레스토랑 예약
____마이크로서비스의 장점
__파이프와 필터 아키텍처
____파이썬에서의 파이프와 필터
__요약

9장. 파이썬 애플리케이션 배포

__배포 용이성
____배포 용이성에 영향을 주는 요소들
__소프트웨어 배포 아키텍처 계층
__파이썬에서의 소프트웨어 배포
____파이썬 코드 패키징
____Pip
____Virtualenv
____Virtualenv과 pip
____재배치 가능한 가상 환경
____PyPI
____애플리케이션 패키징과 제출
__PyPA
__패브릭을 사용한 원격 배포
__앤서블을 이용한 원격 배포
__슈퍼바이저를 이용한 원격 데몬 관리하기
__배포 패턴과 모범 사례
__요약


10장. 디버깅 기법

__최대 부분 배열 문제
____‘print’의 강점
____분석과 재작성
____코드 타이밍 및 최적화
__간단한 디버깅 트릭과 기법
____단어 검색 프로그램
____단어 검색 프로그램의 디버깅 단계 1
____단어 검색 프로그램의 디버깅 단계 2
____단어 검색 프로그램의 최종 코드
____코드 블록 건너뛰기
____실행 중지
____외부 의존성에 래퍼 사용하기
____반환 값/데이터로 함수 교체하기(모의 객체 사용)
__디버깅 기법으로써의 로깅
____간단한 애플리케이션 로깅
__디버깅 도구 - 디버거 사용
____pdb로 세션 디버딩하기
____pdb 유사 도구
__고급 디버깅 기법 - 추적
____trace 모듈
____lptrace 프로그램
____strace를 사용한 시스템 호출 추적
__요약

본문중에서

★ 옮긴이의 말 ★

소프트웨어 개발자라면 적어도 한 번쯤 SW에 대한 오랜 경험과 경력을 바탕으로 멋진 소프트웨어 제품을 만드는 것을 상상해 본 적이 있을 것이다. 소프트웨어 아키텍처 분야는 다른 소프트웨어 분야에 비해 비교적 역사가 짧아도 제대로 파악하려면 많은 험난한 과정을 겪어야 한다. 이러한 어려움 중 하나는 소프트웨어 아키텍처 자체를 알려주는 레퍼런스가 부족하다는 점과, 다른 하나는 파악한 소프트웨어 아키텍처의 개념을 실제 구현 언어로 어떻게 연결시킬 것인가다.
이 책의 각 장에서 이야기하는 주제들은 그 주제만으로도 상당한 학습이 필요한 내용들이다.
그러나, 적어도 이 책은 소프트웨어 아키텍처에 관심을 갖고 파악하고 싶어하는 개발자들에게 도움이 될 것을 확신한다. 이 책을 통해 아키텍처 관련된 주요 품질속성과 아키텍처 관련 주제를 확인하고 파이썬 예제를 하나하나 살펴보면 보면 어느새 앞서 말한 두 가지 어려움의 상당 부분 해결될 것이라고 감히 생각한다.

저자소개

아난드 발라찬드란 필라이 [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

김영기 [역] 신작알림 SMS신청
생년월일 -

삼성전자 네트워크 SE 그룹에서 소프트웨어 개발과 관련된 다양한 업무를 수행 중이다. 주요 이력은 지능망(IN)과 모바일 애플리케이션 개발, 정적 분석과 소프트웨어 구조 분석, 소프트웨어 개발 인프라 관리 등이다. 현재는 CM 업무를 주로 수행하고 있으며 소프트웨어 개발과 관련된 조직의 개발 문화, 애자일과 데브옵스, 인프라 자동화에 관심이 많다.

이 상품의 시리즈

(총 25권 / 현재구매 가능도서 22권)

선택한 상품 북카트담기
펼쳐보기

컴퓨터/인터넷 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    0.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크 안전결제시스템 (에스크로) 안내

    (주)인터파크의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용