gyunam.blog

[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 또는 데이터베이스 접근 코드
};