Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

MoriochoRadio/MedQueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

MedQueue — 대형병원 실시간 대기 정보 제공 애플리케이션

환자가 진료실 앞에 묶여있지 않아도 자신의 진료 순번을 실시간으로 확인할 수 있게 하는 모바일/데스크탑 애플리케이션. 2024-1 학기 의료IT공학과 "설계 및 프로젝트 기본" 수업에서 5인 팀으로 진행한 학부 팀 프로젝트입니다.

Status Year Platform Stack Backend

2024학년도 1학기 의료IT공학과 성과 전시회 출품


⚠ 빌드 상태에 관하여

본 프로젝트는 2024-1 학기 당시 Xamarin.Forms 로 개발되었습니다. 2024년 5월부로 Microsoft 의 공식 지원이 종료되어 (Xamarin.Forms 는 .NET MAUI 로 후속되었습니다), 최신 Visual Studio 환경에서는 더 이상 빌드되지 않습니다.

본 레포는 학습 결과물의 아카이브 입니다. 코드 자체의 구조와 의사결정, 그리고 실시간 동기화·멀티플랫폼 빌드 등을 처음 직접 손으로 시도한 흔적을 보존·공유하는 것이 목적입니다.

코드 안의 Firebase 자격증명(<FIREBASE_AUTH_SECRET>, <ADMIN_PASSWORD> 등) 은 모두 학습용 더미로 치환되어 있으며, 원본 자격증명은 Firebase 콘솔에서 회수·무력화되었습니다.


📚 프로젝트 컨텍스트

항목 내용
시기 2024학년도 1학기 (개발 완료: 2024年06月17日)
소속 건양대학교 의료IT공학과
과목 설계 및 프로젝트 기본
지도교수 송기원
팀명 대기UP (5인)
모티브 건양대학교병원 모바일 어플리케이션
본인 (KimTaeKyoung) 역할 ENG1 — 프로젝트 설계 및 제작 / 애플리케이션 수정 및 관리 / 시스템 아키텍처 및 UML 제작
본인 작성 산출물 요구사항분석서 (7p, 단독) + 기본설계서 (14p, 공저) + 상세설계서 (19p, 공저) = 40p

❓ 문제 정의

"한 시간을 기다렸다. 진료는 3분 만에 끝났다." — 메디포뉴스, 2014年01月16日

Problem

대형병원 쏠림 현상이 심해지면서 환자들 사이에 "대기 1시간, 진료 3분" 이라는 말이 나올 정도로 진료 대기에 대한 불만이 커지고 있습니다. 대형병원은 "대기 순서 알림 문자" 서비스를 일부 지원하지만 — 실시간으로 변동되는 대기열을 확인할 수 없기 때문에, 환자는 결국 진료실 앞 모니터에서 눈을 떼지 못한 채 대기해야 합니다.

긴 대기 중에 "자기 순서를 놓칠까봐 자리를 못 떠나는 환자들" — 이 공간적 제약이 우리 팀이 풀어보려 한 문제입니다.


💡 솔루션

Solution

"언제 어디서든 실시간으로 대기열 정보를 제공해, 환자들을 공간적 제약(모니터 앞)에서 해방시키자."

문제 (Problem) 해결 (Solution)
진료실 앞 모니터에 의존해야 함 모바일 앱에서 실시간 확인
자리 못 떠남 (공간 제약) 어디서든 본인 순번 추적 가능
변동되는 대기열을 모름 Firebase Realtime DB 로 즉시 동기화

🛠️ 기술 스택

언어 / 프레임워크

  • C# + XAML
  • Xamarin.Forms 5.0.0 (Android + UWP 두 헤드 동시 개발 — 멀티플랫폼)

주요 라이브러리 (LoginDesign3.csproj)

  • Xamarin.Forms 5.0.0.2196, Xamarin.Essentials 1.7.0, Xamarin.Forms.PancakeView 2.3.0.759
  • FirebaseDatabase.net 4.2.0, FireSharp 2.0.4, Plugin.FirebaseAuth 4.1.0
  • Microsoft.UI.Xaml 2.4.3 (UWP), AndroidSdk 0.9.0

백엔드 / 데이터

  • Firebase Realtime Database — 환자·관리자 정보, 대기열 상태 실시간 동기화

개발 도구

  • Visual Studio 2022

🏗️ 시스템 설계

유스케이스 다이어그램

Usecase Diagram

두 액터로 분리해 설계했습니다:

  • 환자: 사용자관리서비스 / 환자정보서비스 / 검색서비스 / 대기열관리서비스 / 대기열정보제공서비스
  • 관리자: 사용자관리서비스 / 병원정보서비스 / 대기열관리서비스

UML 의 include/extend 관계로 "검색 → 대기열 정보 확인" 같은 사용자 흐름을 명시했습니다.

시스템 아키텍처

System Architecture

Xamarin.Forms 의 크로스플랫폼 구조를 5 계층으로 정리했습니다:

[ Applications ] ← MedQueue (본 프로젝트가 직접 구현한 부분)
[ Framework ] ← Xamarin.Forms + Firebase SDK
[ Library ] ← 플랫폼 공통 라이브러리
[ Runtime ] ← Android Runtime / .NET
[ OS ] ← Android / Windows 10 (UWP)

✨ 주요 기능

# 화면 흐름
1 로그인 / 회원가입 환자번호 + 비밀번호 인증 → 신규는 6단계 회원가입
2 메인 페이지 로그인 전/후로 화면 자동 분기 (관리자/환자/비로그인)
3 정보수정 · 검색 진료과별 의사 검색 + 대기열 직접 진입
4 대기열 페이지 본인 순번 하이라이트 + 알림 옵션 + 관리자 화면

화면 시나리오

1 로그인 · 회원가입 2 메인 (로그인 분기)
UI 1 UI 2
3 정보수정 · 검색 4 대기열 (실시간 동기화)
UI 3 UI 4

👤 본인 기여 (KimTaeKyoung · ENG1)

팀 프로젝트이므로 본인이 직접 담당·작성한 부분을 명확히 구분합니다.

1) 산출물 작성 — 40 페이지

Outputs Table

# 산출물 단계 분량 비고
6 요구사항분석서 분석 7p 단독 저자
11 기본설계서 설계 14p 공저 (◯◯◯ 와 함께)
12 상세설계서 설계 19p 공저 (◯◯◯ 와 함께)

→ 이 3건을 단일 PDF 로 묶은 자료: 📄 docs/deliverables_authored_by_kim_taekyoung.pdf (40p)

2) 시스템 아키텍처 및 UML 제작

발표 슬라이드 4 의 본인 역할 명세 그대로 — 위 시스템 설계 섹션의 유스케이스 다이어그램과 5계층 아키텍처를 직접 제작했습니다.


📅 프로젝트 일정

Gantt Chart

MS Project 로 관리한 학기 일정 간트차트. 최종 완료율 100% (발표 slide 7 기준).


🧪 테스트 결과

Integration Test

6 페이지 (로그인 / 회원가입 / 메인 / 정보수정 / 검색 / 대기열) 통합 시험 — 전체 이상 없음.


🔭 향후 개발 계획 (당시 발표 기준)

Future Plans

발표 slide 23 에서 제안한 다음 단계:

  • 모티브가 된 건양대학교병원 어플 에 본 기능을 통합
  • 푸쉬 알림 기능 — 앱을 실행하지 않아도 대기열 상황 수신
  • 관리자용 대기열 페이지를 웹사이트로 제작 — 현재는 모바일/UWP 헤드만

위 계획들은 학기 종료로 구현되지 않았으며, Xamarin.Forms 지원 종료로 본 코드 베이스에 직접 이어가지는 않습니다. 다만 "실시간 동기화 + 알림 + 멀티 디바이스" 라는 사고는 이후 다른 프로젝트로 이어졌습니다 (아래 회고 참조).


✍️ 코드

이 레포의 코드는 완성된 결과 코드 가 아니라 학부 2학년 학생이 처음 모바일/Firebase 를 만지며 남긴 흔적 입니다. 정리하면서 일부러 다듬지 않은 것들:

영문 typo 가 그대로 남아있는 주석

// MainPage.xaml.cs L37
frameOpt.IsVisible = false; //// 수정 --> Ture에서 False로 수정
// ↑ True 의 typo
// Search.xaml.cs L96
// Picker의 SelectecIndexChanged이벤트가 작동하는 메소드
// ↑ SelectedIndexChanged 의 typo

Ture, Selectec — 학부생이 한 학기 안에 처음 다뤄본 기술을 정직하게 학습한 흔적입니다. 결과만 완벽하게 다듬는 대신, 그 자체로 의미 있는 자기 학습의 기록이라고 생각해서 보존했습니다.

"이 코드는 무엇을 하는가" 를 풀어서 적어둔 한국어 주석

// Search.xaml.cs L102
// SearchBar와 Picker의 이벤트가 발생했을 때
// 이벤트의 조건에 맞게 ListView가 수정되는 메소드
// JoinPage.xaml.cs L52~55
// 회원가입 처리 등을 수행한 후
// 로그인 페이지로 이동
// 현재 페이지(회원가입 페이지)를 스택에서 제거
// Queue.xaml.cs L87
// 로그인한 사용자의 환자번호와 일치하는 환자를 선택

코드의 "이게 뭐 하는 거지" 를 본인이 본인에게 설명하면서 익혀나간 흔적들입니다.


📂 자료실

자료 경로 분량
📄 본인 작성 산출물 (요구사항·기본설계·상세설계) docs/deliverables_authored_by_kim_taekyoung.pdf 40p
📄 전체 산출물 통합본 (팀원 PII 마스킹) docs/deliverables_full_redacted.pdf 164p
🎤 최종 발표 자료 docs/presentation_final_redacted.pptx 29 슬라이드
🎯 성과 전시회 판넬 docs/exhibition_panel_redacted.pptx 1 슬라이드
📝 수정 내역 메모 docs/revision_history.docx

발표 자료의 슬라이드 1, 4, 26 과 판넬 슬라이드 1 에는 본인을 제외한 팀원 4 인의 이름이 ◯◯◯ 로 마스킹되어 있습니다. 본인 (김태경) 이름과 GitHub URL 은 그대로 두었습니다.


📚 참고 자료 (당시 인용한 기사)

  • 배준열, "대기시간 얼마 남았나" 스마트폰 앱으로 확인, 메디포뉴스, 2014年01月16日
  • 최수상, 대학병원 비상체제 돌입 — 환자 감소에 외래 진료까지 마비 우려, 파이낸셜뉴스, 2024年03月10日

✍️ 회고

대형병원의 긴 대기 시간이라는 의료 현장의 실제 불편을, "환자가 진료실 앞에 묶여있지 않아도 되도록" 풀어보려 한 첫 시도였습니다. 이 과정에서:

  • Firebase Realtime DB 의 실시간 동기화 — 학습 단계에서는 study-windows-programming022_FireBase 챕터에서 학생 정보 CRUD 만 만져봤던 게, 본 프로젝트에서 "대기열 상태가 실시간으로 변하는 화면" 으로 확장되었습니다.
  • Xamarin.Forms 의 멀티플랫폼 빌드 — 같은 코드로 Android 와 UWP 두 헤드를 동시에 개발하는 경험을 처음 손으로 익혔습니다.
  • 팀 협업 안의 본인 역할 — 5인 팀(×ばつ2)에서 ENG1 으로서, 산출물 40 페이지(요구사항·설계서) 작성과 시스템 아키텍처·UML 제작을 담당했습니다. 코드 안의 ////수정 다섯 마커와 수정 내역.docx 의 메모는 "한 번에 완성되지 않은 코드" 의 진실한 흔적입니다.

이 경험은 이후의 프로젝트들로 이어졌습니다:

  • ElderCaringApp"환자 카드 + 실시간 모니터링" UX 가 "보호자가 노인 상태를 모니터링" 으로 확장
  • SchoolbusRFID — 실시간 위치/상태 표시 UI 패턴
  • AI_Lung_1, sperm-ai, seed-project"의료의 문제를 직접 풀어본다" 는 출발점이 "의료 + AI" 로 확장

Xamarin.Forms 자체는 2024년 5월에 공식 지원이 끝나 본 레포는 더 이상 빌드되지 않는 아카이브가 되었지만, 여기서 익힌 의료 도메인의 사고 — "환자의 실제 불편을 코드로 푼다" — 는 이후 모든 프로젝트의 기반이 되었습니다.


🗂️ 관련 레포

이 프로젝트가 가능했던 기반 학습

이 프로젝트가 이어진 다음 단계


License

LICENSE.md 참조. 본 레포는 학부 팀 프로젝트의 학습 결과물을 포트폴리오 목적으로 공개한 것이며, 상업적 이용은 팀 합의가 필요합니다.


Author: MoriochoRadio (KimTaeKyoung) · 건양대학교 의료IT공학과

About

Real-time hospital waiting queue app · 2024-1 medical IT capstone (archived)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /