← 개발 로그 목록

my-blog: 프로젝트 칸반 보드 기능 제거 및 관련 로직 정리

/ 8분 분량 / 개발 로그

이번 커밋은 프로젝트 관리 기능에서 칸반 보드를 제거하고, 관련 백엔드 및 프론트엔드 코드를 깔끔하게 정리하는 작업을 수행했습니다. 약 440줄에 달하는 코드가 삭제되면서 전반적인 코드베이스의 간결성이 향상되었습니다.

my-blog: 프로젝트 칸반 보드 기능 제거 및 관련 로직 정리

이번 커밋은 프로젝트 관리 기능에서 칸반 보드를 제거하고, 관련 백엔드 및 프론트엔드 코드를 깔끔하게 정리하는 작업을 수행했습니다. 약 440줄에 달하는 코드가 삭제되면서 전반적인 코드베이스의 간결성이 향상되었습니다.

요약

이번 커밋은 my-blog 프로젝트에서 칸반 보드 기능을 완전히 제거하는 작업을 중심으로 진행되었습니다. 백엔드에서는 kanbanRoutes, kanbanController, kanbanService 파일이 삭제되었으며, projectService에서도 칸반 관련 로직이 제거되었습니다. 프론트엔드에서는 projects.astro 파일에서 칸반 보드 UI 및 JavaScript 코드가 삭제되었습니다. 이로 인해 총 444줄의 코드가 삭제되었고, 5줄의 코드가 추가되었습니다. 작업은 2026년 2월 2일에 완료되었습니다.

배경 및 목적

기존 프로젝트 관리 기능에는 칸반 보드 형태의 UI가 포함되어 있었습니다. 하지만 사용자 피드백 및 내부 논의 결과, 칸반 보드 기능이 현재 프로젝트의 핵심 기능과 잘 맞지 않고 오히려 복잡성을 증가시킨다는 판단이 있었습니다. 따라서 칸반 보드를 제거하여 프로젝트 관리 기능을 단순화하고, 핵심 기능에 집중함으로써 전반적인 서비스의 효율성과 유지보수성을 높이는 것을 목표로 했습니다.

구현 내용

이번 작업의 핵심은 칸반 보드와 관련된 모든 코드를 제거하고, 프로젝트 생성 및 삭제와 같이 필수적인 기능만 남기는 것이었습니다.

주요 변경사항 상세 설명

  • 백엔드:
    • kanbanRoutes.js: 칸반 보드 관련 API 라우트 정의 파일을 삭제했습니다.
    • kanbanController.js: 칸반 보드 데이터를 가져오거나 카드를 이동/삭제하는 등의 컨트롤러 로직을 삭제했습니다.
    • kanbanService.js: 칸반 보드 데이터를 조회하고, 카드 이동 및 삭제를 처리하는 서비스 로직 전체를 삭제했습니다.
    • projectService.js: 프로젝트 생성 시 칸반 보드의 'todo' 상태로 자동 할당하고 kanban_position을 업데이트하는 로직을 제거했습니다. 또한, 프로젝트 삭제 시에도 칸반 보드와 관련된 kanban_status 및 kanban_position 처리를 제거했습니다.
    • app.js: 삭제된 kanbanRoutes를 더 이상 사용하지 않도록 수정했습니다.
  • 프론트엔드:
    • projects.astro: 프로젝트 목록 페이지에서 칸반 보드 UI 컴포넌트와 관련 JavaScript 로직을 완전히 제거했습니다.

변경된 파일 목록

  • backend/app.js
  • backend/controllers/kanbanController.js
  • backend/routes/kanbanRoutes.js
  • backend/services/kanbanService.js
  • backend/services/projectService.js
  • frontend/src/pages/projects.astro

추가/삭제된 코드 라인 수

  • 총 추가 라인: 5
  • 총 삭제 라인: 444

핵심 코드 설명

backend/services/kanbanService.js 파일의 전체 코드가 삭제되었습니다. 이 파일에는 프로젝트를 칸반 보드 형식으로 그룹화하고, 각 카드의 상태(todo, inprogress, done)와 위치(kanban_position)를 관리하는 로직이 포함되어 있었습니다. 예를 들어, getKanban 함수는 데이터베이스에서 모든 프로젝트를 가져와 상태별로 분류하는 역할을 했으며, moveCard 함수는 드래그 앤 드롭 등으로 카드가 다른 컬럼으로 이동할 때 데이터베이스의 kanban_status와 kanban_position을 업데이트하는 복잡한 트랜잭션 처리를 담당했습니다.

backend/services/projectService.js 파일에서는 칸반 보드와 관련된 로직이 제거되었습니다. 이전에는 createProject 함수가 새 프로젝트를 생성할 때 자동으로 'todo' 상태의 칸반에 위치시키고 kanban_position을 0으로 설정했습니다. 또한 deleteProject 함수는 삭제되는 프로젝트의 kanban_status와 kanban_position 정보를 바탕으로 같은 상태의 다른 프로젝트들의 kanban_position을 재정렬하는 작업을 수행했습니다. 이번 변경으로 이러한 칸반 관련 로직들은 모두 삭제되었습니다.

기술적 의사결정

기능 제거 결정

이번 커밋의 가장 큰 의사결정은 프로젝트 관리 기능에서 칸반 보드를 제거하기로 한 것입니다. 이는 단순히 코드를 삭제하는 것을 넘어, 서비스의 방향성을 재정립하고 핵심 기능에 집중하기 위한 전략적인 결정이었습니다.

기존 로직 제거

칸반 보드를 제거함에 따라, 해당 기능을 지원하던 모든 관련 로직(라우팅, 컨트롤러, 서비스, 프론트엔드 UI)을 일괄적으로 삭제하기로 결정했습니다. 이는 코드베이스를 최대한 간결하게 유지하고, 더 이상 필요 없는 기술 부채를 남기지 않기 위함입니다.

대안 및 비교

칸반 보드를 유지하면서 기능을 개선하는 방안도 고려할 수 있었습니다. 예를 들어, 더 효율적인 드래그 앤 드롭 라이브러리를 도입하거나, 사용자 경험을 개선하는 방향으로 UI를 수정할 수 있었습니다. 하지만 전반적인 프로젝트의 방향성을 고려했을 때, 칸반 보드 자체가 현재 서비스의 핵심 가치와 일치하지 않는다고 판단되었습니다. 따라서 기능을 완전히 제거하는 것이 코드 복잡성을 줄이고 유지보수 비용을 절감하는 데 더 효과적이라고 판단했습니다.

장단점 분석

  • 장점:
    • 코드베이스의 간결성 향상: 약 440줄의 코드가 삭제되어 전체 코드 양이 줄었습니다.
    • 유지보수 용이성 증대: 더 이상 관리할 기능이 줄어들어 유지보수가 쉬워졌습니다.
    • 핵심 기능 집중: 프로젝트 관리의 핵심 기능에만 집중할 수 있게 되었습니다.
    • 기술 부채 감소: 불필요한 기능과 관련된 로직을 제거하여 기술 부채를 줄였습니다.
  • 단점:
    • 기존 칸반 보드 사용자의 불편: 만약 칸반 보드를 활발하게 사용하던 사용자가 있었다면, 해당 기능의 부재로 불편함을 느낄 수 있습니다. (하지만 이번 커밋에서는 사용자 피드백 및 내부 논의 결과 제거가 결정되었습니다.)

배운 점 및 개선점

배운 점

  • 기능의 전략적 제거: 때로는 새로운 기능을 추가하는 것만큼이나, 불필요하거나 핵심 가치와 맞지 않는 기능을 과감하게 제거하는 것이 프로젝트의 건강성을 유지하는 데 중요함을 다시 한번 느꼈습니다.
  • 코드베이스의 간결함: 제거된 코드의 양을 보며, 명확한 목표 설정과 꾸준한 리팩토링이 코드베이스를 얼마나 깔끔하게 만들 수 있는지 실감했습니다.
  • 백엔드와 프론트엔드의 연계: 백엔드의 API 제거가 프론트엔드 코드에서도 광범위한 변경을 필요로 함을 알 수 있었습니다.

개선점 및 다음 단계 계획

  • 프론트엔드 프로젝트 페이지 개선: 칸반 보드가 제거된 projects.astro 페이지에서 프로젝트 목록을 어떻게 더욱 명확하고 사용자 친화적으로 표시할지에 대한 UI/UX 개선 작업을 진행할 예정입니다.
  • 프로젝트 관리 기능 강화: 칸반 보드 대신, 다른 방식으로 프로젝트의 진행 상황을 추적하거나 관리할 수 있는 기능을 탐색하고 도입하는 것을 고려해볼 수 있습니다. 예를 들어, 간단한 상태 업데이트 기능이나 태그 시스템 등이 될 수 있습니다.
  • 문서 업데이트: 제거된 기능에 대한 설명이나 관련 API 문서가 있다면 최신 상태로 업데이트해야 합니다.

참고 자료