지수의 개발 기록장

고정 헤더 영역

글 제목

메뉴 레이어

지수의 개발 기록장

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (43)
    • 토론, 독서 (3)
    • 프로그래밍 (37)
      • AWS (2)
      • JPA (2)
      • Python (6)
      • 기타 (5)
      • Architecture (16)
      • kubernetes (3)
      • kotlin (1)
      • kafka (2)

검색 레이어

지수의 개발 기록장

검색 영역

컨텐츠 검색

프로그래밍/Architecture

  • [Architecture] 5부 아키텍처 : 25장 계층과 경계

    2024.01.17 by jisooo

  • [Architecture] 5부 아키텍처 : 24장 부분적 경계

    2024.01.17 by jisooo

  • [Architecture] 5부 아키텍처 : 23장 프레젠터와 험블 객체

    2024.01.17 by jisooo

  • [Architecture] 5부 아키텍처 : 22장 클린 아키텍처

    2024.01.17 by jisooo

  • [Architecture] 5부 아키텍처 : 21장 소리치는 아키텍처

    2024.01.14 by jisooo

  • [Architecture] 5부 아키텍처 : 20장 업무 규칙

    2024.01.14 by jisooo

  • [Architecture] 5부 아키텍처 : 19장 정책과 수준

    2024.01.14 by jisooo

  • [Architecture] 5부 아키텍처 : 18장 경계 해부학

    2024.01.14 by jisooo

[Architecture] 5부 아키텍처 : 25장 계층과 경계

#클린아키텍처 #cleanArchitecture #계층과경계 ​ ​ 25장 계층과 경계에서는, 구체적인 예시 프로그램 "움퍼스 사냥 게임"과 함께 업무 규칙과 UI, 데이터 영속성 관련 세부사항 컴포넌트가 어떻게 통신하고 어떠한 방향으로 의존성을 지니며, 제어 흐름이 어떻게 흘러가는지 설명하고 있다. ​ ​ 5부에서 계속 설명한 컴포넌트 간 계층을 분리하고 경계를 긋는 일을 종합적인 예시를 들어 다시 한번 정리, 강조하는 내용이 담겨있다. ​ ​ ​ ​ 시스템이 보통 세 가지 컴포넌트 (UI, 업무 규칙, 데이터베이스)로만 구성된다고 생각하기 쉽지만, 대다수의 시스템에서 등장하는 컴포넌트의 개수는 이보다 훨씬 많고 복잡하다. ​ ​ 하지만 이처럼 복잡한 시스템에도 나타내는 계층 간의 분리와 경계의 원리는..

프로그래밍/Architecture 2024. 1. 17. 21:41

[Architecture] 5부 아키텍처 : 24장 부분적 경계

#클린아키텍처 #cleanArchitecture #부분적경계 #전략패턴 #퍼사드패턴 ​ ​ ​ 24장에서는, 앞 장에서 계속 설명한 컴포넌트 간 경계를 긋는 일을 완벽하게 구현하기 위해서는 현실적으로 비용이 많이 든다는 점에 대해서 "부분적 경계"를 만들 수 있는 현실적인 타협안들을 제시한다. ​ ​ 완벽한 아키텍처를 만들기 위해서는 쌍방향의 다형적 Boundary 인터페이스, Input과 Output을 위한 데이터 구조를 만들어야 할 뿐 아니라, 두 영역을 독립적으로 컴파일하고 배포할 수 있는 컴포넌트로 격리하는 데 필요한 모든 의존성을 관리해야 한다. ​ 이렇게 하기 위해선 엄청난 노력을 기울여야 하고 유지하는 데도 많은 노력이 수반된다. ​ ​ ​ 마지막 단계 건너뛰기 ​ 부분적 경계를 생성하는 방..

프로그래밍/Architecture 2024. 1. 17. 21:40

[Architecture] 5부 아키텍처 : 23장 프레젠터와 험블 객체

#클린아키텍처 #humbleObjectPattern #designPattern #험블객체 ​ ​ ​ ​ 클린 아키텍처 책의 앞부분에서도 많이 강조된 내용이지만, "테스트하기 좋은 코드", 즉 테스트 용이성은 좋은 아키텍처가 지녀야 할 속성이다. ​ 실무를 하면서 팀의 분위기에 따라서 테스트 코드 작성을 권장하는 경우도 있고, 개개인이 자율적으로 테스트 코드를 짜거나, 심지어는 특정 테스트 커버리지에 달성할 때까지 git merge를 막아놓는 진행하는 팀도 있었다. ​ ​ 책에서도 이렇게 테스트 용이성에 대한 강조를 하고 있고, 실무에서 테스트 코드의 중요성은 많이 언급되기도 한다. ​ 테스트 코드가 중요한 이유는 무엇일까? 개개인의 경험에 돌아보아 생각해보면 실무에서는 요구사항에 대한 변경 업무가 끝도 ..

프로그래밍/Architecture 2024. 1. 17. 21:39

[Architecture] 5부 아키텍처 : 22장 클린 아키텍처

육각형 아키텍처 Data Contect and Interaction Boundary-Control-Entity ​ ​ 지난 수십 년간 시스템 아키텍처와 관련된 여러 아이디어들이 제시되었는데 세부적인 면에서는 다소 차이가 있지만, 말하고자 하는 근본은 대부분 비슷하다. ​ ​ 이들이 공통적으로 말하고자 하는 것은 바로 "관심사의 분리"다. 이들은 모두 소프트웨어를 계층으로 분리함으로써 관심사의 분리라는 목표를 달성할 수 있었다. ​ 각 아키텍처는 최소한 업무 규칙을 위한 계층 하나와, 사용자와 시스템 인터페이스를 위한 또 다른 계층 하나를 반드시 포함한다. ​ ​ ​ ​ ​ ​ 이들 아키텍처는 아래와 같은 특징을 지니고 있다. ​ ​ ​ 프레임워크 독립성 아키텍처는 다양한 기능의 라이브러리를 제공하는 프레..

프로그래밍/Architecture 2024. 1. 17. 21:39

[Architecture] 5부 아키텍처 : 21장 소리치는 아키텍처

아키텍처의 테마 ​ 이바 야콥슨의 "Object Oriented Software Engineering" 책을 언급하면서 저자는 책의 부제인 "유스케이스 주도 접근법"에 주목하였다. 야콥슨은 소프트웨어 아키텍처는 시스템의 유스케이스를 지원하는 구조라고 지적한다. ​ 주택이나 도서관의 계획서가 해당 건축물의 유스케이스에 대해 소리치는 것처럼, 소프트웨어 애플리케이션의 아키텍처도 애플리케이션의 유스케이스에 대해 소리쳐야 한다. ​ 또한 아키텍처는 프레임워크에 대한 것이 절대 아니며, 프레임워크는 사용하는 도구 일뿐 아키텍처가 준수해야 할 대상이 아니라고 강조한다. ​ 아키텍처를 프레임워크 중심으로 만들어버리면 유스케이스가 중심이 되는 아키텍처는 절대로 나올 수 없다. ​ ​ ​ ​ ​ ​ ​ 아키텍처의 목적 ..

프로그래밍/Architecture 2024. 1. 14. 17:50

[Architecture] 5부 아키텍처 : 20장 업무 규칙

애플리케이션을 업무 규칙과 플러그인으로 구분하려면, 업무 규칙이 실제로 무엇인지 잘 이해해야 한다. ​ 업무 규칙이란 사업적으로 수익을 얻거나 비용을 줄일 수 있어야 한다. 더 엄밀히 말해서, 컴퓨터상으로 구현했는지와 상관없이, 업무 규칙은 심지어 사람이 수동으로 직접 수행하더라도 사업적으로 수익을 얻거나 비용을 줄일 수 있어야 한다. ​ ​ 은행 시스템에서 업무 규칙을 예로 들어보면, 대출에 N%의 이자를 부과한다는 사실은 은행이 돈을 버는 하나의 업무 규칙으로 볼 수 있다. ​ 이러한 규칙은 사업 자체에 핵심적이며, 규칙을 자동화하는 시스템이 없더라도 업무 규칙은 그대로 존재하기 때문에 핵심 업무 규칙이라고 할 수 있다. ​ 핵심 업무 규칙은 보통 대출 잔액, 이자율, 지급 일정과 같은 핵심 업무 데..

프로그래밍/Architecture 2024. 1. 14. 17:49

[Architecture] 5부 아키텍처 : 19장 정책과 수준

소프트웨어 시스템이란 정책을 기술한 것이다. 컴퓨터 프로그램은 각 입력을 출력으로 변환하는 정책을 상세히 기술한 설명서이다. ​ 대다수의 주요 시스템에서 하나의 정책은 이 정책을 서술하는 여러 개의 조그만 정책들로 쪼갤 수 있다. ​ ​ 주문의 발송처리 정책을 예시로 생각해보자. ​ 각 주문에 대해 송장정보를 등록하는 정책, 입력된 송장 데이터가 유효하게 데이터베이스에 적용되어도 되는지 검증하는 정책, 입력된 데이터를 정제하여 적절한 데이터구조로 변환하는 정책, 주문의 구매자나 수신자에게 발송 알림을 전달하는 정책 등등... ​ 소프트웨어 아키텍처를 개발하는 기술에는 이러한 정책들을 신중하게 분리하고, 정책이 변경되는 양상에 따라 정책을 재편성하는 일도 포함된다. ​ 동일한 이유로 동일한 시점에 변경되는..

프로그래밍/Architecture 2024. 1. 14. 17:48

[Architecture] 5부 아키텍처 : 18장 경계 해부학

시스템 아키텍처는 소프트웨어 컴포넌트와 그 컴포넌트들을 분리하는 경계에 의해 정의된다. 18장 "경계 해부학"에서는 이러한 경계의 다양한 형태들에 대해 설명하고 있다. ​ ​ ​ 경계 횡단하기 "런타임에 경계를 횡단한다" 함은 그저 경계 한쪽에 있는 기능에서 반대편의 기능을 호출하여 데이터를 전달하는 일이다. 적절한 위치에서 경계를 횡단하는 비결은 소스 코드 의존성 관리에 있다. ​ 소스 코드의 모듈 하나가 변경 되면, 이에 의존하는 다른 소스 코드 모듈도 변경하거나 재컴파일 후 새로 배포해야할 수 있다. ​ 경계는 위와 같은 변경이 전파되는 것을 막기 위해 방화벽을 구축하고 관리하는 수단으로써 존재한다. ​ ​ ​ ​ ​ ​ 두려운 단일체 아키텍처 경계의 종류 중 가장 단순하고 흔한 형태는 물리적으로 ..

프로그래밍/Architecture 2024. 1. 14. 17:46

추가 정보

인기글

최신글

페이징

이전
1 2
다음
GITHUB
지수의 개발 기록장 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바