IT 썸네일형 리스트형 JWT와 Security를 활용한 인증, 인가 구현 3 ( REST API 구현) https://sh970901.tistory.com/108 를 참고하여 REST API를 개발하기 위한 RsData를 생성하였다. Member 컨트롤러를 생성하여 로그인 요청에 대한 처리를 작성해보자.@PostMapping("/login")public ResponseEntity login(@Valid @RequestBody LoginDto loginDto) { Member member = memberService.findByUsername(loginDto.getUsername()).orElse(null); if (member == null) { return Util.spring.responseEntityOf(RsData.of("F-2", "일치하는 회원이 존재하지 않습니다."));.. 더보기 Spring Boot로 REST API 구현을 위한 ResponseEntity<> 커스텀 ResponseEntity를 작성할 때 header, body, status code를 분리하여 REST API를 구현하였는데 잘못된 요청 시도에서 body에 잘못된 요청이라는 정보를 편리하게 싣고 상태 코드도 커스텀하여 body에 추가하려한다. 따라서 필자는 Result Data 줄여서 RsData라는 클래스를 만들어서 활용하였다.@Getter@Setter@AllArgsConstructorpublic class RsData { private String resultCode; private String msg; private T data; public static RsData of(String resultCode, String msg, T data) { return .. 더보기 JWT와 Security를 활용한 인증, 인가 구현 2 ( Security 필터 추가) 1. SecurityConfig를 작성하자. JwtAuthorizationFilter 라는 필터를 생성하여 스프링 시큐리티 내부에 여러 인증 필터 중 만만한 UsernamePasswordAuthenticationFilter 앞에 추가하였다. @Beanpublic SecurityFilterChain apiFilterChain(HttpSecurity http) throws Exception { http .antMatcher("/api/**") .exceptionHandling(exceptionHandling -> exceptionHandling .authenticationEntryPoint(authenticationEntryPoi.. 더보기 JWT와 Security를 활용한 인증, 인가 구현 1 ( JWT 토큰 생성) JWT에 대한 이론은 https://sh970901.tistory.com/85 포스팅했으니 참고하도록 하자. 1. build.gradle에 JWT와 Security 관련 라이브러리를 추가해준다. //JWT 관련 implementation 'io.jsonwebtoken:jjwt-api:0.11.5' runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5' runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' //Security 관련 implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf.. 더보기 퍼사드 패턴(Facade Pattern) Facde 패턴 정의퍼사드 패턴(Facade Pattern)의 Facade는 "건물의 정면"을 의미하는 단어로 어떤 소프트웨어의 다른 커다란 코드 부분에 대하여 간략화된 인터페이스를 제공해주는 디자인 패턴을 의미한다. **퍼사드 패턴(Facade Pattern)**은 구조 패턴의 한 종류로, 서브 시스템들의 공통적인 기능을 정의하는 단순화된 상위 수준의 인터페이스를 정의하는 패턴이다. 퍼사드 객체는 복잡한 소프트웨어 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜 주고, 복잡한 소프트웨어를 사용 할 수 있게 간단한 인터페이스를 제공해주며 서브 시스템들 사이의 종속성을 줄일 수 있다.퍼사드 패턴 정의(위키백과) : 퍼사드는 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 .. 더보기 접근 제어자 📌 접근제어자멤버 또는 클래스에 사용되어 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한접근 제어자의 종류접근 제어자가 지정되어 있지 않은 경우는 접근 제어자가 default 임을 뜻한다.접근제어자를 사용하는 이유핵심은 캡슐화 결합도캡슐화 : 객체지향의 4대 특성 중 하나 , 정보의 은닉화클래스 내부에 선언된 데이터를 외부로부터 보호하기 위해외부에서 불필요한 부분을 감추어 복잡성을 줄이기 위해//상황 1 : public으로 작성이 되어 잘못된 값을 지정한다고 해도 오류가 발생하지 않는다.public class Time{ public int hour; public int minute; public int second;}Time t = new Time();t.hour = 28;.. 더보기 자바 동일성과 동등성("==", "Equals") 동일성(Identity)두 객체가 완전히 같은 경우를 칭한다. 완전히 같다는 의미는 메모리에 저장된 객체 중 같은 객체를 가리킨다는 의미다. 즉, 각 변수에 저장된 객체의 주소가 같은지를 비교한다.위 그림에서 refVar2, refVar3 둘 다 객체2를 가리키고 있기 때문에 두 변수가 가리키는 객체는 동일하다고 말할 수 있다.두 객체가 동일한지는 ==연산자를 통해 판별한다.참고로 int, double 같은 Primitive 타입은 객체를 갖지 않기 때문에 == 연산자를 사용했을 때 값이 같으면 true 값이 리턴된다.동등성(Equality)동등성은 두 객체에 저장된 값이 같은 값인 경우를 의미한다. 동등성은 변수가 참조하고 있는 객체의 주소가 서로 다르더라도 내용만 같으면 두 변수는 동등하다고 이야기한.. 더보기 스프링부트에서 Redis 사용해보기 레디스(Redis)는 "Remote Dictionary Server"의 약자로, Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비 관계형 데이터베이스 관리 시스템(DBMS)이다장점 - 다양한 데이터 구조를 지원한다. (String, List, Set, Sorted Set, Hashes)- 메모리 + 디스크 활용을 통한 영속적인 데이터 보존 가능.- 서버 측 복제 및 샤딩 지원.- 다양한 API를 지원.단점 - 메모리 사용량이 많다.기본적으로 memcached 대비 데이터 용량을 지원하기 때문이기도 하지만, 동작 방식에서 오는 메모리 사용량이 많다.- 대규모 트래픽에 대한 응답속도 불안정.대규모의 트래픽 발생에 따라 많은양의 데이터가 Update 되면 메모리 할당 방식 .. 더보기 이전 1 ··· 7 8 9 10 11 12 13 ··· 19 다음