전체 글

꾸준하게
자바 스터디

[자바의 정석] ch11.9 ~ ch.11.11

TreeSet - 이진 탐색 트리(binary search tree)로 구현. 범위 탐색과 정렬에 유리 - 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖음 각 요소(node)가 나무(tree)형태로 연결(LinkedList의 변형) LinkedList는 다음 요소 1개만 연결 TreeNode는 2개의 노드 연결(Tree를 거꾸로 놓은것과 닮아서 Tree라 함) 이진 탐색 트리(binary search tree) - 부모보다 작은 값은 왼쪽, 큰 값은 오른쪽에 저장 - 데이터가 많아질 수록 추가, 삭제에 시간이 더 걸림(비교 횟수 증가) 위의 예시에서 만약 5를 추가한다고 하면 1. 7과 5를 비교 2. 4와 5를 비교 총 두번을 비교했는데 데이터가 많아질 수록 비교 횟수가 증가할 것임 TreeSe..

개발

[Spring Boot] jwt로 로그인, 회원가입 API 구현

이전 게시글에서 간단히 loginDto에 username을 입력하면 token을 발급하는 부분을 구현해봤습니다! https://changha-dev.tistory.com/160 [Spring Boot] Security + jwt로 인증, 인가 구현하기 스프링 시큐리티에서 JWT 토큰 인증 방식을 사용하기 위해서는 다음과 같은 과정을 거칩니다: 사용자 로그인: 클라이언트에서 사용자의 로그인 정보(예: 아이디와 비밀번호)를 서버에 전송합니 changha-dev.tistory.com 이번에는 이어서 회원가입과 로그인 부분을 추가로 구현해보겠습니다. build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.13' id 'io.spr..

개발

[Spring Boot] Security + jwt로 인증, 인가 구현하기

스프링 시큐리티에서 JWT 토큰 인증 방식을 사용하기 위해서는 다음과 같은 과정을 거칩니다: 사용자 로그인: 클라이언트에서 사용자의 로그인 정보(예: 아이디와 비밀번호)를 서버에 전송합니다. 인증: 서버는 전달받은 로그인 정보를 확인하고, 사용자가 유효한지 확인합니다. 이 단계에서는 사용자의 아이디와 비밀번호를 검증하는 등의 인증 과정이 이루어집니다. 토큰 생성: 인증이 성공적으로 이루어지면, 서버는 사용자를 대표하는 JWT 토큰을 생성합니다. 이 토큰에는 사용자의 식별 정보와 필요한 추가 정보가 포함됩니다. 토큰 전달: 서버는 생성된 JWT 토큰을 클라이언트에게 전달합니다. 일반적으로는 HTTP 응답의 헤더나 JSON 응답의 일부로 토큰이 포함됩니다. 토큰 저장: 클라이언트는 받은 토큰을 안전한 곳에 ..

개발

session, cookie, jwt 관계 및 정리

jwt 로그인 방식을 공부하는 도중에 session에 대해 알게 되었고 jwt 사용할 때 session을 안쓰는 이유에 대해 궁금해서 이 참에 용어 정리하려고 합니다 //SecurityConfig.class 의 SecurityFilterChain 메서드 중... //session 사용하지 않음 .and() .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS) SessionCreationPolicy.ALWAYS - 항상 세션 생성 SessionCreationPolicy.IF_REQUIRED - 필요시 생성(기본) SessionCreationPolicy.NEVER - 생성하지 않지만, 기존에 존재하면 사용 SessionCre..

자바 스터디

[자바의 정석] CH 9(Math ~ Objects)

Math 클래스 - 기본적인 수학계산에 쓰이는 메서드로 이루어짐 - 생성자의 접근제어자가 private - 메서드는 모두 static - E(자연로그), PI(원율) 2개의 상수를 정의함 소수점 n번째 자리에서 반올림한 값을 얻기 위해서는 round()를 사용해야 한다. 이 메서드는 항상 소수점 첫째자리에서 반올림을 해서 정수값을 결과로 돌려준다. public void main(String args[]){ double val = 90.7552; System.out.println("round(" + val + ")=" +round(val)); //반올림 val *= 100; System.out.println("round(" + val + ")=" +round(val)); //반올림 System.out.pr..

자바 스터디

[자바의 정석] CH8

프로그램 오류 종류 - 컴파일 에러 : 컴파일 할 때 발생하는 에러 - 런타임 에러 : 실행 중 발생하는 에러 - 논리적 에러 : 작성 의도와 다르게 동작 자바의 런타임 에러 - 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 - 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외 처리의 정의와 목적 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 Throwable - 모든 오류의 조상 Exception, Error - 런타임 에러 1. Exception클래스들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 2. RuntimeException클래스들 :..

자바 스터디

[자바의 정석] CH7

클래스 간의 관계 2가지 · 상속 : 두 클래스를 부모와 자식으로 관계를 맺어주는 것 ('~은 ~이다. (is-a)') · 포함 : 클래스의 멤버로 참조변수를 선언하는 것 ('~은 ~을 가지고 있다.(has-a)' 상속과 포함 구별 방법 단일 상속 class TvDVD extends Tv, DVD { } 위와 같은 다중 상속은 불가능 하다. 예시로 Tv, DVD에서 메서드 이름은 같고 내용은 같을 때 어떤 것을 상속해야 하는지 충돌이 나기 때문에 Object 클래스 - 모든 클래스의 조상 오버라이딩의 조건 1. 선언부가 조상 클래스의 메서드와 일치해야 함. 2. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없음. 3. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없음.(같거나 적어야..

알고리즘

<백준> 19532번 파이썬 알고리즘

a, b, c, d, e, f = map(int, input().split()) res = [] for x in range(-999, 1000): for y in range(-999, 1000): if (a*x) + (b*y) == c and (d*x) + (e*y) == f: res = [x, y] break for i in range(2): print(res[i], end = ' ') 완전탐색이니까 무식한 방법으로 x,y를 이중 for문으로 돌리면서 해결

자바 스터디

[자바의 정석] CH-6

객체 : iv 묶음 iv : 객체 생성후 사용 가능 cv : 객체 생성 없이 사용 가능 참조형 매개변수 참조형 반환타입 static 메서드 : iv를 사용하지 않을 때 사용, 객체생성 없이 호출 가능 인스턴스 메서드 static 메서드에서 iv, instance 메서드 사용 불가 : iv는 객체 생성 후 사용 가능하지만 static은 객체 생성 없이도 가능 하므로 오버로딩 : 한 클래스 안에 같은 이름의 메서드 여러 개를 정의 하는 것. 오버로딩 성립 조건 3가지 - 메서드의 이름이 같아야 함 - 매개변수의 개수 또는 타입이 달라야 함 - 반환타입은 영향없음. 생성자 : iv 초기화 메서드 기본생성자 :생성자가 하나도 없을 때, 컴파일러가 추가 해줌 항상 클래스 만들 때 추가하는 습관!! 생성자 : 생성..

자바 스터디

[자바의 정석] CH-5 ~ CH-6

객체지향 이론의 기본 개념 : 실제 세계는 사물(객체)로 이루어져 있고, 발생하는 모든 사건들은 사물간의 상호작용이다. 객체 지향의 장점 : 1. 코드의 재사용성 2. 코드 관리 용이 3. 신뢰성 높은 프로그래밍 가능 : 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지 너무 객체지향개념에 얽매여서 고민하기보다 기능적으로 프로그램을 일단 만들고 객체지향적 방향으로 코드를 개선해 나가는 것이 좋다. 클래스 정의 : 객체를 정의해 놓은 것. 클래스 용도 : 객체를 생성하는데 사용 됨. 클래스는 단지 객체를 생성하는데 사용될 뿐, 객체 그 자체는 아님. ex) 클래스: tv설계도, 객체: tv 인스턴스 : 클래스로부터 만들어진 객체를 뜻함. ex) ‘책상은 인스턴스’ 보다 ‘책상은 객체’라는 쪽이, ..

changha.
꾸준하게