[weekly] [nb] 레이어드 아키텍쳐
레이어드 아키텍쳐에 대해 예시와 함께 설명해주세요.
레이어드 아키텍쳐
시스템을 책임/관심사별 층
으로 나눠 결합도를 낮추고 변경 비용을 줄이는 설계 방식이다.
1. 라우터(router)
병원으로 비유하면, 안내 데스크/키오스크
로 볼 수 있다.
→ 환자를 어느 창구/진료실로 보낼지 라우팅만 수행.
router.get('/examples', handleGetExampleList);
2. 컨트롤러(controller)
병원으로 비유하면, 접수/간호사
로 볼 수 있다.
→ 기본 정보·증상을 체크하고 진료 요청 형식으로 정리.
export const handleGetExampleList: RequestHandler = async (req, res) => {
const data = await getExampleList();
res.status(200).json(data);
};
3. 서비스(service)
병원으로 비유하면, 의사/진료
로 볼 수 있다.
→ 진단 규칙 적용, 검사/처방·입원 등 주요 로직을 수행.
export const getExampleList = async () => {
const exampleList = await findManyExample();
return exampleList;
};
4. 레포지토리(repository)
병원으로 비유하면, 전자 의무기록/약품 재고
로 볼 수 있다.
→ 환자 기록과 결과를 영속 저장·조회.
export const findManyExample = async () => {
// ORM 또는 데이터베이스 접근 코드
};