반응형

Java 12

Java에서 JJWT (Java Json Web Token)를 이용한 JWT(Json Web Token) 사용 방법

1. JWS 생성String jws = Jwts.builder() // (1) .setSubject("Joe") // (2) .signWith(key) // (3) .compact() // (4)(1) JwtBuilder 객체를 생성하고 Jwts.builder() 메서드를 이용한다.(2) header 파라미터와 claims를 추가하기 위해 JwtBuilder 메서드를 호출한다.(3) JWT를 서명하기 위해 SecretKey나 PrivateKey를 지정한다.(4) 마지막으로 압축하고 서명하기 위해 compact()를 호출하고, jws를 생성한다. ✅HeaderHeader para..

Java 2024.07.03

JWS / JWT

[용어 정리]JWS (JSON Web Signature) : 서버에서 인증을 근거로 인증 정보를 서버의 private key로 서명한 것을 토큰화 한 것JWE (JSON Web Encryption) : 서버와 클라이언트 간 암호화된 데이터를 Token화 한 것JWK (JSON Web Key) : JWE에서 payload encryption 에 쓰인 키를 Token화 한 것JWT (JSON Web Token) : JWS or JWE[실제 예제]JWS 구조 : Header(JSON) + payload(JSON) + signature* signature = sign(header + payload)header시그니처를 해싱하기 위한 알고리즘 정보가 담겨져 있는 부분payloadclaim을 담고 있는 부분sign..

Java 2024.07.02

BufferedReader, BufferedWriter

BufferedReader와 BufferedWriter는 버퍼를 사용하여 읽기와 쓰기를 하는 함수이다. 버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다.하지만 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송한다. 버퍼가 가득 차거나 혹은 개행 문자(줄 바꿈 문자)가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다. 한번 버퍼를 거쳐 출력되는 것 보다, 키보드의 입력을 받는 즉시 출력하는 것이 빠를 것이라고 생각할 수 있다.하드디스크는 속도가 느리고 외부 장치(키보드, 모니터 등)와 데이터 입출력도 생각보다 시간이 오래 걸린다. 그렇기 때문에 키보드의 입력이 있을 때마다 바로 이동시키는 것보다, 중간에 버퍼를 두고 한번에 묶어 보내는..

Java 2024.06.17

H2 데이터 베이스

H2는 굉장히 작고 가벼운 RDMS로, 그 특성상 제공되는 기능은 제한적이지만 속도가 빠르고 별도의 프로그램 없이 웹 브라우저 기반의 DB 콘솔을 사용할 수 있다.다양한 기능이 필요하지 않은 소규모 서비스나 단위 테스트에서 많이 사용된다. H2는 Java로 작성된 인메모리 관계형 데이터 베이스이다.  ❗ 특징인메모리 DB 이다.일반적인 데이터베이스와 달리 프로그램 구동 시 메모리 (RAM)에 데이터를 저장한다.애플리케이션이 종료되면 모든 메모리가 삭제된다. (휘발성)별도의 설치가 필요 없이 프로젝트 의존성만으로 관리할 수 있다.개발 단계에 활용하거나 테스트 코드에서 자주 활용된다. ❇️ 장점하드 디스크가 아니라 메모리에서 Data CRUD 연산을 함으로 상대적으로 빠르다.ANSI 표준 SQL로 여러 호환..

Java 2024.06.14

[Java] StringTokenizer 문자열 분리 (split과 차이)

1. StringTokenizer 클래스란?StringTokenizer 클래스는 문자열을 구분자를 이용하여 분리할 때 사용할 수 있다. 만약 BufferedReader 클래스의 메서드로 입력을 읽어들인다면 라인 단위로 읽어들일 수 밖에 없다. 꼭, BufferedReader 클래스만이 아니라도, 스페이스 기준으로 혹은 컴마로 혹은 공백을 기준으로 문자열을 분리한다던가, 특정 문자에 따라 문자열을 나누고 싶을 때 StringTokenizer를 사용한다. 즉, 토큰은 문자열 조각을 의미하고, StringTokenizer 클래스는 하나의 문자열을 여러 개의 토큰으로 분리하는 클래스이다. (1) StringTokenizer 생성자StringTokenizer를 생성하는 방식은 3가지가 있다.// 1. 띄어쓰기 기..

Java 2024.06.14

[Java] System.arraycopy 사용법

System.arraycopy 는 byte[] 형태의 데이터를 자르거나 연접하기 위해 사용하는 메서드이다. System.arraycopy 의 파라미터는 총 5개이다. System.arraycopy(src, srcPos, dest, destPos, length) Object src : 복사하고자 하는 소스이다. 즉, 원본을 말한다. int srcPos : 위의 원본 소스에서 어느 부분부터 읽어올지 위치를 정한다. 처음부터 데이터를 읽기를 위하면 0을 넣는다. Object dest : 복사할 소스, 복사하려는 대상이다. int destPos : 위의 복사본에서 자료를 받을 때, 어느 부분부터 쓸 것인지 시작 위치를 정한다. 처음부터 데이터를 쓸거면 0을 넣어준다. int length : 원본에서 복사본으로 ..

Java 2024.03.22

[Java] parseInt() VS valueOf() 차이점

Java에서 String을 숫자 값으로 변형할 때 Integer.parseInt() 와 Integer.valueOf() 메소드를 많이 사용한다. 하지만 이 두 메서드에도 약간의 차이가 있다. 1. parseInt 와 valueOf의 차이점 parseInt() -> 원시 데이터인 int 타입을 반환 valueOf() -> Integer 래퍼(wrapper) 객체를 반환 parseInt() 의 소스코드 public static int parseInt(String s) throws NumberFormatException { return parseInt(s,10); } parseInt() 메서드는 전달받은 인자를 파싱하고 기본데이터 타입인 int 로 반환한다. valueOf() 의 소스코드 public stat..

Java 2024.02.25

[Java] 객체지향 언어의 특징

1. 객체지향 언어의 특징 (1) 추상화 현실 세계의 사실에서 주어진 문제의 중요한 측면을 주목하여 설명하는 방식 실세계의 객체에서 불필요한 부분을 제거하여 필요한 부분만을 클래스로 만드는 작업 속성과 행동으로 추상화를 실현 즉, 실체를 -> 추상화 -> 클래스화(코드화) 하는 과정 (2) 캡슐화 객체와 객체 간의 의사 소통을 위한 정보만을 노출 즉, 실제 내부 구현 정보는 숨기는 원리 추상화 과정에서 클래스를 정의할 때, 객체의 자료와 행위를 클래스 단위로 하나로 묶고, 실제 내부를 구현한다. 내부 내용을 외부에 감추는 것 ※ 정보 은닉 (Information hiding) 이 발생 - 캡슐화 과정에서 클래스 내부 구현을 외부에서 숨기기 때문에 내부에서 일어나는 일에 아무도 관심이 없다. ※ 클래스 단..

Java 2023.12.14

[Java] Vector

1. Vector 컬렉션Vector 은 ArrayList 와 같이 List 인터페이스를 상속받는 컬렉션 프레임워크이다. 사용법은 ArrayList와 크게 다르지 않다.컬렉션 프레임워크가 나오기전에 가변 개수의 배열이 필요한 과거에 사용되었으며, 현재는 성능상 거의 사용하지 않고 ArrayList를 사용한다. 하지만 호환성을 위해 제거하지 않고 남겨두었다.  특징동적으로 원소를 추가할 수 있다. 즉, 크기가 자동으로 늘어난다.맨 마지막 위치에 데이터를 삽입하거나 삭제할 때는 문제가 없지만 중간 데이터의 삽입 삭제는 배열과 같은 매커니즘으로 동작한다.배열과 마찬가지로 인덱스를 이용하여 각 데이터에 직접 접근할 수 있다.    2. Vector 사용법Vector 컬렉션의 메서드는 ArrayList와 거의 비슷..

Java 2023.11.21

[Java] Map 의 getOrDefault 사용법

1. getOfDefault 란 무엇일까? 찾는 key가 존재한다면 찾는 key의 value 값을 반환하고 찾는 key의 value 값이 없다면 default 값을 반환하는 메서드이다. 2. 사용방법 getOfDefault(Object key, DafaultValue) key : 값을 가져와야 하는 요소의 key defaultValue : 지정된 키로 매핑된 값이 없거나 null 인 경우 반환되어야 하는 기본값 (1) 예시 import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map map = new HashMap(); map.put("red","빨강"); map...

Java 2023.11.20
반응형