본문 바로가기
반응형

Spring/JPA4

[Spring/JPA] Entity 에서 UUID vs AutoIncrement Entity를 작성하면  보통 95%의 사람들은 Auto Increment를 쓴다. 이로인해 많지는 않지만 문제가 생기는데외부에서 해당 시스템 PK를 예측하기 쉬워져서 SQL Injection 문제Sequence, auto_increment는 중앙 집중식으로 값을 생성하는 방식이므로 DB에 의존적이게 되어 확장성이 제한되는 문제서비스 폭풍성장 시, ID 고갈되는 문제 (BIGINT 최댓값은 4,294,967,295 이고, unsigned BIGINT라면 18,446,744,073,709,551,615)데이터베이스 변경의 어려움DB가 2대 이상일 때 중복 문제 이런 문제를 해결하고자 나온게 UUID 값을 PK로 설정하는것이다. UUID는 범용 고유 식별자라는 뜻으로 128bit의 긴 고유값을 PK로 사용한.. 2024. 7. 1.
[Spring/JPA] 로그 관리 로그 : sout(”Hello world”); ⇒ 중요도 분리가 안된다. ⇒ 중요도에 따라 로그레벨 관리 해야한다.debug 모드 (모든 로그가 다 나온다.)log.debug(”debug 모드입니다.”)info 모드log.info(”일반로그”)error모드 (가장 엄격 , error 로그만 나온다.)log.error(”일반로그”)로그 라이브러리 (log4j, logback)로그관리 (debug, info, error)로그파일관리.ymllogging: level: root: info # info로 설정 # trace  사용방법 1.@RestController@Slf4j // log 어노테이션 (롬복)public class LogTestController { @GetMapping("log/.. 2024. 6. 25.
[Spring/JPA] Persist() , flush() 가 뭐야 ? JPA는 요청이 들어오면 EntityManagerFactory 에서 EntityManager 를 생성한다. EntityManager: 엔티티를 관리하는 역할을 수행하는 클래스EntityManager 는 내부적으로 DB 커넥션 풀을 사용해서 DB에 붙는다. 그러면 어떤 방식으로 EntityManager 는 Entity들을 관리를 할까 ?? EntityManager 내부에 영속성 컨텍스트(Persistence Context)라는 걸 두어서 Entity들을 관리한다. 영속성 컨텍스트 : Entity를 영구 저장하는 환경애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. EntityManager 를 통해 엔티티를 저장하거나 조회하면 EntityManager는 영속성 컨텍스.. 2024. 5. 24.
[Spring/JPA]Spring Scheduler 스프링 스케쥴러를 사용하는 이유는일정 시간마다 코드가 실행될 수 있게 해줄 수 있기 때문입니다. 예시 상황으로 만약 기본 게시판에서 예약 글 쓰기가 있다고 생각을해봅니다. 현재 시각 11시 52분에 예약발행을 하면 글 게시판에는 보이지 않아야하고 11시 55분이 되는 순간 포스팅이 되어야 합니다. 구현해보도록 하겠습니다.   우선 현재시각인 11시 52분에  11시 55분 예약작성을 하려고 합니다. 지금 날짜 이전 코드를 선택시 프론트에서 선택 할 수 없도록 Js로 설정했습니다.   이제 11시 55분으로 넣어봅시다.제목 : 스케쥴러테스트내용 : 스케줄러 테스트 11시 55분으로 넣었습니다. "Y" 는 appointment 입니다. 즉 예약여부입니다.이제 스케줄러 코드를 짜서 매 분 마다 데이터베이스를 .. 2024. 2. 2.
반응형