wisePocket

[Flask] Team Project(GameInsight) 05 프로젝트 완료 및 발표 후기 본문

Python&Flask Tutorials, AWS EB/Flask_Team_Project_GameInsight

[Flask] Team Project(GameInsight) 05 프로젝트 완료 및 발표 후기

ohnyong 2023. 8. 12. 22:00

최종적으로 팀 프로젝트는 종료되었지만 숙제들이 남아있다.

 


1. 느낀점

3일이라는 기간에 혼자도 아닌 모두 실력이 부족한 팀으로 진행했지만 딱 계획한대로 완성해서 기획 단계에서 그나마 일할 범위를 잘 정한것 같았다. 내 개발 환경에서 갑자기 에러가 발생해서 발표 당일 새벽 5시까지 작업하고 3시간만 자고 바로 또 추가 작업을 했다. 내 로그인 및 로그아웃 기능에 따라서 다른 팀원들의 기능에도 영향을 미치는 상황이었기 때문에 무조건 오류를 해결했어야 했고 잠을 잘 수가 없었다. 우여곡절끝에 마무리해서 기분은 좋다.

더하여 Java가 아닌 Python의 Flask Framework를 맛본것만으로 전반적인 프로젝트의 흐름을 빠르게 익힐 수 있었던 것이 큰 도움이 되었다. 이전에 Java로 바로 프로젝트를 들어가니 조금 이해도가 부족한 아리까리한 상황에서 프로젝트까지 들어가니 버거운 느낌이 있었다. 이번 Python 과정을 통해서 간략하게 프로젝트에서 흐름들을 읽기 편했고, 앞으로도 조금 쉬운 테스트들은 Python으로 진행해도 되겠다는 생각이 들었다. 그만큼 이해하기 쉬웠고 빠르게 진행할 수 있는 언어였다. 앞으로 Java로 집중하긴 하겠지만 간단한 미니 프로젝트나 테스트를 위해서 Python을 적극적으로 사용할 수 있을 것 같다. 또한 멘토링을 통해서 TypeScript, Nest.JS, Kotlin, RedisDB 등 트렌드면서 내가 주력으로 배우고 싶은 Java와 RDBMS와 조금 가까운 친척들을 알게 되었다. 하나만 깊게 판 개발자는 금방 다른 언어에 적응한다고 하는데 그 다른 언어들이 무엇인지 관심을 가지게 되었다. 이럴수록 더욱 Java 기본기를 잘 다지고 싶다는 생각을 하게 되었다. 나도 저런 트렌드에도 탑승 할 수 있는 기본 실력을 잘 갖추고 싶다.

또한 이번 프로젝트는 MongoDB를 사용했고 로컬이 아닌 Atlas Cloud환경에서 사용했다. Cloud 환경을 통해 예전 프로젝트는 로컬에서 진행했던게 얼마나 이해도가 부족했었는지 뼈저리게 느꼈다. 또한 Oracle이 아닌 MongoDB로 No-SQL의 편리함을 확실하게 느꼈고, 아직 대규모 트래픽, 대량의 파일 등을 다뤄보지는 않아서 그런지 관계형데이터베이스가 안정적이라는 것이 어떤 부분에서 그런지 아직 체감되지는 않고 있지만 일단 SQL문에서 type을 안쓰는 내가 좀 어색하게 느껴졌었다. 그만큼 편하기도 했다. 더해서 MySQL을 통해서 RDBMS의 양축인 Oracle, MySQL을 어느정도 찾아보면서 다룰 수 있을 정도로 익숙해지고 있다. 좀 더 숙달되기 위해서는 꾸준히 백준이나 프로그래머스 문제를 풀어나가야겠다. 단순히 코딩 테스트를 위함이 아니라 실제로 내가 필요한 문장들을 연습하는 경우가 많아서 꾸준히 해봐야겠다. 여기서 더 나아가 Redis같은 DB도 나중에 스스로 공부해볼 생각이 있다. 많은 기업들이 사용하는 것 같고 특히 TOSS같은 성장세를 가진 기업이 적극활용한다해서 관심을 갖고 있다. 아직 기본기를 더 다지고 응용할수있는 사람이 되어야 한다.

배포를 통해서 AWS EB로 배포하기, Docker로 배포하기, Github로 배포하기 등 다양한 방법을 시도해서 뭔가 아직 정확한 디테일 개념까지는 충분히 이해되지 않았지만 특히 내가 직접 NAS로 배포하면서 이것 저것 찾아보다보니 어느정도 큰 흐름정도는 잡은 것 같다. 이제 HTTP, 통신, DNS, DDNS, PORT 등 아직 기초적으로 부족한 이론들이 많다. 아무튼 이것 조차도 배포라는것을 해보면서 이런 이론이 필요하다고 느꼈기 때문에 무조건 익혀야 될 기본 상식이라고 생각되었다.

발표 또한 너무 많은 양을 설명하려했다. 발표를 끝내고 아차싶었다. 발표는 무엇 했는지 선보이는 것 보다 어떤 문제들을 만났고, 트러블슈팅 과정을 설명하는 것을 많은 분량을 넣었어야 했다. 기능은 거기서 거기일거다. 나는 출제자의 의도를 또 파악하지 못했고, 그저 사업계획서를 발표하는 것 처럼 기능을 팔려고 설명하고 있었다. 지금은 만났던 위와 같은 어려운점들에 대해서 부족했던것, 아쉬웠던것, 해결했던것, 해결하는 과정 등을 발표했어야 맞았다. 다음 발표들은 이런 부분들을 생각해서 분량을 조절하고 해야겠다. 사실 4시 발표인데 3시 30분에 끝났고 발표에 대한 준비가 미흡했던 점도, 내가 일정관리에 미흡했던 것이고, 트러블 슈팅을 너무 오래했던 문제가 있다. 또한 CSS를 간략하게 테마를 사용했어야 했는데 잘 알지도 못하는 프론트단을 오래 건들였던 것이 내 스케쥴을 망가트린것 같다. 다음부턴 이런 문제들이 발생 할 수 있으니 계획 부분에서부터 생각해야겠다.


2. 시연 영상

이전에 영상 편집을 해봤기 때문에 손쉽게 Premire를 이용해서 적당히 만들었다. 원래 이런 미디어 편집하면 아주 치밀하게 하는 편이지만  마치 레전드 코딩을 보여주나? 싶은 BGM을 깔았지만 사실 허접하기 그지없다. 그래도 모든 기능을 다 보여주었기 때문에 만족스럽다.

 

3. Notion 프로젝트 소개 페이지 배포

Notion을 개인 결제하고 적극적으로 사용하기 시작했다. 너무 효율적으로 나의 기록을 관리 할 수 있다. 부가 기능들이 너무 편리하다. 이 블로그도 이 글을 마지막으로 직접적으로 글을 업로드 하지는 않을 것이다. Notion 을 연동하는 방법을 찾을 것이다.

https://ohnyong.notion.site/GameInsight-536ac8bfbd5445f19dff65eeddd385b4?pvs=4

 

GameInsight

게임인사이트는 간편한 게임 관련 정보를 제공하는 서비스 페이지입니다.

ohnyong.notion.site

 

4. Git 협업 트리

기능별로 브랜치를 구분하자 잊지말자.

 

5. Slack 커뮤니케이션

슬랙 또한 잘 사용하고 있지만, 나는 디스코드 서버를 만들까 생각중에 있다. 기본적으로 화면 공유, 방송, 보이스채널이 지원되고 뭔가 채널 형식으로 다양한 기록, 공략, 개발일지 등 긴 히스토리를 남길 수 있어서 좋은 창고가 될 것 같다. 또한 그 서버 안에서 네트워크를 만들어보고 싶은 욕심도 든다. 시간이 되면 서버개설 후 꾸며보는것도 생각해봐야겠다.

 

6. 팀원들의 후기

팀원 모두 잘 따라와줬고 너무 합이 잘맞는 팀원들이었다. 무슨 기능을 더해보지 계속해서 욕심을 가진 사람들이 모였었고 생각하는 방향이 일치해서 더욱 추진력을 얻어서 다들 열심히 참여했었다. 개발에 대한 열정이 높았지만 제한된 시간이 아쉬웠고, 좀 더 치밀한 프로젝트를 하고 싶은 팀원들이었다.

 

7. 배포 링크

배포에서 상당히 문제가 있었다. 분명히 똑같은 deploy 폴더를 업로드하는데 계속해서 서버에서 문제가 나타났다. 에러 코드는 502, 더 큰 문제는 팀원 한명은 그대로 배포가 된다는 점이었다. 이건 내 환경에 대한 문제였다. ChatGPT에 소스를 다올려도 이해를 못하겠는 해결안만 제시해줬다. 천천히 다시 모든것을 진행했다. 일단 되는 팀원이 있다는건 내 문제가 100%라는 것이다. MacOS의 문제일까? 아니다. 애초에 내 로컬이 배포하는 것이 아니라 AWS 서버에서 배포되는 것이기 때문에 업로드 된 파일에 문제가 있을 것이다. 그럼 업로드 과정에서 무엇이 다를까? 우린 동일한 최종 병합 버전을 배포했는데 누군 되고 안된다. 그럼 어떤것이 문제일까? 문제는 Dependency 주입이었다. pip 패키지 매니저로 설치한 패키지가 달랐고, 나는 가장 중요한 jwt를 설치 안한 상태로 수십번 시도하고 있었던 것이다. 따라서 eb가 업로드하는 과정에서 내 로컬, 가상환경에 있는 라이브러리 패키지를 카피해서 가야하는데 그게 빠져있던 것이었다. 너무 허무하게 내 실수였다. 분명히 jwt가 설치되어서 토큰이 발급되는것으로 알고 있었는데, 어떻게 테스트는 되었던 것일까? 아직도 정확하게 모르겠다. 아마도 내가 배포에 문제가 생겨서 설치된 모든 라이브러리를 삭제하고 리스트를 넘겨받아 재설치를 진행했는데 그 마지막에 jwt를 설치 안한것으로 보여진다. 이것을 못찾았으면 나는 또 수십시간을 투자해서 별것아닌 실수를 잡고있었을 것이다. 다시 처음부터 흐름을 찾아가고 멘탈을 잡고 실수한것이 무엇일지 차분히 생각해보면서 문제를 해결해야겠다는 생각이 들었다.

http://mywebpo.eba-dpmwge7s.ap-northeast-2.elasticbeanstalk.com/mainsection

 

Game Insight

각종 게임의 순위정보! 전문가 및 유저 리뷰를 확인 할 수 있는 커뮤니티 페이지 입니다.

mywebpo.eba-dpmwge7s.ap-northeast-2.elasticbeanstalk.com