본문 바로가기

전체 글141

Auditing을 이용한 엔티티 공통 속성 공통화 실제 서비스를 운영할 때는 보통 등로시간과 수정시간,등록자,수정자 를 테이블에 넣어 놓고 활용을 합니다. 그리고 데이터가 생성되거나 수정될 때 시간을 기록해주고, 어떤 사용자가 등록을 했는지 아이디를 남깁니다. 이 컬럼들은 버그가 있거나 문의가 들어왔을 때 활용이 가능합니다. 데이터를 대용량으로 데이터를 업데이트했는데, 다시 업데이트를 해야 할 경우 변경딘 대상을 찾을 때 활용할 수도 있습니다. Spring Data Jpa에서는 Auditing 기능을 제공하여 엔티티가 저장 또는 수정될 때 자동으로 등록일,수정일,등록자,수정자를 입력해줍니다. Audit의 사전적 정의는 '감사하다' 입니다. 즉 , 엔티티의 생명성과 수정을 감시하고 있는 것입니다. 이런 공통 맴버 변수들을 추상클래스로 마들고, 해당 추상 .. 2023. 3. 6.
영속성 전이 영속성 전이 즉, 'cascade'의 사전적 정의는 '작은 폭포', '폭포처럼 흐르다'라는 뜻이 있습니다. 영속성 전이랑 엔티티의 상태를 변경할 때 헤당 엔티티와 연관된 엔티티의 상태 변화를 전파시키는 옵션입니다. 이때 부모는 One에 해당하고 자식은 Many에 해당합니다 예를 들어 Order 엔티티가 삭제되었을 때 해당 엔티티와 여관 되어 있는 OrderItem 엔티티가 함께 삭제되거나, Order 엔티티를 저장할 때 Order 엔티티에 담겨있던 OrderItem 엔티티를 한꺼번에 저장할 수 있습니다. 상태가 전파되는 모습을 폭포가 흐르는 모습으로 상상하면 떠올리기가 쉽습니다. CASCADE종류 설명 PERSIST 부모 엔티티가 영속화될 때 자식 엔티티도 영속화 MERGE 부모 엔티티가 병합될 때 자식.. 2023. 3. 6.
연관 관계 매핑 종류 엔티티 들은 대부분 다른 엔티티와 연관 관계를 맺고 잇습니다. JPA에서는 엔티티에 연관관계를 매핑해두고 필요할 때 해당 엔티티와 연관된 엔티티를 사요아여 좀 더 객체지향적으로 프로그래밍할 수 있도록 도와줍니다. 연관 관계 매핑의 기초를 알아보겠습니다. 예제 코드들은 쇼핑물 프로젝트 코드 입니다. http://www.yes24.com/Product/Goods/103453774 첫 번째로 기억해야 할 것은 연관 관계 매핑의 종류 입니다. 4가지의 매핑 관계가 있습니다. 일대일(1:1):@OneToOne 일대다(1:N) @OnetoMany 다대일(N:1)@ManyToOne 다대다(N:N)@ManyToMany 두번째로 중요한 것은 엔티티를 맵핑할 때는 방향성을 고려해야 합니다. 테이블에서 관계는 항상 양방향이.. 2023. 3. 5.
스프링 시큐리티 (회원가입+ 로그인 /로그아웃) 애플리케이션을 만들기 위해서는 보통 인증/인가 등의 보안이 필요합니다. 스프링 시큐리티는 스프링 기반의 애플리케이션을 위한 보안 솔루션을 제공합니다. 애플리케이션의 보안에서 중요한 두가지 영역은 '인증'과 '인가' 입니다. 웹에서 인증이란 해당 리소스에 대해서 작업을 수행할 수 있는 주체인지 확인하는 것입니다. 예를 들어 어떤 커뮤니티에서 게이산의 글을 보는 것은 로그인을 하지 않아도 되지만, 댓글을 작성하려면 로그인을 해야 합니다. 댓글을 달기 위해서는 로그인이라는 인증 절차를 거쳐야합니다. 인가는 인증 과정 이후에 일어납니다. 커뮤니티를 관리하는 관리자 페이지에 접근하는 URL을 입력했을 때 해당 URL은 커뮤니티의 관리자만 접근할 수 있어야 합니다. 이때 접근하는 사용자가 해당 URL에 대해서 인가.. 2023. 3. 4.