전체 글
-
[JWT] 어디에 저장하는게 좋을까?학습/개발노트 2022. 10. 28. 22:35
사전 준비 Authentication Server에서 API서버에 AccessToken과 RefreshToken을 발급한 상태 클라이언트에 저장방법 1. SessionStorage 세션 변수로써 새창, 새로고침 등에 추가로직이 필요함 2. Localstorage 글로벌 변수 XSS 취약점 : 방어 불가능 ex) 공격예제 3. 로컬변수 새로고침 시 토큰이 사라짐 4. 쿠키 XSS 취약점 : HttpOnly 속성 사용으로 방어 가능 alert(document.cookie); 스니핑 : Secure 속성 사용으로 방어 가능 https://ko.wikipedia.org/wiki/%ED%8C%A8%ED%82%B7_%EB%B6%84%EC%84%9D%EA%B8%B0 패킷 분석기 - 위키백과, 우리 모두의 백과사전 위..
-
OAUTH 2.0 정리학습/개발노트 2022. 10. 19. 21:09
용어 정리 ex) 티스토리에서 카카오 로그인 [ Target ] Resource Owner : 유저, 사용자 Client Server : 애플리케이션 제공서버 ( 티스토리 ) Resource Server : 인증, 권한 부여 서버 ( 카카오 ) [ Jargon ] Client Id : Client Server의 고유 ID Client Secret : Client Server의 비밀번호 Redirect URL : Client Server에서 Resource Server에 인증을 요청한 이후 Resource Server가 Client Server에 응답값을 전송하기 위한 URL Scope list: 권한 목록 Authorization code : Resource Server가 승인한 코드 티스토리 카카오톡 ..
-
FINAL 키워드의 집착을 버려본다.학습/개발노트 2022. 10. 14. 00:07
final 변수가 불변이라는 사실을 명확하게 알 수 있다. Builder 패턴을 통해 vo를 불변객체라고 명확하게 알려주었다. @Getter public class UserInfo { private final Long id; private final String password; private final String name; private final String gradeCode; private final LocalDateTime createdAt; private static final Long PASSWORD_MIN_LENGTH = 6L; private static final Long PASSWORD_MAX_LENGTH = 18L; @Builder public UserInfo(Long id, Stri..
-
이직 전에 받았던 질문 정리학습/회고록 2022. 10. 11. 15:19
3년동안 뭐했어? 1년차 - 회사 프레임워크 및 회사 도메인 이해 - 주 업무 인 가상계좌 시스템 유지보수 파악 - 사내 서비스 대부분은 JSP, JavsService64로 구성된 배치프로그램으로 구성 - 사내 프레임워크로 개발 - 서비스 유지보수 무엇을 배웠나? - 주석 - 로직상 문제가 없는 코드 2년차 - 사내 서비스의 문제점 개선 1년차에서 하고있던 유지보수들을 개선 - 이중수납 개선 - 메일 자동화 작성 - 모니터링 알람 설정 - 로그 추가 등 기존 유지보수들은 서비스의 문제로 생기는 것들이 대부분이였고, 서비스를 개선하다보니 유지보수의 양이 줄어들었다. - 이직 준비 무엇을 배웠나? - 서비스에 대한 이해 3, 4년차 - 신규 프로젝트 이직 면담 - 사내 서비스 개선에만 몰두 - 개발자 공부에..
-
[JPA] 식별관계, 비식별 관계, 복합키기초/JPA 2022. 10. 11. 13:01
식별관계 부모 테이블의 기본키(FK) + 현재 테이블의 기본키를 합쳐서 기본키로 사용하는 형태 Owner ID (PK) CHILD owner_id(PK, FK) id (PK) 비식별관계 필수적 비식별 관계 : 외래 키 NULL (X) 선택적 비식별 관계 : 외래 키 NULL (O) 복합 키 : 비식별 관계 매핑 Id가 하나일 경우 @Entity public class TEST { @Id private String id; } 키가 2개 이상일 경우 - 아래와 같은 복합키에 관련된 로직을 구현해야 한다. - hasCode와 equals를 구현하여 @IdClass - 관계형 데이터베이스 설계 중심 @EmbeddedId - 객체지향 중심
-
[JPA] 객체간의 매핑기초/JPA 2022. 10. 11. 11:40
상속 DB에는 상속 개념이 없지만 DB모델링 기법중 슈퍼타입 - 서브타입 모델링 기법이 상속 개념과 비슷하다. 1. 조인전략 - 각각의 엔티티를 만든다. - 자식 테이블은 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략 - 부모 테이블에서는 자식테이블을 구분하는 컬럼을 생성 Character ID 이름 능력치 Jobs (자식 구분 컬럼) Warrior Mage Rogue Character_ID (PK, FK) 힘(power) Character_ID (PK, FK) 지능(intellect) Character_ID (PK, FK) 행운(luck) @Entity @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(na..
-
[JPA] 연관관계기초/JPA 2022. 10. 8. 18:20
방향 DB테이블의 관계는 항상 양방향이다. 객체는 한 쪽만 참조할 수 있고, 양쪽 모두 참조할 수 있다. 양방향 관계 양쪽 객체가 단방향으로 서로를 참조할수 있는 관계다. 연관관계 주인 ( Owner ) 객체가 양방향 관계가 되면 주인을 정해야 한다. 객체 그래프 탐색 관계가 형성된 객체는 참조를 통해 연관관계를 탐색할 수 있다. School school = student1.getSchool(); 객체 관계 매핑 ex) Studen (M) : School (1)의 관계 @Entity public class Student{ @Id private String id; @ManyToOne @JoinColumn(name="SCHOOL_ID") private School school; public void setS..
-
[JPA] JPA 어노테이션기초/JPA 2022. 10. 8. 17:04
@Entity 더보기 JPA가 관리하는 테이블과 매핑할 클래스 - 기본 생성자 필수 ( 파라미터가 없으며 public protected 생성자 ) - final, enum, interface, inner 클래스에 사용할 수 없다. 실제로 구현되며 변경가능한 클래스에만 적용가능 @Table @Id 더보기 기본키 @GenerationType 더보기 - IDENTITY : DB에 위임 - 데이터베이스가 식별자를 구하므로 쓰기 지연이 동작하지 않는다. (DB와 한번통신) - SEQUENCE : DB 시퀀스를 활용한 기본키 - DB의 시퀀스를 사용하므로 DB와 2번통신한다. - allocationSize : sequence 전략 최적화, 미리 지정된 갯수만큼 시퀀스를 등록한다. - TABLE : 키 생성 테이블을..