[방법] 백엔드는 코어부터 개발하자(기초) - 240616#1
Basic Coding
백엔드 코어부터 개발하자
어떻게 하면 백엔드의 개발 생산성은 늘리면서
코드의 의존성은 크게 낮춘 코드를 짤 수 있을까?
#개발 #방법론 #백엔드
문제점 : 기존의 나의 코딩 방식
기존의 나의 코딩 방식은
기능1 을 하나 만들고 넘어가고
기능2 를 만들고 넘어가고
기능3을 만들고 넘어가고
.
.
.
언젠가는 완성!
대충 이런식으로 각각 하나의 기능/모듈을 완벽하게 만드는 것에 집중해 왔던 것이다.
웹 개발로 치면 버튼의 디자인부터 기능까지 한 번에 한 기능만 완벽하게 구현된 형태였다.
기능 하나에 모드 물리어 있다는 단점이 있었다.
이러다보니 개발 완성에 걸리는 시간이 상당히 늘어났고
기존에 짯던 코드를 잘 활용하지 못하는 문제점이 있었다.
나의 평가로 이는 마치 자동차를 만들어 오라고 하니까 자동차 외관부터 만드는 느낌? 이였다.
이렇게 되면 당연하게도 협업을 하는데 피드백을 받기까지 걸리는 시간이 길어지고 고객과의 소통까지 걸리는 시간이 지연되게 된다.
코어부터 개발하자
그러다 이희창님이 DDD 방법론을 보고 새로운 방법론을 고안하게 되었다.
코어부터 개발하자.
도메인 주도 설계(Domain-Driven Design, DDD)는 소프트웨어 개발 방법론 중 하나로, 복잡한 소프트웨어 시스템을 설계하고 개발할 때 도메인 지식을 기반으로 하는 접근 방식을 강조합니다. DDD는 도메인 전문가와 개발자가 협력하여 도메인 모델을 정교하게 설계하고, 이를 통해 소프트웨어를 구축하는 것을 목표로 합니다.
| from chat GPT
말이 어렵지만 현장의 개념을 Domain이라고 하고 그 기반으로 조금씩 개발해 나가는 방법론이다.
이 도메인이라는 부분은 곧 자동차의 엔진과 같은 부분이다. 사실상 고객이 원하는 일을 처리하는 하나의 함수이다.
이 부분을 매우 좋게 만드는 것 부터 시작하자는 것이다.
매우 좋다는 것은 다양한 입력을 받을 수 있고 반복해서 수정이 크게 필요하지 않으며 반복해서 사용할 코드 엔진을 처음에 잘 만들어 놓자는 것이다.
기존의 방식은 하나의 기능에만 너무 집중한 나머지 많은 문제점을 갖고 있었다고 확신한다.
내가 기존에 개발하던 방식은 결과가 정말 느리게 나왔고 최종 결과물도 사용자가 원했던 것과 다를 가능성이 매우 높았다.
하지만 오른쪽과 같이 일단 돌아가도록하는 핵심 엔진을 만들고 돌아만 가게 해서 출력물이 이쁘지 않더라도 일단 된다면 끝인 모델이다.
향후의 개발 과제들을 이런식으로 진행해보자