728x90
데이터베이스의 트랜잭션 격리 수준1️⃣ Read Uncommitted (읽기 미완료)가장 낮은 격리 수준으로, 하나의 트랜잭션이 아직 커밋되지 않은 데이터임에도 다른 트랜잭션이 읽을 수 있다이 시점에서는 Dirty Read 라고 하여, B트랜잭션이 아직 커밋되지 않은 A트랜잭션의 데이터를 읽어버렸는데 A트랜잭션이 롤백되었다면 잘못된 데이터를 읽은 것이 되버린다. 이 문제는 Read Committed 단계에서 해결할 수 있다2️⃣ Read Committed (읽기 완료)한 트랜잭션이 커밋된 데이터만 읽은 수 있다. 커밋되지 않은 데이터는 다른 트랜잭션이 접근하지 못한다. 그러나 동일 트랜잭션에서 동일 데이터를 두 번 읽을 때, 다른 트랜잭션이 데이터를 수정해버렸다면 읽은 값이 달라져버린다. 이를 Non-r..
다 된 줄 알았는데 😑(모바일):제가 STOMP Connect가 된 건지 안 된 건지 모르겠어요🍊: 어, Swift 라이브러리 stompClientDidConnect 등의 메소드로 수신되지 않으시나요?😑(모바일): 연결이 끊겨도 걔가 이미 연결되어있는 것처럼 응답이 와요.🍊..... 😱: 헐😑(모바일): 그래서 재연결할 타이밍을 못 잡아요🍊: 잠시 기다려주세요, 방법 찾아볼게요. 왜 그랬을까? WebSocket Server에서 Connection 'close' 이벤트를 받지 못할 때(2020-08-17에 작성된 글입니다) WebSocket 서버를 운영하다보면 가끔 Client WebSocket Connection이 끊겨졌음에도 서버에서는 close이벤트를 수신하지 못할 때가 있다. 아마 W..
JPA의 영속성 컨텍스트영속성 컨텍스트는 JPA가 Entity 객체를 상태관리하는 공간 및 매커니즘이다.자세히는 엔티티의 상태를 메모리 상에 올려 놓고, Datsbase와의 동기화를 관리하는 공간으로 볼 수 있다. 이 공간에 올라간 객체는 변경 사항을 추적할 수 있게 되고 트랜잭션이 끝나는 시점에 Database에 반영된다. 1. 영속성 상태JPA의 영속성 컨텍스트 내에서 관리되는 Entity는 네 가지의 상태를 갖는다비영속(Transient)Database와 전혀 관련이 없는, 단순 메모리 상에만 존재하는 상태영속(Persistent)영속성 컨테스트에 의해 관리되고 있는 상태준영속(Detached)영속 상태에서 벗어나 분리된 상태삭제(Removed)Database에서 삭제 예정인 상태(트랜잭션이 커밋..
낑AWS의 로드밸런서 서비스를 이용중이었다. 그리고 그 앞단에서 로드밸런서에 요청정보를 전달하는 Apache가 있었다. 😶: 인쟈 트래픽에 따라서 로드밸런서가 알아다가 분산하겠징 라고 생각했는데, 근 며칠동안 새벽마다 통신장애가 일어나 어느 시점부터 503 코드로 반환되었다. 귀신같이 퇴근만 하면 고장나는 서버에 뭐라도 씌인 것인 건가 싶었다. 연결된 네트워크에 안면인식기능이 탑지된 것 마냥 자정에 건물 문이 잠길 때까지 기다려도 눈앞에서 재연되지 않는 상황에 모두가 넋이 나갔다.현지 시간대를 노린 누군가의 침입에 의한 것인가 싶어 access_log, error_log 를 다 뒤져보면 그 언저리 반갑지 않은 손님들의 소스 긁기를 위한 GET: 시도가 보이긴 하지만 그게 원인은 아니었다. 우선은 Ap..
Scheduler 설정 구조@DependsOn({"..."})@Configurationpublic class ConfigScheduling { @Bean public JobDetail ...JobDetail(){ return JobBuilder.nowJob(잡.class) .withIdentity(잡.class.getSimpleName()) .storeDurable(true) .build(); } @Bean public Trigger ...JobTrigger(){ ... return trigger.newTrigger() .withIdentity(잡.c..
이전 포스팅 보기 이전에 채팅 시스템에 대해서 위와 같이 WebSocket 방식의 채팅 이면서 메시지는 NoSQL에 저장하는 형태를 고려해봤다.이제, 중간에 Server를 구체화할 예정이다. 무상태 서비스와 상태유지 서비스 구분짓기여러 서비스를 제공하는 서버에 대해서 상태에 따른 서비스를 분류할 필요가 있다.무상태서비스: 로그인, 회원가입, 배치, 공통유틸 등 전통적인 요청/응답 서비스 (클라이언트 상태 관리 X)상태유지서비스: 채팅서비스, 즉 클라이언트와 서버가 네트워크 연결을 유지해야 하는 서비스아래는 이러한 상태에 다른 서비스를 시각화했다.사용자의 요청에 따라 로드밸런서가 각 서버로 요청을 분산시키는 형태다. 이와 반대로, 상태 유지를 하는 채팅 서비스는 별도로 분리되어 로드밸런서의 영향을 받지 ..