🚩 1. 이번 달의 주요 사건
📌 1-1. SQLD 시험 응시
- 지난 10월 말, SQL공부겸 응시했던 SQLD 자격 시험을 드디어 치뤘다. 1과목 모델링과 2과목 SQL부분이 있었는데, 1과목은 좋은 점수가 기대된다. 하지만 2과목은 내가 문제를 괜히 한 번 더 꼬아 생각해버리는 바람에 틀린 문제도 있었다. 학창시절 때부터 가지고 있었던 버릇이다. 내가 아는 내용으로는 이게 맞다고 생각하면서도 혹시 내가 모르는 부분이 있나? 하면서 또 의심하는 버릇 때문인 것 같다. 좋게 생각하면 깊게 파고들어 스스로 학습하게 만드는 에너지의 발원지이기도 하지만 이렇게 부작용도 따른다. 양날의 검인 것 같다🥲
- 12월 8일에 사전 점수 공개인데 시험을 마치고 "점수 공개까지 어떻게 기다리냐..."라고 생각했다. 이글을 쓰는 시점에서는 이제 일주일 남았는데 가채점대로라면 합격인데... 내가 마킹 실수만 하지 않았길 바란다.
📌 1-2. 본격적으로 개인 프로젝트 시작
- 학원에서팀플을 하며 구현했던 기능과 사용했던 기술을 처음부터 끝까지 직접 구현해보고 싶고(특히 AWS와 SpringSecurity/OAuth 부분) 좀 더 모던한 기술을 학습할 목적으로 새로운 프로젝트를 시작했다. 인프런 강의를 들으면서 작업하고 있는데, 확실히 학원에서 팀플을 할 때는 발표기간과 다른 팀원에게 피해가지 않기 위해 시간에 쫓기며 구현하다보니 놓친 부분들이 눈에 보인다. 알아갈수록 흥미롭다!
- 학원 특성상 클린하고 트렌디한 코드 작성법이나 모던한 기술을 학습하기가 어렵다. 그래도 다른 학원에 비하면 우리 학원은 괜찮았던 편인 것 같긴 하다.(SpringBoot, Spring Secutiry, Thymeleaf... 등을 알려주심) 하지만 학원에서 나를 계속 갈증나게 한던 기술이 있다. 바로 JPA다. 학원에서는 MyBatis를 통해서 DB에 액세스하는 기술을 계속 반복했고 파이널 프로젝트 때도 해당 SQL 맵퍼 프레임워크를 통해 구현했다. 그래서 이 갈증을 해소하고자 JPA ORM을 사용하여 DB 작업을 하려고 한다.
🚩 2. 기술적 성장과 학습
📌 2-1. SpringSecurity6 마이그레이션
- 새 프로젝트는 Java 17, SpringBoot3.1.5, SpringSecurity6.1.5로 구성되어 있다. 기존의 프로젝트를 참고하며 SecurityConfig클래스를 작성하는데 특정 어노테이션에 가로 줄이 생기고(더이상 사용하지 않는다는) 코드에는 자꾸만 빨간 밑줄이 생겼다. 뭔가 문제인가 싶어 SpringSecurity 공식 문서를 보니, 특정 어노테이션의 역할을 병합하여 추가로 특정 어노테이션 없이 구성이 가능해졌고, 밑줄이 생기는 건 SpringSecurity6 버전부터는 Lambda DSL 사용을 적용하여, 설정 구성을 관련 기능끼리 함수형으로 구성하도록 유도했다. 이로써 코드의 가독성과 흐름을 자연스럽게 업데이트 한 것이다. 이를 보고 알맞게 수정해줬더니 밑줄은 사라지고 정상적으로 작동하게 되었다. 프레임워크나 라이브러리의 문법이 헷갈릴 땐 공식 문서가 답이라는 건 변하지 않는 진리인 것 같다.
📌 2-2. AWS RDS로 MySQL DB 구성
- 개인 프로젝트 초반부터 그동안 욕심났던 AWS RDS를 이용해 직접 MySQL DB를 구성했다. 팀플을 할 때는 다른 팀원이 구성했기 때문에 꼭 해보고 싶었다. 인스터스를 생성하고, 보안 그룹, 엔드 포인트와 연결 정보 등을 구성했다. 그리고 개인프로젝트의 yml파일에 생성한 RDS인스턴스의 엔드포인트, 포트번호와 같은 정보로 DB에 연결했다. 이제 추가하는 데이터를 로컬이 아니라 AWS 서버에 저장되고 RDS에 의해 관리될 것이다. 참고로 프리티어를 사용했고 추가적인 과금을 방지하기 위해 자동 백업 기능은 사용하지 않았다.
- 워크밴치에 연결해서 비밀번호를 치고 연결을 성공했을 때와, yml파일 구성을 마치고 애플리케이션이 정상적으로 부팅됐을 때의 짜릿함을 잊을 수가 없었다. 🤩
- 다음에는 S3에 각종 파일 저장및 관리와 EC2를 이용하여 개인 프로젝트 배포까지 해볼 예정이다.
🚩 3. 칭찬합니다 & 아쉬워요
🔷 3-1. 자격증 취득을 위한 도전
- SQLD자격 시험에 응시한 건 큰 이유는 이왕 SQL 공부하는 김에 시험에도 도전해보자 마음 먹어 응시했다. 시험을 3주 남기고 시험 접수를 한 것이라 비전공자인 나로서는 걱정이 많이 되었지만, 중간에 마음을 바꾸지 않고 시험날까지 포기하지 않고 열심히 공부한 것을 칭찬한다.
🔷 3-2. 문제 해결을 위한 공식 문서 참조
- SpringSecurity6 마이그레이션 과정에서 발생한 문제를 해결하기 위해 단순 구글링에서 그치는 것이 아닌, 공식 문서를 참조하여 해결하고 해당 업데이트 부분의 목적을 알기 위해 추가적인 학습을 한 것에 대해서 칭찬한다.
🔶 3-3. 코딩 테스트 연습하기
- 코딩 테스트는 나에게 너무 어려운 부분이다. 항상 문제를 풀다보면 생각이 1에서 10까지 도달해야 정답을 도출할 수 있다고 가정한다면, 나는 생각이 중간에 6에서 7까지에 멈춰 정답을 도출해내지 못한다. 그러다보니 점점 자신이 없어졌고 코테 연습을 짧게 짧게 마치고 끝냈다. 다음달에는 각각의 객체가 어떤 유용한 메서드를 가지고 있는지도 파악하고, 자료구조와 알고리즘에 대해서는 더 깊게 공부하고 해야 한다. 코테 문제를 푸는 시간을 늘리고 이를 기록하여 복기하는 과정을 거쳐야겠다.
🚩 4. 이번 달 소감과 다음 달 목표
📌 4-1. 이번 달 2023년 11월 소감
- 2023년 11월은 시작과 도전의 달이었다. 시험에 응시했고 새로운 프로젝트를 시작했다. 도전하면 할수록, 알면 알수록 방대하고 어려운 것 복잡한 것도 많지만 그만큼 재밌고 성취감이 있다. 프로그래밍의 매력인 것 같다. 계속해서 배우고 성취할 수 있는 것이 생긴다는 것. 내 도전과 새로운 시작들이 좋은 결과로 마무리 되었으면 좋겠다.
📌 4-2. 다음 달 2023년 12월 목표
- 그동안 못해서, 자신 없어서 미뤄온 코딩 테스트 공부를 이제 피하지 않고 더 적극적으로 할 것이다. 그리고 푼 문제를 기록하고 복기할 것이다. 다음 달은 못해도 0~2레벨의 문제들 30개를 기록할 것이다! 피할 수 없으면 즐겨라!📝
- 개인 프로젝트에서 기존에 쓰지 않았던 새로운 기술 사용해볼 것이다. 물론 기존에 쓰인 기술들에 대해서는 확실하게 짚어 이해하고 넘어가고 그 다음엔 새로운 프레임워크나 라이브러리를 사용해 봐야겠다! 👩🏻💻