2026/02 5

cmc 17기 Server 활동 후기 🎓

📝 지원한 이유와 cmc에서 얻고자 한 것나는 IT 동아리를 한번쯤은 해보고 싶은 마음이 있었다. 한창 진로 고민을 많이 하던 중에 내가 부러워하는 것들을 나열해보고 하나씩 도전해보기 시작했고 그 중 하나가 cmc 활동이었다.운이 좋게 서류 합격을 거쳐 최종합격까지 하게 되었고 😆OT 날에는 정말 최선을 다해 서비스를 개발해보기로 다짐했다.직무 고민도 하던 때라 QA 업무를 제대로 진행해보고 싶었고, 취업을 위해 프로젝트를 하는 것이 아닌 좋은 서비스를 개발 자체를 목표로 삼기로 결정했다.cmc 활동을 본격적으로 시작하기 전에 명확한 니즈에 의해 필요한 기술만을 도입한 프로젝트를 봤다. 남들이 해서 이것저것 하는 게 아니라 서비스 기획에 맞게 구조를 고민하고 모놀리식의 한계를 직접 느껴 멀티 모듈을 ..

cmc 17기 2026.02.27

약쏙의 알림 스케줄 생성 전략과 batch insert

안녕하세요 약쏙에서 서버 개발을 하고 있는 노을입니다 :)약쏙은 복약 일정을 등록하고 알림을 받을 수 있는 서비스입니다.이 글에서는 약쏙에서 선택한 스케줄 생성 전략과 batch insert에 대한 내용을 담았습니다.🧠 약쏙의 요구사항과 스케줄 생성 전략약쏙 기획은 복약 종료일이 없을 수도 있다는 요구사항이 있었습니다. 이 요구사항에 맞춰 제가 고안한 방식은 다음과 같습니다.시작일~종료일까지 전체 일정 insert, 종료일이 없는 경우엔 n년치만 insert→ 사용자는 n년 이후의 일정은 볼 수 없음오늘 이전 일정만 DB에 저장, 미래 일정은 요청 시 DTO를 통해 on the fly로 생성1번 방식은 종료나 수정, 삭제 시 대량의 데이터 변경이 발생할 수 있고,불필요하게 많은 데이터가 DB에 저장될 ..

cmc 17기 2026.02.27

너디너리 해커톤 8th 후기

한달 전에 나간 너디너리 해커톤 회고를 이제서야 쓴다 ㅎㅎ너디너리 해커톤은 cmc와 umc가 23시간 동안 하나의 서비스를 완성한다. 팀 공개와 함께 아이디어 기획부터 디자인,개발, 발표와 시상까지 23시간 내에 이 모든 게 이루어진다.해커톤은 처음이라.. 걱정이 정말 많이 되었지만 어찌저찌 완성하게 되었다.나는 cmc 17기에 합류하게 되면서 필수로 참석해야 했다. (umc는 신청자를 받는다)📅 행사 일정25.05.17 (토)시간25.05.18 (일)시간챌린저 입장13:00 ~ 13:30프로젝트 개발00:00 ~ 09:50해커톤 소개 및 주제 발표13:30 ~ 13:40프로젝트 제출09:50 ~ 10:00간단한 레크레이션(자기소개)13:40 ~ 14:10프로젝트 발표 환경 세팅 및 휴식10:00 ~ ..

cmc 17기 2026.02.27

커스텀 어노테이션으로 유저 정보 가져오기

✅ 커스텀 어노테이션 사용 이유너디너리 해커톤에서 로그인을 구현했는데 빠르게 개발해야 하다보니 스프링 시큐리티를 사용하지 않고 개발했다. 그리고 클라이언트는 다음과 같이 access token을 헤더에 담아 요청해야 했다.Authorization: Bearer {access token} 스프링 시큐리티를 사용하면 컨트롤러에서 인증 객체를 바로 받아올 수 있지만, 난 사용하지 않았기 때문에 일일히 헤더에 있는 토큰을 가져와서 검증하고 파싱해서 시크릿을 얻어야 한다.매번 이 과정을 하는 게 귀찮으니 커스텀 어노테이션을 만들어서 사용했다.그리고 스웨거에서는 제외 시키기 위해 @Parameter(hidden = true)을 해주었다.@PostMapping("/register")public ResponseEnti..

cmc 17기 2026.02.27

무한스크롤 구현 방법 (커서 기반 페이지네이션)

안녕하세요 약쏙에서 서버 개발을 하고 있는 노을입니다 :)약쏙은 복약 일정을 등록하고 알림을 받을 수 있는 서비스입니다.이 글에서는 약쏙에서 알림을 조회할 때 선택한 커서 기반 페이지네이션과, 오프셋 기반과의 차이를 실행 계획을 바탕으로 설명해보려 합니다.🪜 커서 기반 vs 오프셋 기반 페이지네이션오프셋 기반 페이지네이션의 문제다음 페이지를 요청하는 사이에 데이터 변화가 있다면?예를 들면, 유저가 자신의 알림 목록 1페이지를 조회하는 중 새로운 알림이 도착했습니다. 그리고 유저가 2페이지를 요청합니다. 그러면 유저는 1페이지에서 봤던 알림을 똑같이 보게 됩니다. 🫢OFFSET 쿼리의 탐색 방법OFFSET이 커질수록 DB는 앞의 row를 다 읽고 버려야 하므로 성능이 점점 나빠집니다.인덱스를 쓰긴 하지..

cmc 17기 2026.02.27