일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 플라이웨이트
- 디자인 패턴
- yml
- 파라미터
- 코딩테스트
- response
- Spring
- Codewars
- enum
- 코드워즈
- Docker
- @Value
- property
- Request
- @RequestBody
- ResponseDto
- Boot
- @RequestParam
- JWT
- RequestParam
- springboot
- Security
- redis
- 반환
- RequestBody
- 프로퍼티
- DTO
- 헬스체크
- actuator
- 로그인
- Today
- Total
목록Spring (10)
있을 유, 참 진
목표 기존의 Spring Boot main() - 시작 전 메인 함수 초기화 빈 컨테이너 생성하기 - 결과 보기 Servlet 매핑하기 & Servlet Request 처리 - 결과 보기 Servlet mapping -> Controller로 변환 - Hello Controller 생성 - 코드 변경 1. 기존 코드 2. 변경 코드 목표 💡 Spring Boot는 별도의 Web Server의 설치나 설정이 없이 개발에만 집중할 수 있게 해 준다. 기존의 Spring Boot의 main 함수 내에 직접 그것을 구현 및 정리 기존의 Spring Boot main() 💡 기존의 Spring Boot 메인, 해당 메인을 실행하면 부트 내의 내장된 톰캣이 실행되고 컨테이너를 초기화, `@SpringBootAppl..
JWT Filter 생성 - JwtSecurityConfig Spring Security 공통 에러처리 - JwtAccessDeniedHandler - JwtAuthenticationEntryPoint WebSecurity에 값 설정 JWT Filter 생성 💡 JWT 토큰을 활용해 Security에서 인가를 처리하는 필터를 생성, 차후 `UsernamePasswordAuthenticationFilter` 전에 들어가 JWT의 정보를 통해 유저의 인가를 처리한다. @Slf4j @RequiredArgsConstructor public class JwtFilter extends GenericFilter { //헤더에서 받아올 이름 지정 public static final String AUTHORIZATION..
로그인 기능 구현 - 사용법 설명 JWT 관련 값 설정 loadUserByUsername(final String username) - User createUser(String username, User user) JWT Provider 생성 - String createToken(Authentication authentication) - Authentication getAuthentication(String token) - boolean validateToken(String token) 로그인 기능 구현 💡 로그인에 관련된 Controller 구현, `api/auth/authenticate` 을 호출하면 로그인이 된다. 순서는 아래와 같다. 유저의 아이디와 비밀번호 값을 이용해 authenticationT..
Spring Actuator? Dependency 추가 - 정상상태(Health check) 점검 결과 확인 1. 서버 상태 세부정보 표시 Spring Actuator? 💡 스프링 부트 애플리케이션의 다양한 운영 정보(health check, metrics, info 등)를 노출하는 엔드포인트를 제공하는 라이브러리입니다. 애플리케이션의 상태 모니터링, 운영 환경 필요 정보 확인. Dependency 추가 💡 스프링 부트 엑츄에이터를 추가해 준다. 스프링 애플리케이션 재실행 시 아래와 같이 나오면 성공 org.springframework.boot spring-boot-starter-actuator 2023-04-09 14:15:50.658 INFO 26768 --- [ main] o.s.b.a.e.web...
회원가입 DTO Controller 및 SecurityConfig 설정 - Controller - SecurityConfig UserService 테스트 결과 회원가입 DTO @Getter @NoArgsConstructor @AllArgsConstructor public class UserDto { @NotNull @Size(min = 3, max = 50) private String userName; @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @NotNull @Size(min = 3, max = 50) private String password; @NotNull @Size(min = 3, max = 50) private String nickName..
JWT(Json Web Token)란 무엇인가? - 사용법 설명 JWT 기반 토큰 인증 JWT의 장단점 - 장점 - 단점 JWT(Json Web Token)란 무엇인가? 💡 JSON 객체를 통해 안전하게 정보를 전송할 수 있는 웹표준(RFC7519), JWT는 `.`을 구분자로 세 부분으로 구분된 문자열로 이뤄지고 구성은 아래와 같다. 헤더: 토큰의 타입과 해싱 알고리즘 내용: 실제로 전달할 정보 서명: 위변조 방지를 위한 값 회원을 구분할 수 있는 정보가 담기는 곳이 JWT의 payload 부분이고 이곳에 담기는 정보의 한 부분을 Claim이라고 칭한다. Claim은 name : value 한 쌍으로 이뤄지며 여러 개의 Claim을 넣을 수 있다. 한마디로 요약하면 JSON이다. JWT 기반 토큰 인증..
environment 클래스 - 사용법 설명 @Value 어노테이션 @ConfigurationProperties - dependency 추가 environment 클래스 💡 import org.springframework.core.env.Environment 스프링 애플리케이션이 시작될 때, Environment는 애플리케이션 프로퍼티를 읽어 스프링 빈으로 등록된다. 해당 인터페이스로 인해 애플리케이션의 설정값을 외부에서 설정할 수 있으므로 유연성과 확장성 증가. 사용법 설명 greeting: message: Hello from user-service //...생략 @RequiredArgsConstructor public class UserController { private final Environme..
설명 - 사용 예시 옵션 - 옵션의 종류 1. 옵션 적용 예시 설명 2. 변경된 결과 설명 설명 💡 자바 객체 → JSON 형식으로 직렬화 때 포함할 속성을 지정할 때 사용. 예를 들어 null 값을 자바 객체를 직렬화할 때 JSON문자열에 해당 null 값이 포함된다. @JsonInclude를 사용해 JSON에서 포함돼야 하는 속성과 제외할 속성이 지정 가능. 사용 예시 // 널 값의 속성은 포함하지 않음 @JsonInclude(JsonInclude.Include.NON_NULL) public class TestClass { ... } 옵션 @JsonInclude는 옵션을 가진다. 대표적으로 다섯 가지가 있으며 아래와 같다. 옵션의 종류 이름 설명 옵션명 옵션이 하는 일 JsonInclude.Inclu..
RequestBody - java 객체에 매핑하는 법 Controller에서 DTO 받을 때 JSON 형태 - Offset 객체 소개 - Offset 객체로 받을 때의 JSON 형태 - List로 받을 때의 JSON 형태 RequestBody 💡@RequestBody는 JSON 형태의 데이터를 Java 객체에 매핑할 때 사용하는 어노테이션. Http 통신 메세지 구성의 status line, headers, body 세 부분으로 중 body 부분의 데이터를 받아올 때 사용 POST http://localhost:8080/api/v1/user Content-Type: application/json { "username" : "이유진", "email" : "yoojinLee.dev@gamil.com" } ...
@RequestParam 기본 설명 - 예시 설명 @RequestParam에서 같은 파라미터를 한 번에 보내는 방법 - 하나의 쿼리 파라미터를 통해 보내기 - 동일한 쿼리 파라미터 이름을 통해 보내기 enum을 통해 받아오는 파라미터 값 제한하기 - enum값 설정 @RequestParam 기본 설명 💡 @RequestParam 어노테이션은 HTTP 요청 파라미터를 받아오는 어노테이션이다. URL의 파라미터를 추출해 메서드 인자로 받는다. - https://yuma1029.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F# 예시 설명 @GetMapping public ResponseEntity getProducts(@RequestP..