본문 바로가기

분류 전체보기

(122)
[Query DSL] 스프링 데이터JPA 리포지토리와 Querydsl 스프링 데이터 JPA - MemberRepository 생성package com.example.querytest.repository;import com.example.querytest.entity.Member;import org.springframework.data.jpa.repository.JpaRepository;import java.util.List;public interface MemberRepository extends JpaRepository { List findByUsername(String useranme);} - Querydsl 전용 기능인 회원 search를 작성할 수 없다. -> 사용자 정의 리포지토리 필요  사용자 정의 리포지토리1. 사용자 정의 인터페이스 작성2. 사용자 정의..
[Query DSL] 순수 JPA 리포지토리와 Querydsl 순수 JPA 리포지토리와 Querydsl 순수 JPA 리포지토리와 Querydsl동적쿼리 Builder 적용동적쿼리 Where 적용조회 API 컨트롤러 개발 순수 JPA 리포지토리package com.example.querytest.repository;import com.example.querytest.entity.Member;import com.querydsl.jpa.impl.JPAQueryFactory;import jakarta.persistence.EntityManager;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;import java.util.List;import java.util.Op..
[Query DSL] 중급 문법 프로젝션과 결과 반환 - 기본프로젝션 : select 대상 지정 프로젝션 대상이 하나 @Test public void simpleProjection(){ QMember member = QMember.member; List result = queryFactory .select(member.username) .from(member) .fetch(); for(String s : result){ System.out.println("s = " + s); } }- 프로젝션 대상이 하나면 타입을 명화하게 지정할 수 있음- 프로젝션 대상이 둘 이상이면 튜..
생성패턴 1. 팩토리 메서드(Factory Method) 패턴팩토리 메서드 패턴은 객체 생성을 위한 인퍼테이스를 정의하고, 실제 생성 작업은 서브클래스에서 수행하도록 하는 패턴입니다. 이 패턴을 사용하면 코드에서 구체적인 클래스의 인스턴스를 직접 생성하지 않고, 팩토리 메서드를 통해 생성하므로 객체 생성 로직을 캡슐화하고 코드의 유연성을 높일 수 있습니다. 즉, 클라이언트에서 직접 new 연산자를 통해 제품 객체를 생성하는 것이 아닌, 제품 객체들을 도맡아 생성하는 공장 클래스를 만들고, 이를 상속하는 서브 공장 클래스의 메서드에서 여러가지 제품 객체 생성을 각각 책임 지는 것이다. 또한 객체 생성에 필요한 과정을 템플릿 처럼 미리 구성해놓고, 객체 생성에 관한 전처리나 후처를 통해 생성 과정을 다양하게 처리하여..
"Java 객체 비교: == 연산자와 equals() 메서드의 차이점과 사용자 정의 클래스에서의 구현 방법" Java에서 == 연산자와 equals() 메서드는 객체 비교 시 다르게 작동하며, 문자열 비교와 사용자 정의 클래스의 동작 방식에 대해서도 말씀하신 내용이 옳습니다. 좀 더 구체적으로 설명드리면: == 연산자원시 타입(Primitive Type): == 연산자는 원시 타입의 값 자체를 비교합니다. 예를 들어, int, char, float 등과 같은 기본 데이터 타입은 실제 값을 비교합니다.int a = 5;int b = 5;System.out.println(a == b); // true 참조 타입(Reference Type): 객체에 대한 참조(메모리 주소)를 비교합니다. 따라서 두 객체가 동일한 메모리 주소를 가리킬 때만 true를 반환합니다.String str1 = new String("hello..
자바 - 다형성과 오버라이딩의 작동 방식 다형성 (Polymorphism)다형성은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미합니다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있습니다. 오버라이딩 (Overriding)오버라이딩은 부모 클래스에 정의된 메소드를 자식 클래스에서 재정의하는 것을 의미합니다. 오버라이딩을 통해 자식 클래스는 부모 클래스의 기본 동작을 대체하거나 확장할 수 있습니다.  정보처리기사 2023년 3회 JAVA 문제class SuperObject { public void draw() { System.out.println("A"); draw(); ..
영어 - 5일차 [Give a call 와 함께 쓰이는 짝꿍표현] Give a call : 전화주다, 전화걸다.[기v ㅓ] Give a ride : (차에)태워주다, 데려다주다. Give a hand : 도와주다(도움의 손길을 주다) Give a tour : 투어를 해주다. 투어를 시켜주다. Can you give me a ride? : 나 좀 태워다 줄 수 있어? * give의 과거 시제David gave me a ride.: 데이빗이 나를 태워다줬어  Give me a call when you get home. * get home : 집에 도착하다.: 집에 도착하면 전화줘. I'll give you a (little) tour.: 내가 간단히 구경시켜줄게. If you visit my house, I'll give ..
[코딩테스트] - 시간 복잡도 문제 해결 단계문제 이해하기문제의 요구사항, 입력과 출력, 제약 조건을 명확히 파악합니다.접근 방법문제를 해결할 수 있는 다양한 방법을 고민합니다.각 방법의 시간 복잡도와 공간 복잡도를 평가합니다.코드 설계선택한 접근 방법을 기반으로 알고리즘을 설계합니다.주요 단계와 절차를 명확히 정의합니다.코드 구현설계한 알고리즘을 실제 코드로 구현합니다.구현 후 테스트 케이스를 통해 코드의 정확성을 확인합니다.시간 복잡도 활용법시간 복잡도 이해하고 외우기각 알고리즘의 시간 복잡도를 이해하고 외웁니다.주요 시간 복잡도: O(1), O(log n), O(n), O(n log n), O(n^2), O(n^3) 등.제한 조건 보는 법문제에서 주어진 입력 크기(n)를 확인합니다.입력 크기에 따라 사용 가능한 알고리즘의 시간 ..
[코딩테스트] - 자료구조, 시간복잡도 자료구조는 데이터를 저장하고 관리하는 방식을 말합니다. 이는 데이터를 체계적으로 저장하여 메모리를 효율적으로 사용하고, 빠르고 안정적으로 데이터를 처리할 수 있도록 도와줍니다. 선형 자료구조 (Linear Data Structures)선형 자료구조는 데이터가 연속적으로 나열된 형태를 가지며, 각 데이터 요소가 순차적으로 연결된 구조를 의미합니다. 데이터 요소들 간의 관계가 1:1입니다.배열 (Array)연속된 메모리 공간에 데이터 저장고정된 크기인덱스를 통한 빠른 접근동적 배열 (Dynamic Array)크기가 가변적인 배열필요 시 크기를 동적으로 조절추가 및 삭제가 용이연결 리스트 (Linked List)노드가 데이터와 포인터를 포함크기가 가변적삽입 및 삭제가 용이큐 (Queue)FIFO (First ..
[AWS] Elastic Load Balancing 및 Auto Scaling ( + nginx ) AWS 확장성과 고가용성확장성 (Scalability)확장성은 애플리케이션이 더 큰 부하를 처리할 수 있도록 적응하는 것을 의미합니다.클라우드의 확장성에는 두 가지 종류가 있습니다:수직 확장성 (Vertical Scalability)수평 확장성 (Horizontal Scalability)수직 확장성 (Vertical Scalability)개념: 인스턴스의 크기를 증가시켜 더 큰 성능을 얻는 방식.예시: 초보 상담원을 전문 상담원으로 업그레이드하여 더 많은 전화를 처리하는 것.AWS 예시: t2.micro 인스턴스를 t2.large로 업그레이드하는 것.사용 사례: 주로 분산되지 않은 시스템, 예를 들어 데이터베이스에서 사용됩니다.한계: 하드웨어의 물리적 한계가 존재하지만, 이 한계는 매우 높아지고 있습니다..