infra, architecture,

PBF(package by feature) vs PBL (pacakge by layer)

jaewan jaewan Follow Jun 03, 2020 · 1 min read
PBF(package by feature) vs PBL (pacakge by layer)

PBF(package by feature) vs PBL (pacakge by layer)

Pakcage

pacakge는 언어 및 상황에 따라 정의가 다르지만 일반적으로 정의된 코드들의 묶음으로 본다. pacakge를 구성하는 기준은 다양하지만 그중 PBF(package by feature)와 PBL(pacakge by layer)에 대해 알아보자.

PBF

PBF는 기능 단위로 pacakge를 구성하는 archtiecture로 Domain방식과 유사하다. 각 기능들을 중심으로 package를 구성하고 해당 패키지 내에 필요한 모든 코드 그룹들을 넣어둔다.

user/
  UserRepository.ts
  UsersService.ts
  UsersController.ts
  UserModel.ts
post/
  PostRepository.ts
  PostService.ts
  PostController.ts
  PostModel.ts

위와 같이 각 기능에따라 layer단위로 나눌수도 있으며 사용하는 architecture에 따라 해당 기능에 필요한 코드들을 관리하면 된다.

PBL

PBL은 Layer단위로 package를 구성하는 archtiecture이다. 각자 사용하는 archtitcture의 Layer에 따라 pacakge를 구성하며, 해당 패키지에 맞게 다양한 기능을 수행하는 코드들을 관리한다. 가령 Controller/Service/Repository/Model layer를 사용할 경우

Controller/
	UserController.ts
	PostController.ts
Service/
	UserService.ts
	PostService.ts
Repository/
	UserRepository.ts
	PostRepository.ts
Model/
	UserModel.ts
	PostModel.ts
jaewan
Written by jaewan Follow
[ZigBang Backend Developer]
* Enjoy and challenge all areas of development.
* Typescript, NodeJS, Java, React, Android