목록2023/12/13 (3)
나의 개발일지
내 프로젝트에서 스켸줄러가 이용될 구간은 많은데 우선은 친구 요청을 거절했을 때 하루에 한 번씩 REJECT 항목을 찾아 제거 해주려고 한다. 그러기 위해서는 일단 Friend 테이블에 updated_at 컬럼을 추가해야한다. 스켸줄링 기능 구현 1. main application에 @EnableScheduling 추가 2. scheduler를 사용할 Class에 @Component, Method에 @Scheduled추가. @Scheduled 규칙 -> Method는 void타입 -> Method는 매개변수 사용 불가 요렇게 해주면 됨. 참고로 @Component 꼭 해줘야 된다 ! cron 규칙에 따라 원하는 시간 작성하면 끝
동시성이란 ? 어떤 두 사건이 같은 시간에 일어나는 것을 이르는 말 나의 경우는 여러군데서 동시성 이슈가 발생할 수 있다. 현재까지 구현한 기능에서 보면 A->B에게 , B->A에게 동시에 친구요청을 거는 일이 발생한다면 동시성 이슈가 발생하게 된다. Y ?) - A가 B에게 친구요청을 걸었을 때 WAIT 상태의 Friend 컬럼 생성. - A->B 요청이 처리되기 전의 상태로 B가 A에게 친구요청을 걸었을 때 똑같이 WAIT상태의 컬럼 생성. 정상적으로 A->B, B->A 요청이 순차적으로 들어왔다면 B가 A에게 친구요청을 걸수 없다. (이미 상대에게 요청이 들어온 건에 대해서 자신이 또 상대에게 요청을 걸 수 없게 해놨으므로) 위와 같은 상황을 경쟁 상태라고 한다. 경쟁상태(race condition..
트랜잭션이란 ? 트랜잭션은 쪼갤 수 없는 작업의 단위로 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야 할 일련의 연산들을 의미. 여기서 작업의 단위는 질의어 한문장이 아니다 ! 작업 단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것 ex) 사용자 A가 사용자 B에게 송금시 1. A의 계좌에서 금액 차감 : update로 A의 잔고 변경 2. B의 계죄에 금액 추가 : update로 B의 잔고 변경 작업 단위 : 출금 update + 입금 update를 통틀어 하나의 트랜잭션 이라고 함. =>> 두 쿼리문이 모두 성공적으로 완료되어야만 하나의 작업 완료 트랜잭션의 특징 ACID 트랜잭션의 특징 4가지는 원자성(Atomicity), 일관성(Consistency),..