새 서비스를 시작하려면 애플리케이션을 실행할 구조와 데이터를 담을 스키마, 개발자들이 같은 조건에서 작업할 로컬 환경이 필요해요. 이번에는 상벌점 서비스 앱의 기본 구조와 DB 스키마, 로컬 개발 환경을 함께 마련했어요. 다만 PR이 아직 열려 있고 테스트 결과가 제공되지 않아 구체적인 구현 내용과 실제 동작 여부는 확인할 수 없어요.
기능 개발 전에 세 가지 기반이 필요했다
상벌점 서비스는 애플리케이션 코드만으로 돌아가지 않아요. 서비스를 실행할 진입점과 디렉터리 구조가 있어야 하고 상벌점 데이터를 저장할 DB 구조와 개발자가 자기 환경에서 이를 재현할 방법도 필요해요.
이 세 요소를 따로 준비하면 앱은 만들었는데 DB 연결 방법이 없거나, 스키마는 있어도 로컬 환경에 적용하는 절차가 빠질 수 있어요. 특정 개발자의 환경에서만 실행되고 다른 환경에서는 시작조차 못 할 수도 있죠. 그래서 초기 작업 범위를 다음과 같이 묶었어요.
| 영역 | 이번 작업에서 확인한 범위 | 입력 자료만으로 확인할 수 없는 세부 사항 |
|---|---|---|
| 서비스 앱 | 상벌점 서비스 앱의 기본 뼈대 구성 | 프레임워크, 디렉터리 구조, 실행 진입점 |
| 데이터베이스 | DB 스키마 마련 | 테이블, 컬럼, 제약 조건, 마이그레이션 방식 |
| 로컬 환경 | 로컬 개발 환경 마련 | 실행 명령, 필요 도구, 버전, 환경 변수 |
| 검증 | 후속 검증 필요 | 테스트 종류, 통과 여부, 재현 결과 |
표의 오른쪽 열에 적힌 항목이 구현되지 않았다는 뜻은 아니에요. 이 글에서 사실로 확정할 근거가 없다는 뜻이에요.
앱 뼈대와 데이터 구조를 한 흐름으로 다뤘다
이번에는 상벌점 서비스 앱의 기본 구조를 만들면서 DB 스키마와 로컬 개발 환경도 초기 구축 범위에 함께 넣었어요.
초기 앱 구조를 데이터 계층과 따로 만들면 실제 기능을 붙일 때 연결 방식이나 설정 구조를 다시 바꿀 가능성이 커져요. 반대로 DB 스키마만 먼저 확정하면 애플리케이션이 데이터를 어떻게 읽고 쓸지 검증하기 어려워요. 로컬 환경까지 연결해야 앱 실행과 DB 초기화가 하나의 개발 흐름으로 작동하는지 확인할 수 있어요.
세 영역을 마련한 뒤에도 다음 동작은 확인해야 해요.
- 새 환경에서 앱이 정상적으로 시작되는가
- 빈 DB에 스키마를 처음부터 적용할 수 있는가
- 스키마를 반복해서 적용해도 중복 생성이나 충돌이 발생하지 않는가
- 앱을 중단했다가 다시 시작해도 기존 데이터를 정상적으로 읽는가
- 로컬 환경을 삭제한 뒤 같은 절차로 복구할 수 있는가
파일이 있다는 사실만으로 초기 구조의 품질을 판단하기는 어려워요. 첫 실행과 반복 실행, 실패 후 재시작까지 재현할 수 있어야 다음 기능 작업의 기반으로 삼을 수 있거든요.
초기 구축에서 선택한 범위와 트레이드오프
앱 뼈대와 DB 스키마, 로컬 환경을 한 PR에서 함께 다루면 서비스의 시작 조건을 한 번에 검토할 수 있어요. 리뷰어는 애플리케이션 구조와 데이터 계층, 개발 환경이 어떻게 연결되는지 함께 확인할 수 있고 후속 기능 개발자는 공통 출발점을 얻어요.
그만큼 변경 범위는 넓어져요. 앱 구조와 DB 모델링, 로컬 실행 방식에 대한 의견이 동시에 나오면 리뷰가 오래 걸릴 수 있고 한 영역을 수정하면서 다른 영역도 다시 검증해야 할 수 있어요.
변경 규모가 크거나 영역별 검토자가 다르다면 앱 뼈대와 DB 스키마, 로컬 환경을 별도 PR로 나눌 수도 있어요. 이 경우에는 각 PR을 독립적으로 실행할 수 있는지, 어떤 순서로 병합해야 하는지도 관리해야 해요. 어느 방식이 더 적합한지는 실제 변경량과 의존 관계를 확인한 뒤 결정해야 해요.
구축 이후 남은 검증
현재는 초기 기반을 구성했고 리뷰와 검증을 기다리고 있다고 기록하는 편이 정확해요. 테스트를 실행했는지, 어떤 테스트가 통과했는지, 다른 개발자가 재현했는지는 모두 확인되지 않았어요.
회고에서도 검증 근거가 필요하다는 점이 드러났어요. 계획된 5건은 완료 및 검증 근거가 없어 완료 여부를 판단할 수 없었어요. 오래 멈춰 있던 과제를 드러내 우선순위를 다시 조정한 건 의미가 있지만 작업이 있다는 이유만으로 완료했다고 할 수는 없었어요.
별도의 후속 작업도 아직 열려 있고 관련 이슈와 PR에 관한 검증, 자동 생성 복구 확인도 남아 있어요. 이 항목들이 상벌점 서비스 앱 변경과 어떻게 연결되는지는 명시되어 있지 않아요.
다음 리뷰에서 남겨야 할 재현 기준
이 PR을 닫기 전에는 적어도 다음 정보를 문서로 남겨야 해요.
- 필요한 런타임과 DB의 이름 및 버전을 적는다.
- 필수 환경 변수와 예시 값을 구분해 적되, 비밀 값은 저장소에 포함하지 않는다.
- 의존성 설치부터 앱 실행까지 필요한 명령을 순서대로 기록한다.
- 빈 DB에 스키마를 적용하는 절차와 성공 여부를 판단할 기준을 남긴다.
- 같은 절차를 두 번 실행해도 중복이나 충돌이 없는지 확인한다.
- 앱과 DB를 종료한 뒤 다시 시작해도 기존 상태가 유지되는지 확인한다.
- 로컬 환경을 제거하고 처음부터 다시 구성하는 복구 절차를 검증한다.
- 실행한 테스트의 명령과 대상, 통과 여부를 PR에 기록한다.
관련 PR에는 재현 절차와 판정 기준을, 관련 이슈에는 정합성 검증 결과와 테스트 통과 여부를 남겨야 해요. 자동 생성 복구도 어떤 상태에서 실패를 만들었고 어떤 절차로 되살렸는지 기록해야 후속 작업자가 같은 결과를 확인할 수 있어요.
다음에는 저장소를 처음 받은 환경에서 문서만 보고 앱과 DB를 구성한 뒤 최초 실행, 중복 실행, 중단 후 재시작, 환경 삭제 후 복구를 차례로 검증해야 해요. 그 결과와 테스트 명령도 PR에 남겨야 해요.