본문으로 건너뛰기

Blog

총 98개의 글

Dev Tools & Environment

Tistory에서 Mermaid 다이어그램 다크모드 자동 전환 구현하기

> "pronist/hello 스킨과 완벽하게 동기화되는 Mermaid 다이어그램 만들기" 기술 블로그를 운영하다 보면 다이어그램은 필수입니다. 복잡한 아키텍처를 설명하거나 플로우차트를 그릴 때 Mermaid만큼 편리한 도구도 없죠.하지만 다크모드가 대세가 된 지금, 한 가지 문제가 있었습니다: 특히 Tistory + pronist/hello 스킨을 사용하

Mermaid
Performance & Optimization

하루 4번 서버가 죽는 사내 어드민, Lambda로 구원받다

> "하루 4번 서버가 죽는 이유를 찾아서" 마케팅 프로젝트는 전형적인 사내 어드민 시스템입니다. 평상시에는 문제없었습니다. 하지만 새로운 요구사항이 들어왔습니다: 그리고 매일 4번, 조용하던 서버에 지옥이 펼쳐지기 시작했습니다. 최악의 타이밍: 오전 9:30과 오후 3:30은 마케팅 팀이 가장 활발하게 사용하는 시간이었습니다. 문제점: - t4g.smal

Performance AWS AWS Lambda
Performance & Optimization

TypeORM Gzip을 활용한 데이터 압축 및 최적화

사내 프로젝트에서 구글 빅쿼리 데이터를 조회하고 특정 시점의 스냅샷을 저장해야 하는 요구사항이 있었습니다. 처음엔 MySQL을 선택했지만 향후 S3 연동도 고려하고 있습니다. - MySQL의 JSON 타입 컬럼으로 데이터를 저장했습니다. - 다수의 부동소수점(float) 값이 포함된 JSON 데이터에서 부동소수점 오차로 인한 데이터 불일치가 발생했습니다.

TypeORM Optimization
Architecture & Design

사내에서 새로운 아키텍처 제안하기 (NestJS) – 순환 참조 문제 해결 & UseCase 패턴 적용 (2)

기존 Layered Architecture의 문제점을 해결하기 위해 UseCase 패턴을 적용하여 Application Layer를 추가한 구조를 제안합니다.✅ 핵심 개선점: - 서비스 간 직접 호출을 제거하고, UseCase 단위로 비즈니스 로직을 모듈화 - Application Layer를 추가하여 비즈니스 로직을 분리하고, 서비스 간 결합도를 낮춤 -

Architecture NestJS
Architecture & Design

사내에서 새로운 아키텍처 제안하기 (NestJS) – 기존 아키텍처 문제점 분석 (1)

마지막 글을 작성한 지 벌써 3개월이 지났네요. 정신없이 업무를 하다 보니 블로그를 잠시 쉬었는데, 최근 실무에서 아키텍처 개선을 고민하면서 공유하고 싶은 내용이 많아졌어요.사실 이 내용은 사내 기술 세미나에서 2주에 한 번씩 공유했던 내용인데, 내부 환경에 맞춰 다듬다 보니 블로그에 바로 올리지는 못했어요. 이번 기회에 정리해서 공유해보려고 합니다. --

Architecture NestJS
Career & Growth

항해 플러스 백엔드 코스 6기 수료 회고

항해 플러스 백엔드 코스를 수료하게 되었습니다. 10주라는 시간은 짧게 느껴질 수도 있지만, 실제로는 꽤 긴 여정이었습니다. 9월 중순부터 11월 말까지 휴식 없이 달려온 제 자신에게 칭찬을 보내고 싶습니다. (사실, 사전 스터디까지 포함하면 더 긴 여정이었습니다.) 대학교 3학년 때 교수님의 회사로 조기 취업하며 만 3년 2개월 동안 SI, B2C, B2

Learning Bootcamp
Career & Growth

항해 플러스 백엔드 코스 6기 9주차 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력하시면 `20만원` 할인 혜택을 받을 수 있습니다. 항해 플러스 과정에 관심 있는 분들은 아래 링크를 통해 신청해보세요! 궁금한 점이나 커피챗을 원하시면 LinkedIn이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 개발자 커리어 개척 캠프 항해99, 첫 취업부터 현직자 역량

Learning Bootcamp
Career & Growth

항해 플러스 백엔드 코스 6기 8주차 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력하시면 `20만원` 할인 혜택을 받을 수 있습니다. 항해 플러스 과정에 관심 있는 분들은 아래 링크를 통해 신청해보세요! 궁금한 점이나 커피챗을 원하시면 LinkedIn이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 --- 이번 주차에는 인덱싱을 사용한 쿼리의 성능 개선을 진

Learning Bootcamp
Career & Growth

NAVER DAN 24 DAY 2 후기

이번에 네이버에서 열린 DAN 24 컨퍼런스에 다녀왔다. 컨퍼런스를 갈 때마다 느끼는 거지만, 새로운 인사이트를 얻을 수 있는 기회라 항상 설레는 마음으로 참여하게 된다. 이번 컨퍼런스도 다양한 체험과 세션이 준비되어 있어서 기대 이상의 재미와 배움을 얻을 수 있었다. 사실 최근에도 여러 컨퍼런스에 다녀왔다. 1. 2024 원티드 리크루팅 카니발 | AI

Conference
Career & Growth

항해 플러스 백엔드 코스 6기 7주차 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력하시면 `20만원` 할인 혜택을 받을 수 있습니다. 항해 플러스 과정에 관심 있는 분들은 아래 링크를 통해 신청해보세요! 궁금한 점이나 커피챗을 원하시면 LinkedIn이나 `kboxstar@gmail.com`으로 연락주세요. 항해 플러스 과정 페이지 개발자 커리어 개척 캠프 항해99, 첫 취업부터 현직자 역

Learning Bootcamp
Performance & Optimization

캐시(Cache) 와 캐싱 전략(Caching Strategy)

콘서트 예약 프로젝트에서 API 응답 속도 개선과 서버 부하 감소를 위해 캐시를 적용하려 한다. 이를 위해 캐시의 개념과 다양한 캐싱 전략을 학습하고, Redis를 활용하여 캐시를 구현하는 방법을 알아보자. 캐시(Cache)는 컴퓨터 시스템에서 자주 사용되는 데이터나 값을 임시로 저장하여 동일한 데이터 요청 시 더 빠르게 접근할 수 있도록 하는 고속 저장소

Cache Performance
Career & Growth

항해 플러스 백엔드 코스 6기 6주차 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력하시면 `20만원` 할인 혜택을 받을 수 있습니다. 항해 플러스 과정에 관심 있는 분들은 아래 링크를 통해 신청해보세요! 궁금한 점이나 커피챗을 원하시면 LinkedIn이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 개발자 커리어 개척 캠프 항해99, 첫 취업부터 현직자 역량

Learning Bootcamp
Backend Development

Spring Boot Redis를 활용한 분산 락 구현

동시성 제어에는 여러 기법이 있다. 이전에는 비관적 락과 낙관적 락을 사용해 동시성 제어를 구현했지만, 이번에는 Redis를 이용한 분산 락을 다루어보자. 비관적 락과 낙관적 락에 대해 더 알고 싶다면 JPA 비관적 락과 낙관적 락 및 재시도를 참고하면 된다. 분산 락은 여러 서버와 데이터베이스 환경에서 동시성 제어를 위해 사용된다. 단일 DB 환경에서는

Concurrency Java Spring Boot Redis
Career & Growth

항해 플러스 백엔드 코스 6기 5주차 및 챕터 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력하시면 `20만원` 할인 혜택을 받을 수 있습니다. 항해 플러스 과정에 관심 있는 분들은 아래 링크를 통해 신청해보세요! 궁금한 점이나 커피챗을 원하시면 LinkedIn이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 개발자 커리어 개척 캠프 항해99, 첫 취업부터 현직자 역량

Learning Bootcamp