Memorizing/Java12
-
[QueryDSL] 최신! 환경설정
본 포스팅은 QueryDSL-JPA의 환경설정을 다룹니다. 문제 상황 김영한님 QueryDSL 강의 듣고 있는데, 강의에서 제공해준 메뉴얼대로 아래와 같이 gradle을 작성했는데 빌드가 제대로 안됨. plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral..
2024.03.06 -
[Java] 초간단! 쿠키, 세션, 토큰
본 포스팅은 클라이언트와 서버가 인증, 인가하는 방식인 쿠키, 세션, 토큰에 대해 다룹니다. HTTP의 특성 웹 클라이언트와 서버는 HTTP라는 프로토콜을 이용하여 통신합니다. HTTP는 비연결성과 무상태성의 특징을 가지고 있습니다. 비연결성 비연결성은 서버와 클라이언트가 항상 연결되어있지는 않다는 것입니다. 무상태성 무상태성은 서버가 클라이언트의 상태를 저장하지 않는다는 것입니다. HTTP가 두 가지 특징을 가지고있기 때문에 서버의 부하를 줄일 수 있지만, 유저 로그인과 같이 인증된 유저는 기억하고 있어야하는 경우 비연결성과 무상태성 때문에 이 정보를 기억하지 못할 수 있습니다. 따라서 유저 로그인과 같은 정보를 유지시키는 과제를 풀어야하는데, 그 과정에서 쓰이는 것이 쿠키, 세션, 토큰입니다. 쿠키 ..
2024.02.29 -
[Java] 제네릭 - 2
본 포스팅에서는 제네릭에서 유연성 캐스팅에 유연성을 더해주는 와일드카드에 대해 다룹니다. 정의 와일드카드는 아래와 같이 타입 변수를 지정할 때, 상속 관계를 어떤 방식으로 지정할지에 대해 "?"를 사용하여 지정하는 것을 말합니다. 1. : 제한 없음 와일드카드 도입 이유 기본적으로 자바의 타입기본형타입,참조형타입은 다운, 업 캐스팅을 지원합니다. 예제코드는 아래와 같습니다. // 업캐스팅공변성 Object[] Covariance = new Integer[10]; // 다운캐스팅반공변성 Integer[] Contravariance = Integer[] Covariance; 하지만 제네릭은 아래와 같은 상황에서 다운,업 캐스팅을 지원하지 않습니다. public static void pri..
2024.02.19 -
[Java] 제네릭 - 1
본 포스팅은 제네릭의 기본 문법과 사용법에 대해 다룹니다. 기본개념 제네릭은 자바에서 데이터 타입을 일반화하여 보다 쉽게 사용할 수 있도록하는 것을 말합니다. 예제 코드는 아래와 같습니다. 아래와 같이 자바는 강타입 언어이기 때문에 메소드나 클래스에서 입력, 반환 데이터 타입을 지정해주어야합니다. 그렇기 때문에 메소드 오버로딩을 사용한다면 아래와 같이 타입별로 메소드를 따로 만들어주어야합니다. 이런 것들을 해결하기 위한 것이 제네릭입니다. public class Generic { public String plusReturnFunctioninta,intb { ... } public String plusReturnFunctioninta,longb { ... } public String pl..
2024.02.19 -
[Java] 프로세스와 스레드 - 4
본 포스팅에서는 스레드의 상태와 스레드의 상태를 제어할 수 있는 메소드인 sleep, interrupt, join, yield에 대해 다룹니다. 스레드의 상태 스레드는 new키워드를 통해서 스레드 객체를 생성하면, start 메소드를 호출하여 실행 대기 상태로 넘어갈 수 있습니다. 이 후 실행 대기 상태의 스레드 중에서 스레드 스케줄링으로 특정 스레드가 선택되면, 그 스레드의 run 메서드를 실행합니다. 그리고 스레드의 run 메소드의 작업이 모두 끝나면 그 스레드는 종료하게 됩니다. 위의 내용을 그림으로 정리하면 아래와 같습니다. 또한, 스레드의 상태는 아래와 같이 사전 정의되어 있습니다. 스레드의 제어 스레드의 상태를 여러가지 메소드를 호출하여 제어할 수 있습니다. 스레드의 상태를 제어하는 여러 메소..
2024.02.17 -
[Java] 프로세스와 스레드 - 3
본 포스팅에서는 스레드를 만들고 실행할 때, 사용할 수 있는 부가적인 개념들에 대해 다룹니다. Daemon Thread 데몬 스레드는 "보이지 않는 곳에서 실행되는 낮은 우선순위의 스레드"입니다. 보이지 않는 곳이라는 것은 "background"프로세스로 실행된다는 것을 의미합니다. 데몬 프로세스에 대해서는 다른 게시물에 포스팅할 예정입니다. 데몬 스레드의 특징은 Main스레드가 종료되면 작업이 다 수행되지 않았더라도 같이 종료된다는 것입니다. 예제 코드는 아래와 같습니다. public class Main { public static void mainString[]args { Runnable demon = -> { for inti=0;i<1000000;i++ { System.o..
2024.02.17