본문 바로가기

구현10

(2) JWT Access, Refresh 토큰 + Redis : 스프링 코드 구현 [Kotlin] 안녕하세요, 스코리아입니다. 오늘은 저번 시간에 이어서 스프링에서 JWT(Access, Refresh 토큰)을 Redis와 함께 사용하는 코드를 구현해 보겠습니다. 언어는 코틀린(Kotlin)으로 진행하겠습니다. 이전 포스팅에서 JWT가 무엇이고 Refresh 토큰을 사용해야 하는 이유, Refresh 토큰의 보안문제와 해결방안, Redis 활용 장점에 대해서 설명드렸으니, 꼭 읽어보시기 바랍니다! [이전 내용] (1) JWT Access, Refresh 토큰 + Redis : 소개 및 보안 : 바로가기 프로젝트 구현 흐름 스프링으로 코드를 구현하기 전에 어떤 식으로 구현해 볼지 Flow에 대해서 먼저 설명해 드리겠습니다. Access 토큰의 유효기간은 30분, Refresh 토큰의 유효기간은 1달(30.. 2023. 12. 30.
자바 인터페이스 의미, 특징, 선언, 구현 방법 (interface) 안녕하세요, 스코리아입니다. 오늘은 자바 인터페이스의 의미와 특징, 선언, 구현 방법에 대해서 알아보겠습니다. 인터페이스 의미와 역할 개발 코드와 객체가 서로 통신하는 접점 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됨 개발코드가 객체를 종속되지 않게 하여 객체를 교체할 수 있음 개발 코드 변경 없이 리턴값 또는 실행 내용이 다양해짐 (다형성) 인터페이스 특징 인터페이스의 모든 메소드는 추상 메소드로 선언됨 (public abstract) 인터페이스의 모든 변수는 상수로 선언됨 (public static final) 인터페이스 선언 우선 인터페이스를 선언하는 방법은 다음과 같습니다. public interface 인터페이스명{ // 인터페이스 } 인터페이스에는 상수.. 2023. 9. 21.
자바 추상클래스 의미, 구현 방법 (abstract class) 안녕하세요, 스코리아입니다. 오늘은 자바 추상 클래스의 의미와 구현방법에 대해서 알아보겠습니다. 추상 (abstract)이란? 어원적 의미: 실체들 간에 공통되는 특성을 추출한 것 예: 삼성, 현대, LG를 통틀어 "회사"라 함 추상 클래스 (abstract class)란? 실체 클래스(객체를 만들어 사용할 수 있는 클래스)들의 공통되는 필드와 메소드를 정의한 클래스 추상 클래스는 실체 클래스의 부모 클래스 역할을 할 수 있음 (실체 클래스 -> 상속-> 추상 클래스) 추상 클래스 특징 구현 코드 없이 메소드의 선언만 있는 추상 메소드(abstract method)를 포함한 클래스 abstract 예약어 사용 추상 클래스는 단독으로 객체를 생성할 수 없고, 부모 클래스로만 사용 가능 (인스턴스화 불가) .. 2023. 9. 8.
자바 객체 간의 상속(extend) 의미, 구현방법 안녕하세요, 스코리아입니다. 오늘은 자바 객체 간의 상속의 의미와 구현 방법을 예시와 함께 알아보겠습니다. 클래스 상속 (Class Inheritance) 의미 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함 상속하는 클래스: 상위 클래스, parent class, base class, super class 상속받는 클래스: 하위 클래스, child class, derived class, sub class 상속 문법 (방법) class B extends A { } 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념, 기능을 가짐 하위 클래스는.. 2023. 8. 25.
자바 객체 배열 선언/구현하기 + 얕은복사, 깊은복사 방법 안녕하세요. 스코리아입니다. 이전 시간에는 자바 1차원 배열을 선언하는 방법과 초기화하는 방법에 대해서 알아보았습니다. [이전 내용] 1차원 배열 선언, 초기화 방법 : https://skorea6.tistory.com/14 오늘은 자바 객체 배열을 선언/구현해 보고, 얕은 복사와 깊은 복사 방법을 예제와 함께 알아보겠습니다. 객체 배열 특징 기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당됩니다. 하지만, 객체 배열의 경우에는 요소가 되는 객체의 주소가 들어갈 메모리(4byte, 8byte..)만 할당되고 각 요소 객체는 생성하여 저장해야 합니다. 객체 배열을 만들고 나면, 모든 index의 값은 null로 초기화됩니다. 객체 배열 선언, 구현하기 Book.java 파일을 만들어, Bo.. 2023. 8. 21.
자바 싱글톤 패턴 의미, static 활용한 구현 (singleton pattern) 안녕하세요, 스코리아입니다. 오늘은 자바 static을 활용하여 싱글톤 패턴을 구현해 보겠습니다. 싱글톤 패턴은 자바 스프링의 핵심 기능 중 하나로도 등장하는데요, 싱글톤 패턴은 자바의 다양한 프레임워크에서 사용되고 있는 매우 중요한 개념입니다. 싱글톤 패턴 (singleton pattern)이란? 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 예를 들면 DB 커넥션의 경우 http 호출이 올 때마다 1개씩 생성되는 것은 비효율적이므로, 커넥션이 단 한 개만 생성된 상태로 해당 인스턴스를 공유해야 합니다. 싱글톤 패턴은 static 변수, 메소드를 활용하여 구현할 수 있습니다. 싱글톤 패턴 구현해 보기 School.java 파일을 만들고, 딱 1개의 인스턴스만 생성될 수 .. 2023. 8. 18.
자바 static 변수 뜻, 의미, 사용방법 그리고 유효범위 안녕하세요, 스코리아입니다. 오늘은 자바 static 변수의 의미와 선언/구현 방법에 대해서 알아보고 어떠한 주의사항이 있는지 알아보겠습니다. static 변수란? 여러 인스턴스에서 공통으로 사용하는 변수를 선언할 때 static 변수를 사용합니다. 즉, 모든 인스턴스가 static 변수를 공유하는 형태로 작동합니다. [예] 그러면 공통으로 사용하는 변수가 필요한 경우는 언제일까요? 여러 인스턴스가 공유하는 기준값이 필요한 경우 학생마다 새로운 학번을 생성해야 하는 경우 회사에 신입사원이 입사할 때 새로운 사번이 필요한 경우 카드 회사에서 카드를 새로 발급할 때마다 새로운 카드 번호를 발급해야 하는 경우 static 변수 선언, 사용방법 public class Student { static int ser.. 2023. 8. 17.
자바 참조 자료형 변수 정의하기, 사용 방법 (feat. 객체) 안녕하세요. 스코리아입니다. 오늘은 자바 참조 자료형 변수를 정의하여 사용하는 방법에 대해서 알아보겠습니다. 그전에 자바의 기본형 타입과 참조형 타입의 차이를 알고 계시나요? 모르고 계신다면 이 포스팅을 읽기 전에, 제가 이전에 작성했던 내용을 꼭 참고해 보시기 바랍니다! [이전 내용] 자바 기본형 타입 vs 참조형 타입 차이점 정리 https://skorea6.tistory.com/8 참조 자료형 변수의 자료형은 두 가지로 나뉩니다. 기본 자료형(기본형 타입)에는 int, long, float, double 등이 존재하고 참조 자료형(참조형 타입)에는 기본형을 제외한 모든 것이 해당됩니다. 예를 들면 String, Date, Student(객체) 등이 존재합니다. 참조 자료형은 클래스 형으로 변수를 선.. 2023. 8. 12.
자바 생성자 의미와 구현, 그리고 생성자 오버로딩 뜻? 안녕하세요. 스코리아입니다. 오늘은 자바의 생성자 의미를 파악하고 구현해 본 뒤, 생성자 오버로딩이 무엇인지 알아보겠습니다. 생성자 (constructor)란? 생성자 의미: 인스턴스가 생성될때 호출되는 인스턴스 초기화 메소드 생성자 용도: 객체가 생성될 때 변수나 상수를 초기화하거나 다른 초기화 기능을 수행하는 메소드를 호출 생성자 호출 방법 : 객체를 생성할 때 new 키워드와 함께 사용 - 예를 들면 new Student() 생성자 기본 문법: ([]){[] 생성자를 만들 때 주의할 점 생성자는 반환 값이 없음 생성자는 클래스의 이름과 동일해야 함 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private로 선언해야 하는 경우도 있음 기본 생성자 (default constructor)란.. 2023. 8. 10.