Spring41 스프링 시큐리티 (회원가입+ 로그인 /로그아웃) 애플리케이션을 만들기 위해서는 보통 인증/인가 등의 보안이 필요합니다. 스프링 시큐리티는 스프링 기반의 애플리케이션을 위한 보안 솔루션을 제공합니다. 애플리케이션의 보안에서 중요한 두가지 영역은 '인증'과 '인가' 입니다. 웹에서 인증이란 해당 리소스에 대해서 작업을 수행할 수 있는 주체인지 확인하는 것입니다. 예를 들어 어떤 커뮤니티에서 게이산의 글을 보는 것은 로그인을 하지 않아도 되지만, 댓글을 작성하려면 로그인을 해야 합니다. 댓글을 달기 위해서는 로그인이라는 인증 절차를 거쳐야합니다. 인가는 인증 과정 이후에 일어납니다. 커뮤니티를 관리하는 관리자 페이지에 접근하는 URL을 입력했을 때 해당 URL은 커뮤니티의 관리자만 접근할 수 있어야 합니다. 이때 접근하는 사용자가 해당 URL에 대해서 인가.. 2023. 3. 4. @Query Spring Data JPA 에서 제공하는 @Query 어노테이션을 이용하면 SQL과 유사한 JPQL(JAVA)이라는 객체지향 쿼리 언어를 통해 복잡한 쿼리도 처리가 가능합니다. SQL과 문법 자체가 유사하기 때문에 기존에 SQL을 사용하셨던 분들은 쉽게 배울 수 있습니다. SQL의 경우 데이터베이싀 테이블을 대상으로 쿼리를 수행하고 JPQL은 엔티티 객체를 대상으로 쿼리를 수행합니다. 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리입니다. JPQL은 SQL을 추상화 해서 사용하기 때문에 특정 데이터베이스 SQL에 의존하지 않습니다. 즉 JPQL로 작성을 했다면 데이터베이스가 변경되어도 에플리케이션이 영향을 받지 않습니다. @Query 는 Entity의 JpaRepository를 상속받는 인터페이스.. 2023. 3. 2. 엔티티 매핑 관련 어노테이션 어노테이션 설명 @Entity 클래스를 엔티티로 선언 @Table 엔티티와 매핑할 테이블을 지정 @Id 테이블의 기본키에 사용할 속성을 지정 @GeneratedValue 키 값을 생성하는 전략 명시 @Column 필드와 컬럼 매핑 @Lob BLOB,CLOB 타입 매핑(용어 설명 참조) @CreationTimestamp insert 시 시간 자동 저장 @Update Timestamp update 시 시간 자동 저장 @Enumerated enum 타입 매핑 @Transient 해당 필드 데이터베이스 매핑 무시 @Temporal 날짜 타입 매핑 @CreateDate 엔티티가 생성되어 저장될 때 시간 자동 저장 @LastModifiedDate 조화한 엔티티의 값을 변경할 때 시간 자동 저장 @Column 속성 .. 2023. 2. 28. JPA JPA 맛만 보기 JPA(Java Persistence API)는 자바 ORM 기술에 대한 API 표준입니다. ORM이란 Object Relational Mapping 의 약자로 객체와 관계형 데이터베이스를 매핑해주는 것을 말합니다. 우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면됩니다. 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있습니다. (내부적으로는 쿼리를 생성하여 DB를 조작함. 하지만 개발자가 이를 신경 쓰지 않아도됩니다.) Qu.. 2023. 2. 28. 이전 1 ··· 4 5 6 7 8 9 10 11 다음