일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

spring boot 13

CloudFront와 S3를 이용한 정적 데이터 조회 (2)

포스팅 1탄에 이어서 2탄을 들고 왔다. 1탄과 기능의 전반적인 개념을 정리했다면 2탄에서는 캐시 생명주기 관련한 방안과 실제 어떤 코드를 작성하였는지를 정리하고자 한다! 캐시 데이터를 관리하다 보면 원본 데이터가 저장된 데이터베이스와 캐시 데이터를 가지고 있는 캐시 서버의 데이터 동기화 문제를 많이들 경험하게 될 것이다. 이 기능도 마찬가지로 원본 데이터가 저장되어 있는 데이터베이스(S3)와 캐싱 처리를 하고 있는 캐시 서버(CloudFront) 사이의 데이터 동기화를 항상 신경 써 주어야 한다. S3에서 원본 데이터가 변경되었음을 CloudFront에서는 알 수 있는 방법이 없기 때문에 동기화 처리는 직접 해주어야 한다. 물론 1탄에서 CloudFront를 구성할 때 설정한 TTL값 만큼의 시간이 흐..

Infra & Network/AWS 2022.09.02

Proxy Pattern 으로 구현해보는 다이나믹 서비스 적용기

회사를 이직한 지 벌써 한 달이 지났다. 딱히 한 게 없는 것 같은데 시간은 정말 빠르게 지나가는 듯하다. 이전 회사랑 업무 스타일이나 사람들 분위기가 달라서 적응하는데 애를 먹고 있지만, B2C 서비스를 개발하다 보니 이전 회사에서는 경험해보기 어려운 업무들을 할 수 있어서 재미있는 것 같다. 아무튼 오늘 포스팅 주제는 "Proxy Pattern 적용기"이다. 저번에 인프런 김영한 님의 스프링강의를 들으면서 여러 가지 디자인 패턴을 학습하게 되었는데, 그중에 하나가 오늘 포스팅 주제인 Proxy Pattern이다. 나는 기존 사내 프로젝트의 앱 푸시 로직을 개편하게 되는 업무를 맡게 되었고, 업무는 다음과 같았다. - 기존 : 앱 OS (Android / IOS)에 따른 Messaging 라이브러리로 ..

Programing/Spring 2022.08.31

하나의 결제건이 다중 결제가 된다면? - Concurrency Programming

이직을 완료했다! 아직 출근 초기라 일이 없는 이 여유로움을 틈타 포스팅을 하고자 한다. 오늘의 주제는 '동시성'이다. 이전 회사에서 결제시스템을 연동하고 정기결제 즉시결제 기능을 개발하면서 정기결제와 즉시결제가 동시에 이뤄졌을 때 결제가 두 건 다 처리되는 동시성 이슈가 있었다. 아직 운영되기 전이라 다행이지 운영되던 서비스였다면 정말 아찔했을 것 같다. 그래서 그때 겪었던 소중한 경험을 공유하고자 한다! 동시성을 공부하다 보면 동시성(Concurrency)과 병렬성(Parallelism)의 차이를 비교하는 포스팅들을 많이 볼 수 있는데 나도 이 차이부터 정리하고자 한다. [Thread와 Process] 동시성과 병렬성에 대해 알아보기 전에 Thread와 Process 차이에 대해 알아야 한다. Thr..

Programing/Java 2022.08.01