코드 리뷰에서 다음의 피드백을 받았다.

스크린샷 2026-10-22 오전 12.26.38.png

구체적으로 확인해 보니 Connect 버튼 하나의 흐름이 패키지 2곳, 프로세스 3개, 레이어 4개에 걸친 파일 12개를 지나고 있었다. 그러다 보니 주소 문자열을 만드는 함수가 세 곳에 따로 있었고, IPC 채널 이름은 문자열로 여러 파일에 흩어져 있었다. 또한 "connection"이라는 말도 저장된 접속 정보, 현재 접속, DB 세션이라는 세 가지 뜻으로 섞여 쓰였기 때문에 처음보는 사람은 충분히 헷갈릴만하다.

직접적인 원인은 디렉터리를 도메인이 아니라 기술 기준(패키지·프로세스·ui/data 레이어)으로 먼저 나눈 데 있었다. 그래서 src/ 아래를 connection, database, driver 같은 도메인으로 먼저 나누고, 각 도메인 안에 model, contract.ts, ipc.*, data, ui를 두는 구조로 바꿨고 단계별로 진행한 내용은 다음과 같다.

한 프로세스의 코드가 여러 폴더에 흩어지게 되었으므로, 프로세스 경계는 파일 이름과 lint 규칙으로 지키도록 했다.

그리고 진행 중에 workspace 폴더에는 화면만, database 폴더에는 데이터 조회만 있다는 점을 발견했다. 폴더 이름만 도메인일 뿐 사실상 레이어로 나눈 것과 같아서, 둘을 하나로 합쳤다. 코드를 쓰기전에 먼저 구조를 잡았지만 계속 변화하는 상황에 대비하지 못해서 위의 결과가 나온 것 같다. 의식적으로 전체를 보려는 노력이 필요하다.