Project

[GCSU] Medical System 구축하기 (feat. G.Y.C)

  GCSU의 Software Engineering는 서울시립대학교의 컴. 과. 종과 같이 이 수업을 들어야만 학교를 졸업할 수 있는 과목이었다. 그래서 현지 학생들에게는 졸업 프로젝트인 G.Y.C 단체와 연계해서 프로젝트를 할 수 있었습니다.

 GCSU는 매번 각종 기업, 단체들과 Georgia의 발전을 위해 만들어진 단체와 콜라보를 하여 프로그램을 개발한다.

https://www.georgiayouthchallenge.org/

 이번 학기에는 G.Y.C Medical 시스템(이 단체에 참여하고자 하는 조지아 청년 지원자들의 의료 관련 자료들을 손쉽게 G.Y.C에 잘 제출할 수 있도록 도와주는 시스템)을 구축해나가는 것이 프로젝트이자 목표였다.

 

 이 수업의 가장 큰 취지는 이 수업을 듣는 모든 학생들을 4개의 팀을 이뤄 각 팀마다 주어진 파트를 부여 받고, 팀원끼리 상의한 후 가장 자신이 잘 도맡아 할 수 있는 파트를 잘 나누어 프로그램을 차근차근 개발해나가는 것이다.

 나는 Search-Committe이라는 팀에 배정을 받았다. 우리 팀이  Client에거 의뢰받아 개발해야 할 기능은 8가지였는데, 아래 사진과 같습니다. 

  먼저 이 기능들을 어떻게 만들어야 할지 팀원끼리 자주 만나며 회의를 하고 난 후 가장 자신 있는 Part에 집중하고 서로 모르는 것을 같이 해결해나갔으며, Git을 통해 merge를 하기로 했다. 나는 메일을 통해 지원자의 Missing Document를 찾아 보내 줄 수 있는 기능과 메일에 쓰일 Form을 만들고 그 Form에 File을 첨부해서 Server에 업로드할 수 있는 기능을 맡았다.

  

● 만들면서 힘들었던 점:

 1. 메일 플랫폼에 바로 파일들을 자동으로 첨부 할 수 있는 방법들을 계속 찾아보았는데, 구글에서는 mailto의 attachment 기능을 사용하라는 글들이 많았지만, 이 attachment기능은 인터넷 보안 문제 때문에 사라진 지 오래되었다고 하여 직접 메일 플랫폼에 파일을 첨부할 수 있는 기능을 찾지 못했다. 

-> 하지만 메일에 첨부하는 대신 파일들은 이미 Server에 업로드되어있기 때문에 쉽게 링크를 통해 파일을 다운로드할 수 있다고 생각을 하여, 메일 글에 링크를 생성하는 Function으로 대체를 하였다.

 

2.  Applicant가 가지고 있지 않은 지원 문서를 찾아 메일에 Attach하는 기능을 만드는 와중에 복잡한 SQL문을 만들어야 했다. 이 문제는 Applicant의 ID를 받아 AppDocs에 저장된 파일들에 해당하는 Applicant 정보를 통해 Appication File을 Attach 하는 것이었는데 이 부분을 JOIN을 해결책이라 생각하여 팀원들과 많은 시간을 투자해 풀려고 노력을 해봤지만 도통 원하는 결과가 나오지 않았다. -> 많은 시간을 투자하고, 교수님께 여쭤보며 결국 다시 차근차근 시작하여 JOIN이 아닌 간단한 AND EXECPT IN 문법을 통해 해결하였다. 

$sql = "SELECT tlkpApplicationFiles.AutoID, tlkpApplicationFiles.Description FROM `tlkpApplicationFiles` WHERE AutoID NOT IN 
            (SELECT fkApplicationFileID FROM `tblAppDocs` WHERE fkApplicantID = 
            (SELECT ApplicantID FROM `tblApplicants` WHERE tblApplicants.ApplicantID = $PersonID))";

 

3. 매번 1주에 1번씩 Client Meeting이라 해서 해당 기관의 담당자와 커뮤니케이션을 하며 무엇을 원하는지, 어떻게 만들고 싶은지를 이야기해야 했는데 영어 의사소통 실력이 현지인처럼 완벽하지 않아 다른 분야(의료 분야)의 전문적인 단어들을 알아듣는데 많은 어려움이 있었다.

 

■ 3달의 시간 동안 팀원들과 밤을 새며 맡겨진 기능들을 다 만들 수 있었고, 마지막 G.Y.H의 관계자와 가진 미팅에서 'That's so pretty impressed'(발표 동영상: 9분 25초부터 볼 수 있습니다.)라는 호평을 받을 수 있었다. 너무 뿌듯했다........ 

(발표를 화상으로 한 이유는 코로나바이러스 때문에 모든 수업들이 온라인으로 대체되었기 때문입니다.)

 

 의사소통 문제와 시간문제등과 같이 많은 문제들이 있었지만 결국 만들 수 있어고,,, Jacob, Asa와 같은 팀이 되어서 너무 좋았고, 나에게 있어 절대 잊을 수 없었던 팀 프로젝트였던 것 같다. 

 

또한 결과 발표에서 the grand prize를 받았는데, 처음에는 그냥 그런 상이구나 했는데 번역을 하고 나니 1등이란 걸 듣게돼서 너무 뿌듯했다.

 

조만간 우리간 만든 medical system을 G.Y.H에서 직접 디자인을 한 후 사용한다고 하니 나중에 직접 들어가 사용을 한다면 정말 뿌듯할 것 같다. 

 

G.Y.C Medical System Demo

http://s94.gc-codec.com/S2020/sprintDemo3/selection-committee/Final%20Presentation/medical-master/

 

 

소스코드(develop version) : https://github.com/withseungryu/medica

소스코드(Final version) : https://github.com/withseungryu/Medical_SearchCommittee/tree/master

 

withseungryu/Medical_SearchCommittee

Completed Final version for Medical_SearchCommittee with database - withseungryu/Medical_SearchCommittee

github.com

프로젝트 보고서 :

Project Report.docx
0.31MB

뒤에 Form.index 발표 내용이 있었지만 반디캠 무료버전이라 10분 밖에 촬영 할 수 밖에 없었다..

궁금하신 것이 있으시다면 언제든지 댓글로 남겨주세요!~

반응형