JWT (Json Web Token) 클라이언트-서버 간 서비스 통신 시 정보를 json 객체를 통해 안전하게 전송하고 권한을 위해 사용하는 토큰이다. 사용 이유 인증 권한 부여 사용자가 로그인하고 난 뒤 서버에 보내는 요청에 JWT 토큰이 포함되어서 사용자가 해당 토큰으로 허용되는 경로에 엑세스 할 수 있음 ( API 접근 등) JWT 구조 세 파트로 이뤄지고, 각 파트는 점으로 구별한다. (A) Header 토큰 타입과 해시 암호화 알고리즘으로 구성되어 있다. 토큰 타입: jwt 해시 암호화 알고리즘: BASE 64 ..etc (B) PayLoad 토큰에 담을 클레임 (claim) 정보를 포함하고 있다. 클레임의 정보는 비공개, 공개, 등록 클레임 세가지가 있다. (C) signature secret..
인증 메커니즘 스프링 시큐리티는 보안 관련 요구사항들을 각각 필터 형태로 어플리케이션에 삽입하고, 사용자의 요청을 가로채서 보안적 역할을 한다. 1. AuthenticationFilter에 의해 사용자의 요청을 가로챈다. 사용자의 요청을 검증하는 인증 필터인 AuthenticationFilter가 AuthenticationManager에 의해 검증된다. 2.AuthenticationManager가 요청을 검증한다. Filter에서 가로챈 요청을 AuthenticationManager은 사용자의 검증한다. 3. AuthenticationProvider 목록을 순회하며 검증에 필요한 특정 유행의 인증을 수행한다. AuthenticationManager 는 다수의 AuthenticationProvider를 순..
만약 개발을 마치고 나서 배포를 하려는데, 서버로 이용되는 컴퓨터에 깔려있는 개발 도구들의 버전이 개발용 컴퓨터와 맞지 않는다면 버전을 다 맞춰야 한다. ➡️ 서버의 환경 맞춤 문제가 생길 수 있다. 도커의 컨테이너 를 활용하면, 이 환경을 효율적으로 관리할 수 있다. 도커란? 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 컨테이너 📦 라고 하면 박스를 생각할 수 있는데, 말 그대로 프로그램과 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공해서 프로그램의 배포 및 관리를 단순하게 해준다. 기존의 가상화 방식: OS 가상화 기존에는 버츄얼 박스라던가 VMware같은 가상머신은 호스트 os 위에 게스트 os 전체를 가상화하여 사용했다. 하지만 이 방식은 무거워서 운영 환경에선 사용할 수 없었다..
Domain: 자동차 객체 접근 제어자 타입 이름 기타 private String name 자동차 이름 (5자 이하) private boolean runnable 전진하고 있냐 멈췄냐 전진 조건: 0-9 사이의 무작위 값 중 4 이상 private String distance 한 번 전진할 때 마다 -가 늘음. 밖에서 알 수 없게 private로 지정했다. Factory: Car 객체를 생성하는 팩토리 자동차 객체를 생성하는 클래스이다. 디자인 패턴 중, 간단한 팩토리 메서드 패턴을 이용해서 만들었다. 기능 생성자에서 쉼표로 구분한 자동차들의 이름을 가지고 객체를 생성한다. Service: 자동차 경주 게임 서비스 RacingGameService 자동차 객체를 생성해서 경주 게임을 실행시키는 서비스이다...
테트리스 만드는 문제 Rectangle 클래스 import java.awt.Point; class Rectangle { public static final int WIDTH = 50; public static final int HEIGHT = 50; private Point upperLeft; private Point lowerRight; public Rectangle(Point ul) { upperLeft = ul; lowerRight = new Point((int) ul.getX() + WIDTH, (int) ul.getY() + HEIGHT); } public Rectangle(Point ul, Point lr) { upperLeft = ul; lowerRight = lr; } public void..
public > protected >default > private - public: 접근 제한이 없다. - protected: 동일한 패키지 내에 존재하거나 파생 클래스에서만 접근 가능하다. - default: 아무런 접근 제한자를 명시하지 않으면 default 값이 되며, 동일한 패키지 내에 존재해야 접근 가능. - private: 자기 자신의 클래스 내에서만 접근 가능 Protected protected string name; protected 는 자식클래스에서는 오픈되어있는 형태가 된다. protected는 package private(default)보다 큰 개념으로 폴더 내에 있는 모든 클래스에서 접근이 가능할 뿐만 아니라 폴더가 다르더라도(패키지가 다르더라도), 상속 관계가 만들어진다면, 부모..