[집중하면 레벨업] 서비스를 다시 살려보려 합니다.
·
프로젝트 회고록
마지막 수정: 2026.06.23 (지속적으로 업데이트 예정)서론 '집중하면 레벨업'이라는 프로젝트는 현재 최대 위기를 맞이했습니다... 사실 꽤 애정을 쏟았던 프로젝트이기도 하고, 취준을 하면서도 이 프로젝트를 계속 발전시키는 것이 나에게 가장 좋은 경험이 될 수 있겠다고 판단했습니다. 그래서 이제는 내가 거의 모든 것을 담당해보려 합니다!! 기획부터 디자인, 프론트, 서버, 인프라까지!!!🔥 이게 사실 요즘 시대에 가장 부합하는 개발자의 모습이 아닐까? 라는 생각도 들었습니다. 백엔드 하나에만 국한되기보다는, AI를 적극적으로 활용해서 제품을 직접 만들고 개선하는 개발자가 더 강해지는 시대라고 생각이 들더라구요..특히 최근에는 Product Engineer처럼 개발뿐만 아니라, 기획과 PM의 역할까..
[집중하면 레벨업] 멀티모듈 공략집: 적용/삽질 편
·
프로젝트 회고록
1. 서론이전 글에서 '집중하면 레벨업' 서비스에 멀티모듈을 도입하기 위한 이론과 설계 과정을 정리했었습니다. [집중하면 레벨업] 멀티모듈 공략집: 이론/설계 편1. 서론안녕하세요, '집중하면 레벨업' 서비스를 개발하고 있는 singsangssong 입니다. 최근 저희 서비스가 감사하게도 누적 유저 8,000명을 돌파하며 꾸준히 성장하고 있습니다. 유저가 늘어나고 서tadokang.tistory.com 이론/설계 편에서는 왜 멀티모듈이 필요했는지, 단순히 common 모듈 하나를 만드는 방식이 왜 위험한지, 그리고 우리 서비스에 맞는 모듈 구조를 어떻게 설계했는지에 대해 작성했습니다.당시 내가 최종적으로 생각했던 구조는 아래와 같았습니다.levelup-common: 프레임워크를 모르는 순수 도구level..
[CS] MSA환경에서 트랜잭션을 다루는 방법
·
CS
MSA 환경에서의 트랜잭션단일 모노리틱 서버에서는 대부분 하나의 데이터베이스로 통일하기에, 사용하는 DBMS의 트랜잭션 시스템, ACID의 특성에 의존해도 문제가 되지 않습니다. 특히 스프링에서는 @Transactional이면, DB엔진이 Undo로그를 사용해 물리적 롤백이 가능합니다.하지만, 실무에서 일을 하게 된다면 MSA 환경을 마주할 확률이 다분합니다. MSA환경에서는 각 도메인(서비스)이 독립적으로 DB를 가지고, 하나의 비즈니스 요청을 처리하기 위해서 여러 서비스의 DB를 접근하는 '분산 트랜잭션' 상황이 발생합니다.. (앞으로 작성하는 CS 포스팅 대부분이 MSA에 관련된 공부 내용을 작성할 듯 합니다.) 오늘은 이런 MSA 환경에서, 하나의 비즈니스 로직을 처리하는 일련의 과정에서 중간에..
[집중하면 레벨업] Spring Batch 시스템 구축하기
·
프로젝트 회고록
[집중하면 레벨업] Spring Batch 시스템 구축하기안녕하세요 집중하면 레벨업 서버 개발자 입니다.혹시나 서비스를 알고 들어오신 분들이라면.. 네.. 저희 서비스 버그가 정말로 많았습니다... 죄송합니다...유저들과의 약속을 지키기 위해 급하velog.io1월 velog에 작성했던 내용을 가져왔습니다. 티스토리에 계속 정착하는게 좋을 것 같아서 다시 재업로드합니다!
[집중하면 레벨업] Blue/Green 무중단 배포 적용기
·
프로젝트 회고록
[집중하면 레벨업] Blue/Green 무중단 배포 적용기안녕하세요, '집중하면 레벨업' 서비스를 개발하고 있는 singsangssong입니다.저희 서비스는 사용자가 집중한 시간만큼 보상을 받고 성장하는 게이미피케이션 요소를 담고 있습니다. 서비스의 특성velog.io 1월 velog에 작성했던 내용을 가져왔습니다. 티스토리에 계속 정착하는게 좋을 것 같아서 다시 재업로드합니다!
[집중하면 레벨업] 멀티모듈 공략집: 이론/설계 편
·
프로젝트 회고록
1. 서론안녕하세요, '집중하면 레벨업' 서비스를 개발하고 있는 singsangssong 입니다. 최근 저희 서비스가 감사하게도 누적 유저 8,000명을 돌파하며 꾸준히 성장하고 있습니다. 유저가 늘어나고 서비스가 고도화됨에 따라, 자연스럽게 API뿐만 아니라 관리자 페이지(Admin), 배치(Batch) 시스템 등 다양한 기능들이 추가되었습니다. 하지만 이 시스템을 하나의 모놀리틱 안에서 관리하다 보니, 사소한 변경에도 전체 시스템이 영향을 받고 코드가 복잡하게 얽히게 되었습니다. 이를 해결하기 위해 프로젝트를 독립적인 역할 단위로 나누고, 중복된 코드를 효율적으로 관리할 수 있는 '멀티 모듈' 아키텍처를 도입하기로 결정했습니다. 오늘은 초기 스타트업이나 개인 프로젝트가 비대해질 때 흔히 겪는 이 아키..
[고찰] SASL 도입 정리
·
고민 + 기타
회사에서 도입중인 SASL에 관해서 정리하는 글을 짧게 작성하려고 한다.대부분의 글이 kafka와 연결된 sasl에 관련된 글이고, 레퍼런스가 많이 없다보니 작성하게 되었다.두서없이 작성하는 글이니 가독성이 떨어질 수 있고, 조금 부정확한 내용이 있을 수 있으니 이해바란다.SASL의 도입서버가 zookeeper와 통신하는 사이에 인증로직이 필요하다는 요구사항이 발생한다.이에 우리 회사에서 빠른 구현 및 도입을 위해서 SASL을 사용하게 된다. SASL이란?인증을 위한 표준화된 규칙이다. 많은 인터넷 프로토콜(Ex: SMTP, database, memcached)은 사용자 인증 기능이 필요한데, 프로토콜마다 인증을 달리 구현하는건 비효율적인 판단이다. 이에 SASL에서 인증 로직을 제공하니, 각 프로토콜이..
[EP 1-7] Spring boot 리소스 접근하기 (ClassPathResource vs FileInputStream)
·
spring
문제 상황시험기간을 마친 후, 쌓인 서버 작업물을 모두 배포시키는 과정에서 문제가 발생했다.문제가 발생한 곳은 Firebase를 통해 푸시알림 기능 부분 중, Firebase의 Bean의 주입과정이었다.ERROR 1 --- [bbip] [main] o.s.boot.SpringApplication: Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'firebaseConfig': Invocation of init method failed at...Caused by: java.io.FileNotFoundException:src/main/resources/static..
[PE 3] Ruty(1인 가구를 위한 자기관리 서비스): CMC 1인 서버
·
카테고리 없음
서론2달 넘게 지난 프로젝트의 회고를 이제서야 작성한다. 학기를 시작하고 절대 스스로 일을 벌이지 말아야겠다고 그렇게 다짐했거늘, 새 프로젝트, 학점 및 시험, 약속 등으로 인해 회고를 늦게 하게 되었다. 비록 늦었지만 회고는 중요하니까..! 회고는 미루지말고 늘 일주일내로!프로젝트 시작 계기: CMCCMC 16기 합격Central MakeUs Challenge(CMC) 연합동아리에서 제작한 프로젝트이다.100% 앱 배포를 자랑하는 CMC에서는 프로젝트가 무산될 일은 없으리라 생각하고 지원했다. 또 역할군이 다양하고 학생끼리 하는 프로젝트에서는 대부분 PM이 없는 반면, PM까지 있으니 더 근사한 프로젝트를 만들 수 있을거라는 생각도 있었다.물론 수많은 연합동아리에 떨어지면서, 붙는다는 가능성은 희박하다..
[고찰] SSH EP 0: 왕초보가 왕왕왕왕왕초보(과거의 나) 피드백하기
·
고민 + 기타
이전의 나...시험이 끝나고 스스로 진행할 토이프로젝트를 구상중이다.최근들어서, 단조로운 API설계, 기능 제작만 하는 백엔드 개발자는 껍데기 개발자라는 생각이 머리를 가득 채운다.나름 스스로 고심해서 코딩해왔지만, 아직 기술의 뎁스가 얕다고 생각했다.AI가 할 수 없는, 데드라인에 쫒기지 않는, 내가 원해서 하는 개발이 필요했다..! 이때, '채팅개발 시스템 설계 과정'라는 당근 유튜브를 보게된다.'어? 예전에 혼자 채팅만들어봤는데? 이걸 탐구할 점이 많은걸까?' [고찰] 당근 채팅 시스템 정리 및 생각서론위 당근 서비스의 채팅서버에 대한 발표를 정리한 글이다.당근에서 설계된 채팅 아키텍쳐와 전략 등을 살펴보고, 내 생각을 따로 정리하고자 이렇게 작성했다.모든 그림은 발표에서 사용된tadokang.t..