1. 서론 진행중인 프로젝트에서 아래 사진과 같은 기능을 구현하게 되었다. 기능 설명부터 간단히 하면 본인이 올린 공고글이 있으면 특정 노동자에게 일자리를 제안할 수 있는 기능이다. 이때 노동자의 출역 가능한 날짜와 공고글의 출역 날짜를 비교하여 제안할 수 있다. 기업은 노동자에게 일자리를 제안할 때 여러 개의 공고글을 제안할 수 있다. 동시에 각 공고글은 여러 날을 선택하여 제안할 수 있다. 예를 들어 1,2,3일을 일하는 공고글 A와 2,3,4일을 일하는 공고글 B가 있고, C라는 노동자는 2일날 출역이 확정된 상황이 있다고 가정하자. 그럼 기업은 C노동자에게 공고 A의 1,3일, 공고 B의 3,4일을 제안할 수 있는 것이다. 요청 JSON은 다음과 같다. { "resumeId": 1, "offerJ..
Spring Event를 처음 들어본다면 아래 글을 먼저 보고 오는 것을 추천한다. https://dgjinsu.tistory.com/41 [Event] Spring Event 왜 사용할까?? 1. 이벤트를 사용하는 이유 Spring Boot에서 이벤트를 적용하는 방법에 대해 들어가기 전에, 이벤트를 왜 써야하는지, 사용하면 좋은 상황에 대해 먼저 알아보자. 회원가입을 하고 나면 가입 축하 dgjinsu.tistory.com https://dgjinsu.tistory.com/42 [Event] Spring Event 도입 시 트랜잭션 처리에 대한 고민 1. 서론 전 게시글에서 Spring Event로 의존성을 개선하는 법을 다뤄보았다. 하지만 한 트랜잭션 안에서 처리하던 것들이 흩어지면서 문제되는 부분도..
1. 서론 전 게시글에서 Spring Event로 의존성을 개선하는 법을 다뤄보았다. 하지만 한 트랜잭션 안에서 처리하던 것들이 흩어지면서 문제되는 부분도 있다. 이번엔 그 부분을 깊게 다뤄볼 생각이다. Event를 적용하기 전 코드와 후 코드를 먼저 살펴보면 아래와 같다. - 적용 전 @Service @RequiredArgsConstructor public class MemberService { private final AlarmService alarmService; private final AlimTalkService alimTalkService; public void register(String name) { // 회원가입 처리 로직 System.out.println("회원 추가 완료"); // 가..
1. 이벤트를 사용하는 이유 Spring Boot에서 이벤트를 적용하는 방법에 대해 들어가기 전에, 이벤트를 왜 써야하는지, 사용하면 좋은 상황에 대해 먼저 알아보자. 회원가입을 하고 나면 가입 축하 메세지를 전송하는 동시에 쿠폰을 전송하는 서비스가 있다고 가정해보았다. @Service @RequiredArgsConstructor public class MemberService { private final AlarmService alarmService; private final AlimTalkService alimTalkService; public void register(String name) { // 회원가입 처리 로직 System.out.println("회원 추가 완료"); // 가입 축하 푸시 알..
이번 글에선 MySQL 8.0과 기본 스토리지 엔진인 InnoDB를 사용할 것이고 인덱스를 활용한 쿼리 최적화를 진행할 예정이다. INDEX에 대해 처음 들어보거나 학습하고싶다면 아래 글을 참고 바람 https://dgjinsu.tistory.com/38 [INDEX] 데이터베이스 인덱스 파헤치기 1. 인덱스란? 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 dgjinsu.tistory.com 1. 실행 계획 실행 계획도 정말 여러가지가 있지만 가장 중요하고 많이 나오는 3가지는 다음과 같다. - all: 테이블 전체를 스캔 full table scan을 의미한다. full tab..