2025. 6. 23. 13:00ㆍ개발 일지(웹소켓을 이용한 실시간 채팅)
학교 수업으로 진행했던 프로젝트
웹소켓을 이용하여 실시간 주식 차트를 공유하며 채팅하는 웹 플렛폼을 완성했다
솔직히 초반에는 엄청 만만하게 봤지만 결코 그렇지 않았다.
처음하는 것들이 대부분이었기에 쉽지 않은 여정이었다.
어려웠던 점
1. 커뮤니케이션
카카오톡방을 만들고 디스코드에 팀원을 초대할 때까지만 해도 정말 의욕이 불타 올랐다.
그러나 곧 카톡방은 조용해졌고 디스코드는 회의 할때만 사용하게 됐다.
역할은 첫날에 정했으나 서로 뭘 하는지 어디까지 했는지도 모르고 그냥 진행했다.
이렇게 진행하니 괜히 나혼자만 일하는 기분이 들었던게 첫 번째 문제요
나중에 합칠려니 이 사람의 어디다가 연결해야 하는지 모르겠는게 두 번째 문제였다.
2.인적재원 관리
팀장으로서 프로젝트를 총괄하는게 처음이였다.
더군다나 협업 자체도 처음이라 얼마나 걸릴지 어디서 뭘 해야할지도 모르는 상황이라 일단 방임주의로 밀고나갔다.
그러다 보니 AWS 결제부터 후에 마무리 작업까지 아쉬운 부분이 많았다.
결국 기능을 다 구현하고도 데드라인 때문에 하루정도밖에 서버를 운영하지 못했다.
(마지막에는 결국 나랑 다른 팀원 한분만 해서 거의 모든 기능을 구현하고 서버와 연동했다)
이거 때문에 너무 화가나서 다른 팀원에게 전화해서 당신의 역할은 빼도 될까요? 라고 물어보는 해프닝이 발생했다
3.실력 부족
돌이켜보면 실력, 즉 아는게 부족해서 위와 같은 상황이 발생한게 아닌가 싶다.
서비스 관련 문제 사항:
AWS를 결제하는것 부터가 내겐 첫 도전이였기에 많이 힘들었다.
aws에서 ROUTE 53, RDBS, EC2를 구매하긴 했는데 연동은 어떡해 하는건지,레코드는 뭔지, pem과 보안 그룹은 뭘 의미하는건지 안해보면 모르는 것들을 실전을 통해 많이 배울 수 있었다.
특히 가장 기억에 남는것은 결제를 하면 나중에 해도 되는 줄 알고 SSL 인증서를 외부에서 구입하고 중간 이후에 다시 봤더니 인증을 안해서 환불이 된게 너무 황당했다. 사업단에 가서 직접결제했던거라 다시 가기도 애매하던 차에 무료 SSL가 존재해서 다행히 그걸로 해결했다.
개발 관련 문제 사항:
이 프로젝트는 백은 python의 FastAPI를 프론트는 react를 이용해서 개발하기로 했다.
각자 개발할때는 아무런 문제가 없었다. (직접 구현은 못하고 chat gpt를 이용하여 바이브 코딩을 했다. 이게 문제라면 문제다)
api를 받아와서 사용하는 것 자체는 무난하게 진행했으나 문제는 이 이후 합칠 때 그리고 서버에 올릴 때 발생했다.
먼저 백을 두명이서 구현했는데 우리가 나중에 어떡해 합칠지를 생각하지 않고 그냥 따로 폴더를 만들어서 진행했다.
또한 라우트를 어떡해 할지 프론트와 백에서 서로 정하고 해야 하는데 이것도 서로 형식이 달라서 나중에 다시 고쳐줘야 했으며
로컬에서는 localhost:8000이지만 서버에서는 dajutalk.com 으로 연결해야 하는데 이것도 gpt로 하드코딩해서 바꿔줘야 했다.
후기
진짜 백문이 불여일견이다.
이런 기회를 지금 접할 수 있었음에 정말 감사한다.
물론 처음에는 원치도 않았던 팀장직을 내 의견도 묻지않고 부여해버리고 각종 보고서에 결제를 하라고 하고 팀원들과 의사소통은 안되서 정말 하기 싫었다
그러나
1. 이 프로젝트를 통해서 인적자원을 어떡해 관리해아 할지 알 것같다( 지금드는 생각은 무조건 대면 만남을 하여 친밀도를 쌓아 의견교환을 활발하게 만들고 주기적으로 deadline을 알려주고 역할 구분을 확실히 하고 프로젝트를 진행 했으면 더 좋았을 것 같다고 생각한다, 실제로 나랑 마지막에 계속 했던 팀원은 같이 대면으로 2일 연속으로 총 두번 하니 각자 어디를 구현할지 어떡해 언제까지 만들지를 명확하게 정할 수 있었다)
2. 서버와 DB 연동을 어떡해 해야 할지 알게 됐다.
이건 정말 글로 보면 이해 못 했을 것 같다. 빈곤한 입장상 결제하는 걸 벌벌 떨며 그동안 미뤘는데 이번 기회를 통해 로컬에 개발한던걸 어떡해 서버에 올리는지, 그리고 어떡해 데이터를 받아오고 저장하고 클라이언트에 띄우는지를 배울 수 있었다.
(여담으로 나는 백과 프론트 서버가 두 개 필요하다고 해서 ec2 인스턴스가 두개 필요한줄 알았지만 front는 그냥 build한걸 Nginx에서 사용할 수 있게만 만들면 되던 거였다)
3. 동기부여
이 프로젝트를 통해 능력이 향상됐냐고 물으면 자신있게 '그렇다'라고 대답은 못할 것 같다
물론 어느정도 눈에 익기도 하고 읽을 수도 있긴 하지만 이 프로젝트를 진행하며 학교에서 배웠던 OAuth2, JWT 토큰, Mysql 과 같은 도구들을 사용했다.
서버에서는 http가 아닌 https를 사용하고 ws가 아닌 wss를 사용해야 한다 같은 지식도 얻었고 협업할 때 env파일을 어떡해 정하면 좋을지 백끼리는 어떡해 역할을 할당하고 폴더 구조는 어떡해 하는게 좋을지와 같은 지식도 얻었다.
그러나 이를 직접 구현하라고 하면 못할 것 같다.
즉, 요즘 유행한다는 바이브 코딩으로만 진행 할 수 있을 것 같다.
개인적으로 이건 개발자가 아니라 gpt의 노예라고 생각한다.
하여 이번의 아쉬운 프로젝트를 발판 삼아 고생을 좀 해볼려고 한다.
gpt의 도움없이 직접 구현하고 서비스를 배포하면서 실력을 쌓으면 다음 협업때는 정말 만족할 수 있는 결과물을 낼 수 있을 것 같다.
결과물
후기(사진 추가20250626)
카카오 리다이렉트를 이용하여 소셜 로그인 및 일반회원가입시 db의 아이디과 있는지 중복 체크
aws에 연결한 db과 서버과 연동되어 로그인에서 등록한 이메일과 주식 정보들이 받아와 진다
프론트에서 라우트를 서버에 연결해야 하는데 localhost:8000 연결하여 GET을 했을 때 에러가 남
aws 서비스를 이용하는 모습
'개발 일지(웹소켓을 이용한 실시간 채팅)' 카테고리의 다른 글
error (0) | 2025.05.10 |
---|---|
버전을 복구하자 (0) | 2025.05.09 |
환경 설정하기 (0) | 2025.03.28 |
UV 알고 가기 (0) | 2025.03.27 |