티스토리 뷰

 

내 질문:

아키텍처가 정확히 무슨 의미야?

그 뜻을 알기 쉽게 설명해줘.

 

 

아키텍처(Architecture)는 쉽게 말해 **“전체 구조를 어떻게 설계했는가”**를 뜻해.

건물로 비유하면, 건물을 짓기 전에 어디에 방을 놓고, 계단은 어디에 두고, 전기·수도는 어떻게 연결할지 정하는 설계도가 있지?
소프트웨어나 웹 개발에서의 아키텍처도 비슷해. 프로그램을 만들 때 기능들을 어떻게 나누고, 서로 어떻게 연결하고, 데이터가 어떻게 흐르게 할지 정한 전체 설계 구조를 말해.

예를 들어 웹사이트를 만든다고 하면:

사용자 화면
↓
PHP 코드
↓
DB(MySQL)
 

이런 식으로 사용자가 버튼을 누르면 PHP가 처리하고, 필요한 데이터를 MySQL에서 가져오는 구조가 있을 수 있어. 이것도 하나의 아키텍처야.

조금 더 구체적으로 보면:

브라우저
↓ 요청
index.php / board.php
↓
dbcon.php
↓
MySQL 데이터베이스
 

이런 구조에서 각각의 역할을 정하는 것이 아키텍처라고 보면 돼.

즉, 아키텍처 = 프로그램의 뼈대, 큰 구조, 설계 방식이야.

비슷한 말로는 구조, 설계, 시스템 구성 방식이 있어.

예문으로 보면:

“이 프로젝트의 아키텍처는 PHP와 MySQL을 사용하는 MVC 구조입니다.”

이 말은
“이 프로젝트는 PHP와 MySQL을 사용하고, 코드를 Model / View / Controller 역할로 나눠서 만든 구조입니다.”
라는 뜻이야.

정리하면:

아키텍처는 코드 하나하나가 아니라, 전체 프로그램이 어떤 방식으로 구성되고 움직이는지를 나타내는 큰 설계도라고 생각하면 돼.

 


 

내 질문:

감이 잡힐 듯 말 듯 해.

PRD랑은 어떻게 다른 거야?

알기 쉽게 비유와 예시를 들어서 비교 설명해줘.

 

 

좋아. 핵심만 먼저 잡으면 이렇게 달라.

PRD는 “무엇을 만들 것인가”를 정리한 문서이고,
아키텍처는 “그걸 어떻게 만들 구조인가”를 정한 설계야.

음식점 비유로 보면

웹 서비스를 하나의 음식점이라고 해보자.

PRD는 이런 문서야.

“우리 음식점은 어떤 손님을 대상으로 할까?”
“어떤 메뉴를 팔까?”
“손님은 주문, 결제, 리뷰 작성을 할 수 있어야 한다.”
“오픈 첫 달에 하루 주문 100건을 목표로 한다.”

즉, 서비스의 목적, 필요한 기능, 사용자 요구사항을 정리해.

반면 아키텍처는 이런 설계야.

“주방은 어디에 둘까?”
“주문은 키오스크로 받을까, 직원이 받을까?”
“결제 시스템은 외부 업체를 붙일까?”
“재료 창고와 주방은 어떻게 연결할까?”
“주문이 몰려도 안 막히게 동선을 어떻게 짤까?”

즉, 기능을 실제로 구현하기 위한 전체 구조와 연결 방식을 정해.


웹 개발 예시로 비교하면

예를 들어 “게시판 기능”을 만든다고 해보자.

PRD에 적히는 내용

PRD에는 보통 이런 내용이 들어가.

사용자는 게시글을 작성할 수 있다.
사용자는 게시글 목록을 볼 수 있다.
사용자는 제목, 내용, 작성자명으로 검색할 수 있다.
로그인한 사용자만 글쓰기 버튼을 볼 수 있다.
관리자는 회원관리 메뉴를 볼 수 있다.
게시글 목록은 한 페이지에 10개씩 보여준다.
 

여기서 중요한 건 사용자 입장에서 어떤 기능이 필요한지야.

PRD는 개발자뿐만 아니라 기획자, 디자이너, PM, 고객도 이해할 수 있어야 해.


아키텍처에 적히는 내용

같은 게시판 기능을 아키텍처 관점에서 보면 이렇게 돼.

브라우저
↓
board.php
↓
dbcon.php
↓
MySQL
 

또는 더 구체적으로는:

board.php는 게시글 목록 요청을 받는다.
dbcon.php는 DB 연결을 담당한다.
posts 테이블에는 게시글 정보가 저장된다.
tb_member 테이블에는 회원 정보가 저장된다.
posts.user_id와 tb_member.id를 조인해서 작성자 이름을 가져온다.
검색어가 있으면 SQL WHERE 조건을 추가한다.
페이지네이션은 LIMIT, OFFSET으로 처리한다.
 

여기서 중요한 건 개발자 입장에서 시스템이 어떻게 움직이는지야.

아키텍처는 코드, DB, 서버, API, 파일 구조, 데이터 흐름 같은 기술적 구조를 다뤄.


한 문장으로 비교

       구분                                         PRD                                                                        아키텍처
핵심 질문 무엇을 만들까? 어떻게 만들까?
관점 사용자 / 서비스 / 기능 개발 / 시스템 / 구조
주요 내용 목적, 기능, 요구사항, 정책 화면, 서버, DB, API, 데이터 흐름
보는 사람 기획자, 디자이너, 개발자, 이해관계자 주로 개발자, 기술 리더
예시 “로그인한 사용자만 글을 쓸 수 있다” “세션 loginid를 확인해서 글쓰기 권한을 판단한다”

더 쉬운 비유: 집 짓기

집을 짓는다고 하면,

PRD는 이런 거야.

방 3개가 필요하다.
화장실은 2개가 필요하다.
거실은 넓어야 한다.
주방은 아일랜드 식탁이 있어야 한다.
아이가 있는 가족이 살 집이다.

즉, 어떤 집이 필요한지를 말해.

아키텍처는 이런 거야.

기둥은 어디에 둘지,
배관은 어떻게 뺄지,
전기선은 어떻게 연결할지,
방과 거실의 구조를 어떻게 배치할지,
2층을 지탱하려면 어떤 구조가 필요한지.

즉, 그 집을 실제로 어떻게 만들지를 말해.


게시판 기능으로 아주 현실적인 비교

기획자가 PRD에 이렇게 쓴다고 해보자.

사용자는 게시글을 검색할 수 있어야 한다.
검색 대상은 제목, 내용, 작성자명이다.
 

이건 PRD야.
기능 요구사항이니까.

개발자가 아키텍처나 설계에 이렇게 정리할 수 있어.

board.php에서 GET keyword 값을 받는다.
posts 테이블과 tb_member 테이블을 조인한다.
검색 조건은 posts.title, posts.content, tb_member.name에 LIKE를 적용한다.
검색 결과는 LIMIT 10 OFFSET 방식으로 페이지네이션한다.
 

이건 아키텍처 또는 기술 설계에 가까워.
기능을 구현하는 구조와 방식이니까.


헷갈릴 때 이렇게 구분하면 돼

문장이 **“사용자는 ~할 수 있다”**로 끝나면 보통 PRD에 가까워.

예:

사용자는 회원가입을 할 수 있다.
사용자는 게시글을 수정할 수 있다.
관리자는 회원 목록을 볼 수 있다.
 

문장이 “시스템은 ~를 통해 처리한다”, “DB는 ~로 구성한다”, “파일은 ~ 역할을 한다”처럼 나오면 아키텍처에 가까워.

예:

회원 정보는 tb_member 테이블에 저장한다.
로그인 상태는 $_SESSION['loginid']로 확인한다.
게시글 목록은 posts와 tb_member를 조인해서 조회한다.
 

정리하면,

PRD는 만들 제품의 설명서이고,
아키텍처는 그 제품을 실제로 만들기 위한 구조 설계도야.

PRD가 “목적지”라면, 아키텍처는 “그 목적지까지 가는 도로와 교통 시스템”이라고 보면 돼.

 

 

아키텍처 = Architecture
발음 느낌: 아키텍처 / 아키텍쳐
뜻: 구조, 설계 방식

PRD = Product Requirements Document
발음 느낌: 피알디
뜻: 제품 요구사항 문서

정리하면:

Architecture = 어떻게 만들지에 대한 구조 설계
PRD = 무엇을 만들지에 대한 요구사항 문서

 

 

 

By. ChatGPT