인프런 커뮤니티 질문&답변
'개념과 격벽' 을 실제 업무에 어떻게 사용하면 좋을까요?
작성
·
11
1
안녕하세요, 제미니님.
유투브 및 인프런 강의 잘 시청하고 있습니다 :)
인프콘 2024에서 '지속 성장 가능한 설계를 만들어가는 방법' 이라는 주제로 발표해주신 내용이 무척 공감이 되었고, 제미니님 유투브를 찾아봤다가 강의까지 수강하게 되었습니다
이번 강의 내용은 아니지만 인프콘 영상에서 말씀해주신 개념인 '개념' 과 '격벽'을 구체적으로 실무에서 어떻게 사용하면 좋을지를 여쭤보고자 인프런 질문을 통해서 글을 올리게 되었습니다.
편의상 신규 프로젝트를 진행한다고 가정했을때,
요구사항을 분석하고 도메인을 구성하는 여러 '개념'들을 나열한다.
나열된 '개념'들의 급(1급, 2급, 3급 ..) 을 나눠보고 그룹화 하면서 '격벽'으로 분리한다.
'격벽'으로 분리된 그룹이 어떤 개념을 통해서 연결될지 방화벽으로 동작할 개념을 생각해본다. 이는 개념간 무분별한 참조를 막기 위함이다.
'개념'들과 '격벽'들을 기반으로 일단 코드로 구현부터 해본다. ('설계를 하지 말고 구현을 먼저' 하는 포인트는 이것)
구현하면서 또는 운영하면서 더 나누거나 신규로 추가할 개념이 있다면 반영한다.
결과적으로 설계를 하지 않고 구현을 먼저 하고, 구현 하는 과정이나 운영 하는 과정에서 최적화 시킨다. 이것이 곧 최적의 설계로 나아가는 방향이 된다.
(질문) 제가 제미니님이 말씀하신 '개념'과 '격벽'을 잘 이해한 것이 맞을까요? 실무에서 위 흐름대로 적용하면 제미니님이 강조하신 내용에 기반한 작업이 될 수 있을까요?
실무에서 실제로 말씀해주신 내용을 적용해보고 싶은데 구체적으로 어떤식으로 적용하면 될 지 몰라서 제가 이해한 내용을 바탕으로 작성을 해보았습니다. 틀린 부분이 있다면 피드백을 부탁드리고 싶습니다 :)
긴 글 읽어주셔서 감사합니다~
답변 2
0
안녕하세요! 질문 감사드립니다!
이번 강의는 커머스 도메인를 토대로 개념과 격벽에 대해서 충분히 느껴볼 수 있도록 제작 되었습니다ㅎㅎ (개념 느끼기 부분이 특히 그 부분을 강조해두었구요!)
그래서 강의를 완강하시면 개념과 격벽을 어떻게 실무에서 활용 할 수 있을지 느껴 보실 수 있을 것 이라고 생각합니다!
적어주신 것들에 대해서 제가 개념과 격벽을 활용하는 전략을 기준으로 의견드리면
(제가 개념과 격벽을 언급했으니,,! 제 전략이 답에 가깝겠지만 또 무조건 답은 아니라는 점 참고해주세요ㅎㅎ 사용하기 나름이라고 봅니다)
일단 적어주신 순서 대로 활용하는 것은 아닙니다!
적어주신것의 순서를해 볼 수있을까~ 싶은데 애매하네요 대략 제가 재구성 해보겠습니다
(사실 모든 상황에서 한가지 전략으로 활용할 순 없습니다, 회사의 상황, 규모, 기획팀 역량, 존재유무 등등 너무 고려할게 많습니다, 일반적이라고 가정하고 보편화 시켜서 적어보겠습니다)
현재 전달 받은 요구사항을 분석하고 이해한 뒤 구현을 먼저 진행한다
잘 못 된 요구사항, 변경 되는 요구사항, 만들다 보니 모호한 부분이 분명히 있을텐데 일정 내에서 이것도 수용하며 구현을 진행한다
구현하면서 어떤 것들이 우리의 S/W의 비즈니스와 코드에서 핵심이고 중심인지 이해한다 (신규 코드라는 가정입니다, 레거시라면 레거시 현황을 이해하는것이 선행)
핵심과 중심인 부분을 최대한 의존을 끊어내고 순수 할 수 있게 구현을 계속 진행한다
분명히 초기에 구현 하면서 생각한 것들이 바뀔 수 있음
구현이 완료되어 요구사항이 충족되어 기본적인 테스트를 성공 시킨다
현재 구현 된 요구사항과 비즈니스와 코드 기준으로 개념과 격벽을 개념도에 그린다
팀 내(개발,기획,+디자인) 등 공유하여 인식을 맞춘다
우선 저는 이런식으로 활용을합니다! 대부분의 신규 서비스 만들때 기준으론 초기 mvp가 나오고 나서 개념도를 최종 버전으로 그렸던 것 같아요!
먼저 구현 중간중간에 개념과 격벽을 정의하면서 진행해도 되는데 일반적으로 요구사항이나 기획이 변경 될 가능성이 있으니 추후에 그리는게 좋다고 생각하긴합니다!
사실 이런 순서보다 핵심은개념을 나열하고격벽을먼저 만들면 안 된다는 것 입니다
그러면 결국 구현 먼저가 아니라 설계 먼저 하고 있는 것 이기 때문이라고 생각합니다 😃 (발표 후기에도 말했지만 설계 먼저 하는게 무조건 틀리다는 의견은 아닙니다ㅎㅎ)
저는 여전히 구현 먼저 하는게 중요하다고 생각하는 쪽입니다.
물론 코드를 구현을 하면서 생각을 계속 해야겠죠! (이 클래스를 어디서 끊을지, 누구누구를 알게 될지, 이 클래스가 개념적으로 가치가 있는지? 있다면 얼마나 중요한 개념인지,,, 등등)
구현이 어느 정도 진행되고, 충분히 이해도가 생겼을때 개념을 정의하는게 좋다고 생각합니다!
모쪼록 수강 감사드리고 답이 되었길 바랍니다!
강의 완강 후에도 느낌이 잘 안 느껴지시면 다시 질문주시면 좋겠습니다! 감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. jungkwon kim님.
제미니님의 강의를 통해 ‘개념’과 ‘격벽’의 활용에 대해 고민하고 계신 듯합니다. 말씀해 주신 접근 방법은 제미니님이 강의에서 강조하신 내용과 잘 부합하며, 여러 가지 측면에서 매우 합리적인 방식으로 보입니다. 실제 업무에서 어떻게 적용할 수 있는지를 더 구체적으로 설명드리겠습니다.
실무에서의 ‘개념’과 ‘격벽’ 적용 방법
요구사항 분석과 개념 나열:
- 요구사항을 분석하여 해당 도메인에서 중요한 개념들을 식별하는 것이 먼저입니다. 이를 통해 개념 간 관계와 중요도를 파악할 수 있습니다.
- 요구사항을 분석하여 해당 도메인에서 중요한 개념들을 식별하는 것이 먼저입니다. 이를 통해 개념 간 관계와 중요도를 파악할 수 있습니다.
개념의 급을 나누고 격벽으로 분리:
- 개념들을 중요도나 사용빈도에 따라 그룹화하고, 서로 독립적일 수 있는 경계를 설정하는 과정입니다. 이 과정은 나중에 유지보수와 기능 확장이 용이하게 만들어 줍니다.
- 개념들을 중요도나 사용빈도에 따라 그룹화하고, 서로 독립적일 수 있는 경계를 설정하는 과정입니다. 이 과정은 나중에 유지보수와 기능 확장이 용이하게 만들어 줍니다.
개념 간 연결 및 방화벽 설정:
- 각 개념이 어떻게 상호작용할지, 어떤 개념이 연결점을 제공할지를 고민합니다. 여기서 방화벽 역할을 하는 개념은, 개념 간의 무분별한 침범을 막는 역할을 담당합니다.
- 각 개념이 어떻게 상호작용할지, 어떤 개념이 연결점을 제공할지를 고민합니다. 여기서 방화벽 역할을 하는 개념은, 개념 간의 무분별한 침범을 막는 역할을 담당합니다.
구현을 먼저, 설계는 나중에:
- 설계를 미리 완벽히 세우기보다, 우선 구현을 진행한 후 실제 필요에 맞게 조정하는 접근을 취합니다. 이는 실제로 요구사항에 맞춘 결과물의 적합성을 높이는 데 도움이 됩니다.
- 설계를 미리 완벽히 세우기보다, 우선 구현을 진행한 후 실제 필요에 맞게 조정하는 접근을 취합니다. 이는 실제로 요구사항에 맞춘 결과물의 적합성을 높이는 데 도움이 됩니다.
지속적인 개선 및 최적화:
- 실행하는 과정에서 개선점을 발견하거나 새로운 개념의 필요성이 보일 경우, 이를 적극 반영하여 설계를 지속적으로 개선합니다.
- 실행하는 과정에서 개선점을 발견하거나 새로운 개념의 필요성이 보일 경우, 이를 적극 반영하여 설계를 지속적으로 개선합니다.
참고 자료:
비슷한 맥락에서 언급된 이전의 질문과 답변을 보시면 도움이 되실 것입니다:
개념 간 격벽을 침범하는 경우: 개념을 제대로 분리하지 못한 경우에 대한 논의입니다.
레이어간 흐름에 대한 엄격함: 서비스 아키텍처에서 레이어별 흐름을 어떻게 관리하는지에 대한 질문입니다.
jungkwon kim님이 말씀하신 흐름을 통해 프로젝트 관리와 유지보수를 더욱 용이하게 하고, 코드를 보다 안정적이고 확장 가능하게 만들 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





제가 완전히 잘못 이해하고 있었네요. 상세한 답변 매우 감사드립니다!!