클린 아키텍처, 꼭 필요할까?

시니어 개발자가 바라보는 클린 아키텍처가 궁금하시다면 주목해주세요.
Jul 27, 2024
클린 아키텍처, 꼭 필요할까?
 
 
🌊
항해 플러스는 매주 발제 형식으로 코스가 진행되는 것 알고 계셨나요? 이번에 새롭게 선보이는 <Weekly 항플>는 항해 플러스 백엔드 & 프론트엔드 코스에서 실제로 제공되는 발제 내용 중 일부를 담고 있습니다. 최신 개발 트렌드, 빅테크 시니어의 생생한 의견이 담긴 내용을 다룰 예정이니, 성장하고 싶은 주니어 개발자분들은 주목해주시기 바랍니다.
 
 

시니어 멘토의 생각: Why 클린 아키텍처?

1) 클린 아키텍처, 헥사고날 아키텍처 등 다양한 아키텍처 패턴들을 다 알아야 하나요?

우리는 단순히 특정 요구사항을 만족하는 기능을 제공하는 애플리케이션을 작성하고 끝나는 것이 아닌 유지 보수 및 지속적으로 서비스가 성장 가능하도록 하는 구조를 고민해 보아야 합니다. 이를 위해서는 효율적으로 개발하고, 유지 보수 할 수 있도록 다양한 룰을 정해야 합니다.
가독성을 높여 코드를 누구나 쉽게 파악할 수 있게 한다든지, 쉽게 변경할 수 있도록 다양한 원칙을 도입한다든지 하는 것들이 이에 속합니다. 그리고 이런 것들을 기본적으로 포함하고, 지켜질 수 있도록 하는 룰이 우리가 흔히들 들을 수 있는 클린, 헥사고날, 레이어드 등의 아키텍처 패턴 들입니다. 우리는 이를 학습하고 좋은 소프트웨어를 만들기 위한 규칙을 만들어 나가야 합니다.
 

2) 좋은 아키텍처 패턴은?

  • 지속적으로 성장 가능한 안정적인 소프트웨어를 잡기 위한 최고의 가이드라인
  • 지켜야 할 기본적인 개발 가이드라인을 잡아주는 틀
 

3) 클린 코드의 중요성

우리가 작성하는 코드, 언제든 이해하기 쉬울까요? 비즈니스 로직을 표현하다 보면, 코드의 복잡도는 높아지고 이를 이해하는 것은 쉽지 않을 수 있습니다. 이는 다른 개발자들과 함께 일할 때, 혹은 유지 보수할 때 코드의 가독성 등에서 매우 중요하며 달성하기 위한 수많은 방법들이 존재합니다. 함수 네이밍, 주석부터 시작해서 응집도/결합도, 수많은 원칙 등 클린 코드와 함께 따라오는 저마다의 노하우나 규칙들이 존재합니다.
우리는 무엇보다 변수, 함수 등이 스스로 내가 무엇인지, 어떤 일을 하는지를 설명할 수 있어야 하고 명확하게 자신의 역할만을 수행하고 있는지 등에 주의해 코드를 작성하는 습관을 들이는 데에 노력을 기울여야 합니다.
 

4) 클린 코드에서 추구하는 것

  • 읽기 쉽고 단순한 코드 : 코드는 누구나 쉽게 읽을 수 있어야 하며, 너무 많은 책임을 가지고 있지 않을 것
  • 의존성 격리 : 모듈 간 미치는 영향을 최소화하기 위해 의존성 격리를 고려할 것
  • 추상화 : 명세와 구현을 적절히 분리할 것
  • 중복성 최소화 : 중복된 코드는 최대한 지양할 것
 
 

시니어 멘토의 답변

Q : 요즘 Clean , Hexagonal , Vertical Slice 등 다양한 아키텍처에 대한 이야기가 들려옵니다. 이런 것들을 이용해 볼 수는 없을까요?
A : 물론 가능합니다! 클린 아키텍처는 DDD 기반으로 도메인 중심의 설계에 효율적이며 헥사고날 아키텍처는 보통 잘게 나눈 도메인에 기반한 MSA에 효율적인 아키텍처입니다. 이는 실제로 SOLID 원칙을 잘 지킨 하에, 레이어드 아키텍처와 함께 녹여내어 현업에서 사용하는 아키텍처입니다. 그래서 러닝 커브로 인한 프로젝트의 지연보다는, 우선적으로 기본에 충실한 구현을 진행하고 차후 리팩토링 등을 통해 고도화된 아키텍처의 도입을 시도해 보는 것을 추천드립니다.
 
 
 
💡
뉴스레터 <Weekly 항플>에서는 블로그 아티클보다 더 심층적인 내용을 다루고 있습니다. 항해 플러스 합류를 고려하고 있거나, 더 깊이 있는 학습을 원하는 주니어 개발자라면, 뉴스레터 <Weekly 항플>을 구독하여 더 많은 내용을 받아보시기 바랍니다.

👉 뉴스레터 <Weekly 항플> 구독 신청하기

 
 
 

🚢 개발자 이직 준비, 어떻게 시작해야 할지 모르겠나요? 한 단계 더 도약하는 험난한 항해에서 든든한 메이트가 되어드리겠습니다.

항해 플러스는 성장의 한계를 느끼고 있는 주니어 개발자를 위해 만들어진 실무 역량 강화 코스입니다.
기본기 역량 강화부터, 커리어 점프시켜 줄 TDD / 대용량 트래픽 처리 or 장애 대응 프로젝트와 이직 코칭까지 한번에 할 수 있습니다. 클린 아키텍에 관심이 있는 백엔드 주니어라면 TDD와 클린 아키텍처 기반 서버 구축 프로젝트를 경험할 수 있는 항해 플러스 10주 성장 코스로 이직을 도전해보세요.
 
Share article
Subscribe to our newsletter
RSSPowered by inblog