ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클린아키텍쳐
    프론트엔드 2025. 7. 31. 22:17

    클린아키텍쳐?

    • 이번에 부트캠프에서 프로젝트를 클린아키텍쳐를 사용하라는 말을 했다.
    • 클린 아키텍쳐란 비즈니스 로직을 중심으로 소프트웨어 계층 구조로 분리하는 것이다.



    비즈니스 로직
    비즈니스 로직이란 사용자 요구나 서비스 핵심 기능을 말함

    소프트웨어 계층구조
    코드를 역할별로 나눠서 각 계층이 자신의 책임만 수행하도록 설계하는 구조



    클린아키텍쳐 구조

    대체텍스트

    • 구조는 크게 4가지로 볼 수 있다
    • infrastructure
    • interface adpater
    • application
    • domain

     

    클린아키텍쳐 구조의 특징

    • 클린아키텍쳐 구조의 특징으로는 크게 2가지가 눈에 들어왔다.
      1. 계층적구조
        • 바깥쪽에서 안쪽으로 흐르는 흐름이라 단방향 으로 움직인다.
      2. 의존성
        • 안쪽 계층은 바깥 계층을 알 수 없다는 특징이 있다.
    • 구조 특징를 알아봤으니 유의해서 클린아키텍쳐 구조를 살펴보자

    infrastructure

    • 가장 바깥쪽에 위치한 계층으로 의존성이 강한 것들을 여기에 둔다.
    • 의존성이 강하다는 의미는 라이브러리 또는 시스템에 많이 기대고 있다는 것인데 수퍼베이스 코드로 보면
      const user = await supabase.from('users').select('*').eq('email', email);
      위 코드처럼 supabase 라는 구현체에 의존을 하고 있다라고 보면 좋다

     

    interface adpater

    • application domain과 이어주는 adapter 역할이다.
    • application은 API 호출을 할 수 없으니, 이를 adapter가 이어주는 역할을 한다.

     

    application

    • 기능의 흐름을 정의하는 계층이다.
    • 이 계층 안에는 시스템이 제공하는 기능 단위를 usecase라는 함수를 만든다.
    • 또한 데이터 api를 전송할 떄 쓰는 dto 객체도 여기에 저장한다.

     

    domain

    • 시스템의 핵심 규칙과 기능을 정의하는 계층이다.
    • 대표적으로 entity, repository가 있다.
    • entity -> DB 테이블에 저장되어야 할 객체
    • repository -> entity를 저장하거나 불러오는 객체

     

    마무리

    • 클린 아키텍처는 복잡한 프로젝트에서도 핵심 로직을 지키면서 유연하고 유지보수하기 좋은 구조를 만드는 데 목적이 있다.
      이번 프로젝트에서도 이 구조를 바탕으로 기능과 책임을 명확히 분리하고, 안정적인 서비스 개발을 해나가고자 한다.
Designed by Tistory.