안녕하세요😊

제품의 전체 사이클을 이해하며 비즈니스 목표 달성에 기여하는 백엔드 개발자입니다.
경험/기술

동아리 밤 대비: 부하 테스트와 APM 구성

동아리밤은 중앙 동아리 전체가 참여해 동아리들끼리 하는 축제와 같은 행사이다. 우리 동구라미는 실질적으로 유저가 아무도 없었기에 이번 행사에서 동구라미 서비스 활성화를 해보자고 논의했다. 행사에서는 최대 700명까지 참여할 수 있었기에 우리에겐 큰 기회였다. 이에 우리 동구라미는 동아리 연합회에 제안서를 제출했고 간발의 차로 과반수의 동의를 얻어 통과되었다. 이번 동아리밤을 맞아 우리는 동아리원 여부를 식별할 수 있는 기능을 새롭게 개발하여 행사에서 실제로 적용해 보기로 했다. 이를 위해 최대 동시접속자 350명(전체의 50%)을 목표로 부하테스트와 모니터링 환경을 구축할 예정이다. 부하 테스트는 Locust, APM은 Pinpoint를 활용하여 진행할 것이다. 부하 테스트 Locust부하 테스트를 진행..

경험/회고

2025 학생 창업유망팀 U300 후기

평소 창업에 관심이 많았고 교내에서 좋은 연이 닿아 조금의 컨설팅을 받게 되었다. 이를 출발점 삼아 23년도부터 구상했던 아이디어인 'seomse'를 가지고 창업 경진대회에 도전했다. 접수 및 선발우리는 '성장트랙 A'로 지원했고 팀장은 나, 기획자 1, 개발자 1 총 3명으로 구성했다. 기획자분은 창업 관련 경험이 있어 많은 도움을 주셨고 나는 설문조사와 인터뷰, 뷰티 관련 지인/지식, 그리고 서류심사에 필요한 시각 자료를 만드는데 힘썼다. 서류 심사서류 심사에서는 최종합격팀의 1.5배수(450팀)를 뽑는다. 개인적으로 느끼기에 '문제 인식' 부분이 잘 구성되어 있다면 충분히 통과 가능할 것 같다. 실제 인터뷰와 설문조사를 통해 문제를 검증했다면 비즈니스 모델에서의 가치 제안과 고객군 설정도 자연스럽게..

경험/이슈

낭비되던 동아리 프로젝트 비용: 리드를 맡아 80% 절감한 경험

교내 중앙동아리 'FLAG'에서 활동하며 능력을 인정받아(?) 동구라미 2기 PD로 프로젝트 리드와 백엔드 디렉팅을 맡게 되었다. 프로젝트를 맡자마자 가장 먼저 인프라 과금 현황과 실제 사용자 유입 여부를 분석했다. 내가 생각하기엔 인프라 규모는 오버 스펙이었고 서비스를 배포는 했지만 실질적인 이용으로 이어지지는 않는 상태였다. 1. 배포 자동화가장 우선적으로 개선한 부분은 배포 파이프라인이었다: 백엔드: 수동 배포에서 무중단 자동 배포로기존: FileZilla를 이용해서 서버에 직접 접속하여 수동으로 배포.개선: GitHub Actions와 nginx reload를 이용해 무중단 배포 환경을 구축.프론트엔드 & 모바일: 앱에서 웹으로 배포 비용 절감기존: 일반 동아리원들은 모바일 앱(aos, ios)..

경험/회고

병역특례를 끝내고 다시 대학교로..

약 2년 정도 병역특례로 회사에서 시간을 보내고 2024년도 하반기에는 대학교로 복귀해서 2학기로 엇복학을 했다. 회사에서의 경험 덕분에 대학교에서는 하지 못했던 많은 것을 경험했고 이 과정에서 개발자로서의 진로를 확정하게 되었다. ( "정말 살면서 다른 일을 개발보다 열정적으로 하고 몰입할 수 있을까? 라는 생각을 했을 때 진로를 확정하게 됐다." ) 대학교 첫 학기는 적응할 시간이 필요했고 친구가 없어서 친구 사귀기와 머신러닝, 딥러닝 등 조금은(?) 새로운 분야를 배우느라 적응하는 데 시간이 좀 걸렸다. 그래도 2025년도 상반기 1학기에는 F킬러라는 멘토-멘티 프로그램을 통해 25학번 친구들과 친해지고 학생회 친구들도 만나면서 학교생활 적응에는 성공적이었다. (다행히 화석인 나를 잘 놀아주었다....

경험/이슈

우당탕탕 자동 배포 개선

회사 내 프로젝트의 배포 시간이 긴 문제가 있었다. 이 문제를 다들 쉬쉬하고 있었지만, 이젠 이를 개선하기 위해 작업을 진행하려고 한다. 현재 평균 배포 시간은 대략 8분에서 10분 사이가 걸리고 있다. 배포가 느린 이유배포가 느린 이유는 빌드 속도가 매우 오래 걸렸다. ➜ NestJS를 사용하고 있었는데 ts를 js로 컴파일하는 과정이 매우 오래 걸렸다. 그 문제의 파일은 `filter.ts`로 배포시간이 긴 것만이 문제가 아니라 IDE 툴로 작업을 할 때 이 파일만 들어가거나 수정이 일어나면 IDE가 엄청 느려지고 정신을 못 차렸다... (작업하는데 매우 불편함) 간단하게 `filter.ts`를 보자면,export class typeOfFilter { @IsOptional() @IsString()..

경험/기술

nGrinder 간단하게 사용해보기

nGrinder 네이버에서 개발한 서버 부하 테스트를 위한 오픈 소스 프로젝트다. 애플리케이션을 개발하고 nGrinder에서 여러 가지 가상 시나리오를 만들어 트래픽이 몰렸을 때 성능을 측정할 수 있도록 도와준다. 부하 테스트 nGrinder nGrinder는 웹 애플리케이션 Controller와 자바 애플리케이션 Agent로 구성되어 있다. nGrinder 설치 https://github.com/naver/ngrinder/releases Releases · naver/ngrinder enterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub. gi..

경험/기술

[APM] 모니터링 도구 Scouter 도입

애플리케이션의 성능 모니터링을 위해 다양한 도구를 사용하고 있다. 이번에 도입해 본 Scouter는 LG CNS에서 개발한 APM(Application Performance Monitoring) 도구로, 애플리케이션의 성능을 실시간으로 모니터링하고, 문제를 식별하여 해결하는 데 필수적인 인사이트를 제공한다. Spring Boot: 3.0.11 Java: 17 WAS EC2: t4g.small (vCPU: 2, RAM: 2GB) (AMI: Amazon Linux 2 AMI (HVM)) APM EC2: t2.micro (vCPU: 1, RAM: 1GB) (AMI: Amazon Linux 2 AMI (HVM)) APM EC2 구성 ec2 생성은 다른 글에서도 너무 많이 다뤄서 넘어가겠다. JAVA 8 설치 s..

경험/이슈

[Scheduler] [AWS Lambda] 배치 시스템 구성

우선 배치시스템 전체적인 구조를 보자. GitHub - luckkids/luckkids-batch-server: 럭키즈 배치 서버 👨🏻‍💻🍀럭키즈 배치 서버 👨🏻‍💻🍀. Contribute to luckkids/luckkids-batch-server development by creating an account on GitHub.github.com Batch와 Scheduler의 차이배치(Batch)는 논리적 또는 물리적으로 관련된 데이터를 그룹화하여 일괄 처리하는 방법을 의미한다. 스케줄러(Scheduler)는 주어진 작업을 미리 정의된 시간에 실행할 수 있게 해주는 도구나 소프트웨어를 의미한다. 여기서 주의할 점은 배치는 대량의 데이터를 일괄적으로 처리할 뿐, 특정 주기마다 자동으로 돌..

호야_
개발잠