본문 바로가기

전체 글148

인프런 시큐리티 강좌 #3 - jwt 📌 JWT 동작 원리 ▸ MyFilter3.java public class MyFilter3 implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; if(req.getMethod().equals("POST")){ String headerAuth = req.getHeader("Aut.. 2022. 1. 22.
인프런 시큐리티 강좌 #2 - security 기본 📌 JWT library https://mvnrepository.com/artifact/com.auth0/java-jwt/3.18.2 📌 프로젝트 생성 plugins { id 'org.springframework.boot' version '2.6.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { /.. 2022. 1. 21.
jpa study #4 - jpql & spring data jpa 📌 JPQL Application이 필요한 data만 db에서 쏙쏙 뽑아서 가져오려면, 결국 검색 조건이 포함된 SQL이 필요하다. JPQ는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공한다. JPQL은 Entity 객체를 대상으로 쿼리한다. 반면에, SQL은 Table 대상으로 쿼리한다. JPQL은 SQL로 변환돼서 실행된다. JPQL을 한 마디로 정의하면 객체 지향 SQL이다. 쿼리에 의해 가져온 Entity는 전부 영속성 컨텍스트에 의해 관리된다. ▸ JPQL 실습 -1) wildcard import entity.*; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import .. 2022. 1. 20.
인프런 시큐리티 강좌 #1 - 도입 📌 Session JWT가 왜 사용되는지 이해하는 것이 중요하다. ▸ 세션의 동작 원리 서버에 첫 요청을 보내면, 서버는 사용자를 사용자 인증 페이지로 보낸다. 사용자는 id, password를 입력하고, 서버는 검증한다. 검증된 사용자면 session에 사용자를 등록하고 session id를 반환한다. 사용자는 다음 요청부터는 session id만 반환하면 사이트를 이용할 수 있다. ▸ 세션 인증이 종료되는 방법 서버가 세션을 날려버리기 사용자 브라우저 종료 특정 시간이 지나면( 보통 30분이 지나면 서버에서 열린 세션 종료를 한다 ) ▸ 세션의 단점 서버가 가질 수 있는 세션의 크기는 한정적이다. 그래서 세션 방식으로 서버를 구성하려면 서버를 여러 대 두어서 load balancing을 해야 한다. .. 2022. 1. 19.
[카카오 2018] 방금 그 곡 📌문제 시간과 문자열을 포함하는 배열이 주어진다. 예시 : ["12:00,12:14,HELLO,CDEFGAB", "13:00,13:05,WORLD,ABCDEF"] 배열의 3번째 원소는 해당 곡의 이름, 4번째 원소는 해당 곡의 연주 순서이다. 해당 곡은 12:14 - 12:00 = 14 만큼 반복된다. 반복의 의미는 CDEFGAB CDEFGAB CD 와 같이 총 14번의 loop를 돈다는 의미이다. 해당 배열과 함께 문자열 m이 주어진다. 문자열 m과 일치하는 곡이 어느 곡인지 출력하라. ▸문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17683 📌문제 풀이 해당 문제에서는 C#과 같이 음표가 1음절이 아니라, 2음절이 생길 수 있다. 해당 음표는 .. 2022. 1. 17.
jpa study #3 - 프록시 & 연관관계 매핑 & 고급매핑 📌 목차 Proxy proxy의 개념 FetchType.LAZY , FetchType.EAGER 패치조인 N+1 문제 참조) @ManyToMany @Embedded 값 타입 이후 학습해야 할 사항 JPQL -> ( QueryDSL : 스터디에서는 학습 x ) Spring Data JPA 📌 Proxy em.find() - em.getReference() em.find() DB에서 실제 Entity 객체를 조회 em.getReference() DB조회를 아직 하지 않은, 가짜 객체인 Proxy객체를 조회 ▸ proxy 예제 import entity.Member; import entity.Team; import javax.persistence.EntityManager; import javax.persiste.. 2022. 1. 13.
jpa study #2 - jpa의 동작 원리 영속성 컨텍스트 📌 목차 1. jpa의 동작 원리 영속성 컨텍스트 2. Mapping 및 다양한 annotation 🔥 3. Spring Data jpa 📌 스터디의 목표 →1차 스터디 복습 :영속성 컨텍스트와 동작 원리에 대해서 이해할 수 있다. EntityManager(영속성 컨텍스트) 1차캐시 repeatable read 보장 쓰기 지연 sql 저장소 em.persist em.flush 변경 감지 필수 annotation들에 대해서 이해할 수 있다. @Id @Entity @Column @Enumerated @GeneratedValue 연관관계 매핑에 대해 이해할 수 있다. @OneToMany 연관관계 메서드 @ManyToOne @OneToOne 외래키의 주인 @ManyToMany mappedBy 3차 스터디 예정.. 2022. 1. 11.
jpa study #1 - jpa의 동작 원리 영속성 컨텍스트 ▪︎전체 목차 1. jpa의 동작 원리 영속성 컨텍스트 🔥 2. Mapping 및 다양한 annotation 3. Spring Data jpa 📌 jpa의 필요성 PPT 참조 📌 개발 환경 세팅 maven으로 프로젝트 생성 ▸ maven으로 프로젝트 생성하는 이유 gradle과 spring boot로 순수 jpa를 이용해서 개발하려고 하면 복잡한 세팅을 해주어야 한다. 링크 : (https://kth990303.tistory.com/30) - (https://www.inflearn.com/questions/27532) 다른 거는 세팅할 수 있는데, persistence-unit을 설정하는게 까다로워 보였다. spring과 gradle이 핵심이 아니므로, 해당 스터디에서는 그냥 김영한 - jpa 강좌의 세.. 2022. 1. 9.