맛있는 개발자의 기록 일기
  • 홈
  • 관리창
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (84)
      • Java (74)
      • Food (2)
      • Java 기초 (0)
      • Java 심화 (0)
      • Language (4)
        • Java (4)
      • Framework (2)
        • Spring (2)
      • DevOps (1)
        • Git (1)
      • Cloud (1)
        • Amazon Cloud (1)
  • 홈
  • 태그
  • 방명록
Java

[Spring Boot] Spring Security + OAuth2.0 + JWT 소셜 로그인 구현 정리(Google, Kakao ...)

(서론) Spring Boot, Spring Security, OAuth2.0, JWT 소셜 로그인 구현 최근 사이드 프로젝트를 진행하고 있는데, 소셜 로그인 기능을 넣어보고 싶었습니다. 소셜 로그인이라고 하면 서비스되고 있는 많은 애플리케이션에서 사용 중인 Google, Kakao, Naver, GitHub 등을 사용한 로그인입니다. 개발자 입장에서는 로그인 프로세스를 개발할 필요가 없고, 보안 및 유지관리 작업에 신경을 덜 쓸 수 있다는 등의 장점이 있습니다. 로그인을 구현하기 위한 시간을 단축시켜 준다고 했지만, 직접 소셜 로그인을 구현하는 것은 쉬운일이 아니었습니다. 처음 접하는 것이다 보니 알아야 할 것들이 많았습니다. 오늘은 Spring Security와 oauth2.0을 포함하여 여러가지 프..

2023. 10. 12. 11:01
Cloud/Amazon Cloud

[AWS] EC2 란 무엇인가? 사용 방법 및 세팅 정리

EC2 (Elatic Compute Cloud) EC2는 Amazon Elastic Compute Cloud의 약어로 AWS에서 제공하는 클라우드 컴퓨팅 입니다. 독립된 컴퓨터를 임대해주는 서비스라고 할 수 있습니다. 예를들어 우리가 PC방에서 컴퓨터를 사용하는 것과 같이 AWS에서 컴퓨터를 대여해주고 우리는 그것을 사용하는 서비스라고 보면 되겠습니다. EC2는 가정에서 사용하는 PC와는 차이가 있는데, cloud의 특징상 1분만에 생성이 가능하고 삭제도 즉시 가능합니다. 초기 구입, 세팅비용은 없으며 사용한 만큼만 비용을 지불하면 되는 것이 특징입니다. 10GB의 용량이 필요하다고 생각해 보겠습니다. 그렇다면 120GB의 SSD를 구입해서 사용해야 하는 것이 아니라, 10GB의 용량만큼 비용을 지불하고..

2023. 8. 14. 12:37
DevOps/Git

GitHub SSH Key 생성 하는 이유?

GitHub을 사용하기 위해서는 먼저 OpenSSH 키를 등록해야 한다. Git과 GitHub를 로컬에서 사용하고 제대로 사용해 본적이 없었던 지라, SSH 키를 왜 만들어야 하는지 잘 이해가 되지 않았다. 일단 필자는 HTTP를 사용하여 git을 사용했기 때문에 SSH를 이용한 방식은 처음이다. 둘의 차이는 아래 포스팅을 참고하면 될 것같다. 뭘로 Clone해야해? SSH vs HTTP? Gitlab이나 Github 등 Git 저장소에서 Local로 clone을 하다보면 SSH와 HTTPS 중에서 뭘로 받아야할 지 고민한 적이 한 번이라도 있으신 분(저를 포함하여)들을 위해 작성해보았습니다. 어떤 차이가 있는지 develoduck.tistory.com GitHub를 사용할 때 SSH 키는 왜 필요한가?..

2023. 8. 8. 13:11
Framework/Spring

[Spring] Spring REST Docs API 문서 만들기

아래 내용은 Spring REST Docs를 사용하면서 정리해둔 내용입니다. API 문서 자동화 백엔드와 프론트엔드 개발자 사이의 원활한 협업을 위해서는 REST API 명세에 대한 문서화가 잘 되어있어야 한다. 물론 구글 독스, 스프레드 시트, 위키, 노션 등을 사용해서 직접 API 명세를 문서화할 수 있지만, 우리는 개발자 아니겠는가. 자동화를 해야지만 무언가 나도 편하고 간지도 난다. API 문서 작성을 도와주는 자동화 도구가 많은데, Java Spring 진영에서 가장 많이 쓰이는 API 문서 자동화 도구는 크게 Swagger와 Spring REST Docs 이 두 가지가 있다. API 문서 자동화 도구 : Spring REST Docs 테스트 도구 : MockMvc(@WebMvcTest) 문서 ..

2023. 8. 7. 13:32
Framework/Spring

[Spring] Transactional Propagation

트랜잭션을 다루면서 Propagation 설정을 사용하는 일이 있었다. 특히나 REQUIRES_NEW를 사용했는데 무슨 말인지 이해가 되지 않았다. 무슨 부모 spring에서 부모와 트랜잭션을 동일한 범위로 묶지 않기 위해서 사용한다는 말을 했는데.. 아래서 한번 알아보자. Propagation 일단 Propagation의 옵션들을 정리하면 아래와 같다. 옵션 설명 REQUIRED [기본 옵션] 부모 트랜잭션이 존재한다면 부모 트랜잭션에 합류, 그렇지 않다면 새로운 트랜잭션을 만든다. 중간에 자식/부모에서 rollback이 발생된다면 자식과 부모 모두 rollback 한다. REQUIRES_NEW 무조건 새로운 트랜잭션을 만든다. nested한 방식으로 메소드 호출이 이루어지더라도 rollback은 각각..

2023. 8. 2. 20:40
Language/Java

[Java] 동시성 이슈 해결하기

동시에 여러 개의 요청이 들어오게 되면, 우리가 원하던 결과값이 나오지 않아 테스트 케이스 작성 시 오류가 발생하는 경우 많다. 이러한 오류를 레이즈 컨디션이라고 한다. 이러한 부분은 어떻게 해결해야 할까? 레이스 컨디션(Race Condition) 레이스 컨디션이란? 두 개 이상의 프로세스가 공통 자원을 병행적으로(ConCurrently) 읽거나 쓸 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 달라지는 상황을 말한다. 그렇다면 레이스 컨디션이 발생하게 된다면 어떻게 될까? 모든 프로세스 원하는 결과가 발생하는 것을 보장할 수 없기 때문에, 이러한 상황은 반드시 피해야만 한다. 중간에 값이 변경되는 경우에는 우리가 예측하기 불가능하고 실제 이런 코드들이 문제를 많..

2023. 8. 1. 16:47
  • «
  • 1
  • 2
  • 3
  • 4
  • ···
  • 14
  • »
Powered by Privatenote Copyright © 맛있는 개발자의 기록 일기 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바