새로 블로그 이전하기도 했고 새해기도 하고 ~ 겸사 겸사 2023 회고를 작성해보자~~
회고 이전 이 모든 활동의 기반이 되는 연구실 자리를 준 서xx 교수님에게 감사를 전하며 시작해보자.
2023년은 한마리도 요약하자면 "힘들었지만 행복하고 성장한 해" 였다.
처음 창업동아리 immersion팀에서 NestJS라는 프레임워크를 사용해서 인증과 인가를 맨땅에 헤딩하며 구현해 보기도 했고~ 예비 캡스톤을 하는 과정에서 기획부터 디자인, 개발 까지 해보기도 하고~ 웹 서비스 설계 및 실습 수업에서 PM역활도 해보고~ 프론트 개발을 처음 공부해 보면서 삽질도 많이 하고 ~ 배포를 잘못해서 일주일간 AWS 서버비용이 60만원이 나와 보기도 하고~
하나하나 생각해 보니 정말 열심히 잘(?) 달려 온것같다.
우선 22년도에는 개발에 대해 문외한이였어서 늘 팀프로젝트를 하며 스트레스를 많이 받았고 자괴감도 많이 느꼈다.
immersion 창업동아리
하지만 23년 첫 겨울 방학 본격적으로 강의를 수강하며 인증과 인가를 구현하는 2주의 삽질 과정에서 모르는 부분을 학습하고 구현하는 경험을 했다. 많은 스트레스를 받았지만 처음 기능 개발이라는 것을 해보며 백엔드와 프론트엔드에 대한 개념도 익힌것 같다.
그리고 이후 기획자, 디자이너, 프론트엔드, 백엔드로 분업하여 팀 프로젝트 진행해 보았다.
처음으로 분업이 된 프로젝트를 하니 다양한 스트레스를 받았지만 결국 그 스트레스로 인해 나의 졸업작품을 기획부터 디자인 개발까지 해보게 되는 좋은 거름이 되었다.
예비 캡스톤
예비 캡스톤시의 나의 목표는 '실사용자'가 있는 프로젝트를 유지보수 해보는 것이었다.
우선 결과적으로는 현재 일주일간의 60만원의 서버 비용에 대인 이후 실사용자를 거느린 프로젝트는 보류를 하기로 했다..!
하지만 광운대학생 100명을 토대로 한 설문과 피그마로 와이어프레임을 짜며 디자인도 해보며 프론트엔드 개발을 처음 해보며
전체적인 SW 프로젝트 사이클이 나의 시야에 들어온 너무 좋은 경험 이었다.
(+ 난 역시 프론트 보단 백엔드 개발이 더 재미있고 잘 맞다고 느꼈다..!)
웹 서비스 설계 및 실습
2학기 수강신청을 하기 이전 웹서비스를 설계부터 배포후 유지보수를 하는 수업이 있길래 수강을 했다.
팀 구성은 나포함 3명 모두 비전공자분들이었다.
한분은 프론트 개발 경험이 조금 있었고 한분은 1년전 나와같이 웹 개발에 대해 문외한이었다.
그래서 이번 수업을 계기로 작은 프로젝트의 PM을 하기 되었다.
프로젝트 주제, 팀원 스케줄 관리, 마감일자 등등 프로젝트 전체를 관리하니 생각보다 스트레스가 많았다.
한분은 급하게 취업준비를.. 다른 한분은 자격증 시험들 일정으로 인해 결국 많은 딜레이가 있었고
결국 내가 대부분 기능 구현을 하고 배포까지 하였다.
배포는 클라이언트 서버, api백엔드서버, RDS데이터베이스 서버 총 3개로 진행 하려 하였지만
일주일이라는 기간 60만원이라는 서버 과금이라는 대형 사고로 인해 AWS EC2 서버 한대에 3개의 서버를 돌렸다.
(결국 최종발표하다가 서버가 터짐 ㅋㅋㅋㅋ)
물론 채팅과 사용자 위치 정보 등등 구현하지 못한 기능이 많아 너무 아쉽긴했다..
하지만 처음으로 배포를 하고 실사용자(수업듣는 50명)이 나의 서비스를 사용하는 경험을 했다.
최종 발표를 하던 도중 실시간으로 발표를 듣는 학생들이 나의 서비스에 댓글과 게시글을 작성 하는 덕분에
나의 서버가 터지기도 했고 다시 pm2로 다시 서버가 살아났으나 GCP의 서버의 무료 리소스가 끝나 유료로
전환 되기도 하였다.
짧지만 좋은 경험이었다.
+ 60만원 서버과금 대형사고
우선 2개월이 지난 현재까지 약간의 환급을 위해 AWS 측과 연락을 하고 있다.
이전 처음 프리티어 계정으로 AWS를 사용할 당시 인스턴스의 개념을 몰라 발생했던 3개월에 거쳐 11만원의 과금은 AWS측에 문의를 한 결과 특별한 과정 없이 11만원을 다음주에 바로 환급해 주었다.
하지만 현재의 과금은 프리티어 계정도 아닐 뿐더라 이미 한번의 실수로 환급을 받아 절차가 꽤나 까다로웠다.
과금 미납으로 인해 계정이 정지 되서 계정 신용카드 또한 다시 등록했으며 여러가지 배경 설명과 이후에 이런 예상치 못한 과금이 발생하는걸 방지하지 위한 aws의 cloudTrail,cloudwatch, aws budget과 같은 설정을 AWS측에 보내야했다...어우 고통쓰..
자세한것은 AWS 과금 게시글을 작성할 계획이지만 주요 원인을 2가지로 보고 있다.
1. 재귀적 api 호출
2. RDS 세팅시 오버 스펙으로 세팅
처음 과금에 대한 메일을 확인하고 그 원인을 살펴 보려 하였다.
첫번째 의심은 인스턴스 주소로의 외부 유출이었고 팀원에게 물어본 결과 아무도 블로그나 외부에 공유하지 않았다고 했다.
그래도 두번째로 코드상에 문제가 있는지 확인을 해 보았다.
그리고 거의 확정적인 문제인 코드를 발견 하였다.
당시 팀원중 1명이 개발을 하는 과정에서 api를 재귀적으로 호출을 했던 것이다.
리액트의 useEffect 훅은 개발시 새로 고침할 경우 두번 호출이 된다.
또한 게시글 컴포넌트 내부에서 댓글에 대한 데이터가 재귀 적으로 호출이 되었다.
그 당시 데이터를 토대로 단순 계산으로 보아 홈 화면 진입시 2(useEffect)*20(게시물 갯수)*4(평균 게시물당 댓글수)
개발시 한번 새로고침을 할때 150회 가량의 api 호출이 일어났다고 예측할수 있었다.
설상가상으로 우리의 프로젝트는 인스타와 비슷한 구조로 홈화면을 토대로 기능을 붙여야 했어서 상당히 많이 새로고침을 했다고 생각이 된다. 적게는 몇천번에서 많게는 몇단번 정도..
그치만..! 그걸 감안해도 서버 비용이 과하게 나와 교수님에게도 PM 면담시간을 통해 말씀 드린 결과
교수님의 생각에도 위 재귀호출이 있다 쳐도 과하게 나왔다고 말씀하셨다.
그래서 다시 aws의 과금을 세부적으로 살펴 보니 의심될것은 RDS의 기본 세팅시 너무 오버 스펙으로 세팅하여
데이터베이스 인스턴스를 켜놓은 것만으로 리소스 사용이 많다는것이었다..
우선 현재 나의 분석으로는 저 두가지 원인으로 생각이 되며 세부 모니터링에 대한 분석을 aws 유관 부서에서 진행 중이다.
제발 환급 받기를...!!!!
간단한 회고를 마치며 2024년 간략한 목표를 몇가지만 기록해보자.
0. 소마 ,SOPT,디프만 활동 + 4-2학기 인턴 및 외부 동아리 Spring 백엔드 개발
1. 포토폴리오 틀 제작
2. 코딩테스트
2-1. 우선 2/22일에 있을 소마 코테를 합격할 수준만큼 한달 달리기 !
2-2 여름방학까지 백준 플레티넘 달기 ( 기업 코딩테스트는 안정하게 뚫기)
3. 여름 방학까지 Node 기반 프로젝트 마감(졸업 작품, immersion 창업동아리)
4. 플러터 공부 후 졸업 작품 앱스토어와 플레이 스토어에 배포해보기
5. 여름 방학부터 Spring 씹어 먹기 !!!!!!!!
자 2024 새해 갓생을 드가즈아~
'모카 로깅' 카테고리의 다른 글
이슈에 대한 대처 양식 (0) | 2024.02.29 |
---|---|
블로그 이전 (0) | 2024.01.21 |