profile
빠르게 실패하고 자세하게 학습하기
post-thumbnail

스프링 Dynamic Datasource Routing

서론 안녕하세요. 이번에는 스프링 다중 데이터소스 라우팅에 대해서 정리를 하겠습니다. 프로젝트를 하다보면 하나의 DB를 바라보는 경우는 거의 드물기 때문에 설정에 대해서 한번 보시면 도움이 될 수 있다고 생각하여 정리를 했습니다.

2024년 4월 16일
·
0개의 댓글
·
post-thumbnail

단위 테스트 (Unit Testing) 책 리뷰

이번에 회사에서 책 지원으로 단위 테스트 책을 구매하였습니다. 관련 링크 책을 읽고 단순히 작성한 테스트 코드에서의 문제점을 알 수 있었고 지금 근무하고 있는 현업에서 어떻게 적절하게 도입할 수 있을까? 생각할 수 있는 좋은 기회가 되었습니다.https://d

2024년 3월 24일
·
0개의 댓글
·
post-thumbnail

JUnit5, AssertJ 활용방법 및 Spring boot 테스트 코드 작성법

처음에 테스트 코드 작성한 이유는 취업을 위해서 시작을 했습니다. 하지만 시간이 지나면서 테스트 코드를 안쓰면 더 어색하고, 개인적으로 느끼고 학습한 테스트 코드의 장점과 단위 테스트를 진행을 해야되는 이유를 팀 또는 다른 사람들에게 공유하기 위해서 테스트코드 시리즈를

2024년 3월 23일
·
0개의 댓글
·
post-thumbnail

Jenkins Pipeline CI/CD + SSHAgent ( Docker Version )

이후 Jenkins에 들어가서 SSH Private키 설정한 이후 SSH Agent를 설치를 해야 됩니다. 플러그인 관리 > Avaliable Plugins > SSH Agent Plugin > 설치 후 재 실행 > Installed plugins에 설치가 되었는지 확

2024년 3월 22일
·
0개의 댓글
·
post-thumbnail

[CI/CD] Jenkins + SVN + CodeDeploy를 이용한 Pipeline Blue-Green 무중단 배포

업무에 적용하기 위하여 무중단 배포를 구축하고 학습한 내용을 공유하기 위해 글을 작성을 하였습니다. 기존에 CI/CD를 구축하지 않고 war를 fileZira 또는 SCP를 통해서 war파일을 target에 전달하여 스크립트로 실행하는 환경을 경험하면 주말에 알아서 학

2024년 3월 16일
·
0개의 댓글
·
post-thumbnail

인덱스

백엔드 개발자로 근무하면서 학습이 필요한 부분은 매우 많다. 취준을 하면서 데이터베이스 인덱스를 공부를 하였다. 그런데 추가적으로 글을 작성하는 이유는 인덱스의 중요성 때문이다.결국 병목이 발생하는 부분은 많은 데이터가 있는 데이터베이스 부분에서 자주 발생한다. 이

2024년 2월 27일
·
0개의 댓글
·
post-thumbnail

@ MybatisTest 트랜잭션 동작하지 않는다.

회사에서 Mybatis를 사용한다. 도중에 테스트 코드를 작성하면서 (@MybatisTest) 트랜잭션이 동작하지 않는 문제점을 발견을 했다. 테스트를 위해서 스프링부트에서 지원하는 @MybatisTest를 작성하고 write 작업을 작성을 하였습니다. 테스트를 통과하

2024년 2월 20일
·
0개의 댓글
·
post-thumbnail

Spring에서 Server-Sent-Events(SSE) Scale Out 메세지 사용없이 MySQL Polling (Change Data Capture)

서론 안녕하세요. 이번에는 Spring으로 SSE에 대해서 알아보겠습니다. 일단 웹 애플리케이션을 개발하다보면 클라이언트 요청이 없어도 서버에서 데이터의 변경 또는 조건이 발생하면 데이터를 전달해줘야 하는 경우가 있습니다. 대표적으로 알림, 랭킹 시스템, 뉴스피드 등

2024년 2월 18일
·
0개의 댓글
·
post-thumbnail

다중 서버 환경에서 세션 불일치

서론 [ 글을 작성한 배경 ] 최근 업무를 진행하면서 분산 환경에서 세션의 불일치를 해결하면서 학습한 내용을 기록하기 위해 작성했습니다. [ 문제 상황 ] 단일 서버에서 세션을 관리하면 WAS에서 세션이 관리가 가능하다. 하지만 서버가 2개가 된다면 WAS에서 세션

2024년 1월 24일
·
0개의 댓글
·
post-thumbnail

MySQL 8.0 아키텍처

이전에 Real MySQL을 보면서 학습을 하였지만 SQL 레벨업 책을 읽고 추가적으로 학습이 필요한 부분을 작성을 하였다.우리가 아키텍처에 대해서 알아야 하는 이유는 쿼리를 입력을 하였을 때 관계형 디비에서 (mysql) 해당 동작을 어떻게 처리하고 성능을 가질지 이

2024년 1월 7일
·
0개의 댓글
·
post-thumbnail

Modern JAVA 8 람다 (feat. Effectively Final)

Java는 객체지향 언어이기 때문에 기본적으로 함수형 프로그래밍이 불가능하다. 하지만 JDK8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 Java를 이용해 함수형으로 프로그래밍할 수 있는 API 들을 제공해주고 있다.First Class Cit

2024년 1월 7일
·
0개의 댓글
·
post-thumbnail

지옥의 2023년 회고록

어느덧 23년이 다 지났습니다. 23년은 인생에서 제일 힘들어 제일 기억에 남아 2023년을 돌이켜보면서 경험, 아쉬웠던 점, 앞으로 계획에 대해서 생각을 해보기 위해서 회고록을 작성을 하였습니다.4학년 2학기에 국비지원과 학과를 다니면서 동시에 개발을 시작을 했습니다

2023년 12월 28일
·
0개의 댓글
·
post-thumbnail

N+1 문제 다양한 해결법

서론 JPA를 학습하면 무조건 듣는 키워드는 N+1 이다. 보통 블로그에서 소개하는 방식은 fetch join을 통하여 문제를 해결한다고 이야기한다. 물론 틀린 방식은 아니다. 하지만 실제 프로젝트를 만들면서 N+1 문제를 많이 만나보면서 N+1을 처

2023년 11월 26일
·
0개의 댓글
·
post-thumbnail

HTTPS 적용(Feat. Certificate Manager, ELB, Route 53, 가비아)

프로젝트에서 jwt를 보내기 위하여 쿠키를 사용을 한다. 이때 브라우저 크롬의 80버전 이후부터 쿠키를 보내기 위해서 sameSite, Secure설정이 필수이다. 이때 http를 통하여 보내면 크롬에서 정상적으로 쿠키를 받지 못하여 도업을 하게되었습니다.기존의 HTT

2023년 11월 19일
·
0개의 댓글
·
post-thumbnail

Jackson SerializationException (LocalDateTime) + redis.serializer.SerializationException

프로젝트를 진행을 하면서 직, 역직열화를 하는 과정에서 오류가 발생을 하였습니다. 주로 LocalDateTime 프로젝트 링크 주로 에러가 발생하는 과정을 총 2곳입니다. 테스트 코드를 진행을 하면서 HTTP 요청과 검증을 분리를 하였을 때 데이터 매핑과 Redis에

2023년 11월 13일
·
0개의 댓글
·

특정 시간에 Shell Crontab을 이용한 Redis RDB 방식으로 백업

CStudy 프로젝트를 진행을 하면서 Redis를 사용을 하였습니다. 로컬 캐시를 사용하지 않은 이유는 다양한 자료구조, 분산처리의 유용하다고 생각하여 선택을 하였습니다.Redis에는 캐싱, 회원의 점수, 문제에 대한 정보를 저장하기 때문에 데이터의 정합성이 중요합니다

2023년 11월 10일
·
0개의 댓글
·
post-thumbnail

[AWS] CloudWatch, Lambda의 경보를 Slack으로 알림

일단 프로젝트에서 EC2에 DB를 설치하여 사용을 하고 있었습니다. 그런데 갑자기 DB 서버의 CPU가 100%가 되어서 시스템의 오류가 발생을 하였습니다.시스템의 오류가 발생한 이유는 다음과 같다. CPU가 100%가 되며 서버가 다운이 되었습니다.물론 서버가 다운

2023년 11월 9일
·
0개의 댓글
·

Github Actions + CodeDeploy로 CI/CD 구현하기

안녕하세요. 이번에는 Git Action으로 배포 자동화를 수행을 하였습니다.이전에는 Jenkins를 통해서 배포 자동화를 하였지만 Git Action으로 배포 자동화를 수행을 하였습니다.Jenkins에서 Git Action으로 변경한 이유는 일단 Jenkins는 설치

2023년 10월 2일
·
0개의 댓글
·

[ Github ] Organizations Push The requested URL returned error: 403

새로운 팀과 함께 프로젝트를 하면서 이전에 만났던 문제를 또 만났다. 이걸 팀원들에게 설명을 하였고 다음에 같이 일하는 분들에게 사용할 수 있게 문제를 해결하기 위하여 작성을 한다.프로젝트를 하면서 개인 repository에 개발을 하지 않고 보통 Organizatio

2023년 9월 11일
·
0개의 댓글
·