지난 11월에 응시했던 SQLD 시험 결과가 나왔고, 1과목 만점과 함께 안정적인 점수로 합격했다. 지난 번에 1과목은 좋은 점수가 기대된다고 했는데 만점을 받았고 불안했던 2과목은 예상했던 것 보다 괜찮은 점수가 나와서 너무 기쁘다! 이번 회차가 어렵고 헷갈리는 지문이 많았다고 하는데 정말 다행이다🤩
공부 목적으로 도전한 시험인데, 개인 프로젝트를 하면서 ERD를 짜고 있는 지금! 확실히 도움이 많이 됐다고 느낀다. 이렇게 결과까지 얻어가니 보람차고 속이 후련하다. 그래도 SQL은 계속해서 써보고 공부할 예정이다.
📌 1-2. 코딩테스트 흥미를 느끼다.
이번 달 목표로 코테 문제를 풀고 30개 기록하기가 있었는데 아슬아슬하게 성공했다. 문제들을 계속 풀다보니 자주 쓰이는 API와 알고리즘을 알 수 있었고, 나중에는 정석 정답에 비하면 깔끔하지는 않지만 나만의 방법으로 문제를 풀어나가고 있었다. 처음 문제를 풀 때는 어렵다는 생각이 먼저 앞섰지만, 지금은 일단 해결해보고 싶다는 생각이 든다! 좋은 징조인 것 같다. 앞으로도 계속 30개씩 기록하기! 📝
🚩 2. 기술적 성장과 학습
📌 2-1. GitHub Actions와 AWS를 활용한 CI/CD Pipeline 구축
개인 프로젝트를 진행하는 동시에 여러 회사들 면접을 다녔다. 그때마다 받는 질문이 있었는데, 바로 배포 경험이 있냐는 질문이다. 그만큼 배포 경험이 중요하다는 걸 느끼고 차근 차근 CI/CD를 어떻게 구축할 것인가 고민했다.
먼저 CI는 GitHub Actions를 사용하기로 했다. 왜냐하면 기존에 쓰고 있었던 GitHub 저장소와 통합되어 있기 때문에 소스 코드와 워크 플로우를 한 곳에서 관리할 수 있고, GitHub Actions에서는 다양한 이벤트에 대응하는 자동화 워크플로우를 커스터 마이징할 수 있기 때문이다.
CD는 AWS의 S3, CodeDeploy, EC2를 사용하기로 했다. AWS에서는 지속적 배포에 필요한 다양한 서비스들을 제공하고 있고, 확장성이 뛰어나기 때문에 프로젝트 요구 사항에 따라 적절한 환경설정과 더불어 서비스를 선택하여 이용할 수 있다. 또한, 프리티어를 통해 비용면에서도 합리적이라고 판단했다.
이렇게 CI/CD Pipeline을 구축할 수 있었고, 나의 개인 프로젝트는 자동으로 테스트 및 빌드를 진행하고 서버에 배포된다. 이제 모든 사람들이 이용할 수 있게 되었고, 목표로 했던 배포에 성공하게 되었다!🌟
📌 2-2. 새로운 데이터 베이스 Redis!
개인 프로젝트에는 회원가입을 할 때 휴대전화 인증이 필요하다. 이때 인증 번호를 세션에 저장하다가, 아래의 이유들로 레디스에 저장하는 방법으로 변경하였다.
데이터 타임아웃을 데이터마다 설정할 수 있음으로 세션 타임아웃보다 다른 영역에 영향을 미치지 않아 안정적이다.
레디스는 인메모리 저장소로, 데이터 수행 처리 속도가 빠르다.
추후 다중서버를 구축한다고 가정했을 때 하나의 동일한 세션 정보를 여러 서버가 조회하고 공유할 수 있다.
현재 쓰이는 부분은 인증 번호의 저장소로 key는 사용자의 전화번호, value는 랜덤 값을 세팅해주어 사용하고 있지만 나중에는 캐싱에도 써보고 싶다.
🚩 3. 칭찬합니다 & 아쉬워요
🔷 3-1. 새로운 기술에 대한 학습
이전 프로젝트에서 시도해보지 않았던 Infra 영역이나 사용해보지 않았거나 직접 구현하지 않았던 JPA, Redis, OAuth 로그인 등등 여러 기술과 기능들을 이번 프로젝트에서 많이 도전해보고 있다. 사실 '아무래도 한 번 경험했던 것이 익숙하고 편하고 빨리 끝낼 수 있으니까 이번에도...?' 라는 마음을 가질 수도 있었는데 기술에 대한 호기심을 가지고 학습하여 접목시키고 개발 역량을 넓히고자 하는 행동을 칭찬한다.
🔶 3-3. 백문이 불여일타
새로운 기술을 학습하는 건 좋다. 다만 일단 코드를 쳐보면서 익혀보자! 나는 어떤 기술이나 기능을 구현해보기 전에 이론적으로 계속 파고드는 경향이 있다는 걸 깨달았다. 그러다 직접 구현하면서 공부하는 편이 더 와닿고 이해가 빨리 된다는 걸 느꼈다. 코딩계에서는 "백문이 불여일타"라는 격언이 있다. 일단! 쳐보면서 익혀보자.
🚩 4. 이번 달 소감과 다음 달 목표
📌 4-1. 이번 달 2023년 12월 소감
2023년 12월은 기쁨과 혼란의 달이었다. Infra를 구성하면서 많은 에러들을 봤는데 그동안 로컬 환경에서만 개발하며 IDE 콘솔창에서 보았던 에러들과 너무나 달랐기 때문에 이를 해결하면서 많은 시간을 보냈다. GitHub Actions 러너에서 에러 발생! CodeDeploy에서 에러 발생! EC2 서버에서 에러 발생! 여러모로 혼란스러웠지만 수많은 구글링과 생성과 삭제를 반복해가며 결국 목표를 이루니, 머릿 속에 절로 떠오른 구절이 있다.
중요한 건 꺾이지 않는 마음! 🔥
📌 4-2. 다음 달 2024년 01월 목표
지금까지 학습한 것들 심화해서 학습하기! 뭔가 배운것도 경험한 것도 많았단 12월이었다. 그런데 그만큼 후루룩 지나간 느낌이 없지 않다. 이번 달에는 지금까지 배웠던 것들에 대해서 복습하는 시간을 가지며 체화시키려 한다. 그래야 완전히 내 것이라는 느낌이 들 것 같다. 🤓