[Spring] Query Parameter vs Path Variable
·
Back-end/Spring
결론자원(데이터)의 위치를 특정해서 보여줘야 할 경우 Path Variable을 쓰고, 정렬하거나 필터해서 보여줘야 할 경우에 Query Parameter를 쓴다. 아래가 바로 그렇게 적용한 사례이다./users # Fetch a list of users/users?occupation=programer # Fetch a list of programer user/users/123 # Fetch a user who has id 123 위의 방식으로 우리는 어디에 어떤 데이터(명사)를 요청하는 것인지 명확하게 정의할 수 있다.하지만, 그 데이터를 가지고 뭘 하자는 것인지 동사는 빠져있다. 그 동사 역할을 하는 것이 GET, POST, PUT, DELETE 메소드이다.즉, Query string과 Path va..
Java 문법 총 정리
·
Java
java로 알고리즘 공부를 하며 정리하고자 하는 메서드들 총 정리한 글입니다!java.util.Arraysint[] , String[] 같이 Array 타입에 사용 가능한 메서드.Arrays.copyOfRange(배열, start, end - 1); // start ~ end-1 까지 subArray 리턴Arrays.asList(컨테이너 타입) -> // 컨테이너를 List타입으로 변환.Arrays.stream(배열).sum(); // 배열의 합Arrays.stream(intArray).max().getAsInt() // 배열의 최대Arrays.stream(intArray).min().getAsInt() // 배열의 최소Arrays.stream(arr).map(i -> 각 item에 적용).toArray..
[Spring] Security + JWT + Redis를 활용한 로그인 구현 (2)
·
Back-end/Spring
[Spring] Security + JWT + Redis를 활용한 로그인 구현 (1)Security를 활용한 로그인 구현을 위해 여러 블로그들을 참고하여 작성한 글입니다.내용에 잘못된 점이 있다면 지적해주시면 감사하겠습니다! 먼저 로그인 구현에 앞서 JWT가 뭔지 개념을 정리해sksmsfbrjs51.tistory.com로그인 구현 이전에 JWT에 대한 개념글을 정리해보았다. JWT에 대한 이해가 필요하다면 이전 게시글을 참고하면 좋을 것 같다! 구현에 앞서 Spring Security 동작 단계를 살펴보자Spring Security 동작 단계사용자가 로그인 정보와 함께 요청을 보낸다.AuthenticationFilter가 해당 요청을 가로채고 ,가로챈 정보를 통해 UsernamePasswordAuthen..
[Spring] @NotNull vs @Column(nullable = false)
·
Back-end/Spring
본격적인 차이로, @Column(nullable = false)는 JPA가 만든 엔티티의 필드 값이 null로 채워진 상태에서도 정상적으로 수행되다가 데이터베이스 쪽으로 SQL 쿼리가 도착한 순간에 테이블 컬럼의 NOT NULL 옵션에 의해 예외가 발생된다.그러나 @NotNull 어노테이션은 데이터베이스 쪽으로 SQL 쿼리가 보내지기 전에, 정확히는 JPA가 만든 엔티티의 필드 값이 null로 채워지는 순간에 예외가 던져진다. 즉 @NotNull 어노테이션이 보다 더 빠른 단계에서 같은 예외를 검출하므로, 더 안전하다고 볼 수 있겠다. @Valid 어노테이션에 대한 공부를 할 수 있어서 좋았다. 추가1. @NotNull해당 값이 null인지 체크하는 validation 2. @NotBlank오직 문자열에..
[Spring] 무한 redirection
·
Back-end/Spring
문제사항 spring google 소셜 로그인 구현 중 SuccessHandler에 리디렉션 url을 설정하여 로그인이 잘 되는지 테스트하고 있는 도중에, 갑자기 무한 리다이렉트 되는 현상을 발견했다...!OAuth2SuccessHandler핸들러 코드를 살펴보자...@Component@Slf4jpublic class OAuth2SuccessHandler implements AuthenticationSuccessHandler { @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authent..
[AWS] EC2 환경에서 Redis 구축하기
·
Infra & Cloud/AWS
0. redis란?REmote DIctionary Server‘키-값’ 구조의 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 in-momory data structure store 특징○ In-memory data structure문자열, hash, list, set, sorted set, stream 등의 자료형을 지원하는 “data structure server”○ ProgrammabilityLua를 사용한 server-side scripting과 Redis Functions를 이용한  server-side 저장 과정○ Persistence빠른 액세스를 위해 데이터 세트를 메모리에 보관하지만, 재부팅 및 시스템 오류가 발생해도 영구 스토리지에 대한 모든 쓰기를 유지할 수도 있다.○ Clusturi..
[AWS] EC2와 RDS 연결하기
·
Infra & Cloud/AWS
1. DB 생성RDS 탭에 들어가 데이터베이스를 생성해준다.프리티어를 사용할 예정이므로 과금 조건은 과감하게 해제한다!! RDS 확장 지원 활성화에 체크 해제 해야 한다 (과금 사항!!)  마스터 사용자 이름, 마스터 암호는 SpringBoot yml에서 DB Connection 설정과 Local 에서 Test 할때 필요하다.  스토리지 부분의 할당된 스토리지는 프리티어에서는 20 GB 가 제공된다.스토리지 자동 조정 기능은 과금 사항이므로 체크 해제해야 한다!!! - 퍼블릭 엑세스 : '예' 선택 시 VPC 외부에서도 해당 RDS에 접근이 가능, 같은 VPC의 EC2에서만 접근할 경우 '아니오' 선택* 만약 아니요를 선택한다면 퍼블릭IP가 할당되지않아, 외부에서 접근이 불가능하다. - 보안그룹은 EC2..
[Spring] Security + JWT + Redis를 활용한 로그인 구현 (1)
·
Back-end/Spring
Security를 활용한 로그인 구현을 위해 여러 블로그들을 참고하여 작성한 글입니다.내용에 잘못된 점이 있다면 지적해주시면 감사하겠습니다! 먼저 로그인 구현에 앞서 JWT가 뭔지 개념을 정리해보도록 하자. JWT란?JWT는 JSON Web Token의 약자로, Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다.언제?권한 부여 : JWT를 사용하는 가장 일반적인 방식. 사용자가 로그인하면 각 후속 요청에 JWT가 포함되어 사용자가 해당 토큰으로 서비스 및 리소스에 접근할 수 있다.정보 교환 : 공개/개인 키 쌍을 사용해 JWT에 서명이 가능하기 때문에 발신자가 누구인지 식별 가능하다. 또한 헤더와 페이로드를 사용하여 서명을 계산하므로 콘텐츠 변조여부를 식별할 ..