엔터프라이즈 애플리케이션 아키텍처 패턴(재출간판) - 교보문고
엔터프라이즈 애플리케이션 구축을 위한 객체지향 설계의 원리와 기법 | 이 책은 『엔터프라이즈 애플리케이션 아키텍처 패턴』의 재출간판이다. 『리팩토링』의 저자로도 잘 알려진 마틴 파
www.kyobobook.co.kr
엔터프라이즈 애플리케이션 아키텍처 패턴은 마틴 파울러의 책이다.
이 책을 구매한 이유는 최근에 멘토링을 받기 위해 이력서를 작성해보면서
지난 흔적을 더듬다가, 내가 아는 건 무엇일까? 의문이 생기면서 예상 질문도 스스로 생각해보고 답변도 달기 위해 시간을 투자해보니
애플리케이션을 개발하고 운영하기 위해선 인프라부터 시작하여, 네트워크, 데이터베이스, 스프링, 자바 등 관심을 가지고 신경 써야 할게 많다는 것이다.
서버도 한개만 있는지 한 개 이상으로 되어있는지?
디비는 하나만 있는지 한개 이상으로 되어있는지?
다양한 상황속에서 생기는 동시성은 어디서(DB? Java?), 어떻게(다양한 잠금 방법? 재확인 로직 추가?) 예방할 것이며, 왜 그런 선택을 했는지?
위의 질문을 생각해본적도 없고 실제로 동시성이란 말을 이제야 알게 되었다. (동시성과 비슷한 단어로 '시점 차이'라며 소통했다.)
아직 모르는 부분도 있다.
이런 상태라 애플리케이션을 개발하고 운영하려면 전체적으로 알고싶다는 생각이 생겼고 알아보니
엔터프라이즈 애플리케이션 아키텍처 패턴이라는 마틴 파울러의 책이 있었다.
엔터프라이즈 애플리케이션 아키텍처는 무엇인가?
서문에 간단히 언급된다.
엔터프라이즈 애플리케이션은 막대한 규모의 복잡한 데이터를 표시, 관리, 저장하고, 이러한 데이터를 이용한 비즈니스 프로세스를 지원하거나 자동화하는 애플리케이션을 말한다.
이러한 엔터프라이즈 애플리케이션 환경에는 무엇을 고려해야할까?
이 책에서 마틴 파울러는 주제 6개를 제시한다.
1. 엔터프라이즈 애플리케이션 계층화
2. 도메인(비즈니스) 논리 구성
3. 웹 사용자 인터페이스 구성
4. 인메모리(in-memory) 모듈과 관계형 데이터베이스 연결
5. 상태 비저장 환경에서 세션 상태 처리
6. 분산의 원리
그리고 마틴 파울러는 시간과 지면의 문제로 담을 수 없었다는 주제도 알려준다.
- 유효성 검사 구성
- 메시징과 비동기 통신의 통합
- 클러스터링
- 애플리케이션 통합
- 아키텍처 리팩터링
- 리치 클라이언트 사용자 인터페이스
이 책에서 다루진 않지만 내가 무엇을 알아야 할지 방향성을 제시해줘서 다행이다.
전부 다 하는 건 불가능하지만 개념이라도 간략히 알아야겠다.
이 책의 대상 독자
마틴 파울러는 이 책의 독자를 엔터프라이즈 애플리케이션을 구축하는 프로그래머, 설계자, 아키텍트로 지정했다.
그리고 간단히 용어에 대한 설명을 한다.
아키텍처란?
아키텍처는 사람마다 무수히 많은 의미가 존재하고, 정의하려고 해도 의견이 분분한 용어다.
이런 주장들 사이에서 두 가지 공통점이 존재한다.
1. 시스템을 구성 요소로 나누는 최상위 수준의 분해를 의미
2. 번복하기 어려운 결정을 의미
엔터프라이즈 애플리케이션 무엇인가?
엔터프라이즈 애플리케이션의 정확한 정의는 아니지만 이해를 위한 예시이다.
1. 일반적으로 지속적 데이터를 처리한다. 프로그램을 여러 번 실행해도 데이터를 유지해야 하기 때문이다.
2. 여러 사람들이 동시에 데이터에 접근한다. 동시성 문제를 예방하려면 적절한 준비가 필요하다.
3. 다른 엔터프라이즈 애플리케이션과 통합해야 하는 경우가 많다.
4. 기술을 단일화해도 비즈니스 프로세스의 차이와 데이터에 대한 개념 불일치로 문제가 발생한다.
엔터프라이즈 애플리케이션은 다양한 유형이 존재하고, 다른 문제를 해결하기 위해선 다른 방법이 필요하다고 말한다.
아키텍처를 선택한다는 것은 시스템의 특정한 문제를 이해하고 이러한 이해를 바탕으로 적절한 설계를 선택한다는 의미다.
그 외에도 패턴에 대한 이야기를 하지만 책 한 권으로 담기에는 너무 광범위하고 전체를 알기엔 현실적으로 불가능하고
언급되는 패턴 예시는 독자가 스스로의 시스템 환경에서 완성해야 한다고 한다.
이제 목표는 2주 내로 다 읽고 포스팅을 하는 건데 할 수 있을지 모르겠다.
노력을 해봐야지.
'서적 > 엔터프라이즈 애플리케이션 아키텍처 패턴' 카테고리의 다른 글
1부 이야기 - 동시성 (0) | 2021.07.28 |
---|---|
1부 이야기 - 웹 프레젠테이션 (0) | 2021.07.26 |
1부 이야기 - 관계형 데이터베이스 매핑 (0) | 2021.07.26 |
1부 이야기 - 도메인 논리 구성 (0) | 2021.07.26 |
1부 이야기 - 계층화 (0) | 2021.07.26 |