[Typescript로 설계하는 프로젝트] "원래 있던 기능이니 금방 하시죠?" 당하지 않는 Service Layer 설계 전략

ant·2025년 6월 8일
post-thumbnail

"원래 있던 기능이니 금방 하시죠?"

기획자의 이 한마디에 억장이 무너진 경험, 다들 있으시죠?
비즈니스 로직과 UI가 뒤엉켜 재사용이 불가능한 코드, 복붙 없이는 대응할 수 없는 현실.

Service Layer와 DI(의존성 주입)를 활용해, 도메인 로직을 깔끔하게 분리하고 레고 블록처럼 조립하는 방법을
소개합니다.

단순 재사용을 넘어 BFF(Backend For Frontend) 패턴을 프론트엔드 코드 레벨에서 구현해, 복잡한 요구사항도 우아하게
해결하는 '방탄' 서비스 아키텍처를 만나보세요.

👉 글 보러가기: https://blog.sangwook.dev/posts/typescript-project-service-di-design


🔗 관련 시리즈 (전체 보기)

  1. 당신의 Type, 어디까지 연결되어 있나요? (https://blog.sangwook.dev/posts/typescript-project-design)
  2. Type 설계의 시작: 견고한 서버 API Type 설계하기
    (https://blog.sangwook.dev/posts/typescript-project-api-design)
  3. Type 설계의 시작: 견고한 서버 API Type 설계하기 With Di
    (https://blog.sangwook.dev/posts/typescript-project-api-di-design)
  4. "원래 있던 기능이니 금방 하시죠?" 당하지 않는 Service Layer 설계 전략
    (https://blog.sangwook.dev/posts/typescript-project-service-design)
  5. "원래 있던 기능이니 금방 하시죠?" 당하지 않는 Service Layer 설계 전략 With Di
    (https://blog.sangwook.dev/posts/typescript-project-service-di-design)
  6. "같은 로직 또 복사했어요?" Domain 모델로 책임 분리하기
    (https://blog.sangwook.dev/posts/typescript-project-domain-design)

8개의 댓글

comment-user-thumbnail
2025년 6월 10일

최대한 효율적으로 프로젝트를 설계하려는 고민이 많이 담겨있는 것같아서 읽기 좋았습니다! 잘 읽고갑니다~b

1개의 답글
comment-user-thumbnail
2025년 6월 16일

굉장히 편-안 하네요! 잘 읽었습니다 ㅎㅎ

1개의 답글
comment-user-thumbnail
2025년 6월 24일

Service Layer 구조 덕분에 복잡한 요구사항도 뚝딱 조합해버리는 게 인상 깊습니다. getUserStatus 하나로 다양한 컴포넌트에서 재사용하는 예시는 글을 쉽게 읽는데 도움이 되었어요! 감사합니다.

1개의 답글
comment-user-thumbnail
2025년 6월 28일

BFF(Backend For Frontend) 패턴을 사실 채용 공고에서 많이 보고 사실상 어떻게 해야할지 감도 안왔었는데 비즈니스 로직 분류하는 과정에서 많이 배울 수 있었어요 bb 고생많으셨습니다 잘 읽고 갑니다!

1개의 답글