사랑하애오
article thumbnail
[VSCODE] JPA CASCADE, ORPHAN (영속성 전이)
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 13:09

영속성 전이 (CASCADE) 1. 영속성 전이 (CASCADE) " cascade : 폭포, 폭포처럼 흐르다 " 라는 사전적 의미를 바탕으로 엔티티의 상태를 변경할 때 해당 엔티티와 연관된 엔티티의 상태 변화를 전파시키는 옵션 부모는 One 에 해당하는 Entity 자식은 Many 에 해당하는 Entity 부모 Entity 가 존재해야 자식 Entity 가 부모를 참조하며 생성될 수 있음 2. CASCADE 종류 CASCADE설명 PERSIST 부모가 영속화될 때 자식도 영속화 MERGE 부모가 병합될 때 자식도 병합 REMOVE 부모가 삭제될 때 자식도 삭제 REFRESH 부모가 refresh 되면 자식도 refresh DETACH 부모가 detach 되면 자식도 detach ALL 부모의 상태 변화..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) Entity 연관 관계 매핑
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 13:03

Entity 연관 관계 매핑 1. 연관 관계 매핑 종류 ① 일대일(1:1) - @OneToOne ② 다대일(N:1) - @ManyToOne ③ 일대다(1:N) - @OneToMany ④ 다대다(N:M) - @ManyToMany 2. 연관 관계 매핑 방향 데이터베이스 중심 설계 테이블에서 관계는 항상 양방향 JPA 객체지향 중심 설계에서는 단방향, 양방향 존재 일대일 단방향 1. 일대일 단방향 매핑 cart ⟶ member Cart (장바구니) Entity 생성 cart 테이블 생성 cart 테이블 생성 후 alter 명령어로 외래키(FK) 지정 2. CartRepository 장바구니 조회를 위한 Repository 3. 장바구니 조회 테스트 (즉시로딩) 장바구니 조회 테스트 클래스 생성 및 DI car..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 페이지 권한 설정
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 12:58

페이지 권한 설정 1. 상품 등록 페이지 ADMIN (관리자) 계정만 접근할 수 있는 상품 등록 페이지 2. 상품 등록 페이지 접근 Controller 상품 등록 페이지에 접근하는 Controller 3. AuthenticationEntryPoint AuthenticationEntryPoint 인터페이스 구현 클래스 인증되지 않은 사용자가 리소스 요청 시 "Unauthorized" 에러를 발생시킴 4. SecurityConfig HttpServletRequset 에 대해서 security 처리를 수행 anyRequest() - 위에 존재하는 url patterns 들을 제외한 나머지 요청들 권한에 맞지 않는 사용자가 리소스에 접근할 때 수행되는 핸들러 static 디렉터리의 하위 파일은 인증을 무시하도록..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 로그인/로그아웃 기능 구현
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 11:30

로그인 / 로그아웃 1. UserDetailsService 데이터베이스에서 회원 정보를 가져오는 인터페이스 loadUserByUsername() 메소드를 통해 회원정보를 조회 -> UserDetails 인터페이스 반환 2. UserDetails 회원 정보를 담는 인터페이스 직접 구현하거나 스프링 시큐리티에서 제공하는 User 클래스 사용 (구현체) 3. MemberService 로그인 / 로그아웃 구현 UserDetailsService 인터페이스를 구현하고 loadUserByUsername() 메소드 오버라이딩 Builder 패턴을 이용하여 UserDetail 인터페이스를 구현한 User 객체 생성 후 반환 @Override public UserDetails loadUserByUsername(String..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 회원가입 기능 구현
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 11:02

회원가입 로직 1. 회원 역할(Role) 구분 com.shop.constant.Role.java, enum 클래스 생성 일반 유저 / 관리자 package com.shop.constant; public enum Role { USER, ADMIN } 2. 회원 가입 정보 DTO 회원 가입 화면으로 부터 넘어오는 가입정보를 담을 DTO 객체 @Getter @Setter public class MemberFormDto { private String name; private String emial; private String password; private String address; } 3. Member Entity 회원 정보를 저장하는 Member Entity(Model) 생성 Member 객체를 생성하기 ..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) Sring Security
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 10:35

Spring Security 1. Spring Security Spring 기반 애플리케이션의 보안(인증과 인가 등)을 담당하는 스프링 하위 프레임워크 2. Spring Security 구조 Spring Security 기능은 request 가 DispatcherServlet 에 도달하기 전에 수행되야함 Servlet Container 에서는 Spring Container Bean 객체 사용 불가 따라서 DelegatingFilterProxy 가 SpringSecurityFilterChain 을 찾아 보안 처리 위임 FilterChainProxy 를 SpringSecurityFilterChain 이라는 이름으로 구현 FilterChains 에는 여러 filter 존재 WebSecurityConfigure..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) Thymeleaf - 페이지 레이아웃
JAVA/SpringBoot Shoppingmall 2022. 6. 24. 16:36

Layout Dialect 1. Thymeleaf Layout Dialect 의존성 주입 nz.net.ultraq.thymeleaf thymeleaf-layout-dialect 2.5.1 2. header / footer / layout 생성 resources/templates/fragments/header.html, header.html resources/templates/layouts/layout1.html 3. header / footer 코드 다른 페이지 (layout)에 포함시킬 영역을 th:fragment 로 선언 header footer 4. layout 코드 layout 기능을 사용하기 위해서 layout 네임스페이스 추가 script, css 를 추가할 영역을 layout:fragment..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) Thymeleaf
JAVA/SpringBoot Shoppingmall 2022. 6. 24. 11:00

Thymeleaf 1. Thymeleaf 컨트롤러가 전달한 가공된 데이터를 이용하여 동적으로 화면을 구성하도록 지원하는 템플릿 엔진 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thy..