본문 바로가기

전체 글59

DB CPU가 터져요 (1편) 우리 서버는 어느 정도의 트래픽을 버틸 수 있을까요? 이를 검증해보기 위해, 더미데이터를 넣고 부하테스트를 진행해 보았습니다. 작성한 시나리오는 다음과 같습니다.하루에 3개의 조직이 생겨나고, 각각의 조직에서 20개의 피드백이 생성된다.일 년동안 상단의 데이터가 쌓인다.이를 토대로 약 1,000개의 조직과 400만 개의 피드백을 더미데이터로 사용하였습니다. 처음 테스트한 API는 피드백 조회 쿼리였습니다. 특정 조직의 피드백을 최신순/오래된 순/좋아요 순의 조건을 통해 10개 가져오는 API입니다. JPQL로 작성한 쿼리문이지만, SQL로 변환하면 다음과 같은 쿼리가 나갑니다. (쿼리는 중요하지 않기 때문에 읽어보지 않아도 됩니다.) 최신순select f1_0.*from feedback f1_0join .. 2025. 9. 29.
우테코/피드줍줍 운영 기록기 피드줍줍 서비스를 실운영하면서 발생한 일을 기록하려고 합니다. 피드줍줍의 현재 상황,앞으로의 방향성에 대해서 이야기를 해보려고 합니다.피드줍줍의 현재 상황 MVP 개발이 끝난 피드줍줍을 활성화시키기 위해서 많은 노력을 했습니다. 그중 가장 먼저 한 일은 캠퍼스에 대해 불편함/피드백을 작성할 수 있는 QR 코드 붙이기였습니다. 피드줍줍 서비스를 사용자들에게 처음으로 알린 작업이었는데요, 감사하게도 많은 우테코 크루분들이 캠퍼스에서 불편했던 점, 개선점을 올려주셨습니다. 하지만 문제점이 있었는데요, 저희 팀 내부에서 해결할 수 없는 피드백들이 다수 존재했습니다. 해당 피드백을 해결하기 위해서는 코치님들의 도움이 필요하다고 생각했고, 담당 코치님들께 해당 피드백에 대해 관심이 있으시다면 관리자 역할을 부탁.. 2025. 9. 15.
CodeRabbit 적용기 CodeRabbit이란?코드 리뷰 도우미 AI 입니다. AI 기술을 활용하여 코드 변경 사항을 자동으로 분석하고, 리뷰해줍니다. 이 과정에서 코드의 논리적 오류, 성능 개선 포인트에 대해 리뷰를 받을 수 있습니다. 팀의 컨벤션 규칙을 적용시킬 수도 있습니다. 더 자세히 알고 싶다면, 공식문서를 참고하면 좋을 것 같습니다.https://docs.coderabbit.ai/overview/introduction 코드레빗을 도입하기로 결정한 이유팀 프로젝트를 진행하면서 이런걸 리뷰해야 할까? 애매했던 상황들이 자주 있었습니다. 주로 팀 컨벤션에 관한 리뷰들이었습니다. 위와 같이, 코드리뷰에서 팀 컨벤션에 대한 리뷰를 남기는 것도 좋지만 보다 효율적으로 리뷰를 하면 좋겠다고 느꼈습니다. 컨벤션 같은 사소한 리뷰는.. 2025. 8. 26.
우테코/피드줍줍 3차 데모데이 회고 3차 데모데이의 회고록을 작성해보려고 한다. 3차 데모데이 속에서도, 애자일을 적용하기 위해 두 개의 스프린트로 나누어 작업을 진행했었다.1차 스프린트그래서 우리 서비스를 통해서 뭘 할 수 있는거야...? 우리 서비스가 정확히 어떤 가치를 제공하고, 어떤 서비스인지 한 번에 파악하기 힘들다는 피드백을 받았다. 원래 해당 주차에서 빠르게 배포를 진행 후 수정을 하려 했지만, '서비스가 무엇인지 모르겠다' 라는 지적은 큰 문제여서 UI/UX를 전면 수정한 이후에 배포를 진행하기로 했다. 그래서 1차 스프린트에서는 UI/UX 전면 개선을 진행했다. 백엔드에서는 운영 환경 구축을 위한 로깅 전략을 구축했고, 새로운 UI/UX에서 필요한 간단한 API들을 개발했다. 팀원 모두 다 만족하는 UI/UX 수정이었고.. 2025. 8. 11.
번아웃 오지 않기 (1편) 우테코를 처음 시작한 Level1과 비교했을 때 체력적으로도, 정신적으로도 조금은 지쳐있는 것 같다. 우테코는 내 인생에 있어 몇 오지 않을 소중한 기회다. 그리고 이 시간을 허투루 보내고 싶지 않아 정말 열심히 공부를 하고 있다. 보통 10시에 등교를 해서 22시에 퇴근을 한다. 자고 일어나서 다시 이 생활을 반복하고, 주말에도 개인적인 공부 혹은 프로젝트적으로 나에게 주어진 테스크를 수행한다. 요즘 내 삶에서 도파민이 터질 정도의 즐거움이 있을까? 물론 코딩은 재밌다. 하지만 무언가를 만들기 위해 수많은 회의를 하고, 팀원을 설득하고, 의견을 조율하는 과정이 생각보다 많은 체력을 소비하는 것 같다. 코딩은 재밌긴 하지만, 내 삶의 원동력이 될 수는 없다. 보통의 직장인은 금요일을 보고, 버티며 살아간.. 2025. 8. 3.
CORS Policy 에러 프론트 측에서 새로운 ip 값에 대해 cors를 추가해달라고 요청했다. 매우 간단한 작업이여서 바로 uri에 추가한다음, 넣었다고 말했다. 그런데도, 여전히 cors 오류가 발생했다.public void addCorsMappings(final CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:3000") .allowedOrigins("https://feedzupzup.com") // 추가한 주소 .allowedOrigins("https://api.feedzupzup.com") // 추가한 주소2 .. 2025. 7. 27.