전체 글 127

JWT 연습

Json Web Token 스프링 시큐리티 공부 18 - JWT (Json Web Token) (tistory.com) JWT 자바 가이드. 이 글은 OAuth와 JSON Web Token과 같은 토큰 기반의… | by Out of Bedlam | Medium server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: # h2 연결용 DB 정보 driver-class-name: org.h2.Driver # Database를 H2로 사용하겠다. # url: jdbc:h2:~/test # H2 접속 정보 # url: jdbc:h2:tcp://localhost/~/..

Project & Issu 2023.02.10

시간복잡도

배경 코딩 테스트 공부를 하다가 시간복잡도 개념을 확실히 하기 위해 정리하였습니다. 본론 시간복잡도란? - 시간 복잡도란 알고리즘의 연산횟수를 나타내는 척도입니다. - 시간 복잡도는 일반적으로 최악의 경우를 나타내는 빅오 표기법을 사용합니다. - 빅오 표기법은 연산횟수를 다항식으로 표현하여 최고차항의 계수를 제외시켜 나타내기 때문에 반복문의 반복 횟수를 계산하면 됩니다. tip - 연산 횟수는 데이터입출력(copy,move),산술연산(add,multiply),제어연산(if,while,for)이 있습니다. - 연산 횟수 중에서 반복문(for,while)의 반복횟수를 계산하면 빅오표기법을 간단하게 계산할 수 있습니다. 아래 예시를 보면 알 수 있습니다. int func (int n) { int sum = 0..

JPA란?

Java Persistence API - 자바 애플리케이션에서 ORM 을 사용하는 방식을 정의한 인터페이스입니다. - 주로 hivernate를 객체로 사용함 - 관계형 데이터베이스와 객체의 패러다임 불일치 문제를 해결할 수 있다는 점과 영속성 컨텍스트(엔티티를 영구 저정하는 환경) 제공이 큰 특징입니다. Hivernate - 자바 언어를 위한 ORM 프레임워크 Object Relational Mapping - 객체와 관계형DB를 맵핑해주는 기술 Spring Data JPA, Query DSL - JpaRepository 을 상속받아 repository 생성 -> 기본적인 CRUD 쿼리를 사용할 수 있게 해줌 - 쿼리 메서드, @Query 어노테이션을 이용한 JPQL, 네이티브 쿼리 사용, Query DS..

스프링 시큐리티 사용 이유

[Spring Security] 스프링시큐리티의 기본 개념과 구조 (tistory.com) 로그인 인증 인가 처리 보안 스프링 시큐리티를 사용하는 이유? Spring Security 1편 (tistory.com) SpringSecurity를 왜 써야할까? - Flamme Dev (gitbook.io) Spring Security 스프링 시큐리티? (tistory.com) 스프링 시큐리티란? Spring Security 는 Spring 기반으로 인증 과 권한에 대한 것을 Filter에서 처리하는 프레임워크입니다. Filter vs Interceptor Filter는 Dispatcher Servlet 으로 가기전에 적용되므로 가장먼저 URL 요청을 받지만 Interceptor는 Controller 사이에 위..

JWT

1.JWT란 JWT-사전지식-RSA-암호화 (tistory.com) JSON 웹 토큰 소개 - jwt.io [JWT] JWT란 무엇인가? (JSON Web Token) 쉽게 정리한 core개념들 (tistory.com) JWT란? JWT , Session, Cookie 비교 (velog.io) 2. 엑세스 토큰 만료 후 리프레쉬 토큰 발급 api 요청은 클라이언트 단에서 해주고 있는데 서버단에서 바로 처리 하면 안 되는지? - 서버단에서 바로 처리하지 않고 리프레시 토큰 발급 API를 따로 만든 이유는 아래와 같습니다! [Spring/Security/JWT] JWT를 사용한 로그인 및 Refresh Token을 활용한 로그인 상태 유지 — 훙성의 기술 블로그 (tistory.com) 1..

OSI 7계층

출처 OSI 7계층 - IT위키 (itwiki.kr) [네트워크] OSI 7 계층 (OSI 7 Layer) (tistory.com) OSI 7계층 국제 표준화 기구(ISO)에서 개발한 통신에 관한 계층화 표준 모델 쉽게 말하면 통신이 일어나는 과정을 계층별로 나눠서 정의한 것 7 계층 : 응용 계층(Application Layer) 사용자로부터 정보를 입력받아 하위 계층으로 전달하고, 하위 계층에서 전송한 데이터를 사용자에게 전달 HTTP, DNS, Telnet, FTP 6 계층 : 표현 계층(Presentation Layer) 응용 계층(7 Layer)으로부터 전달받거나 전송하는 데이터의 인코딩 - 디코딩 및 암호화 등이 이루어지고 데이터의 형식(png, jpg 등)을 정해준다 프로토콜(Protocol..

springboot OAuth2 Client - facebook, naver login

https://developers.facebook.com/apps/ 로그인 또는 가입하여 보기 Facebook에서 게시물, 사진 등을 확인하세요. www.facebook.com 1. 패북 디벨롭에서 앱 생성 - 앱 유형 : 없음 2. 대시보드에서 패북 로그인 설정 - 웹 - 사이트 url : http://localhost:8080 3. 기본 설정에서 앱ID, 앱 시크릿 코드 확인해서 application.yml에 입력 애플리케이션 - NAVER Developers 애플리케이션 - NAVER Developers developers.naver.com 1. 네이버 디벨롭에서 앱 생성 - 애플리케이션 이름 : springboot-oauth2-naver - 사용자 API : 네이버 로그인 ->회원이름, 이메일 주..

[Lombok] 올바른 Lombok 사용법 - @Builder

출처 - [Lombok] 올바른 Lombok 사용법 - @Builder (tistory.com) 우리가 Spring에서 자주 볼 수 있는 Lombok들에 대해 알아보겠습니다 아래와 같은 코드가 있다고 할 때 이를 어떻게 리펙토링 할 수 있을까요? @Getter @Setter // 문제 1. 객체가 무분별하게 변경될 가능성 있음 @NoArgsConstructor // 문제 2. 기본 생성자의 접근 제어자가 불명확함 @Builder @AllArgsConstructor // 문제3. 객체 내부의 인스턴스멤버들을 모두 가지고 있는 생성자를 생성 (매우 위험) @Entity public class Member 해결 1. @Setter를 사용하지 않기 Setter는 그 의도가 분명하지 않고 객체를 언제든지 변경할 ..

Google API Console - OAuth login

Google API Console 접속 1. 새 프로젝트 등록하여 선택 - 프로젝트 이름 : springboot-oauth-google 2. 좌측 메뉴 - OAuth 동의 화면 1) 외부에 체크하고 만들기 2) 만들기 세부 설정 후 저장 - 앱 이름 : springboot-oauth - 문의 email 2개에 입력 3. 좌측 메뉴 - 사용자 인증 정보 1) 사용자 인증 정보 만들기 - OAuth 클라이언트 ID 2) 세부 설정 후 저장 - 애플리케이션 유형 : 웹 애플리케이션 - 이름 : springboot-oauth - 승인된 리디렉션 URI 추가 : http://localhost:8080/login/oauth2/code/google tip) oauth 라이브러리를 사용하면 login/oauth2/co..