JAVA 37

[JAVA/SpringBoot] 프로젝트 DB설계 (2-7) ★

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 2주차 7강 회원 가입 기능 구현] - springCore 프로젝트에서 실습 - 지금부터 '스프링 시큐리티' 프레임워크를 사용해서 회원 가입 기능을 구현해 보겠습니다. - 회원 테이블 설계 1. DB 설계 2. @Entity 클래스 구현 (스프링 Data JPA 이용하면 자동으로 DB와 연동이 되어서 우리가 필요한 SQL 문장 쿼리 같은 것들을 스프링에서 알아서 해준다.) - 인텔리제이에서 model 패키지에 해당하는 부분이 DB의 table에 매핑되는 애들 ------DB설계와 구현 완료 -관리자 회원 가입 인가 방법 - 회원가입 API 구현 1. 클라이언트로부터 회원가입 요청해 오는 것을 D..

JAVA 2022.05.29

[JAVA/SpringBoot] 회원 가입 UI 반영 (2-6)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 2주차 6강 회원 가입 UI 반영] - springCore 프로젝트에서 실습 회원 가입 UI 반영 하면서 적용해야할 사항 타임리프 모듈 추가 [코드스니펫] build.gradle // Thymeleaf (뷰 템플릿 엔진) implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' css 폴더로 옮겨짐에 따라 index.html 파일에서 style.css 의 상대 경로도 변경 회원 가입 페이지 요청 처리 WebSecurityConfig 에 formLogin() 처리 부분 변경 [코드스니펫] 로그인 페이지 설정 회원 가입 페이지 ..

JAVA 2022.05.29

[JAVA/SpringBoot] '스프링 시큐리티' 프레임워크 (2-5)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 2주차 5강 '스프링 시큐리티' 프레임워크] - springCore 프로젝트에서 실습 스프링 시큐리티 적용 '스프링 시큐리티' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 줍니다. 마치 '스프링' 프레임워크가 웹 서버 구현에 편의를 제공해 주는 것처럼요! '스프링 시큐리티' 프레임워크 추가 - [코드스니펫] build.gradle // 스프링 시큐리티 implementation 'org.springframework.boot:spring-boot-starter-security' '스프링 시큐리티' 활성화 [코드스니펫] security > ..

JAVA 2022.05.29

[JAVA/SpringBoot] 프로젝트 시작할 때 제일 먼저 참고하기 (2-4) ★★

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 2주차 4강 회원 관리 기능 요구사항 및 설계] 요구사항 기능 일반 사용자 관리자 회원 가입 - 입력 항목: 아이디, 패스워드, 이메일 - 아이디 중복 불가 - 입력 항목: 아이디, 패스워드, 이메일, 관리자 가입암호 - 아이디 중복 불가 회원 로그인 - 필수 항목: 아이디, 패스워드 - 인증 조건: 회원 가입 시 입력한 아이디와 패스워드가 일치 - '일반 사용자'와 동일 회원 로그아웃 - 조건: 로그아웃 버튼을 클릭 - '일반 사용자'와 동일 회원 별 상품 등록 및 조회 - 회원 별 등록/조회 상품 구분 - 다른 사용자가 등록한 상품은 조회 불가 - '일반 사용자'와 동일 - 인가: 관리자는 ..

JAVA 2022.05.29

[JAVA/SpringBoot] 쿠키와 세션 (2-3)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 2주차 2강 쿠키와 세션] 사용자를 구별하지 못 하는 HTTP [웹 서비스에서는 클라이언트와 서버가 http통신을 한다. http가 안타깝게도 사용자를 구별하지 못한다. (HTTP는 상태를 저장하지 않는다는 특징이 있다.)] HTTP 는 상태를 저장하지 않습니다. ('Stateless' 하다) 아래 그림에서 클라이언트의 요청 (GET http://spartcodingclub.kr)을 서버에게 보낸 후 응답을 받을 때까지가 하나의 HTTP 요청입니다. 하지만 HTTP 상태는 기억되지 않기 때문에 웹 서버에서는 1번과 2번이 같은 클라이언트의 요청인지 알 수 없습니다. 쿠키와 세션 쿠키와 세션 모두..

JAVA 2022.05.29

[JAVA/SpringBoot] 웹의 인증 및 인가 (2-2)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 2주차 2강 웹의 인증 및 인가] 웹의 인증 및 인가 인증 vs. 인가 인증 (Authentication): 사용자 신원을 확인하는 행위 인가 (Authorization): 사용자 권한을 확인하는 행위 예를 들면, 인증: 회사 출입을 위한 출입증 확인 혹은 생체정보 (지문, 홍채) 인식 인가: 회사 건물 내 접근 권한 관리 방문자 → 회의실만 접근 가능 직원 → 회의실, 사무실 접근 가능 관리자 → 회의실, 사무실, 서버실, 물품보관실 접근 가능 웹에서의 인증 및 인가 인증: 로그인을 통해 본인임을 확인 (주로, 아이디와 패스워드 이용) 인가: 주로 역할에 따른 사용 권한 관리 예) 웹 카페 사..

JAVA 2022.05.29

[JAVA/SpringBoot] 스프링 프레임워크 재이해 (1-18)★

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 18강 스프링 프레임워크 재이해] 스프링 프레임워크란? The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. 출처: 스프링 공식 홈페이지 Enterprise applications 개발 편의성 제공 Enterprise applications? 기업용 애플리케이션?? 고객 대상 웹 서비스 ex) 구글, 네이버, 쿠팡 등 스프링은 결국 기업용 애플리케이..

JAVA 2022.05.29

[JAVA/SpringBoot] 스프링 3계층 Annotation 적용하기 (1-17)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 17강 스프링 3계층 Annotation 적용하기] - springCore 프로젝트에서 실습 ★ 리팩토링이 끝나면 테스트 수행!! 힘들어도 계속 습관화가 되어야 합니다~!!! 스프링 3계층 Annotation 적용 [스프링 Annotation] @Componet, @Autowired 앞에 '@' 를 붙여 선언 → 스프링이 처리 스프링 3계층 Annotation 은 모두 @Component @Controller, @RestController @Service @Repository -> 이 어노테이션들 안을 자세히보면 @Component가 있다. @Repository 간단 설명 JpaRepos..

JAVA 2022.05.28

[JAVA/SpringBoot] 스프링 IoC 컨테이너 사용하기 (1-16)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 16강 스프링 IoC 컨테이너 사용하기] - springCore 프로젝트에서 실습 스프링 IoC 컨테이너 👉 1주차 15강에서 DI 를 사용했을 때의 장점을 살펴 보았습니다. 그런데 DI 를 사용하기 위해서는 객체 생성이 우선 되어야 했습니다. 과연 어디서 객체 생성을 해야 할까요? 바로 스프링 프레임워크가 필요한 객체를 생성하여 관리하는 역할을 대신해 줍니다. 빈 (Bean): 스프링이 관리하는 객체 스프링 IoC 컨테이너: '빈'을 모아둔 통 그럼 스프링 IoC 컨테이너에 어떻게 빈을 등록하고 사용하는지 확인해 보겠습니다. 스프링 '빈' 등록 방법 @Component 클래스 선언 위에..

JAVA 2022.05.28

[JAVA/SpringBoot] DI (의존성 주입) 의 이해 (1-15)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 15강 DI (의존성 주입) 의 이해] - springCore 프로젝트에서 실습 - 객체 이름은 주로 소문자 이용 - DI는 미리 만들어져있는 객체를 가져다가 사용하겠다. 강한 결합의 문제점 ['강한 결합' 이해를 위한 예제] 1. Contoller1 이 Service1 객체를 생성하여 사용 public class Controller1 { private final Service1 service1; public Controller1() { this.service1 = new Service1(); } } 2.Service1 이 Repostiroy1 객체를 생성하여 사용 public class..

JAVA 2022.05.28