반응형

프레임워크(Framework) 99

[Spring Security] 스프링 시큐리티의 구조와 흐름

Intro Spring Security를 구현한 코드의 흐름은 잘 드러나지는 않지만 내부적으로는 Spring Security에서 제공하는 컴포넌트들이 애플리케이션 내부에서 User의 인증과 인가(권한 부여)에 대한 처리를 알아서 해준다. 이처럼 내부에서 일어나는 과정들을 구체적으로 이해하지 못한 상태에서는 Spring Security라는 기술을 이해하는 데 있어 한계에 부딪힐 수 있다. Spring Security를 애플리케이션에 적용하는데 어려움을 겪는 가장 큰 이유 중 하나는 Spring Security의 아키텍처(구조)와 Spring Security의 컴포넌트들이 어떻게 인터랙션해서 인증, 권한 등의 보안 작업을 처리하는지 이해하지 못했기 때문이다. Spring Security의 동작 방식을 이해하..

[Spring Security] 스프링 시큐리티란? - 기능, 용어, 사용하는 이유

Intro 먼저, 실제 애플리케이션에서 보안을 고려하지 않은 상태에서 서비스를 하게 되면 여러 문제가 발생할 수 있다. 인증(Authentication) 수단이 없는 경우 사용자가 해당 서비스를 이용하는 사람이 나 자신임을 증명할 방법이 없다. 다른 사람이 얼마든지 나의 정보를 조회할 수 있으며, API 호출 등을 통해 서비스를 이용할 수 있게 된다. 따라서 사용자가 본인임을 증명할 수 있는 인증 수단이 필요하다. ID와 PASSWORD와 같은 인증 정보를 사용해야 함 인가(Authorization) 기능이 없는 경우 사용자 인증 절차를 통과하더라도 모든 리소스에 접근할 수 있는 것은 아니다. 쇼핑몰을 예로 들면 판매자와 고객 등으로 구분할 수 있을 것이다. 판매자의 경우 상품을 등록하는 리소스를 이용할..

[JPA] JPQL 벌크 연산 - 객체지향 쿼리 언어 JPQL (12)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 벌크 연산 엔티티를 수정하려면 영속성 컨텍스트의 변경 감지 기능이나 병합을 사용하고, 삭제하려면 엔티티 매니저의 remove() 메서드를 사용한다. 하지만, 이러한 방법으로 수많은 엔티티를 하나씩 처리하기에는 시간이 오래 걸릴 것이다. 예를 들어, 재고가 10개 미만인 모든 ..

[JPA] JPQL Named 쿼리(정적 쿼리) - 객체지향 쿼리 언어 JPQL (11)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com Intro JPQL 쿼리는 크게 동적 쿼리와 정적 쿼리로 나눌 수 있다. 동적 쿼리 동적 쿼리는 em.createQuery(”select ..”)와 같이 JPQL을 문자로 완성해서 직접 넘기는 것을 동적 쿼리라 한다. 런타임에 특정 조건에 따라 JPQL을 동적으로 구성할 수 ..

[JPA] JPQL 엔티티 직접 사용 - 객체지향 쿼리 언어 JPQL (10)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 엔티티 직접 사용 - 기본 키 값 객체 인스턴스는 참조 값으로 식별하고 테이블의 행(row)은 기본 키 값으로 식별한다. JPQL에서 엔티티를 직접 사용하면 SQL에서 해당 엔티티의 기본 키 값을 사용한다. 예제 // JPQL select count(m.id) from Mem..

[JPA] JPQL - 다형성 쿼리 - 객체지향 쿼리 언어 JPQL (9)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 다형성 쿼리 JPQL로 부모 엔티티를 조회하면 자식 엔티티도 함께 조회한다. 다음과 같이 Item의 자식으로 Book, Album, Movie가 있다고 가정한다. (다형성 쿼리 엔티티) 다형성 쿼리 엔티티 Item, Album, Movie, Book @Entity @Inher..

[JPA] JPQL 페치 조인(Fetch join) - 객체지향 쿼리 언어 JPQL (8)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 페치 조인(Fetch Join) 페치 조인은 JPQL에서 성능 최적화를 위해 제공하는 기능이다. SQL 조인의 종류가 아니다. 연관된 엔티티나 컬렉션을 한 번에 같이 조회하는 기능으로 join fetch 명령어로 사용할 수 있다. 페치 조인 ::= [ LEFT [OUTER] ..

[JPA] JPQL 경로 표현식 - 객체지향 쿼리 언어 JPQL (7)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 경로 표현식 jpql의 쿼리문 작성 시 점(.)을 이용하여 객체의 값에 접근할 수 있다. 이처럼 점(.)을 이용해 객체 그래프를 탐색하는 것을 경로 표현식이라 한다. select m.username // 상태 필드 from Member m join m.team t // 단일 ..

[JPA] JPQL 타입 표현과 기타식, 조건식 - 객체지향 쿼리 언어 JPQL (6)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 타입 표현 JPQL에서 사용하는 타입은 다음과 같이 표시할 수 있으며, 대소문자는 구분하지 않는다. 문자 작은 따옴표(’) 사이에 표현 작은 따옴표(’)는 두 번 연속 사용하여 표현 ex) ‘HELLO’, ‘She’’s’ 숫자 L(Long 타입), D(Double 타입), F..

[JPA] JPQL 서브 쿼리 - 객체지향 쿼리 언어 JPQL (5)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '자바 ORM 표준 JPA 프로그래밍 - 기본편' 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 서브 쿼리 JPQL도 SQL처럼 서브 쿼리를 지원한다. 단, 몇 가지 제약이 있다. JPA는 WHERE, HAVING 절에서만 사용할 수 있다. SELECT 절에서도 사용 가능하다.(하이버네이트에서 지원) FROM 절의 서브 쿼리는 현재 JPQL에서 불가능하다. 이 경우 조인..

반응형