[Spring] @RequestPart vs @RequestParam vs @RequestBody
·
Back-end/Spring
@RequestPartContent-Type 이 'multipart/form-data' 에 특화된 어노테이션HTTP request body 에 multipart/form-data 가 포함되어 있는 경우에 사용 MultipartFile 을 받을 때 사용 가능단, HttpMessageConverter 가 Content-Type 을 참고하여 알맞는 Converter 로 처리한다 MultipartFile 이 포함되는 경우에 MultipartResolver가 동작하여 역직렬화를 하게 된다.(역직렬화 : Byte로 되어있는 데이터를 객체 형태로 변환)단, MultipartFile 이 포함되어있지 않다면, @RequestBody 와 마찬가지로 HttpMessageConverter가 동작된다.@RequestParamH..
[우테코 7기 BE] 우아한테크코스 준비까지...
·
회고록/우아한테크코스
2024.10.10 (목)현재 3학년 2학기를 달리고 있는 소프트웨어학부 전공생이다... 사실 다음 학기 캡스톤을 해야 하는 상황이고, 동계 인턴도 지원해볼 생각이었다.하지만 아무리 예비 4학년이어도 동계 인턴에 붙는다는 보장도 없고, 학부생 신분일 때 무언가 뜻깊은 활동을 하고 싶었다.주변에서는 1년 휴학해서 해외 여행을 통해 견식을 넓혀온 친구들도 있었고, 학부생일 때 다양한 공모전을 통해 입상한 친구들도 있었다. 좀 더 의미 있는 활동이 무엇이 있을까 고민을 많이 했다. 소프트웨어 마에스트로 또는 멋쟁이사자처럼 등 연합동아리를 알아보던 도중, 우아한테크코스를 보게 되었다. 우아한테크코스 이전 기수들의 회고록을 보며 나만의 개발 패러다임을 완전 갈아엎고, 한층 더 성장할 수 있는 발판이 되겠다 생각..
[ Charles ] SmartPhone에서 요청한 API 패킷 분석
·
카테고리 없음
보호되어 있는 글입니다.
[Spring] Spring Boot에서 Google Meet API 적용해보기
·
Back-end/Spring
회의 요약 서비스 플랫폼 프로젝트를 기획 중 Google Meet를 서비스 내에서 구현할 수 있어야 하는 문제가 생겼다...실제로 써본 적이 없는 API이기 때문에, 사용법 숙지를 위해 테스트 프로젝트를 생성했다. Google Meet은 자체적인 API가 없어서 Google Calendar 이벤트를 생성할 때 Meet 회의를 추가하는 방식으로 URL을 발급받을 수 있다고 한다. 흐름1. Google OAuth2 인증을 통해 구글 계정에 대한 인가 코드를 받는다.2. 해당 인가 코드를 통해 사용자의 Google Calendar 의 Hangout 타입의 이벤트를 생성한다 (Google Meet) .3. 해당 Google Meet의 URL을 발급한다. 1. Google Cloud Platform 설정먼저 Go..
[Spring] JWT + Redis를 활용한 로그아웃 구현 (Jwt BlackList)
·
Back-end/Spring
프로젝트를 진행하면서, 사용자의 인증 여부를 확인하기 위해 JWT 토큰 기반의 방식을 선택했다.보안과 JWT를 공부하면서 refresh 토큰을 제대로 사용해본 적이 없어 2024년 여름방학 때 확실하게 공부해야겠다는 생각이 들었다.처음 프로젝트 때 카카오 소셜 로그인을 사용하면서 access token 만으로 인증 방식을 진행했지만, access token을 탈취당했을 상황의 문제점에 대해 고려하면서 refresh token을 도입하여 보완하고, 로그아웃 이후의 탈취상황을 고려해 블랙리스트(Blacklist)라는 개념을 찾게 되어 사용해보고자 도입해봤다. Refresh Token 로직클라이언트 로그인 요청서버에서 access token, refresh token 생성 및 반환access token의 유효..
[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..