티스토리챌린지 16

25. 인증과 인가란 무엇일까?

인증(Authentication)인증은 해당 유저가 실제 유저인지 인증하는 개념입니다.여러분의 스마트폰에 지문인식, 이용하는 사이트에 로그인 등과 같이, 실제 그 유저가 맞는지를 확인하는 절차 입니다. 인가(Authorization)인가는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념입니다. 예를들어 관리자 페이지-관리자 권한 같은 것들을 들 수 있습니다. 우리가 자주 하는 로그인은 인증을 할 때(비밀번호 입력하고 제출 할 때)이고 회원/비회원 여부에 따라 다른 권한을 받는 것이 인가입니다.    일반적으로 서버-클라이언트 구조로 되어있고, 실제로 이 두가지 요소는 아주 멀리 떨어져 있습니다. Http 라는 프로토콜을 이용하여 통신하는데, 그 통신은 **비연결성(Connectionles..

WITH절 - CTE 구문 만들기.

WITH 절은 **Common Table Expressions (CTE)**를 만드는 구문으로, 복잡한 쿼리를 간결하고 읽기 쉽게 구성합니다. WITH 를 사용하여 정의한 CTE는 마치 테이블처럼 사용되며, 본문의 쿼리에서 임시 테이블 역할을 합니다. 즉 "가상의 테이블 만들기" 라고 생각하시면 쉽습니다.  CTE의 기본 용법 WITH CTE_Name AS ( -- CTE 내부에서 실행할 쿼리 SELECT ...)-- 메인 쿼리: CTE를 테이블처럼 참조SELECT ...FROM CTE_Name CTE_Name : CTE의 이름을 정의합니다. 이후 쿼리에서 이 이름을 사용하여 CTE를 참조할 수 있습니다.CTE 내부 쿼리 : CTE 내부에서 데이터를 필터링하거나 집계하는 등 쿼리를 작성합니다...

SQL 2024.11.11

24. Bean을 수동으로 등록하기

@Component를 사용하면 @ComponentScan에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록 해줍니다.일반적으로 @Component를 사용하여 Bean을 자동으로 등록하는 것이 좋습니다.프로젝트의 규모가 커질 수록 등록할 Bean들이 많아지기 때문에 자동등록을 사용하면 편리합니다.비즈니스 로직과 관련된 클래스들은 그 수가 많기 때문에 @Controller, @Service와 같은 애너테이션들을 사용해서 Bean으로 등록하고 관리하면 개발 생산성에 유리합니다.  그렇다면 Bean 수동 등록은 언제 사용될까요?기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋습니다.공통 로그 처리와 같은 비즈니스 로직을 지원하기 위한 부가적이고 공통적인 기능들을 기..

Arrays.sort() 메서드, 배열 정렬

Arrays.sort() Java에서 배열을 오름차순으로 정렬하는 편리한 정적 메서드입니다. 주로 기본 타입 배열과 객체 배열의 정렬에 사용됩니다. 사용법:  Arrays.sort(array) : 기본적으로 배열을 오름차순으로 정렬합니다.Arrays.sort(array, fromIndex, toIndex) : 배열의 부분 구간 (fromIndex부터 toIndex - 1까지)을 정렬합니다. int배열 정렬int[] numbers = {5, 3, 8, 1, 2};Arrays.sort(numbers); // {1, 2, 3, 5, 8}// 부분 정렬int[] numbers = {5, 3, 8, 1, 2};Arrays.sort(numbers, 1, 4); // {5, 1, 3, 8, 2}   객체 정렬St..

23. Query Methods란 무엇일까?

Spring Data JPA에서는 메서드 이름으로 SQL을 생성할 수 있는 Query Methods 기능을 제공합니다. JpaRepository 인터페이스에서 해당 인터페이스와 매핑되어있는 테이블에 요청하고자 하는 SQL을 메서드 이름을 사용하여 선언할 수 있습니다. import com.sparta.memo.entity.Memo;import org.springframework.data.jpa.repository.JpaRepository;import java.util.List;public interface MemoRepository extends JpaRepository { List findAllByOrderByModifiedAtDesc(); List findAllByUsername(String..

22. JPA Auditing

Timestamped  데이터의 생성(created_at), 수정(modified_at) 시간은 포스팅, 게시글, 댓글 등 다양한 데이터에 매우 자주 활용됩니다. 각각의 Entity의 생성, 수정 시간을 매번 작성하는건 너무 비효율적입니다.  Spring Data JPA에서는 시간에 대해서 자동으로 값을 넣어주는 기능인 JPA Auditing을 제공하고 있습니다. import java.time.LocalDateTime;@Getter@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public abstract class Timestamped { @CreatedDate @Column(updatable = false) @Tempor..