전체 글
-
이번 포스트에서는 JDK21에 추가된 Virtual Thread에 대해 살펴보자. Virtual Thread? 기존의 스레드의 동작 방식자바에는 이미 잘 동작하는 스레드가 있는데 구지 Virtual Thread(V.T)가 필요했던 이유는 무엇일까? V.T의 필요성을 이해하기 위해서는 먼저 기존 스레드의 동작을 살펴볼 필요가 있다.일단 스레드는 기본적으로 OS의 자산이다. 자바께 아니다. Java에서 스레드를 사용할 때는 OS의 스레드와 1:1로 통신할 수 있는 스레드를 만들어서 사용한다. 이를 플랫폼 스레드(Platform Thread:P.T)라고 부른다. 그러다 보니 스레드의 주도권은 OS에 있다. 자바에서 스레드로 뭔가를 하려고 하면 OS와 소통해야 한다는 말이다.기존의 Thread의 문제점과 V..
Virtual Thread이번 포스트에서는 JDK21에 추가된 Virtual Thread에 대해 살펴보자. Virtual Thread? 기존의 스레드의 동작 방식자바에는 이미 잘 동작하는 스레드가 있는데 구지 Virtual Thread(V.T)가 필요했던 이유는 무엇일까? V.T의 필요성을 이해하기 위해서는 먼저 기존 스레드의 동작을 살펴볼 필요가 있다.일단 스레드는 기본적으로 OS의 자산이다. 자바께 아니다. Java에서 스레드를 사용할 때는 OS의 스레드와 1:1로 통신할 수 있는 스레드를 만들어서 사용한다. 이를 플랫폼 스레드(Platform Thread:P.T)라고 부른다. 그러다 보니 스레드의 주도권은 OS에 있다. 자바에서 스레드로 뭔가를 하려고 하면 OS와 소통해야 한다는 말이다.기존의 Thread의 문제점과 V..
2024.09.21 -
JDK18 ~ JDK20은 STS로 확정된 기능이 거의 없이 지나갔다. 드디어 2023년 9월 19일 LTS인 JDK21이 다양한 기능을 포함하고 발표되었다. 문법적인 변화 JEP 441: Pattern Matching for switch이제 switch case 문장에서 단순한 값 뿐 아니라 타입, null 여부까지 판단할 수 있게 되었다. 여기서 패턴이라 특정한 형태나 구조를 가진 데이터를 찾아내기 위한 개념으로 생각할 수 있다. 기존의 switch 문장이 int, String 등으로 단순히 값이 같은지를 비교했다면 이제 Object를 파라미터로 받아서 타입 기반으로 처리하거나 when 키워드를 이용해서 조건을 추가할 수도 있게 되었다.// if 문을 이용한 타입 확인 및 활용static Str..
[JDK] 버전별 특징 - JDK21JDK18 ~ JDK20은 STS로 확정된 기능이 거의 없이 지나갔다. 드디어 2023년 9월 19일 LTS인 JDK21이 다양한 기능을 포함하고 발표되었다. 문법적인 변화 JEP 441: Pattern Matching for switch이제 switch case 문장에서 단순한 값 뿐 아니라 타입, null 여부까지 판단할 수 있게 되었다. 여기서 패턴이라 특정한 형태나 구조를 가진 데이터를 찾아내기 위한 개념으로 생각할 수 있다. 기존의 switch 문장이 int, String 등으로 단순히 값이 같은지를 비교했다면 이제 Object를 파라미터로 받아서 타입 기반으로 처리하거나 when 키워드를 이용해서 조건을 추가할 수도 있게 되었다.// if 문을 이용한 타입 확인 및 활용static Str..
2024.09.20 -
이번 시간에는 DBMS의 window function의 over 절에 대해서 살펴보자. over 절의 활용 over() 절window 함수를 사용하기 위해서는 over() 절이 필수 항목이다. sum()을 그냥 쓰면 집계함수가 되고 over()가 있어야 window 함수가 된다. 다음의 간단한 예를 살펴보자.select title, length, rating, sum(length) over() "길이합", sum(length) over(partition by rating) "등급별 길이합"from filmorder by length;첫 번째 경우 처럼 over 절이 비어있으면 모든 쿼리 행을 대상으로 구성되며 window 함수는 전체 쿼리 결과를 하나의 파티션으로 취급한다. 따라..
window function 2이번 시간에는 DBMS의 window function의 over 절에 대해서 살펴보자. over 절의 활용 over() 절window 함수를 사용하기 위해서는 over() 절이 필수 항목이다. sum()을 그냥 쓰면 집계함수가 되고 over()가 있어야 window 함수가 된다. 다음의 간단한 예를 살펴보자.select title, length, rating, sum(length) over() "길이합", sum(length) over(partition by rating) "등급별 길이합"from filmorder by length;첫 번째 경우 처럼 over 절이 비어있으면 모든 쿼리 행을 대상으로 구성되며 window 함수는 전체 쿼리 결과를 하나의 파티션으로 취급한다. 따라..
2024.09.11 -
이번 시간에는 DBMS의 window function이라는 것을 mysql 중심으로 살펴보자.https://dev.mysql.com/doc/refman/9.0/en/window-function-descriptions.html MySQL :: MySQL 9.0 Reference Manual :: 14.20.1 Window Function Descriptions14.20.1 Window Function Descriptions This section describes nonaggregate window functions that, for each row from a query, perform a calculation using rows related to that row. Most aggregate funct..
window function 1이번 시간에는 DBMS의 window function이라는 것을 mysql 중심으로 살펴보자.https://dev.mysql.com/doc/refman/9.0/en/window-function-descriptions.html MySQL :: MySQL 9.0 Reference Manual :: 14.20.1 Window Function Descriptions14.20.1 Window Function Descriptions This section describes nonaggregate window functions that, for each row from a query, perform a calculation using rows related to that row. Most aggregate funct..
2024.09.09 -
이번 포스트에서는 데이터 저장 시 사용되는 character set과 collation에 대해 살펴보자. character set vs collation 기본 설정mysql에서는 database 생성 시 character set과 collate를 설정할 수 있다. 생략시에는 mysql 서버의 기본 설정을 따른다.create database samplecharacter set utf8 collate utf8mb4_0900_ai_ci;여기서 character set과 collate의 의미에 대해 살펴보자.character setcharacter set은 데이터베이스에 저장할 수 있는 문자들의 집합을 의미한다. 이 문자 집합은 데이터베이스가 어떤 문자들을 인식하고 저장할 수 있는지를 결정하다. 예를들어 지금..
[mysql]character set과 collation이번 포스트에서는 데이터 저장 시 사용되는 character set과 collation에 대해 살펴보자. character set vs collation 기본 설정mysql에서는 database 생성 시 character set과 collate를 설정할 수 있다. 생략시에는 mysql 서버의 기본 설정을 따른다.create database samplecharacter set utf8 collate utf8mb4_0900_ai_ci;여기서 character set과 collate의 의미에 대해 살펴보자.character setcharacter set은 데이터베이스에 저장할 수 있는 문자들의 집합을 의미한다. 이 문자 집합은 데이터베이스가 어떤 문자들을 인식하고 저장할 수 있는지를 결정하다. 예를들어 지금..
2024.09.09 -
이번 시간에는 Cookie, Session등 웹 애플리케이션에서 상태를 유지하기 위한 방법들에 대해 살펴보자. Http의 Stateless 한 특성 기본적으로 HTTP는 stateless 한 특성을 지닌다(반대말은 stateful 이다). 즉 한번 request를 보내고 서버로부터 response를 받으면 서로 남남으로 이전 요청의 상태를 기억하지 않는다. 그래서 로그인 후 글쓰기를 하려해도 다시 로그인 하라고 이야기 하게 된다.왜 HTTP는 stateless 할까?더보기확장성: 서버가 상태를 저장하지 않기 때문에 새로운 서버를 추가(scale out)하거나 기존 서버를 제거하는 것이 쉽다. 이를 통해 대규모 트래픽에 대응하기가 용이하다.단순성: 들어오는 요청만 처리하면 되기 때문에 시스템의 구성이 ..
07. cookie와 session이번 시간에는 Cookie, Session등 웹 애플리케이션에서 상태를 유지하기 위한 방법들에 대해 살펴보자. Http의 Stateless 한 특성 기본적으로 HTTP는 stateless 한 특성을 지닌다(반대말은 stateful 이다). 즉 한번 request를 보내고 서버로부터 response를 받으면 서로 남남으로 이전 요청의 상태를 기억하지 않는다. 그래서 로그인 후 글쓰기를 하려해도 다시 로그인 하라고 이야기 하게 된다.왜 HTTP는 stateless 할까?더보기확장성: 서버가 상태를 저장하지 않기 때문에 새로운 서버를 추가(scale out)하거나 기존 서버를 제거하는 것이 쉽다. 이를 통해 대규모 트래픽에 대응하기가 용이하다.단순성: 들어오는 요청만 처리하면 되기 때문에 시스템의 구성이 ..
2024.09.08 -
이번 포스트에서는 MVC 패턴과 Servlet에서의 Model2 구조에 대해 살펴보자.MVC 패턴 MVC 패턴이란?애플리케이션 개발에 가장 흔하게 적용되는 패턴으로 MVC 패턴이 있다. 이는 애플리케이션을 역할에 따라 Model-View-Controller로 모듈화하는 패턴이다. Model: 업무 즉 business logic을 담당하는 모듈로 필요하다면 DB를 연동(persistence logic)하기도 한다.View: 화면에 보여주기 위한 presentation logic 처리하는 모듈이다.Controller: 전체적인 흐름을 제어하는 모듈이다.이렇게 모듈을 분리하는 목적은 필요에 따라 모듈을 쉽게 교체하기 위해서이다. 만약 현재 View가 A라는 기술로 작성되어있는 상황에서 B라는 기술로 대체해야 ..
06. MVC와 Model2이번 포스트에서는 MVC 패턴과 Servlet에서의 Model2 구조에 대해 살펴보자.MVC 패턴 MVC 패턴이란?애플리케이션 개발에 가장 흔하게 적용되는 패턴으로 MVC 패턴이 있다. 이는 애플리케이션을 역할에 따라 Model-View-Controller로 모듈화하는 패턴이다. Model: 업무 즉 business logic을 담당하는 모듈로 필요하다면 DB를 연동(persistence logic)하기도 한다.View: 화면에 보여주기 위한 presentation logic 처리하는 모듈이다.Controller: 전체적인 흐름을 제어하는 모듈이다.이렇게 모듈을 분리하는 목적은 필요에 따라 모듈을 쉽게 교체하기 위해서이다. 만약 현재 View가 A라는 기술로 작성되어있는 상황에서 B라는 기술로 대체해야 ..
2024.08.20 -
이번 포스트에서는 JSP와 Servlet의 차이를 살펴보고 JSP의 구성요소를 학습해보자. JSP 기존 Servlet의 문제점과 JSPServlet은 Java에서 동적 애플리케이션을 만들기 위해서 꼭 필요한 녀석인데 치명적인 단점이 존재한다.더보기private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { String danStr = request.getParameter("dan"); // 1. 파라미터 확인 및 검증 StringBuilder data = new StringBuilder(); if (danStr == n..
05. JSP이번 포스트에서는 JSP와 Servlet의 차이를 살펴보고 JSP의 구성요소를 학습해보자. JSP 기존 Servlet의 문제점과 JSPServlet은 Java에서 동적 애플리케이션을 만들기 위해서 꼭 필요한 녀석인데 치명적인 단점이 존재한다.더보기private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { String danStr = request.getParameter("dan"); // 1. 파라미터 확인 및 검증 StringBuilder data = new StringBuilder(); if (danStr == n..
2024.08.12