리뷰

    [2023-12] 스크럼 가이드 리뷰

    안녕하세요. 오늘은 스크럼 가이드를 여러 번 읽어보면서 이해했던 내용들을 남겨보려고 합니다. 같은 제품개발실 PM님 덕분에 스크럼 가이드의 한국어 버전이 있다는 것을 알게 되었고, 한번 읽어봐야지 했던 게 시작이었습니다. 한번 읽어보니깐 이해 안 되는 부분이 많아서 여러 번 읽어보니 스크럼 가이드의 의도가 조오오오금 보이더라고요. 스크럼 가이드에서 이해되지 않았던 부분들을 어떻게 이해하게 되었는지 중점적으로 기록해 보겠습니다. Q. 스크럼 가이드에서 이해되지 않는 부분들 Q1. 스크럼 가이드가 왜 이렇게 딱딱해? 스크럼 가이드를 보면 개요 부분부터 스크럼 가이드를 무조건 준수하라는 글을 볼 수 있습니다. 스크럼 가이드는 스크럼의 정의를 담고 있다. 스크럼 프레임워크의 각 요소는 특정한 목적을 이루기 위해..

    도메인 주도 개발 시작하기 - 2. 아키텍처 개요

    안녕하세요! 오늘은 도메인 주도 개발 시작하기의 두 번째번째 챕터인 아키텍처 개요를 공부하려고 합니다. 책을 읽으면서 내용의 흐름이 아쉽다고 느끼고 있습니다. 그렇지만 두 번째 챕터에서 이런 평가를 내리는 것이 섣부른 판단일 수 있죠! 내용 살펴보겠습니다 :) 꿀팁 요약 DIP를 적용할 때 하위 기능을 추상화한 인터페이스는 고수준 모듈 관점에서 도출해야 한다. DIP가 항상 옳은 것은 아니다. 도메인 모델, 패키지 모두 크기가 너무 커지면 다시 모듈화 시키자. 2.1 네 개의 영역 혹시 프로젝트를 시작하면서 설계 단계에 들어가면 어떤 방식으로 구조를 그려나가시나요? 소프트웨어를 설계할 때 "표현", "응용", "도메인", "인프라스트럭처" 4개의 영역으로 나누는 것은 전형적인 설계 방식입니다. 각 영역에..

    도메인 주도 개발 시작하기 - 1. 도메인 모델 시작하기

    안녕하세요! 오늘은 도메인 주도 개발 시작하기의 첫번째 챕터인 도메인 모델 시작하기를 공부하려고 합니다. 도메인 주도 개발 시작하기는 Domain Driven Development(DDD)를 처음 공부할 때 읽기 좋은 것 같습니다. 저부터 DDD를 이렇게 직접적으로 공부해본 적은 처음입니다! ㅋㅋㅋ 한번 내용을 살펴볼까요? 요약 도메인 전문가, 이해관계자, 개발자와의 소통이 중요하다. 코드와 도메인을 최대한 가깝게 유지하자. 1.1 도메인이란? 대체 도메인이 뭘까요? 왜 공부해야 하는 걸까요? 도메인이란 바로 소프트웨어로 해결하고자 하는 문제 영역입니다. 유지보수성 좋은 소프트웨어를 만들기 위해서는 좋은 구조와 모듈화가 필수적으로 요구됩니다. 도메인을 자세히 파악할수록 소프트웨어의 구조를 어떻게 설계할지..

    [개발자의 서재] "실용주의 프로그래머" 4. 적당히 괜찮은 소프트웨어, 10. 예광탄

    적당히 괜찮은 소프트웨어 모든 기능이 완벽하게 구현되어 있고, 확장성과 유지보수성이 높은 아키텍처를 가지고 있는 완벽한 소프트웨어를 출시하는 것은 모든 개발자들이 꿈꾸는 이상적인 상황일 것이다. 하지만 애석하게도 하늘은 이상(理想)을 허락하지 않고, 이상(異常)만을 허락하셨다. 일정, 기술, 구조 등의 이유로 완벽한 소프트웨어를 출시하는 것을 방해한다. 그렇다고 개발자들이 절망적인 상황에 놓여있는 것은 아니다. 적당히 괜찮은(마음의 평화를 유지하면서 사용자, 협업하고 있는 개발자들이 사용할 수 있는 정도의) 소프트웨어를 만들도록 노력할 수 있다. 같이 보면 좋은 영상 개발자에게 레거시?! 오히려 좋아 레거시에 관한 영상인데 맥락이 이어지는 것 같아서 첨부했습니다. 사용자의 피드백 그렇다고 지저분하고 아무..

    [개발자의 서재] "실용주의 프로그래머" 3. 돌멩이 수프와 삶은 개구리

    소프트웨어 개발을 가로막는 장애물 어떤 소프트웨어를 살펴보더라도 필요한 개선 사항이 없는 소프트웨어는 없다. 기능, UI, UX, 운영 등 다양한 측면에서 살펴보면 부족한 부분에서 개선이 필요하다. 그런데 어째서 개선되지 않는 것일까? 예산, 인력 충원의 어려움, 기술력 등 이유를 찾아보자면 끊임없이 나올 것이다. 여기서는 "시작 피로"에 대해서 다뤄보려고 한다. 시작 피로(start-up fatigue) 새로운 기능, 버그 수정 등 필수적으로 진행해야 되는 작업들은 이미 우리 곁에 존재하고 있다. 그런 상황에서 추가적인 업무 요청이 들어오면 어떨까? 작업 공수 계산, 일정 조율, 인력 배정 등 사전 작업에 대한 두려움 때문에 아주 방어적으로 맞서게 된다. 이런 두려움들을 시작 피로라고 한다. 시작 피로..

    [개발자의 서재] "클린코드" 8. 경계

    경계가 무슨 뜻인가요? 소프트웨어를 개발하다 보면 필연적으로 외부 라이브러리 혹은 다른 팀이 개발한 모듈 혹은 서비스를 이용해야 합니다. 심지어 아직 개발되지도 않은 모듈과의 연동을 고려하면서 프로젝트를 진행해야 할 때도 있습니다. 이때, 외부 코드와의 의존성을 적절히 관리하지 못하면 소프트웨어의 불안정성이 극도로 높아지게 됩니다. 클린코드에서는 외부 코드와의 의존성을 관리할 수 있는 부분을 "경계"라고 정의합니다. 경계가 만들어지는 이유를 크게 1) 외부 코드의 사용, 2) 아직 개발되지 않은 모듈과의 연동으로 구분합니다. 다행인 것은 이를 다루는 방법이 하나로 통합되어 복잡하게 신경 쓸 것이 없다는 것입니다 ㅎㅎ 경계에서 의존성을 관리하는 방법이 뭐죠? 통제할 수 없는 것에 시간을 허비하지 말고, 통..