빠르게 한 주가 지났다. 이번주에 대부분의 기본 기능 구현이 끝이 났다. 다른 팀에 비해 매우 빠른 속도로 진행을 했기 때문에 여유로운 분위기가 계속됐다. 한 가지 이슈를 제외하곤...
아마존 과금 이슈
월요일 아침을 불안감으로 시작했다. 아마존 프리티어의 사용량을 확인해 보니 금요일 만들어둔 RDS의 사용량이 무려 15GB나 되었기 때문이다. MySQL을 EC2 서버에 다운로드하고 RDS랑 연결해 준 것 말고 아무것도 건드린 게 없었다. 이상했다. 클라우드도 아니고 데이터베이스인데 15GB나 사용했다는 게 이해할 수 없었다. 우선 인터넷에 검색해 보니 해킹의 경우 대부분이 데이터베이스의 데이터를 인질로 삼아 비트코인을 요구하는 경우였다. 어떤 미X놈이 우리 데이터베이스에 엿 먹으라고 15GB를 넣어놓은 게 아니라면 분명 무언가 놓치고 있는 게 분명했다. 일단 RDS에 관련된 모든 걸 지웠다.
화요일 새벽이 되자 아마존으로부터 프리티어 사용 한도의 85%에 도달했다는 메일이 왔다. 금세 또 3GB가 늘었다. 이러다가는 곧 과금이 될 것 같았다. 아마 사용량 반영이 늦게 돼서 계속 오르는 게 아닌가 하는 생각이 들었는데 처음에 15GB로 사용량이 나왔을 때 데이터베이스 내부를 확인하지 않고 지운 것이 너무 후회되었다. 사용량 반영이 늦게 업데이트되는 것이 아니라면 이유도 모른 채로 계속 사용량이 늘어날 수 있기 때문이다.
그래서 청구서 사진에 나온 GB-month of provisioned GP2 storage under monthly free tier running MySQL이라는 키워드로 구글에 검색을 해보았다. 결론부터 말하면 GP2 스토리지의 자동 조정이 원인이었다. RDS 메인에서 [데이터베이스 생성]을 클릭해 생성 단계에 들어가 보면 애플리케이션의 필요에 따라 스토리지의 동적 조정을 자동으로 활성화시키는 기능이 체크되어 있는데 이것 때문에 실제 데이터베이스를 사용하지 않아도 자동 조정만으로 사용량이 늘어나게 되는 것이었다. 따라서 RDS를 프리티어 수준에서 사용하고 싶다면 스토리지 자동 조정 활성화를 반드시 체크 해제해주어야 한다. 나는 이미 금, 토, 일, 월 4일 동안 스토리지가 자동 조정되고 있었기 때문에 매달 무료 한도인 20GB에 임박해 있었다. 결국 내 계정은 사용을 중지하고 다른 팀원의 계정으로 배포 자동화를 다시 구축했다. 지나고 보니 별 거 아닌 해프닝이었지만 잘 모르는 상태에서는 정말 눈 뜨고 코베이는 듯한 기분이었다. 아찔했다.
대망의 JWT 구현 시작
섹션 3가 끝날 때 즈음에 코스를 따라가는 게 너무 어려워 학습상담을 신청했었다. 이때 교육 엔지니어분께서 섹션 4를 신경 쓰지 말고 섹션 3 공부에 올인하라고 조언해 주셨다. 나는 조언대로 섹션 4를 거의 신경 쓰지 않았고, 섹션 3 공부에 많은 시간을 할애했다. 섹션 4에는 시큐리티, 배포 등 기본 구현 이외의 내용을 배우는데 사실 섹션 4의 내용도 핵심에 포함되지만 당시에 내 수준으로는 코드 한 줄 제대로 쓰지 못했기 때문에 섹션 4를 버리는 게 최선의 선택이었다. 프리 프로젝트 때는 기본 기능 구현 정도만 담당을 했고 배포나 시큐리티 적용은 팀원분들이 대부분을 구현해 주셨다. 나는 배포 자동화 정도 조금 건드려보고 결국 실패하고 끝이 났었다. 이때 너무 아쉬워 메인 프로젝트 때는 배포는 물론이고 시큐리티까지 구현해보고 싶다고 생각을 했는데 팀원분들의 배려로 이번 메인 프로젝트에서 둘 다 구현해 볼 수 있게 되었다. 배포 자동화는 이미 지난주에 끝이 났고(과금 이슈로 다시 만들었지만😅), JWT 구현은 수요일부터 시작해 금요일에는 로그인 구현까지 성공적으로 마칠 수 있었다. 그러나 문제가 생겼다. 하나는 현재 상태로는 권한 문제로 모든 유저가 다른 유저의 글을 수정하거나 삭제할 수 있다는 것이고, 다른 하나는 로그아웃 구현에 대한 것이었다. 권한 문제는 유저의 권한 부여를 서비스 계층에서 처리를 할 것인가, AOP로 공통 기능을 만들어서 처리할 것인가에 대한 고민부터 해야 할 것 같다. 로그아웃은 섹션 4에도 나오지 않는 내용이라 구글링을 통해 찾아보며 구현해야 할 것 같다. 그러고보니 토큰을 어디에 저장해야할지에 대한 부분도 고민이 필요하다.
팀 회의
우리 팀은 오전과 오후 하루에 총 2번씩 회의를 진행한다. 회의에서는 당일 진행 중이거나 진행이 끝난 내용에 대해 서로 공유하고, 함께 결정해야 할 내용에 대해 이야기를 나눈다. 목요일에 프런트엔드 분들이 홈 화면을 보여주셨는데 검색창, 카테고리, 정렬의 위치에 대한 이야기를 나눴다. 우리의 웹사이트를 유저의 입장에서 생각해 볼 수 있는 소중한 시간이었다. 회의가 끝날 듯 보였는데 화면 상단바의 색이 눈에 들어왔다. 나쁘지는 않은데 무언가 정직한 느낌, 공공기관에서 쓸 법한 성실한 색이라고 해야 하나.. 아무튼 마음에 들지 않았다. 그렇게 화면의 상단바 색을 다른 색으로 바꾸자는 이야기가 나왔고 우리가 개발 중인 웹사이트의 이름도 정하는 시간을 가졌다. 웹사이트의 이름은 에코, 그린, 제로웨이스트, 네이처 등 친환경적인 단어를 사용해 만들기로 해서 그린이라는 단어에 중의적인 표현을 살리면 확 와닿을 것 같아 내가 '내가 그린 서울'이라는 아이디어를 냈고, 거기에 팀원분들의 아이디어를 더해 '우리가 그린 서울, 에코그린 서울'이라는 멋진 이름이 나왔다.
화면 색은 처음 색인 1번을 포함하여 무려 12가지 색 중 투표를 통해 가장 많은 표를 얻은 컬러를 쓰기로 결정했다. 1번과 9번을 제외한 컬러를 내가 골랐는데 팀원분들이 다들 너무 예쁘다고 하셔서 기분이 좋았다. 평소에 디자인에 센스가 없다고 생각했는데 아닐지도..? 9번은 다른 팀원분이 제시한 스프링 프레임워크의 로고 색이다😂 결국 4번과 9번이 동점으로 재투표하여 9번이 선정되었다. 돌고 돌아 결국 스프링이었다.🌱 괜히 실제 기업에서 사용하는 컬러가 아니 구나 싶었다.
멘토링
멘토링 시간에는 멘토님이 aws와 연관 지을 수 있는 CS 지식이나 DB 지식 등을 토픽으로 정해주신다. 그러면 우리가 조사하여 실습을 진행할 수 있으면 해 보고, 블로그에 정리까지 하는 식의 시간을 가진다. 그 외 시간은 질문을 하거나, 취업에 대한 이야기를 나누는데 멘토님께서 빨리 이력서를 쓰고 취업 준비를 해야 한다고 재차 강조하셔서 아마도 수료 전에 첫 이력서 작성을 마무리하고 이곳저곳 지원을 해볼 듯하다.
정리
다음 주는 이번주보다 더 바빠질 것 같다. 메인프로젝트에서 필수적으로 구현해야 할 내용을 마무리하고, 이력서를 작성하고 지원할 기업을 찾아봐야 한다. 그 사이에 블로깅도 해야 하기 때문에 매우 바쁜 한 주가 될 것 같다. 이력서 등 취업 준비 때문에 메인 프로젝트에 피해가 가지 않도록 빠르고 확실하게 마무리 지으려고 한다. 나 혼자였으면 절대 무리였겠지만 든든한 백엔드, 프런트엔드 팀원분들이 있어 걱정이 되지는 않는다. 이번주 회고 끝.
'개발 일기' 카테고리의 다른 글
코드스테이츠 백엔드 부트캠프 메인 프로젝트 - 마지막 이야기 (0) | 2023.02.04 |
---|---|
코드스테이츠 백엔드 부트캠프 메인 프로젝트 회고 - 4 (0) | 2023.01.23 |
코드스테이츠 백엔드 부트캠프 메인 프로젝트 회고 -2 (0) | 2023.01.08 |
코드스테이츠 백엔드 부트캠프 메인프로젝트 회고 -1 (0) | 2023.01.04 |
코드스테이츠 백엔드 부트캠프 프리 프로젝트 후기(StackOverFlow 클론 코딩) (0) | 2023.01.03 |