개-발/Java + Spring + Kotlin

로그인시 Jwt Token을 발급해준다.(편의상 헤더에 발급) Jwt 특성상 한번 발금된 토큰은 만료시켜줄 수 없다. Jwt의 특성을 잘 나타내준 블로그 https://sound-story.tistory.com/21 [JWT] JWT는 왜 쓸까? 이게 최선일까? 로그인 후에 Access Token을 발급하여 쿠키에 저장하는 것까지 구현해 보았습니다. https://sound-story.tistory.com/19 [NestJS] Auth Token을 쿠키에 저장하기 email, password를 통해 로그인하여 access token을 생성하 sound-story.tistory.com Reissu Jwt 를 쿠키에 저장해 두었기 때문에 들어올때 쿠키중에 refreshtoken의 쿠키가 있는지 확인하고 ac..
테이블 외래키 하나로 양쪽 조인가능 사실 방향이라는 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 양방향은 단방향을 서로 보는것이 양방향이다. 테이블은 외래 키(기준이 되는 키) 하나로 두 테이블이 연관관계를 맺음 연관관계의 주인 : 이 그림에서 연관관계의 주인은 커스터머 이다 (mappedby = "customer") 외래키를 관리하는 참조 = 기준이된 키를 가지고 있는 객체가 주인 !! 주인의 반대편 = 외래키에 영향을 주지 않음 (단순 조회만 가능) ex. 주문 테이블에서 사람에게 영향을 줄순 없다. 1. 두가지 테이블을 연결하는데 기준이 필요하다. (manytoone / joincolumn) *다대일은 연관관계 주인이 되어야 한다 2..
@Id 직접할당 [문자열 이나 다른 타입도 사용 가능하지만 보통 (시퀀스넘버나 , Auto Increment) 자동할당 숫자를 넣어준다 @GeneratedValue 자동할당 [ strategy = GenerationType.AUTO - 아래 세개중에 하나 자동선택 GenerationType.IDENTITY - 기본 키 생성을 데이터베이스에 위임 주로 Mysql ,PostgreSQL,SQL,SERVER,DB2 사용 Mysql = Auto Increment , GenerationType.SEQUENCE - 주로 오라클 에서 사용 GenerationType.TABLE - 잘 사용하지 않는다. 키 전용 테이블을 만들어 데이터베이스 시퀀스를 흉내내는 전략 장점 : 모든 데이터베이스에 적용 가능 < 아이덴티티와 시..
객체와 테이블 매핑 : @Entity , @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManytoOne, @JoinColumn @Entity @Entity가 붙은 클래스는 JPA가 관리 , 엔티티라 한다. @JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 -주의사항 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final클래스 enum , interface,inner 클래스 사용x 저장할 필드에 final 사용x 매핑 어노테이션 정리 @Column : 컬럼매핑 name : 필드와 매핑할 테이블 컬럼 이름 insertable , updatable : 등록, 변경 가능여부 nullable : null 값의 허용여부..
기존 자바 컬렉션이나 배열의 원소를 가공할때 for문 foreach 등으로 원소 하나씩을 골라내어 가공했다면 stream을 이용하여 람다함수식으로 간결하고 깔끔하게 요소들의 처리가 가능하다. 스트림은 생성 , 중간연산 , 최종연산으로 나뉜다. - 생성 스트림은 한번 사용 후 생성한 스트림이 폐기되기때문에 다른곳에서 다시 사용할 땐 한번 더 생성 해주어야 한다. - 중간연산 (여러번 사용가능) filter() : 요소 정제 - 거르기 Stream에서 조건에 맞는 데이터만을 정제하여 더 작은 컬렉션을 만들어 낸다. filter() 메서드에서는 매개 값으로 조건(Predicate)이 주어지고, 조건이 참이 되는 요소만 필터링한다. distinct() : 중복제거 Stream의 요소들에 중복된 데이터가 존재하는..
1. Map ( HashMap, Hashtable, LinkedHashMap, TreeMap ) Map은 Key와 Value라는 것을 한 쌍으로 갖는 자료형이다. Map은 사물함을 연상할 수 있다. 사물함은 번호가 있고 그 안에 내용물이 있는것처럼 사물함번호가 Key값이 되고 그 안에 Value가 저장된다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치된다. Map : 순서 X , key 중복 X value 중복 O 검색 ! 특별한 사유가 없다면 검색 성능이 좋은 HashMap을 사용 순서를 보장하고 싶다면 LinkedHashMap을 사용 키값을 일정하게 정렬 하고자한다면 TreeMap을 사용 맵의 특징 으론 키(key)와 값(value)의 쌍으로 이루어져 ..
컬렉션 프레임 워크란 배열을 사용하다 보면 여러가지 비효율적인 문제가 생긴다. 가장 큰 문제점은 크기가 고정적이라는 것이다. 배열의 크기는 생성할 때 결정되며 그 크기를 넘어가게 되면 더이상 데이터를 저장할 수 없다. 또 데이터를 삭제하면 해당 인덱스의 데이터는 비어있어 메모리가 낭비되는 등 여러 문제점들이 발생한다. 그렇기에 자바는 배열의 이러한 문제점을 해결하기 위해, 널리 알려져 있는 자료구조를 바탕으로 객체나 데이터들을 효율적으로 관리(추가, 삭제, 검색, 저장)할 수 있는 자료구조들을 만들어 놓았다. 이러한 자료구조들이 있는 라이브러리를 컬렉션 프레임워크라고 합니다. 대표적으로는 List, Set, Map, Stack, Queue 등이 있다. 1. List ( ArrayList, LinkedLi..
객체지향은 각 클래스들은 각자의 책임과 역활 이있다. 객체지향 프로그래밍은 유연하고 변경이 쉽게 만들기 위해 객체지향의 5대원칙이 있는데 이 원칙의 존재이유는 유지보수에 유리하고 유연하고 확장이 쉽게 만들기 위함이다. SRP (Single Responsibillty Principle) - 단일 책임 원칙 -한 클래스는 하나의 책임만 가져야 한다. -하나의 책임의 기준은 변경이다. 변경이 발생하였을 때, 변경해야 될 부분이 적으면, 단일 책임 원칙을 잘 따른것이다. 클래스를 변경해야하는 이유가 오직 하나여야 한다. ex)결제버튼의 위치가 변경되었지만, 결제기능에 대한 영향은 없다. OCP (Open/Closed Principle) - 개방 / 폐쇄 원칙 -확장에는 열려있고 변경에는 닫혀있어야 한다. -변경..
imSoo
'개-발/Java + Spring + Kotlin' 카테고리의 글 목록 (5 Page)