PeNeKKKKkkk

프록시 패턴이란?

프록시 패턴 이란 한줄 요약 : 프록시 패턴은 어떠한 객체를 대신하여 접근을 제어하는 등의 기능을 추가하는 디자인 패턴이다. Proxy는 직역하면 대리를 뜻한다. 즉, 무언가를 대신 처리해주는 것이다. 순차 다이어그램으로 그려보면 다음과 같다. 사진에서 보이듯 클라이언트는 실제 객체에 접근하지 않고, Proxy를 통해 접근하고 있다. 따...

Public Repository에서 민감정보가 담긴 파일(application.yml)를 감추는 방법

서론 스프링부트에선 application.propertise혹은 application.yml을 통해 애플리케이션 설정을 할 수 있습니다. 대표적으로 MySQL 접속정보 (아이디, 패스워드…)가 이 파일에 담깁니다. 저는 예전에 이 파일을 제대로 관리하지 못해서 협업하는 팀원이 실수로 DB를 초기화 시키는 상황을 겪게 되었습니다 (포스트 참고). 과거...

떠나간 데이터... 끄나풀이라도 잡아보자... 😱 (MySQL binlog)

어느 한 날… 프로덕션 서버 (실운영은 안하고 있는 상태)에 생성해놓은 더미 데이터들이 몽땅 사라지는 일을 겪었습니다. 다시 일일이 만들기는 귀찮아서 집 나간 데이터를 되찾아보는 시간을 가졌습니다. 사건 조사 프론트엔드 개발하는 친구로부터 API가 동작하지 않는다며 연락을 받았습니다. 그래서 뭐지? 하며 JAVA 로그를 보는데… 칼럼이 발견되지 않는...

Preview Image

선착순 쿠폰 발급을 만들어보며 배우는 동시성 제어 (Select For Update)

본 포스트에선 선착순 쿠폰 발급을 직접 만들어 보며 직면하게 되는 동시성 문제에 대해 설명하고, 해결하는 과정을 담았습니다. 들어가기 앞서 간단히 구현할 웹 사이트에 대해 간단하게 설명드리고 시작하겠습니다. 쿠폰의 종류 마다 한정된 수량 만큼 발급 할 수 있습니다. thymeleaf로 간단히 구성된 화면은 다음과 같습니다. 메인화면 ...