-
클린아키텍쳐?
- 이번에 부트캠프에서 프로젝트를 클린아키텍쳐를 사용하라는 말을 했다.
- 클린 아키텍쳐란 비즈니스 로직을 중심으로 소프트웨어 계층 구조로 분리하는 것이다.
비즈니스 로직
비즈니스 로직이란 사용자 요구나 서비스 핵심 기능을 말함소프트웨어 계층구조
코드를 역할별로 나눠서 각 계층이 자신의 책임만 수행하도록 설계하는 구조클린아키텍쳐 구조

- 구조는 크게 4가지로 볼 수 있다
- infrastructure
- interface adpater
- application
- domain
클린아키텍쳐 구조의 특징
- 클린아키텍쳐 구조의 특징으로는 크게 2가지가 눈에 들어왔다.
- 계층적구조
- 바깥쪽에서 안쪽으로 흐르는 흐름이라 단방향 으로 움직인다.
- 의존성
- 안쪽 계층은 바깥 계층을 알 수 없다는 특징이 있다.
- 계층적구조
- 구조 특징를 알아봤으니 유의해서 클린아키텍쳐 구조를 살펴보자
infrastructure
- 가장 바깥쪽에 위치한 계층으로 의존성이 강한 것들을 여기에 둔다.
- 의존성이 강하다는 의미는 라이브러리 또는 시스템에 많이 기대고 있다는 것인데 수퍼베이스 코드로 보면
위 코드처럼 supabase 라는 구현체에 의존을 하고 있다라고 보면 좋다const user = await supabase.from('users').select('*').eq('email', email);
interface adpater
- application domain과 이어주는 adapter 역할이다.
- application은 API 호출을 할 수 없으니, 이를 adapter가 이어주는 역할을 한다.
application
- 기능의 흐름을 정의하는 계층이다.
- 이 계층 안에는 시스템이 제공하는 기능 단위를 usecase라는 함수를 만든다.
- 또한 데이터 api를 전송할 떄 쓰는 dto 객체도 여기에 저장한다.
domain
- 시스템의 핵심 규칙과 기능을 정의하는 계층이다.
- 대표적으로 entity, repository가 있다.
- entity -> DB 테이블에 저장되어야 할 객체
- repository -> entity를 저장하거나 불러오는 객체
마무리
- 클린 아키텍처는 복잡한 프로젝트에서도 핵심 로직을 지키면서 유연하고 유지보수하기 좋은 구조를 만드는 데 목적이 있다.
이번 프로젝트에서도 이 구조를 바탕으로 기능과 책임을 명확히 분리하고, 안정적인 서비스 개발을 해나가고자 한다.
'프론트엔드' 카테고리의 다른 글
Date.prototype.toISOString() (0) 2025.08.13 Next.js 미들웨어로 온보딩 접근 제어 구현하기 (2) 2025.08.13 TanStack Query 적용해보기 (5) 2025.08.12 클린 아키텍쳐를 프로젝트에 적용해보자 (0) 2025.08.05 Git Merge 방법 (3) 2025.08.02