1\. 개요 거의 2달만에 블로그 포스팅을 다시 시작했습니다. 그동안 다양한 기업에서 면접과 코딩 테스트를 진행하며 블로그를 관리할 시간이 상대적으로 부족하여 Holliverse 테스트 관련 포스팅도 중간에 멈췄습니다. 결과적으로는…
1\. 개요 Holliverse 의 이탈률의 정의와 오케스트레이션 계산 엔진 설계는 아래의 포스팅에서 확인할 수 있다. [\[Holliverse\] 이탈률 구현 설계 (1) 이탈률의 생명주기 우리 서비스가 이탈률 시스템을 도입하게 된…
1\. 개요 이번 포스팅에서는 앞선 포스팅에서 작성한 5가지의 테스트 시나리오 중 Baseline Test 와 Peak Test 시나리오에 대해서 작성하겠다. [\[Holliverse\] 이탈률 구현 (1) Test Scenario…
1\. 개요 이번 포스팅에서는 앞선 포스팅에서 설계한 5가지 테스트 시나리오 중 Burst Test 를 다룬다. Baseline과 Peak Test는 각각 다른 질문에 답하는 테스트였다. Baseline 은 정상 구간에서 custom…
1\. 개요 해당 포스팅에서는 TR1L에서 통신사 월별 청구서 집계를 수행하는 Job를 처음 설계할 때 어떠한 기준으로 구조를 설계했는지 정리하고자 한다. 이번 글은 이후 성능 개선 결과를 설명하는 글이 아니라, 왜 처음부터 청구서…
1\. 개요 프로젝트 막바지에 관리자 API 중 안정성을 확인하기 위해 팀원이 K6를 활용한 경량 부하 테스트를 진행하였다. 이 테스트의 목적은 관리자가 동시에 API를 호출했을 때 서버가 기본적인 응답 성능과 안정성을 유지할 수 있…
1\. 개요 해당 글에서는 이전 글에서 정리한 이탈률 생명주기를 바탕으로, 각 이벤트가 어떤 방식으로 이탈률 계산에 반영되는지, 그리고 이탈률 임계치에 도달한 이유를 기록하기 위해 어떤 파이프라인을 구축했는지를 설명하고자 한다. 이번…
팀원들 모두 나를 포함해 도메인 모델링에 대한 이해도가 높지 않았기 때문에, 나는 공통 이해를 맞추기 위한 두 가지 방법을 제안했다. 첫째, Event Storming에 들어가기 전에 팀원 전원이 관련 강의를 먼저 수강하도록 했다.…
1달 반?만에 포스팅입니다.(프로젝트 너무 바빴어요.. 그래도 우수상 2개 ^^) 이제 \[LG U+\] 유레카 3기가 막 끝나서 진행한 프로젝트 문서 정리 및 회고 정리 시작할게요... 1\. 개요 Holliverse 프로젝트에서…
1\. 개요 이번 인프라를 설계하면서 가장 먼저 고민한 주제는 기능이 아니라 보안 경계 였습니다. Holliverse 는 구조상 고객용 웹앱과 관리자용 백오피스가 함께 존재합니다. 고객용 서비스는 누구나 접속할 수 있어야 하지만, 관…
1\. 개요 중앙 Infra Repository 하나로 배포 통합 이번에 인프라를 설계하면서 Network Architecture 다음으로 가장 먼저 손댄 영역은 CI/CD/CT였습니다. 개발을 빠르게 시작하고, MVP를 만들고, 실…
1\. 문제 발생 최근 변경된 On Demand 워크플로우를 구현하며 운영환경에서 배포 이후, 실행 과정(KST 기준: 2026년 3월 14일 11시 2분 15.769초)에서 예상하지 못한 장애를 직면했다. 해당 워크플로우는 Even…
2026년 3월 20일 (금)에 진행한 융합 프로젝트 경진 대회에서 본선 3팀 중 하나로 진출하게 되었다. 그 과정에서 서비스 전반을 다시 점검해보니, 그동안 계속 문제로 남아 있던 예외처리 부족을 이제는 제대로 개선해야겠다는 생각이…
우리 서비스가 이탈률 시스템을 도입하게 된 계기와 파이프 라인의 당위성은 아래 문서에서 확인할 수 있다. 이탈률 도입 이탈률 설계 Holliverse Wiki 안녕하세요. 저희 프로젝트는 크게 두 축으로 구성되어 있습니다. 하나는 고…
📘 1. 힙 영역 1) 힙 영역 Heap Area : JVM이 관리하는 프로그램상에서 데이터를 저장하기 위해 런타임 시 동적으로 할당하여 사용하는 영역. new 연산자로 생성되는 객체와 배열이 생성되는 영역. Q. static이 아…
📘 1. JVM의 개념 1) 기본 개념 : Java Virtual Machine 자바를 실행하기 위한 가상 기계 Java 는 OS(운영체제)에 종속받지 않고 실행할 수 있다. C언어 같은 경우 소스 코드 를 작성 → 컴파일러 : 기…
📘 1. Call By Value VS Call By Reference 스택 프레임 하나의 메서드에 필요한 메모리 덩어리 하나의 메서드당 하나의 스택 프레임. 메서드 호출 전 스택프레임을 자바 Stack에 생성 → 메서드 호출 메서…
[\[Shoot Pointer\] Refactoring01.설계의 원칙 스파게티 코드를 해결할 3가지 레시피 "소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인적 자원을 최소화하는 것이다." 로버트 C.…
Ureca 3기 백엔드 대면 교육을 들으며 따로 진행한 약 8주간의 데이터베이스 스터디 내용입니다. GitHub Study Castle/Database\ Study Contribute to Study Castle/Database\ S…
"소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인적 자원을 최소화하는 것이다." 로버트 C. 마틴 (Robert C. Martin) 게시판 도메인 클래스 다이어그램 현재 ShootPointer의 게시물…
Ureca 3기 백엔드 대면 교육을 들으며 따로 진행한 약 8주간의 데이터베이스 스터디 내용입니다. https://github.com/Study Castle/Database\ Study GitHub Study Castle/Databa…
Ureca 3기 백엔드 대면 교육 을 들으며 따로 진행한 약 8주간의 데이터베이스 스터디 내용입니다. https://github.com/Study Castle/Database\ Study GitHub Study Castle/Datab…
1. 배경 1\. 문제 상황 Shoot Pointer 는 현재 Jenkins 를 이용하여 CI/CD 파이프라인을 구축하여 운영 중입니다. 프론트엔드와 AI 쪽과의 좀 더 원활한 테스트 진행을 위해서 Ubuntu LTS 기반의 홈서버를…
1. 배경 [2025.09.25 \[프로젝트/Shoot Pointer\] \[Shoot Pointer\] 게시물 검색 성능 개선 ElasticSearch 도입기(1) (Docker를 이용한 ElasticSearch + Kibana 구…
1\. 배경 기존 Shoot Pointer 에서 게시물 전체 검색을 개발하면서, 제목 또는 내용을 바탕으로 검색으로 like 연산을 사용하고 있었습니다. 여기서 문제가 되는 부분은 단순히 검색 단어의 유무만을 판단하고 이를 최신순으로…
1\. 배경 Shoot Pointer 프로젝트를 진행하던 중 유저가 자신의 하이라이트 영상을 올릴 수 있는 게시판을 구현하던 중에 좋아요의 개수를 Post 테이블에서 관리하면서 동시성 문제가 발생할 것 같다고 예상할 수 있었습니다.…
개요 LG 유플러스 에서 교육하는 유레카 3기 SW 교육 백엔드과정(대면) 과정에 합격했습니다. 방학동안 앞으로의 플랜을 다음과 같이 A, B, C를 세워두었습니다. A. 스타트업 혹은 중견기업 이상의 서비스 기업에서 인턴활동. B.…
1\. 배경 해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. SWYP 8기 의 서비스 제출 및 시연이 2주 정도밖에 남지 않았습니다. 우리의 서비스 Qampus 의 주요 질문 및 답변의 CRUD는 백엔드 팀원분인 재하님이 어…
해당 글을 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 주요 메서드 설명. void init() NurigoApp 라이브러리를 이용하여 coolsms 의 message api 초기화 메서드. SingleMessageSe…
해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 웹 및 앱 어플리케이션에서 로그인 시도가 반복적으로 실패하는 경우, 단순히 사용자의 실수이 수도 있지만 Brute Force 공격일 가능성 또한 존재합니다. 이러한…
해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 SWYP 8기의 서비스의 제출 및 시연이 2주정도밖에 남지 않았다. 우리의 서비스 Quampus의 주요 질문 및 답변의 CRUD작성은 같은 백엔드 팀원분인 재하님이…
해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 프론트엔드에서 대학교 지도 부분 파트를 담당하신 분께서 기존 프론트엔드 내부 로컬 파일 형태로 저장하던 대학교의 위도와 경도를 서버에서 정보를 저장한 후 이를 조회…
해당 글은 노션에 작성한 글을 티스토리로 재게시했습니다. 1\. 배경 Vero LLM 대화 이미지(1) Vero LLM 대화 이미지(2) 위 사진들과 같이 Vero 의 주요 기능인 다양한 LLM 과의 대화부분에서 이전 채팅 내용을 불…
1\. 배경 [\[WealthTracker\] 성능 개선 이야기 (3)SQL 쿼리 튜닝 1.배경WealthTracker 서비스에서 제공하는 /api/expend/graph API는 사용자의 지출 데이터를 주차(week) 단위로 요약하…
1.배경 WealthTracker 서비스에서 제공하는 /api/expend/graph API는 사용자의 지출 데이터를 주차(week) 단위로 요약하여 시각화에 활용되는 중요한 API입니다. 해당 API에서 사용되는 서비스 로직은 아래…
1\. 배경 이전 게시물에서는 단순히 API 조회에 따라 아래와 같은 지표들을 확인할 수 있었습니다. Total Request Per Second (초당 전체 요청 수) 그래프 Response Time (응답 시간) P95와 P50…
1\. 배경 WealthTracker 서비스의 핵심 API 중 유저의 지출 내역을 그래프로 표현하기 위한 /api/expend/graph의 성능을 점검하기 위해 부하 테스트를 진행했습니다. 이번 테스트에서는 최대 1,000명의 유저가…
1.배경 보안을 주제로 하는 웹/앱 공모전 중 우리 플랫폼의 세부주제는 AI 보안 솔루션제공 이다. 따라서, 기업 또는 개인이 Vero 를 안전하게 사용할 수 있도록 가장 첫 번째 단계인 회원가입과 로그인 단계에서부터 보안성을 강화하…
1.배경 WealthTracker에서는 사용자가 지출 내역을 입력할 때 카테고리를 선택하게 된다. 기본 카테고리는 납부, 식비, 교통, 오락, 쇼핑, 기타 등이며, ENUM으로 관리하고 있다. 문제는 사용자가 새로운 카테고리를 추가할…