logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

파이썬을 활용한 소프트웨어 아키텍처

파이썬을 활용한 소프트웨어 아키텍처

(견고하고 확장 가능한 애플리케이션 아키텍처 설계)

아난드 발라찬드라 필라이 (지은이), 김영기 (옮긴이)
  |  
에이콘출판
2020-12-30
  |  
40,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 36,000원 -10% 0원 2,000원 34,000원 >
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

파이썬을 활용한 소프트웨어 아키텍처

책 정보

· 제목 : 파이썬을 활용한 소프트웨어 아키텍처 (견고하고 확장 가능한 애플리케이션 아키텍처 설계)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 파이썬
· ISBN : 9791161754857
· 쪽수 : 656쪽

책 소개

파이썬이 애플리케이션의 아키텍처 작업에 얼마나 적합한지를 설명하며 시작한다. 아키텍처에 중요한 요구사항과 이들을 결정하는 방법을 이해할 수 있다. 또한 다양한 아키텍처의 품질 요구사항을 완전히 이해하게 될 것이다.

목차

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를 사용한 시스템 호출 추적
__요약

저자소개

아난드 발라찬드라 필라이 (지은이)    정보 더보기
소프트웨어 분야의 제품 공학 소프트웨어 설계와 아키텍처 연구에 18년이 넘는 경험이 있는 공학과 기술 전문가다. 마드라스의 인도 공과대학교에서 기계공학 학사 학위를 받았다. 야후(Yahoo), 맥아피(McAfee), 인포시스(Infosys) 같은 회사의 제품 개발 팀에서 새로운 제품을 만드는 수석 엔지니어와 아키텍트 역할을 수행했다. 소프트웨어 성능 공학, 고확장성 아키텍처, 보안 및 오픈소스 커뮤니티에 관심이 있으며 때때로 스타트업에서 기술 리더 역할이나 컨설팅을 담당하기도 한다. 방갈로 파이썬 사용자 그룹의 설립자이며 파이썬 소프트웨어 재단PSF의 선임연구원이기도 하다. 현재는 예지(Yegii Inc)의 선임 아키텍트로 일하고 있다.
펼치기
김영기 (옮긴이)    정보 더보기
삼성전자 네트워크 사업부 SE 그룹에서 소프트웨어 개발과 관련한 다양한 업무를 수행하고 있다. 주요 이력으로 지능망(IN)과 모바일 자바 애플리케이션 개발, 정적 분석과 소프트웨어 구조 분석, 소프트웨어 개발 도구 및 인프라 관리 등이 있다. 현재는 형상 관리와 개발 전략을 담당하고 있으며, 소프트웨어 개발과 관련된 조직 및 개발 문화, 애자일과 데브옵스, 인프라 자동화에 관심이 많다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책