PeNeKKKKkkk
Preview Image

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

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

스프링부트에서 sql.init.mode=always를 통해 데이터베이스 초기화할때 주의해야 할 점

스프링부트 3.1.0 기준으로 데이터베이스 초기화를 schema.sql 혹은 data.sql로 할 경우, sql파일 내에서 -- 블라블라, <!-- 블라블라 -->이 아닌 # 블라블라 주석을 사용할때 질의문이 몇개 누락되는 오류 해결 방법을 디버깅을 통해 설명하고 있습니다. 바로 본론으로 레퍼런스 - howto.data-initial...

Preview Image

REST API에 대한 주저리 주저리...

글을 읽기 전에 혹시라도 내용에 잘못된 점 혹은 다른 견해가 있으시다면 댓글 남겨주시면 감사드리겠습니다. 포스팅의 발단 모 개발 오픈채팅 커뮤니티에서 옛날에 올라온 질문/답변들을 다시 읽어보게 되었습니다. 질문의 원문은 다음과 같았습니다. 안녕하세요 궁금한 점이 있어 질문올립니다. 서버에서 예외(인가되지않은 접근, 리소스를 찾을 수 없음, 잘...

스프링부트에서 비동기를 사용하여 블로킹 문제 일부 해결하기

들어가기 앞서 본 게시물은 프리랜서 활동을 통해 개발한 타사의 실제 서비스중인 소프트웨어를 언급하므로 도메인 요구사항, 코드의 일부는 생략(혹은 삭제) 되서 작성되었음을 알려드립니다. 본론 발생 상황 프리랜서로써 Chrome Extension + Backend 개발을 하다가 발생한 일이다. 도메인 요구사항이 다음과 같았다. 하나의 Row가 In...

제 9회 소프트웨어 개발보안 시큐어코딩 해커톤 리뷰

소프트웨어 개발보안 경진대회에서 수상한 과정들을 간단하게 담았습니다. 다음은 대회 포스터입니다. [1] 준비 이유는 모르겠지만 최근에 너무 심심했다. 자랑 할 만큼의 커밋은 아니지만.. 그렇다고 개발을 소홀히 한것은 아님.. 이런 와중에 대학 동기가 다음 과 같은 공고를 보내줬다. 나는 해당 공고를 보자마자 “아 심심했는데 잘됐다. 재...

온라인 해킹 대회 사이트 만들기 1 > 요구사항 정의

내가 다니고 있는 순천향대학교 정보보호학과는 매년 고등학생들을 대상으로 해킹 대회를 개최한다. 보다시피 단순히 학생들 끼리 주최하는 것이 아닌, 대학교와 함께 진행하는 나름의 큰 행사이다. 보통 대게 해킹대회는 다음과 같은 프로세스로 진행된다. 온라인 예선 온라인으로 로그인을 하여 해킹대회 문제를 푼다. 예선에...

혼자서 실 서비스 구축해보기 2 > 개발

[2] 개발 보통은 front와 Back을 분리하는게 이상적이겠지만, 혼자 개발하는거다보니 시간적인 문제로 쉽지가 않았다. (따로 진행하는 프로젝트도 있기 때문에….) 백엔드는 이제 막 공부 시작한 자바 스프링부트 프레임워크를 쓰기로 했고, 페이지 렌더링은 간단하게 타임리프를 써서 Server단에서 랜더링 해주기로 했다 (SSR). 실제로 코드보면...