노출 모듈 패턴
2024. 6. 4. 14:57ㆍ면접을 위한 cs 전공지식 노트/디자인 패턴
노출 모듈 패턴
- 즉시 실행 함수를 통해 private, public 같은 '접근 제어자'를 만드는 패턴을 뜻한다.
- 자바스크립트는 private나 public 같은 접근 제어자가 존재하지 않고, 전역 범위에서 스크립트가 실행된다.
따라서 노출 모듈 패턴을 통해 public, private 접근 제어자를 구현하기도 한다.
Java Spring에서 노출 모듈 패턴의 개념
- 특정 기능 또는 서비스를 외부에 제공하는 인터페이스를 만드는 것
- 캡슐화, 인터페이스 분리, 의존성 역전 등의 SOLID 원칙을 따르는 것과 밀접하게 관련되어 있음
- Controller Layer : Spring MVC에서 Controller 클래스는 HTTP 요청을 처리하고 응답을 반환하는 역할을 한다. 이들은 웹 클라이언트에게 노출되는 인터페이스로서 작동하며, 클라이언트는 서버의 특정 기능에 접근할 수 있게 된다. Controller는 이를 위해 Service Layer를 사용하지만, Service Layer의 내부 구현에 대해선 알 필요가 없다.
- Service Layer : Service 클래스는 비즈니스 로직을 수행하는 역할을 한다. 이들은 Controller나 다른 Service 클래스에게 노출되는 인터페이스로서 작동하며, 이를 통해 비즈니스 로직을 재사용하고 코드의 중복을 줄일 수 있다. Service Layer는 Repository Layer를 사용하지만, Repository Layer의 내부 구현에 대해선 알 필요가 없다.
- Repsitory Layer : Repository 클래스는 데이터베이스와의 연결과 관련된 로직을 수행한다. 이들은 Service Layer에게 노출되는 인터페이스로서 작동하며, Service Layer는 Repository의 내부 구현에 대해 알 필요가 없다
이렇게 각 계층은 자신의 역할에 집중하며, 다른 계층에게는 자신의 기능만을 노출한다. 이는 노출 모듈 패턴의 핵심 원칙을 잘 보여주는 예시이다. 이를 통해 각 계층의 결합도를 낮추고, 코드의 유연성과 재사용성을 높일 수 있다.
'면접을 위한 cs 전공지식 노트 > 디자인 패턴' 카테고리의 다른 글
MVP 패턴 (0) | 2024.06.07 |
---|---|
MVC 패턴 (0) | 2024.06.05 |
이터레이터 패턴 (0) | 2024.06.03 |
프록시 패턴과 프록시 서버 (0) | 2024.05.31 |
옵저버 패턴 (0) | 2024.05.30 |