개발/Spring & SpringBoot 5

aws sdk로 s3업로드하기 & steam 업로드

s3 파일업로드를 개발하며 고생한 경험 기록.private static AmazonS3 s3Client;private static AmazonS3 getAmazonS3(){// 싱글톤 적용 if(s3Client == null){ // 클러스터에 role을 넣어줘서 credentials, region은 자동으로 설정된다. // 반대로 로컬에서 수행하려면 클라이언트에 해당정보를 넣어주면 된다. s3Client = AmazonS3ClientBuilder.defaultClient(); } return s3Client;}private void uploadS3(MultipartFile multipartFile, String key, String bucketName){..

Spring 3 RestController 구현

학생 때 공부해보면서 Rest API 만들어야 할 때는 RestController로 참 쉽게 구현했었는데 이번에 Spring3 환경에서 개발해야 할 일이 있어서 @RestController 어노테이션을 달고 import 하려고 하니 Spring3에서 RestController가 없다는 것을 알게 되었다. 구글링 하고 약간의 삽질 끝에 구현했다. import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web..

카카오 로그인 만들기 3

로그아웃, 연결끊기를 모두 테스트 해보고 결과를 기록한다. 1. 로그아웃 로그아웃은 토큰만 만료시키므로 리다이렉트 작업을 따로 해줘야한다. 2. 연결끊기 음.. 처음에는 무슨 말인지 이해가 잘 안됐는데, 앱 처음시작할 때 사용자 정보 동의를 할텐데, 연결 끊기를 하면 다시 정보동의 창이 뜨게된다. 말그대로 앱과 사용자 계정의 연결을 끊는다. @RequestMapping(value="/kakaologout") public String logout(HttpSession session) { kakaoLogin.logout((String)session.getAttribute("access_token")); session.invalidate(); return "redirect:/"; } 로그아웃 컨트롤러 뚝딱. ..

카카오 로그인 만들기 2

코드까진 받았으니 토큰을 요청해보자. 문서에 설명이 너무 잘되어있다. 그래도 해보는걸로. @Service public class KakaoLoginService { public String getAccessToken (String auth_code) { String access_token = ""; String refresh_token = ""; String reqURL = "https://kauth.kakao.com/oauth/token"; try { URL url = new URL(reqURL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // POST 요청을 위해 기본값이 false인 setDoOutput을 true로 co..

카카오 로그인 만들기 1

현재 진행하고 있는 프로젝트에서는 회원가입/ 로그인 기능을 포함하고 있었다. 팀원들과 회의를 하면서 생각해보니 굳이 사용자의 여러정보를 받을 필요가 없어서, 카카오 로그인을 통해 이메일 정도만 가져오도록 수정작업을 하기로 했다. 학교 다닐적에 Spring 공부하면서 카카오 로그인기능을 한번 구현해본적이 있어서 어렵지 않을 것 같지만 과연?.. 일단 유하(프로젝트명)로 애플리케이션을 만들었다. 저아래있는 jam은 예전에 연습했었던 카카오로그인의 잔재.. 화면을 심플하게 구성하기 위해서 큰 버튼을 넣어두는게 좋겠다고 생각했다. rest api키와 redirect url을 보내면 된다고 나와있다. 로그인 성공 @Controller public class KakaoLoginController { @Request..