Dowon Lee

Middy & Esbuild를 이용한 프로젝트 구조 개선하기

팀원과 함께 현재 프로젝트의 구조에 대해서 개선할 방향들에 대해서 많은 얘기를 나누었을 때 당장의 가장 큰 문제점으로 신규 서비스를 개발하거나 혹은 기존 서비스를 유지보수할 때에 발생하는 비용에 대한 얘기가 많이 있었다. 이러한 문제를 개선하고 앞으로 유연한 방향으로 개발을 하기위해 적용한 Middy(Middleware Framework) 그리고 E...

엑셀 다운로드 모듈 만들어보기 with Apache POI

대용량 데이터 엑셀 다운로드 메모리 이슈 해소를 위해 공통 모듈을 개발했던적이 있다. 당시에는 해당 시스템의 요구사항을 최소한 만족할 수 있게 구현했었다. 모듈을 다시 보면서 모듈 사용자 기준에서 어떠한 불편함과 구조적인 문제가 있는지 확인해보았고, 기존의 목적에 맞게 모듈을 재구성하여 해보고자 한다. 엑셀 다운로드 모듈 개발 목표 스타일과 ...

대용량 트래픽 경험해보기(13/14) - MSA 적용기

이전 여행 플래너 서비스는 인프라 구축 및 부하에 대한 대응 구성을 통해 대용량 트래픽 처리를 진행했다. 초기 구조는 모놀로식 아크텍처를 목적으로 벡엔드 개발을 진행하면서 앞으로 서비스의 구조를 마이크로 서비스 아키텍처를 기반으로 진행해보려한다. DDD(Domain-Driven Design : 도메인 주도 설계) MSA 설계 방법론으로 도메인 주...

대용량 트래픽 경험해보기(6/14) - nGrinder 환경 구축

nGrinder 부하 테스트 도구 종류는 여러가지가 있다. 그 중 nGrinder를 사용해보려 한다. nGrinder는 네이버에서 개발한 오픈소스 부하 테스트 도구로 스크립트 생성과 테스트 진행 과정을 모니터링 할 수 있으며, 테스트가 종료되면 UI를 통해 최종 결과 보고서를 확인할 수 있다. 단순히 부하만을 발생시키는 것이 아니라 스크립트를 작...

대용량 트래픽 경험해보기(1/14) - 주제 및 분석

대용량 트래픽에 대한 처리 경험이 없었다. 트래픽이 변화하면서 발생하는 이슈에 대해서 처리할 수 있는 경험이 필요했다. 실제 운영할 서비스는 아니지만, 만들고 싶었던 서비스를 설계부터 배포까지 대용량 트래픽에 대한 처리 과정을 테스트와 모니터링 등 다양한 도구들을 통해서 어떠한 과정을 통해서 트러블 슈팅을 했느지를 적어보려한다. 대용량 트래픽 사실...

Spring Boot 3 + Swagger

Spring Boot 3에서 SpringDoc과 Swagger를 이용해 API 문서 자동화 해보기

2022년에 지인과 함께 재고관리 시스템을 만들었을 때 수동으로 API 문서를 작성했습니다. 지금 생각해보면 API 문서를 자동화할 수 있는 기술에 대해 찾아보자는 생각도 없이 예전 경험만 생각해서 작업했네요. Spring Boot에 대해서 공부하면서 Swagger에 대해 알게되었고 재고관리 시스템의 일부 API에 적용한 내용을 정리해보고자 합니다....

Redis

Redis Master/Replica(Slave), Sentinel, AOF With Docker

작년에 재고 관리 시스템 버전을 업그레이드하면서 Redis를 사용했습니다. 당시에는 단순히 토큰관리 용도로만 사용했지만, 인메모리 DB Redis를 이용해 서비스를 운영할 때 어떠한 기술을 이용할 수 있는지 그리고 AOF 매커니즘으로 어떻게 백업을 해야하는지에 대한 공부를 하면서 내용을 정리해보았습니다. Redis란? Redis란 오픈 소스 인메모...

Spring Boot + Docker + Github Actions를 활용한 CI/CD 환경 구축

재고관리 시스템을 운영할 때 초기에는 개발 기간이 짧아 급한대로 수동배포를 했으나, 빌드/테스트 과정에서 체크해야하며 배포 과정에서 불필요한 설정도 같이 배포되어 재작업으로 인한 많은 시간소요와 불편함이 있어 당시에 구축한 CI/CD 환경을 정리해보고자 합니다. 환경 구축 전 CI/CD에 대한 정의를 보겠습니다. CI/CD CI란? CI는 간단...