다섯 살도 알 수 있게 · SW공학
소프트웨어 아키텍처 모델이 뭐예요?
소프트웨어 아키텍처 모델을, 책 한 권을 어떤 모양으로 미리 짜 둘지 정하는 출판사의 마지막 이야기로 풀어봤어요.
모든 내용을 한 권에 몰아넣었더니 책이 너무 커졌어요.한 글자 고치다 다른 데가 틀어질까 무서워요.
한 군데 고치려면 책 전체를 다시 찍어야 해요.한 쪽 고치는 일이 느리고 위험해요 — 책 모양을 미리 정해뒀어야 했어요.
아키텍처 모델은 책 전체를 어떤 모양으로 짤지 미리 정하는 밑그림이에요.구조 모양에 따라 책을 고치기 쉬운 정도와 내는 속도가 달라져요.
층층이 쌓기(레이어드)서문-본문-부록처럼, 바로 아래 층만 불러요
한 줄로 흘려보내기(파이프-필터)교정→편집→조판 순서로 다듬어요
주문하면 받기(클라이언트-서버)서점이 창고에 주문하면 책을 받아요
따로따로 출간(마이크로서비스)동물·역사·과학편을 따로 고쳐 내요
한 덩어리냐 쪼갠 구조냐에 따라 고치는 범위가 달라요.정답은 하나가 아니라, 책 성격에 맞는 모양을 골라요.
원고에서 독자 손까지, 이 출판사 이야기는 여기서 마침표를 찍어요.어떤 구조를 고르든, 결국 책은 독자에게 가 닿아야 해요.
한 줄로
소프트웨어 아키텍처 모델 = 시스템 전체를 어떤 모양으로 짤지 미리 정해 두는 구조 밑그림.
소프트웨어 아키텍처는 시스템을 구성 요소와 그 관계로 미리 설계한 큰 구조이고, 레이어드·파이프-필터·클라이언트-서버·마이크로서비스·이벤트 기반 등 여러 모델(스타일)이 있어요. 디자인패턴이 반복되는 작은 문제의 해법이라면, 아키텍처는 시스템 전체의 밑그림이라 더 큰 단위예요. 어떤 모델을 고르느냐에 따라 유지보수·확장·배포 방식이 달라져요.
어른들은 이렇게 불러요
- 소프트웨어 아키텍처
Software Architecture - 시스템 전체를 미리 짜 두는 구조 밑그림. 구성 요소와 그 관계를 정해요.
- 레이어드 아키텍처
Layered Architecture - 서문-본문-부록처럼 층층이 쌓은 구조. 바로 아래 층만 불러요.
- 파이프-필터
Pipe-Filter - 교정→편집→조판처럼 한 줄로 흘려보내는 구조. 각 단계가 원고를 필터처럼 다듬어요.
- 클라이언트-서버
Client-Server - 서점이 주문하고 창고가 응답하는 구조. 요청하는 쪽과 응답하는 쪽이 나뉘어요.
- 마이크로서비스
Microservices - 동물·역사·과학편처럼 따로따로 쪼갠 구조. 비슷한 구조가 다른 분야에도 있어요. → 기구 사이 전용 통로
- 이벤트 기반 아키텍처
Event-Driven Architecture - '초판 매진' 같은 소식이 뜨면 부서마다 알아서 움직이는 구조. 사건(이벤트)이 흐름을 정해요.
- 디자인패턴
Design Pattern - 작은 반복 문제의 해법. → 아무 기계나 꽂을 수 있는 콘센트처럼, 아키텍처보다 작은 단위예요.
- 정보시스템 감리/PMO
IS Audit / PMO - 이 구조가 실제로 잘 지켜지고 있는지 바깥에서 점검해요. → 출간 과정을 곁에서 살피는 검수관
다음 이야기
출간 과정을 곁에서 살피는 검수관 →