profile
자기주도형 개발자
post-thumbnail

CQS 패턴 적용 및 read/write DB 분리하기 - AWS Aurora

CQS패턴, DB Replication

2022년 8월 10일
·
0개의 댓글
·
post-thumbnail

동시성 문제 해결하기 V3 - 분산 DB 환경에서 분산 락(Distributed Lock) 활용

동시성 문제, 분산 락, Distributed Lock

2022년 8월 2일
·
2개의 댓글
·
post-thumbnail

동시성 문제 해결하기 V2 - 비관적 락(Pessimistic Lock)

동시성 문제, 비관적 락, Pessimistic Lock

2022년 7월 27일
·
0개의 댓글
·
post-thumbnail

동시성 문제 해결하기 V1 - 낙관적 락(Optimistic Lock) feat.데드락 첫 만남

낙관적락, 동시성 문제, Optimistic Lock

2022년 7월 25일
·
4개의 댓글
·
post-thumbnail

이벤트 기반, 서비스간 강결합 문제 해결하기 - ApplicationEventPublisher

서비스간 강결합 문제 해결, ApplicationEventPublisher

2022년 7월 22일
·
0개의 댓글
·
post-thumbnail

[JWT] 세션 의존성 제거하기 - 커스텀 어노테이션 활용

토큰 기반 인증 방식으로 소셜 로그인 및 회원가입 기능을 구현했다.그런데 구현하고 보니, 토큰을 세션에 저장하고 세션에서 해당 토큰을 꺼내서현재 로그인한 사용자를 가져오도록 구현을 했다.세션 기반 인증방식의 문제점을 해결하기 위해 토큰 기반 인증방식이 등장했는데, 두

2022년 6월 6일
·
0개의 댓글
·
post-thumbnail

[AWS] ALB 및 HTTPS 프로토콜 적용하기

AWS ALB 적용, HTTPS 프로토콜 적용

2022년 5월 29일
·
0개의 댓글
·
post-thumbnail

JWT란? JWT , Session, Cookie 비교

세션기반 인증 방식과 토큰기반 인증 방식 모두 구현해 봤지만, 두 인증방식 모두 왜 쓰는지에 대해서는 모른채 구현했다. 적어도 이런 개념들이 왜 등장했고, 각 어떤 장단점이 있는지 알고 쓰기 위해 글을 쓴다.그리고, 한 면접에서 JWT를 사용할 때 Refresh Tok

2022년 5월 14일
·
2개의 댓글
·
post-thumbnail

MySQL 해시 조인(Hash join) 알고리즘

0. 이 글을 쓰는 이유 > MySQL 5.xx 버전과 8.xx 버전은 많은게 바뀌었다. 8.xx 버전으로 가면서 대표적으로 변경된 점들 중 하나를 말해보라고 하면, 여러가지가 있겠지만 해시 조인을 포함할 수 있을 것 같다. 해시조인을 이야기 하기 전에, NL과 블록

2022년 5월 4일
·
0개의 댓글
·
post-thumbnail

Nginx란? (내부 동작 구조 및 성능에 대하여)

0. 이 글을 쓰는 이유 > 회사에서 Nginx 관련 이슈가 생겼고, 이를 해결하기 위한 방법은 알게되었지만, 내부적으로 자세한 이유는 몰랐다.그냥 그렇구나 하고 넘어갔기 때문에, Nginx가 무엇인지, 왜 등장했는지, 어떻게 동작하는지, 다른 모델과 어떤 차이점이

2022년 4월 22일
·
2개의 댓글
·
post-thumbnail

MySQL Double Write Buffer

사진에서처럼 하나의 세그먼트는 여러 익스텐트를 가지고, 각 익스텐트는 여러개의 블록으로 이루어져 있다.여기서 블록은 사용자가 입력한 데이터(레코드)가 실제로 저장되는 공간으로 데이터를 읽고 쓰는 단위이다. 즉 DB에서 하나의 row 이다.오라클에서는 블록이라는 단위로

2022년 4월 5일
·
0개의 댓글
·
post-thumbnail

MySQL MVCC란?

Lock이란 데이터베이스의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화 장치 개념이다. 여러 종류의 Lock이 존재하지만, MVCC 개념을 이해하는데 있어 필요한 필요한 공유락과, 베타적락만 간단히 설명한다.데이터를 읽을 때 사용한다

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

Java8 Optional이란?

1. Optional 1-1. 탄생 배경 - 왜? 자바8 이전에는 메서드가 값을 반환할 수 없는 상황인경우 두 가지 선택지가 존재했다. 예외 던지기 null 반환하기 예외를 던지는 경우에는 스택 추적 전체를 캡처하는 비용문제가 있다. null을 반환

2022년 1월 26일
·
0개의 댓글
·
post-thumbnail

Spring AOP를 활용해 로깅하기

이론적으로 학습한 프록시, Spring AOP를 프로젝트에 적용해보자.homeController UserAspect Aspect 클래스를 만들고 빈으로 등록한다.@Around 어노테이션으로 포인트 컷을 정의했다. \- 접근제어자 → 생략 \- 반환 타입

2022년 1월 5일
·
0개의 댓글
·
post-thumbnail

[Spring] DI(Dependency Injection) 정리

Dependeny Injection(DI)이란 의존관계 주입이라고 한다. 객체를 직접 생성하지 않고 외부에서 생성한 후 주입시켜준다.생성자 주입을 제외한 나머지 DI 방법들의 순서는 다음과 같다.스프링 컨테이너에 스프링 빈 모두 등록빈 관계 설정(연관관계 주입)생성자

2021년 12월 30일
·
0개의 댓글
·

리팩토링 - Stream API 사용

무조건적으로 Stream을 사용하는건 좋지않다. 관련 내용은 아래 링크들을 참고하고반복문을 찾아서 변환할만한게 있는지 찾아보고 변환하는게 더 낫다면 리팩토링 해보자.Stream이란 - Java Stream API란? 이펙티브 자바 - Item 45 스트림은 주의해서

2021년 12월 26일
·
0개의 댓글
·
post-thumbnail

Java Stream API란?

자바8부터 추가된 API로 스트림은 데이터 소스를 추상화하고 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 데이터 소스를 추상화 한다는 것은 데이터 소스 즉 타입이 무엇이든간에 같은 방식으로 다룰 수 있고 코드의 재사용성이 높아진다는 것을 의미한다.기존에

2021년 12월 26일
·
0개의 댓글
·
post-thumbnail

log4j 공격 시도 발견 후 패치

어느 날 로그를 확인해보니 이런 로그들이 찍혀있었다. JNDI..? 혹시..?공격시도하다가 실패한건지 모르겠지만 아무튼 인스턴스가 채굴기로 변신해서 요금폭탄 맞을지 모르니 취약점을 패치하자.스프링 부트 스타터 log4j2를 사용하고 있었고 버전 확인해보니 2.15버전을

2021년 12월 18일
·
0개의 댓글
·
post-thumbnail

리팩토링 - 불필요한 객체 생성을 피하라

이펙티브 자바 ITEM6 에서 "불필요한 객체 생성을 피하라" 라는 주제를 다룬다.자세한 내용은 링크를 참고하자.클라이언트에서 입력받는 데이터에 대한 검증을 처리하는 과정에서 해당 아이템과연관된 내용이 있어 적용해보고자 했다.쿠폰의 개수에 대한 값이나 아예 입력하지 않

2021년 12월 16일
·
0개의 댓글
·