2025년이라니...ㅠㅠ
조금은 늦었지만 아주 바쁘게 살았던 2024년을 돌아보자.
2024년 초에는 1일 1코테, 2024년 하반기에는 1일 1커밋을 꾸준하게 하는 것을 목표로 공부하였다.
4월~6월은 정보처리기사에 시험까지 겹쳐서 코테를 거의 하지 못했다...ㅠ
2024년 초에 코딩테스트 문제를 꽤 꾸준히 풀었다.
항해99에서 진행하는 알고리즘 스터디 1기에 참여하기도 하였고, 연속 TIL 작성 등을 통해 최종 보상을 받을 정도로 열심히 하였다.
하지만 점점 갈수록 프로젝트들에 치여서 코테에 시간을 거의 못 썼던 게 아쉽다.
그래도 연초에는 실버4?로 굉장히 낮았는데 지금은 골드4에 92%인 것을 봐선 그때의 내가 꽤 노력했다는 거에 박수쳐주고 싶다.
원래는 좋아하는 문제 유형도 없이 마냥 어렵기만 했는데 어느새 DFS, BFS만 재밌게 풀었던 것 같다.
이제 본격적인 취준을 하면서 코테를 많이 풀어야 하는데 그리디, DP를 많이 파야할 것 같다.
2024년 1회차 정보처리기사에 합격했다.
4학년이였어서 2월에 필기 공부, 4월에 실기 공부를 했던 것 같은데 실기 시험 때 학교 시험 일정이랑 완전히 겹쳐서 정말 정신없이 도서관에서 살았던 것 같다.
그 결과 1트만에 합격!
시야를 넓히고 싶어서 인프런 퇴근길 미팅, Toss 컨퍼런스에 참여하기도 하였다.
정말 슬프지만 많은 것을 이해하지는 못했다.
대규모 처리에서 Kafka와 temp DB, 서비스 DB 분리 등의 키워드 식으로 듣긴 했지만 이해하기 어려웠다.
하지만 그 이후 프로젝트들에서 기술 고민을 할 때 이것들을 떠올려 고민할 수 있다는 점에서 정말 의미 있었던 것 같다.
이래서 시야를 넓히려고 컨퍼런스를 가는구나 싶다.
2025년에도 가야징
사실 유레카 과정에서 정말 할 말이 많다.
2024년은 유레카와 함께 했다...(6월~12월 말)
나는 개발자 지식이 부족하다 느껴졌다.
대학 생활 중 팀 프로젝트를 꽤 많이 했다고 생각했지만 지식의 깊이는 깊지 못했다.
그래서 새로운 곳에 가서 배워보고 싶다는 생각에 마냥 지원하게 되었다.
URECA에 들어가기 위해 5월부터 코딩테스트를 보고, 강남에 면접까지 보러 갔다.
그렇게 6월부터 URECA와 평일 9to6을 함께하게 되었다.
(URECA 수업을 듣기 위해서 아침 일찍 기숙사 짐을 빼고 오전 9시부터 URECA 수업을 들었던 것도 기억에 남는다...ㅎ 매우 정신없었기 때문)
자바부터 알고리즘, DB, MyBatis, JPA, Spring Boot 등등 정말 많이 배웠다.
다양한 사람들과의 커뮤니케이션, 기술 구체화, 성능 개선 등 의미 깊었던 시간이였다.
그 중 가장 기억에 남는 성과를 써보겠다. (만년 2등)
DB 미니 프로젝트, 2등
DB 수업 때 미니 프로젝트로 Java Swing을 사용하여 간단한 미니프로젝트를 해오는 시간이 있었는데 기간은 3일 정도 됐던 것 같다.
주제는 팀에서 2명씩 짝지어 서로 주제를 추천해주고 ERD를 짜고 DB 구축해서 Swing으로 구현하는 것이였는데 나는 쇼핑몰을 했다.
그 중에서도 조금 특별한 쇼핑몰을 하고 싶어서 Steam처럼 게임 쇼핑몰을 구현하였다.
간단한 쇼핑몰 기능에서 상품 등록까지 관리자 기능으로 구현하여서 이 프로젝트에서 1등과 1표 차이로 2등을 하였다.
정말 아쉬웠지만 그래도 주변 분들이 인정해주시고 좋은 말도 많이 해주셔서 실망하기 보단 더 열정이 불탔던 것 같다.
종합 프로젝트 (꿈틀), 우수상
종합 프로젝트로 자녀 성향 기반 도서 추천 서비스를 주제로 구현하게 되었다.
백엔드 6명이서 구성되어 있어 React TypeScript도 같이 사용해보게 되었다.
그 중에서도 나는 추천 시스템을 담당하게 되었다.
이 주제에서 가장 중요한 것이 "추천"이라고 생각해서 생소했지만 퀄리티 높은 추천을 구현하고자 하였다.
머신러닝을 사용할까 하다가 콘텐츠 기반 필터링과 협업 필터링을 모두 사용하는 하이브리드 필터링을 자바 코드로 구현해보게 되었다.
이 당시에는 개인화와 수치를 기반으로 되는 추천 시스템이라는 점에서 완성도가 높았다고 생각했지만 Spring Batch 효율, 쿼리 최적화 면에서 상당히 부족했던 시스템이라는 것을 알게 되었다.
그래도 기본 추천 등 여러 방면에서 상당히 고민을 많이 한 것 같다며 좋은 평가로 우수상을 수상하게 되었다.
최종 융합 프로젝트 (멍티비티), 우수상
강아지 동반 가능 시설 공유 플랫폼을 주제로 프론트 4명, 백엔드 4명으로 구성되었다.
나는 앞서 했던 추천 시스템을 개선하고 싶었다.
그래서 개인화 추천 기능을 맡게 되었고, 날씨 API 연동 및 캐싱, 지도 관련 기능, 최근 리뷰 기능을 맡았다.
앞선 추천과 다른 점은 기계학습 기반 라이브러리 Mahout을 사용하였다.
이유는 자바로 구현했을 때보다 더 좋은 성능, 새로운 방식으로 구현하고 싶었기 때문이다.
이번에는 성능 개선을 위해 DB 조회를 최소한으로 하고자 하였다.
그래서 그런지 Spring Batch 처리 때문일 것 같긴 하지만... 정말 성능 개선이 많이 되었다.
720명 기준 3초가 걸렸는데 자바로 구현했을 때는 몇시간 걸리길래 기다리는 걸 포기했다...ㅎㅎ
그리고 기존 자바로 구현할 때는 연관 점수를 따로 저장하지 않고 배치 때마다 계산하도록 했는데 Mahout에서는 연관 점수 테이블을 기준으로 추천 점수를 계산하는 방식을 사용하여 Mahout이 더 효율적이라는 것을 알게 되었다.
예선, 본선 두개가 있었는데 본선까지 진출하여 LG U+ 마곡 사옥에 가서 발표해 우수상을 받았다.
심사위원 분께서는 추천 개발을 어떻게 진행하였고, 어려웠던 점, 아쉬운 점을 여쭤보셨다.
Cold Start 문제로 데이터 확보가 어려웠고, 사용자 행동 데이터를 추가로 다양하게 넣지 못해 아쉽다, 개발은 데이터를 임의로 넣어가며 추천이 잘 되는지 확인을 했고 이후 리뷰 데이터와 연결하였다고 설명드렸다.
이때 좋은 말씀을 들어 정말 기뻤지만 워낙 훌륭한 팀들이 많았어서 상을 기대하진 않았다.
하지만 우수상을 타게 되었고, 긴 유레카의 끝을 수상과 함께 수료하게 되어 정말 기뻤다.
이 프로젝트에서 얻은 건 성능 개선의 사고와 협업 커뮤니케이션인 것 같다.
성능 개선을 전제로 기능을 구현할 수 있게 되었고, 프론트와의 협업 이해도 향상되었던 것 같다.
2024년 WISET 여대학원생 공학연구팀제 지원사업 심화과정에 대학생으로 참여하게 되었다.
자연광 유입 환경에서 최소 조도 센서 기반 조도맵을 생성하는 딥러닝 모델을 주제로 개발하게 되었고, 전산 컴퓨터 분과 2위를 하게 되었다. (24.04.01 ~ 24.10.31)
아쉽지만 1등만 총 분과 본선에 진출해서 2등은 아무것도 없다 ㅠㅠ
그래도 카이스트, 유니스트, 서울대 등등 엄청난 대학에서 많이 나왔었고 다들 너무 좋은 주제였는데 그 중에 2등을 했다는 게 정말 값진 경험이었던 것 같다.
Pytorch를 사용하여 딥러닝 모델을 개발하게 되었고, 딥러닝은 처음이였지만 대학원생 언니가 문제를 내주듯 해서 다중 선형 회귀 모델, DNN 모델 등을 모두가 구현해보며 공부할 수 있게 되었다.
그리고 정말 고마웠던 점은 데이터가 너무 깔끔했다...
그래서 딥러닝 초보들도 잘 따라갈 수 있었던 것 같다.
간단하지만 Fast API로 모델 서빙용 서버를 다뤄보았고, Spring boot에서 SSE를 사용해서 쌓인 데이터를 일정 시간마다 전송하는 기능을 구현하였다.
학교 수업으로 캡스톤 디자인을 수강하였다.
다문화 가정 방문교사들을 위한 한국어 교육 웹 플랫폼을 주제로 프론트 2명, 백엔드 1명으로 구성되었다.
나를 제외한 2명은 1학기부터 해오던 팀으로 나는 2학기에 합류하게 되었다.
그래서 기획은 잡혀있었고, 개발부터 참여하게 되었다.
유레카 때문에 점점 시간이 부족해질 것 같아 2학기 캡스톤 디자인을 나 혼자 여름방학 7월부터 개발을 시작하게 되었다.
ERD 수정부터 DB 설계, AWS 서버 구축, API 개발까지 백엔드 전반을 담당하게 되었다.
꾸준히 개발하다가 차별화 된 서비스를 위해 생성형 AI 퀴즈를 제안하였고, 모두 긍정적인 반응으로 기능을 추가하게 되었다.
백엔드 영상 처리 개선 등 성능 개선을 한다면 정말 끝도 없겠지만 시간 상 성능 개선을 하지 못한 게 아쉬운 것 같다.
그리고 생성형 AI를 사용할 때 GPT API를 사용했는데 외국물 먹은 아이보고 한국어 퀴즈를 내달라 해서 퀄리티 면에서 아쉬웠다.
이 역시 발표가 2번 있었는데, 첫번째는 학과 발표를 하였고 여기서 상위 3팀이 SW 중심대학 캡스톤 경진대회에 참여할 수 있게 되었다.
우리는 상위 3팀에 들게 되었고, 본선에 진출할 수 있었다.
아쉽게도 본선에서 수상하지는 못했지만 학교 성적이 A+이 나와 정말 뿌듯하였다.
하반기에 복싱을 3개월 동안 하게 되었다.
첫날부터 칭찬받았다 ㅎㅎ
태권도 하는 사람이 복싱도 잘한다던데 태권도 4단이라 주먹을 쓰는 감이 있는 듯 하다 ㅎㅎ
지금은 끝났지만 꽤 재밌게 했던 운동이였다.
평일 4~5일은 갔던 것 같다.
왼쪽 바디 동작이 제일 재밌다 ^^
한가한 사람보다 바쁜 사람에게 일을 하나 더 주는게 낫다고... 이 말이 정말 와닿았다.
하반기는 URECA와 WISET, 캡스톤, 복싱을 함께 진행하던 시기였다.
노션에 일정을 관리하면서 작업을 하나하나 하다 보니 모든 일정을 소화할 수 있었다고 생각한다.
이렇게 바쁜 일정이 있었지만 대학 학점도 신경쓰면서 막학기 4.5로 마무리 할 수 있었다.
바쁘게 산 나 자신에게 칭찬을.
파이팅!!! 부지런히 살자!!!