Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 백준가운데를말해요
- 확인문제
- 합성곱연산
- 스파르타코딩클럽
- 백준10828
- 냅색알고리즘
- 이것이자바다
- 백준
- 2019카카오코테
- 이것이자바다9장
- 백준평범한배낭
- 카카오코테
- java
- 백준9012
- 백준스택
- 백준괄호
- 윤곽선검출
- 운영체제
- 가운데를말해요
- BOJ1655
- BOJ
- 백준온라인저지
- 웹개발기초
- 코드트리
- 딥러닝
- 이것이자바다확인문제
- 컴퓨터비전
- 코딩테스트실력진단
- 코테
- KT포트포워딩
Archives
- Today
- Total
코딩하는 락커
[Chapter 1] 서론 본문
소프트웨어 아키텍처란?
- 소프트웨어 아키텍처는 아래의 4가지가 결합된 구조이다.
- 시스템의 구조 Structrue
- 아키텍처 특성 Architecture characteristic
- 아키텍처 결정 Architecture decision
- 설계 원칙 Design Principle
시스템 구조 Structrue
아키텍처 특성 Architecture characteristic
- 시스템이 지원해야 하는 `~성`들이다.
- 시스템의 성공 기준을 결정한다.
- e.g) 가용성, 신뢰성, 시험성, 확장성, 보안, 민첩성, 내고장성, 탄력성, 복구성, 성능, 배포성, 학습성
아키텍처 결정 Architecture decision
- 시스템 구축에 필요한 규칙을 정한것이다.
- 시스템의 제약조건을 형성하며 개발자가 해도 되는 것과 하지 말아야 할 것을 알려준다.
- e.g) `프레젠테이션 레이어가 데이터베이스를 직접 호출하지 못하게 비즈니스와 서비스 레이어에서믄 데이터베이스에 액세스 할 수 있다`는 결정 그 자체
- 어떤 상황이나 제약 조건 탓에 시스템의 어느 한 부분에서 아키텍처 결정을 따를 구현할 수 없다면 그 결정은 변형이라는 것을 통해 깨드릴 수 있다.
설계 원칙 Design Principle
- 시스템 구축에 필요한 가이드라인이다.
- e.g) 마이크로서비스 아키텍처의 성능 향상을 위해 서비스 간 통신은 비동기 메시징을 활용해야 한다고 서술하는 것
아키텍트에 대한 기대치
- 소프트웨어 아키텍트에게 바라는 핵심 요구사항 8가지
- 아키텍처 결정을 내린다
- 아키텍처를 지속적으로 분석한다
- 최신 트렌드를 계속 유지한다
- 아키텍처 결정의 컴플라이언스compliance를 보장한다
- 다양한 기술과 경험에 노출된다
- 비즈니스 도메인 지식을 보유한다
- 대인 관계 기술이 뛰어나다
- 정치를 이해하고 처세를 잘한다
아키텍처 결정을 내린다
- 아키텍트는 기술 선택을 가이드 하는 사람이지 정해주는 사람이 아니다.
- 하지만 확장성, 성능, 가용성 등의 아키텍처 특성을 수호하기 위해 특정한 기술을 결정해야 할 때도 있다.
아키텍처를 지속적으로 분석한다.
- 아키텍트는 끊임없이 아키텍처와 현재 기술 환경을 분석하고 이를 개선하기 위한 해결 방안을 제시한다.
최신 트렌드를 계속 따라간다.
- 아키텍트는 최신 기술과 업계 트렌드를 따라 가야 한다.
- 핵심 트렌드를 이해하고 계속 좇아갈 수 있어야 미래를 대비할하고 올바른 결정을 내릴 수 있다.
아키텍처 결정의 컴플라이언스를 보장한다.
- 아키텍트는 아키텍처 결정과 설계 원칙의 컴플라이언스를 보장해야 한다.
- 컴플라이언스 보장이란 아키텍트가 정의하고 문서화하여 전달한 아키텍처 결정과 설계 원칙을 개발팀이 제대로 준수하고 있는지 지속적으로 확인한다는 것이다.
다양한 기술과 경험에 노출된다
- 아키텍트는 다양한 기술, 프레임워크, 플랫폼, 환경에 노출되어야 한다.
비즈니스 도메인 지식을 보유한다.
- 아키텍트는 어느 수준 이상의 비즈니스 도메인 전문가여야 한다.
- 비즈니스 도메인 지식이 없으면 비즈니스의 문제점, 목표, 요구사항을 이해하기도 어렵고, 따라서 비즈니스 요구사항을 수용할 만한 효율적인 아키텍처를 설계하기도 어렵다.
대인 관계 기술이 뛰어난다.
- 아키텍트는 개발팀을 기술적으로 이끌기만 하는 사람이 아니라, 개발팀을 리드해서 아키텍처를 구현하는 사람이므로 아키텍트라는 직책 또는 역할과 상관 없이, 리더십 스킬은 소프트웨어 아키텍트로서 성공하기위한 필수 조건이다.
정치를 이해하고 처세를 잘한다.
- 아키텍트는 기업 내부의 정치적 분위기를 이해하고 적절하게 잘 처신할 줄 알아야 한다.
- 회사에서 정치를 잘 하면서 대부분의 결정을 사람읃ㄹ이 수용하도록 기본적인 협상 기술을 발휘해야 한다.
엔지니어링 프랙티스
- 소프트웨어 개발 프로세스란 팀을 어떻게 구성하고 관리할지, 회의는 어떻게 하고 워크플로 조직은 어떻게 운영할지 등 사람을 조직하고 상호작용하는 총체적인 기법이다.
- 소프트웨어 엔지니어링 프랙티스는 프로세스와 무관하게 가시적이고 반복 가능한 혜택을 주는 실천론이다. e.g) 지속적 통합
- 아키텍처 스타일과 엔지니어링 프랙티스는 공생 관계망을 형성하도록 해야한다.
- 피트니스 함수는 어떤 알고리즘을 특정한 용도로 설계할 때 결과를 측정하여 최적해에서 어느정도 거리에 있는지를 측정할 수 있는 수단이다. e.g) 외판원 문제를 해결하기 위한 유전 알고리즘을 설계할 때 피트니스 함수는 경로 거리를 구하는 함수
- 아키텍처 피트니스 함수는 어떤 아키텍처 특성의 객관적인 완전성을 평가하는 수단이며, 메트릭, 단위 테스트, 모니터, 카오스 엔지니어링 등 다양한 메커니즘이 이 평가에 포함된다.
프로세스
- 소프트웨어 개발 프로세스는 소프트웨어 아키텍처에 별다른 영향을 미치지 않지만, 피드백 루프가 빠른 애자일 방법론 등의 프로세스를 선택한다면 아키텍처의 변경을 더 잘 지원한다.
소프트웨어 아키텍처 법칙
- 소프트웨어 아키텍처의 모든 것은 트레이드 오프다.
- `어떻게` 보다 `왜`가 중요하다.
'📓 책을 통한 스터디 > 🦜 소프트웨어 아키텍처 101' 카테고리의 다른 글
| [Chapter 4] 아키텍처 특성 정의 (0) | 2025.10.12 |
|---|---|
| [Chapter 3] 모듈성 (0) | 2025.09.29 |
| [Chapter 2] 아키텍처 사고 (0) | 2025.09.22 |
Comments