[포텐데이 409-1pick] 올려올려 라디오 서비스 개발기 - 1
·
Project
우리가 만든 서비스https://upup-radio.site/ 올려올려 라디오언제 어디서나 DJ가 여러분에게 따뜻한 위로를 전해드립니다.upup-radio.site글을 쓰고 있는 현재, 우리 팀이 만든 서비스가 1Pick을 받았습니다!이 서비스는 위로를 받고싶은 누구나, 언제 어디서든 따뜻한 위로를 받을 수 있는 서비스입니다.포텐데이에 참여하게 된 계기예약 대기 시스템 프로젝트를 진행하면서 중간중간에 힘이 빠지는 날들이 있었습니다.지금 다시 생각해보면 핵심은 `예약 대기 시스템`인데, `어드민 시스템`을 먼저 구현해서 힘이 빠졌던 것 같습니다.욕심이 화를 부른다고 했나요? '`어드민 시스템`과 함께 동작하는 `예약 대기 시스템`을 만드는 게 나에게 더 도전적인 일이야.'라는 욕심이 문제였다고 생각해요. ..
[스터디] Real MySQL 8.0 1권 - 5장 트랜잭션과 잠금 정리
·
Database/MySQL
트랜잭션트랜잭션이란?데이터 정합성을 보장하는 기능정합성: (서로 다른 커넥션에서) 데이터가 서로 일치하는 상태작업의 완전성을 보장해 주는 기능작업의 완전성: 논리적인 작업을 모두 완벽하게 처리 or 처리 실패 시 모두 원 상태로 복구해서 부분 업데이트를 방지하는 기능MySQL의 트랜잭션논리적인 작업 셋 자체가 (COMMIT 할 때) 100% 적용 되거나 (ROLLBACK or ROLLBACK 자체가 오류가 발생했을 때) 아무것도 적용되지 않음을 보장해주는 것한 개의 쿼리에서 여러 값을 저장할 때 MyISAM과 InnoDB의 차이MyISAM ❌: 트랜잭션 지원 X => 실패된 부분만 롤백 (부분 업데이트) => 찌꺼기 데이터를 별도로 지우는 코드가 필요InnoDB ✅: 트랜잭션 지원 O => 모두 롤백 (..
[JPA] No EntityManager with actual transaction available for current thread - cannot reliably process 'flush' call
·
JPA
에러가 발생한 이유EntityManager 는 트랜잭션 안에서만 동작한다.EntityManager 가 메서드 내에서 동작할 때 현재 트랜잭션이 없기 때문에 발생한다.해결하려면 트랜잭션 내에서 실행되도록 보장해야 한다.해결법실행하려는 메서드(또는 클래스)에 @Transactional 애너테이션을 붙인다.코드 예시@Transactional // 트랜잭션 내에서 동작하도록 보장@Testvoid example() { // ...} 읽어주셔서 감사합니다.
[예약 대기 시스템] 4. 컨테이너 환경에서 테스트하기 (Testcontainers)
·
Project
이전 포스팅에서 애플리케이션을 컨테이너화 하기 위해 도커를 사용했습니다.(이전 포스팅 : 2024.09.13 - [Project] - [예약 대기 시스템] 3. 프로젝트 설정 (어드민 시스템)) [예약 대기 시스템] 3. 프로젝트 설정 (어드민 시스템)2024.09.11 - [Project] - [예약 대기 시스템] 1. 답답하니까 직접 만들게요2024.09.12 - [Project] - [예약 대기 시스템] 2. 어드민 시스템 데이터 모델링 (개체-관계 모델, ERD) 이전 포스팅에선 어드민 시스템dev-gallery.tistory.com 테스트 코드를 작성하며 컨테이너 환경에서 테스트를 하는 것이 보통 귀찮은 일이 아님을 느꼈습니다.매번 테스트를 할 때마다 MySQL 컨테이너를 띄워야 하고, 독립된 ..
[예약 대기 시스템] 3. 프로젝트 설정 (어드민 시스템)
·
Project
2024.09.11 - [Project] - [예약 대기 시스템] 1. 답답하니까 직접 만들게요2024.09.12 - [Project] - [예약 대기 시스템] 2. 어드민 시스템 데이터 모델링 (개체-관계 모델, ERD) 이전 포스팅에선 어드민 시스템의 데이터 모델링을 다뤘었습니다.이번 포스팅에선 본격적인 개발 전 어드민 시스템의 프로젝트 설정을 다뤄보겠습니다.사용할 기술 스택Java 17Spring Boot 3 (작성일 기준 3.3.3)MySQL 8.0.39 (8.0 버전대에서 bug fix series)LTS 버전은 8.4 입니다. 8.0 버전과 다른 점이 여러 가지(8.0과 8.4의 차이점 보기) 있지만 Real MySQL 8.0 책의 내용을 적용해 보기 위해 bug fix 버전 중 마지막 버전..