전체 글 171

QueryDSL이란 무엇일까??

QueryDSL Java에서 타입 세이프한 쿼리 생성을 위해 사용하는 라이브러리 입니다. Query DSL 을 사용하면 JPA Criteria API나 JPQL로 작성하던 쿼리를 코드로 더 작관적으로 표현할 수 있습니다.  - 장점과 단점장점타입 세이프티: QueryDSL은 컴파일 시점에 타입 체크를 통해 잘못된 쿼리를 방지할 수 있습니다.가독성: 메서드 체인 방식으로서 조건을 여러 줄에 걸쳐 작성할 수 있습니다. 복잡한 조건을 표현하기 좋습니다. 재사용성: booleanExpression 을 사용하여 and, or 조건으로 조합하여 사용할 수 있습니다.자동 완성 지원: IDE에서 자동 완성 기능을 제공해 쿼리 작성이 더 편리해집니다.컴파일 시점에서 에러를 확인할 수 있습니다. 단점빌드 시간 증가: 빌드..

26. 쿠키와 세션이란 무엇일까?

쿠키와 세션 모두 HTTP 에 상태 정보를 유지(Stateful)하기 위해 사용됩니다. 즉, 쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 됩니다.  쿠키클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일 입니다.클라이언트인 웹 브라우저에 저장된 '쿠키' 를 확인해 보죠.크롬 브라우저 기준으로 '개발자도구' 를 열어 보세요.Application - Storage - Cookies 에 도메인 별로 저장되어 있는게 확인 됩니다.  구성요소Name (이름): 쿠키를 구별하는 데 사용되는 키 (중복될 수 없음)Value (값): 쿠키의 값Domain (도메인): 쿠키가 저장된 도메인Path (경로): 쿠키가 사용되는 경로Expires (만료기한): 쿠키의 만료기한 (만료기한 ..

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..