요구사항 변화에 따른 프로젝트 구조 확장_Bradley 멘토님
F-Lab : 상위 1% 개발자들의 멘토링
프로그램을 개발하면서 많이 듣는 용어중 하나가 확장성과 유연성이지 않을까 싶습니다.
그만큼 프로그램 개발에 있어 중요한 요소중 하나이고 이를 잘 고려한다면 시스템을 변경하거나 개선해야 할 때, 큰 비용 없이 쉽게 대응할 수 있습니다.
하지만 반대로 이 두 가지를 지나치게 의식하다 보면, 오히려 어떻게 설계해야 할지 결정하지 못하고 한참을 헤매게 되는 경우도 생깁니다.
오늘 소개해 드릴 글은 이런 경험을 한번쯤 해본 분들께 도움이 될 만한 내용인데요,
프로젝트를 시작할 때 복잡한 고민과 설계보다는 핵심 요구사항에 집중하고,
새로운 요구사항이 생길 때마다 점진적으로 구조를 확장해 나가는 과정을 다루고 있습니다.
이를 통해 확장성을 미리 계획하지 않았더라도, 핵심 기능을 잘 정리해 나가면 자연스럽게 확장성과 유연성을 갖춘 구조가 만들어질 수 있다는 걸 보여줍니다.
개인적으로 글에서 설명하는 프로젝트 구조를 만들려면, 다음과 같은 역량을 갖출 수 있도록 노력이 필요하다 생각합니다.
요구사항 분석 및 핵심 기능 정리
명확한 역할 분리를 통한 단일 책임 원칙(SRP) 준수
기존 코드에 미치는 영향을 최소화하기 위한 캡슐화와 OCP 원칙 준수
또한 패키지나 코드를 분리하다 보면, 자연스럽게 Common 패키지나 공통 모듈이 생기기 마련인데요
이러한 Common 패키지, 공통 모듈을 잘못 정리하면 다양한 비즈니스 로직과 의존성이 뒤섞이면서 오히려 확장성과 유연성을 해치는 결과로 이어질 수 있어 주의해야 합니다.
확장성 있는 프로젝트 구조에 고민이 많으신 분들께 조금이나마 도움이 되길 바라겠습니다.
📚 원문
https://f-lab.kr/blog/article_20250717
📚 함께 읽으면 좋은 글
멀티모듈 설계 이야기 with Spring, Gradle: https://careerly.co.kr/comments/102169?utm_campaign=self-share
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 7월 22일 오전 1:59
책이 출판되기 전 마지막 교정을 하고 있는데...
... 더 보기GPT-5가 출시되면서 Function Calling에 Free-Form Function Calling과 Context-Free Grammar (CFG)를 지원하는데, 이게 숨은 보석이다.
Free-Form은 결과를 JSON이 아니라 SQL, Python script 등의 코드등을 결과로 받거나 XML, CSV 같은 형태로도 받을 수 있다. 다만 plain-text로 주는 형태라서 주의가 필요하다. 이건 예전에도 프롬프트 트릭으로 쓰곤했던거라 그냥 맘이 좀 편해졌다(?)정도.
... 더 보기