병원 ERP 시스템
한 줄 요약: 병원 내 특수장비(MRI, 초음파 등) 예약의 수작업 비효율을 개선하고, 예약·시설·회원·직원 정보를 통합 관리하는 웹 기반 ERP 시스템 구축 프로젝트
1. 프로젝트 개요
- 주제: 병원 ERP 시스템 (특수장비 예약 및 통합 관리)
- 개발 기간: 2025.10.23 ~ 11.20
- 개발 인원: 6명 (본인 포함)
- 개발 환경 & 기술 스택:
- Language & Framework: Java, Spring Boot, MyBatis, JSP, HTML/CSS/JS
- Database: Oracle DB, JDBC
- Tool: IntelliJ, Git/GitHub, Figma
- Process: UI/ERD 설계 → Front-end(HTML/JS) → JSP/Oracle 구현 → Spring Boot(MVC) → 테스트 & 리팩토링
🚩 기획 의도 (문제 해결)
일반 진료 예약은 전산화가 잘 되어 있지만, 특수 장비(MRI, CT 등) 예약은 여전히 간호사의 수기 작성이나 유선 조율에 의존하고 있었습니다. 이로 인한 커뮤니케이션 비용과 인력 낭비를 줄이기 위해 **'실시간 시설·장비 예약 관리 시스템'**을 핵심 기능으로 하는 병원 ERP를 기획했습니다. 이를 통해 환자, 간호사, 시설 관리자 모두가 하나의 시스템에서 투명하게 예약 현황을 공유받을 수 있도록 했습니다.
2. 담당 역할 및 기여 (My Role)
직책: 이슈 관리자(Issue Manager) & Full-stack Developer
🛠️ 주요 구현 기능
- UI/UX 설계: Figma를 활용한 전체적인 UI 디자인 및 에러 모달, 마감 시설 처리 화면 설계
- Front-end:
- 홈페이지 검사실 예약 페이지 및 관리자(ERP) 검사실 관리 페이지 구현
- 회원/비회원 예약 인증 로직 및 '나의 차트' 기능 구현
- 사이드바 하이라이트, 진료 예약 필터링 등 디테일한 CSS/JS 로직 수정
- Back-end:
- 환자 진료기록 조회, 아이디/비밀번호 찾기 로직
- Spring Boot 기반의 MVC 패턴 적용 및 데이터바인딩
3. 트러블 슈팅 & 문제 해결 (Troubleshooting)
💥 Git 충돌과 데이터 손실 위기
프로젝트 진행 중 Git 병합(Merge) 과정에서 충돌(Conflict)이 발생했습니다.
- 문제: 초기에는 충돌 원인을 파악하지 않고 무작정 덮어쓰기를 시도하다가 작성한 코드가 날아갈 뻔한 위험이 있었습니다. 또한 코드 해석 능력이 부족해 충돌된 코드를 수정하기보다 클론을 다시 받아 로컬 코드를 재작성하는 비효율적인 방식을 쓰기도 했습니다.
- 해결 및 배운 점: 이후에는 git status로 충돌 파일을 정확히 식별하고, 팀원과 코드를 라인별로 대조(Compare)하며 수정하는 정석적인 방법을 익혔습니다. 이 과정을 통해 **"협업 툴은 단순히 저장소가 아니라 소통의 도구"**라는 점을 깊이 깨달았습니다.
🔧 테스트 중 발견한 UX 결함 수정
기능 구현 후 테스트 과정에서 사용자 관점의 불편함을 발견하고 주도적으로 수정했습니다.
- 사이드바 가시성: 진료 내역/검사 결과 페이지의 사이드바 위치가 통일되지 않고 하이라이트가 없어 현재 위치를 알기 어려운 점을 발견하여 CSS와 JS 로직을 수정해 통일감을 주었습니다.
- 예약 필터링: 진료 예약 시 원하는 조건으로 필터링이 되지 않는 문제를 발견하고 기능을 추가 구현했습니다.
4. 프로젝트 회고 (Retrospective)
이번 프로젝트는 JSP에서 Spring Boot로 기술 스택을 전환하며 MVC 패턴의 흐름을 몸소 체득했던 귀중한 시간이었습니다.
✅ 잘한 점 (Well Done)
- 책임감 (Ownership): 저에게 주어진 기능은 밤늦게 남아서라도 반드시 끝냈습니다. 프로젝트 일정에 차질이 생기지 않도록 제 몫을 다해냈다는 점이 가장 뿌듯합니다.
- 상호 보완적 협업: 단순히 제 할 일만 한 것이 아니라, 팀 전체의 완성도를 위해 구멍 난 부분(미구현 기능, UI 어색함)을 찾아내어 직접 수정하거나 팀원에게 요청했습니다.
💡 배운 점 (Learned)
- 기술적 이해도 상승: 이클립스(JSP/Servlet) 환경에서는 모호했던 MVC 패턴의 흐름이 Spring Boot와 MyBatis를 직접 구성해보며 명확해졌습니다. 데이터의 흐름과 제어 역전(IoC)의 개념을 이해하게 되었습니다.
- 소통의 속도가 곧 개발 속도: 혼자 끙끙 앓으며 시간을 보내는 것보다, 팀원에게 빠르게 상황을 공유했을 때 문제 해결 속도가 획기적으로 빨라짐을 경험했습니다.
💦 아쉬운 점 & 부족한 점 (Regrets & Shortcomings)
- 기술적 자립심 부족: 코드 구현 시 AI나 검색에 의존하는 비중이 높았습니다. 스스로 로직을 설계하는 힘을 길러야겠다고 통감했습니다.
- 역할 수행의 적극성: '이슈 관리자'라는 직책을 맡았으나, 실질적인 관리는 조장과 형상관리자님께 의존했던 점이 아쉽습니다. 다음에는 직책에 맞는 주도적인 모습을 보이고 싶습니다.
- 시간 분배 실패: 초반에 프론트엔드(HTML/CSS) 작업을 완벽하게 해두지 않아, 프로젝트 막판까지 UI 수정과 MVC패턴로직 구현에 쫓겼습니다. 이로 인해 기능 테스트나 리팩토링에 쓸 시간이 부족했습니다.
5. 남겨진 과제와 향후 계획 (Future Improvements)
발표 직전 확인되어 미처 수정하지 못한 버그들과, 더 발전시키고 싶은 아이디어들을 정리했습니다.
🐛 버그 리포트 (Fix needed)
- 회원탈퇴 시 비밀번호 불일치 alert 창 미구현 (현재는 그냥 원래 화면으로 리턴됨)
- ERP 대시보드 그래프가 실시간 연동되지 않는 문제
- 진료관리 페이지 헤더/푸터 레이아웃 깨짐 현상
🚀 고도화 아이디어
- 진료과별 다수 의료진 지원: 현재는 진료과당 의사가 1명이지만, 대학병원처럼 다수의 의사를 선택하고 스케줄을 관리하는 로직 추가
- 동시간대 예약 인원 확장: 현재 시간당 1명 예약 제한을 실제 병원처럼 시간당 5명까지 받을 수 있도록 로직 개선
- 중복 예약 방지: 동일 환자가 같은 시간에 여러 과를 중복 예약하는 것을 막아 '노쇼(No-Show)' 리스크 방지
- 직원 전용 예약 UX 개선: 직원도 환자처럼 '나의 차트'를 통해 직관적으로 예약을 확인하고 수정할 수 있도록 UI 개선
🎯 향후 목표 (Next Step)
- 목표: 백엔드? 개발자 취업
- Action Plan:
- 평일(월~목) 학원에서 최소 저녁 8시까지 남아 부족한 코딩 공부 보충하기
- 이번에 아쉬웠던 '기술적 자립심'을 위해 AI 도움 없이 로직 짜는 연습하기
- 기존에 구현하고자 했던 사이트를 스스로 구현
- 백준이나 프로그래머스로 코딩테스트 연습 최소 하루 30분 하기
- 강사님이 주신 강의 자료로 내가 가르쳐보는 것 최소 하루 30분 하기
- 팀 프로젝트 시 책임감을 넘어 적극적으로 의견을 제시하고 이슈 리딩하기
'Projects > Team Projects' 카테고리의 다른 글
| [Control Tower] 프론트엔드 혼자서 이틀 만에 백엔드 API 명세서 역설계하기 (feat. AI) (0) | 2026.01.22 |
|---|---|
| [Control Tower] Git 충돌 해결부터 사이드바 권한 분리까지 (0) | 2026.01.21 |
| [Control Tower] Cursor와 Figma를 활용한 효율적인 UI/UX 프로토타이핑 (0) | 2026.01.13 |
| [Control Tower] Day 4: 깃허브 이슈 & PR, 노션에 '무료로' 자동 동기화하기 (삽질기 포함) (0) | 2026.01.09 |
| [Control Tower] Day 1-2: 팀 빌딩, 항공사 HR SaaS 기획, 그리고 협업 환경 구축기 (0) | 2026.01.07 |