[Java / Spring] JWT와 Spring Security (작성중)
·
Framework & Library/Spring
📍 JWT란 무엇인가? JWT(Json Web Token)은 일반적으로 클라이언트와 서버 통신 시 권한 인가(Authorization)을 위해 사용하는 토큰이다. 📍 JWT의 구조 Header, Payload, Signature의 3 부분으로 이루어지며, Json 형태인 각 부분은 Base64Url로 인코딩 되어 표현된다. 또한 각각의 부분을 이어 주기 위해 . 구분자를 사용하여 구분한다. 헤더(Header) - 토큰 서명에 사용되는 알고리즘과 같은 토큰에 대한 메타데이터가 포함 typ : 토큰의 타입을 지정 ex) JWT alg : 알고리즘 방식을 지정하며, 서명(Signature) 및 토큰 검증에 사용 ex) HS256(SHA256) 또는 RSA 페이로드(Payload) - 토큰에서 사용할 정보의 조..
[Java / Spring] 토비의 스프링 - 1. 오브젝트와 의존관계 - DAO 분리
·
책&강의 정리
토비의 스프링 공부 후 정리한 글입니다. 1.2 DAO 분리 개발자가 객체를 설계할 때 가장 염두에 둬야 할 사항은 미래의 변화를 어떻게 대비할 것인가이다 여기서 변경 혹은 발전은 한 번에 한 가지 관심사항에 집중해서 일어난다 즉, 관심이 같은 것끼리는 모으고, 관심이 다른 것은 따로 떨어져 있게하는 관심사의 분리가 중요하다 📍 커넥션 만들기의 추출 UserDao - add() 메소드 관심사항 DB와 연결을 위한 커넥션을 어떻게 가져올까 사용자 등록을 위해 DB에 보낼 SQL 문장을 담을 Statement를 어떻게 만들고 실행할까 작업이 끝나면 사용한 리소스인 Statement와 Connection 오브젝트 닫아주기 첫번째 "DB와 연결을 위한 커넥션을 어떻게 가져올까" => 커넥션을 가져오는 중복된 코..
[Java / Spring] 토비의 스프링 - 1. 오브젝트와 의존관계 - 초난감 DAO
·
책&강의 정리
토비의 스프링 공부 후 정리한 글입니다. 1.1 초난감 DAO 스프링이 가장 관심을 많이 두는 대상은 오브젝트다. 오브젝트에 대한 관심은 오브젝트의 기술적인 특징과 사용 방법을 넘어서 오브젝트 설계로 발전하게 된다. 📍 User DAO DAO(Data Access Object)는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다. 📍 User 오브젝트 - 자바빈 아래의 User 클래스는 자바빈 규약을 따르는 오브젝트이다. 자바빈(JavaBean)이란 디폴트 생성자를 갖추고, 프로퍼티를 가진 오브젝트를 말한다. package chapter1; public class User { String id; String name; String password; public Strin..
[프로그래머스 / Java] 개인정보 수집 유효기간
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 모든 달이 28일까지 있다고 가정하므로 Date format의 날짜 계산을 다르게 해야한다. import java.util.*; import java.text.*; class Solution { public int[] solution(String today, String[] terms, String[] privacies) { ArrayList answer_list = new ArrayList(); HashMap terms_map = new HashMap(); for(int i=0; i
[프로그래머스 / Java] 기사단원의 무기
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 number까지의 약수의 갯수를 구해서 배열에 삽입한다 배열에서 limit가 넘어가면 power로 교체한다 배열의 합을 구한다. import java.util.Arrays; class Solution { public int solution(int number, int limit, int power) { int answer = 0; // 1. 약수의 갯수 -> 나머지가 0 int[] counts = new int[number]; int c = 0; for(int i=1; i
[Java] UUID (Universally Unique IDentifier)
·
Language/Java
📕 UUID란? 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규악 Univeraslly Unique Identifier의 약어이고 범용 고유 식별자라고 함 주로 분산 컴퓨팅 환경에서 사용되는 식별자 128비트의 숫자이며, 32자리의 16진수로 표현됨 8자리-4자리-4자리-4자리-12자리 패턴의 하이픈을 집어 넣어 5개의 그룹으로 구분 📕 UUID 사용 업로드된 파일명의 중복을 방지하기 위해 파일명을 변경할 때 사용 첨부파일 파일 다운로드시 다른 파일을 예측하여 다운로드하는 것을 방지하는데 사용 일련번호 대신 유추하기 힘든 식별자를 사용하여 다른 컨텐츠의 임의 접근을 방지하는데 사용 📕 Java에서 UUID 사용 Java에서는 무작위 랜덤 생성 버전인 UUID 4버전과 해쉬를 이용해 생성하는..
[프로그래머스 / Java] 명예의 전당
·
CodingTest/Java로 푼 코딩 테스트
📍 생각대로 코딩 k일 까지는 그냥 낮은 값이 발표 점수이고 k일 이후부터는 배열정렬해서 찾으면 되지않을까 k가 score 배열의 길이보다 클 때와 작을 때도 있으니 그것도 체크 import java.util.Arrays; class Solution { public int[] solution(int k, int[] score) { int[] answer = new int[score.length]; // 명예의 전당 배열 설정 // 초기값 설정 int[] arr = new int[k+1]; int min = score[0]; arr[0] = min; answer[0] = min; if(k
[Java / Spring / JPA] 맵핑 어노테이션 @Entity, @Table, @Column, @Id
·
Framework & Library/Spring
객체 - 테이블 맵핑 : @Entity, @Table 필드 - 컬럼의 팹핑 : @Column 기본키의 맵핑 : @Id 조인 맵핑 : @ManyToOne, @JoinColumn 📕 @Entity 테이블과의 매핑 @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 불림 제약조건 필드에 final, enum, interface, class 사용불가 생성자 중 기본 생성자가 반드시 필요함 속성 Name - 엔티티 이름을 지정, 기본값으로 클래스 이름을 그대로 사용함 📕 @Table 엔티티와 매핑할 테이블을 지정 생략 시 매핑한 엔티티 이름을 테이블 이름으로 사용 속성 Name - 매핑할 테이블 이름을 지정 Catalog - DB의 Catalog를 매핑 Schema - DB 스키마와 매핑 Uniq..
[Java / Spring] Spring Security란?
·
Framework & Library/Spring
대부분의 애플리케이션에서는 회원관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. Spring에서는 Spring Security라는 별도의 하위 프레임워크를 제공하고 있다. Spring Security란? Spring기반 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크 Spring Security는 '인증(Authentication)'과 '권한(Authorization)'에 대한 부분을 Filter의 흐름에 따라 처리를 하고 있다. spring security는 filter 기반으로 동작하기 때문에 spring MVC 와 분리되어 관리 및 동작한다 > 보안관련 용어 정리 접근 주체(Principal) : 보호된 대상에 접근..