일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 스프링부트오류
- queryDSL
- git
- Unsatisfied dependency
- uncheck Exception
- JPA주의사항
- json gson 차이
- 최종 프로젝트
- Spring Spring boot 차이
- @IdClass
- jpa에러
- ERD 작성
- spring서버
- 인텔리제이
- json
- JPA
- Error creating bean with name
- 1차캐시
- github
- REST란
- 스프링 부트 기능
- 빈생성안됨
- JoinColumn
- Q 클래스
- 복합키
- jpa회원가입
- REST API 규칙
- Filter
- jwt메서드
- 스프링 부트 공식 문서
- Today
- Total
목록전체 글 (208)
Everyday Dev System
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c3yxyI/btskDgouzJq/3zhXQTmqUfKqSPesEdCBR0/img.png)
회원가입에 Validation 적용하기 2023.06.20 - [내배캠 주요 학습/Spring 심화] - Validation, 회원가입 데이터에 적용하기 1. build.gradle에 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' @NotBlank @Email @Positive(message = "양수만 가능합니다.") @Negative(message = "음수만 가능합니다.") @Size(min=2, max=10) @Max(10) @Min(2) @NotNull null 불가 @NotEmpty null, ""불가 @NotBlank null, "", " " 불가 @Size 문자 길이 측정 @Max 최대값 @Mi..
Spring Security가 Filter 기반으로 동작을 함. Security가 Session 방식으로 동작을 하는 것을 알아야 함. 그러므로 이전 강의에 만들어놓은 Filter 클래스의 @Component 코드 주석 처리 Filter 관련 참조 글 : 2023.06.20 - [분류 전체보기] - Filter 전체 코드 : package com.sparta.springauth.config; import org.springframework.boot.autoconfigure.security.servlet.PathRequest; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Con..
Spring Boot에서 Server는 Client로 부터 요청이 들어오면 Filter를 거치게 되어 있다. 요청이 들어오고 FIlter를 통해 인증을 한 후 인증이 완료된 경우 Securitycontext에 authority를 넣어준다. 그리고 권한 확인을 하고 , Controller로 이동한다. 아래와 같이 Filter interface를 상속받아 doFilter()를 재정의하여 커스튬한 Filter를 SpringBoot의 기본적으로 구현되어 있는 필터의 순서에 끼워 넣어서 Filter로서 기능을 수행시킬 수 있다. .addFilterBefore(A,B) -> B Filter 이전에 A Filter를 먼저 거친다. Filter를 커스튬하기 위해 상속받을 수 있는 Filter의 종류는 많은데 그 중 현..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/urfwQ/btskCqEAFS6/QiMrOEpHKi9mwD8epDcTM1/img.png)
로그인 전에 회원가입 코드 먼저 선행되어야 함. 더보기 2023.06.19 - [내배캠 주요 학습/Spring 심화] - 회원가입 구현하기 회원가입 구현하기 build.gradle // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // MySQL runtimeOnly 'com.mysql:mysql-connector-j' application.properties - 본인의 DB 정보에 맞게 수정 필요 spring.datasource.url=jdbc:mysql://localhost: cdev.tistory.com LoginRequestDto.java package com.sparta.springauth.dto; impo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b8G3j3/btskAHUO8UP/Kf95iSRPEhOrT5QlWyZTlK/img.png)
build.gradle // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // MySQL runtimeOnly 'com.mysql:mysql-connector-j' application.properties - 본인의 DB 정보에 맞게 수정 필요 spring.datasource.url=jdbc:mysql://localhost:3307/auth spring.datasource.username=root spring.datasource.password=1234 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=u..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b0a7uC/btskAGO1QuC/EZ5KbkQJyUEYFVCOgbl5SK/img.png)
로그인 정보를 Server에 저장하지 않고 Client에 JWT로 암호화하여 저장한다. 또한 클라이언트에서 암호화하여 저장된 정보를 Server에 전송하여 JWT를 통해 인증 및 인가한다. (이때 Secret Key를 활용한다.) **어떠한 기능들이 가진 메서드를 한 묶음 한 모듈 -> Util build.gradle 에 의존성 추가 // JWT compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jack..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nT5Ie/btskAIsf9bG/wUj1QzYwbqUqKvmaUALlFK/img.png)
Cookie는 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일 Session은 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용한다. SessionID는 Cookie에 저장하고 요청 시 서버가 클라이언트를 식별하고 세션을 처리하는데에 활용한다. Servlet에서 SessionID를 생성해준다. (HTTPSession) 클라이언트가 저장하고 있는 Cookie이다. Cookie안에 name=value 와 SessionID 가 저장되어있다. 클라이언트는 서버에 요청을 보낼 때 해당 쿠키를 HttpServletRequest 에 넣어서 요청을 한다. 서버는 HttpServletRequest 를 받아서 세션ID를 이용해 사용자를 식별한다. Servlet에서 요청이 들어 왔을 때에 HttpSer..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bYimu9/btsklmjvHgr/4CxnAP70HmSM5zfP1yCzVk/img.png)
같은 타입의 Bean 객체 활용하기 bean 객체를 반환하는 메서드 위에 @Bean을 기재 해당 메서드가 들어가 있는 클래스 위에 @Configuration을 기재 이렇게 하면 IoC Conatiner에 bean으로 저장됨. -> bean 명칭은 클래스명에 맨앞에가 소문자로 바뀐 이름으로 저장된다. Pizza.java package com.sparta.springauth.food; import org.springframework.stereotype.Component; @Component public class Pizza implements Food { @Override public void eat() { System.out.println("피자를 먹습니다."); } } Chicken.java packag..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/VXp7M/btsj50OD0PE/lekBk81ZLSUHZTHIohICJ1/img.png)
목차 : 1. Spring과 Spring Boot 차이 Sprinb Boot는 Spring의 기존 .xml 설정 대신 @의 어노테이션을 기반으로 설정한다. Spring 프레임 워크는 Apache Tomcat을 다운로드 받아서 직접 삽입이 필요하다. Spring boot는 boot 의존성을 추가하면 설정이 끝난다. Spring boot에 Apache Tomcat이 내장되어 있으므로 따로 설정하지 않아도 된다. 이때 Apache Tomcat은 동적 데이터를 처리하는 웹 애플리케이션(WAS) 이다. 웹서버는 정적인 데이터를 처리하는 서버 이미지나 단순 html 같은 정적인 리소스들을 전달하며 WAS만을 이용할 경우보다 빠르고 안정적으로 기능을 수행 WAS는 동적인 데이터를 위주로 처리하는 서버이다. WAS(W..
1. 소문자를 사용한다. 2. 언더바 ( _ ) 대신 하이픈(-)을 사용한다. - 하이픈의 사용도 최소한으로 권장한다. 3. 마지막에 슬래시를 포함하지 않는다. 4. 행위를 포함하지 않는다. - 행위는 HTTP Method로 표현한다. 5. 파일 확장자는 URL에 포함시키지 않는다. 6. 자원에는 형용사, 동사가 아닌 명사를 사용하며, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 사용한다. - URL은 자원을 표현하는데 중점을 두기에 동사, 형용사보다 명사를 사용한다.