
들어가기에 앞서 Record란 불변(Immutable) 데이터 객체를 쉽게 생성할 수 있도록 하는 새로운 유형의 클래스로 JDK14에서 preview로 등장하여 JDK16에서 정식 스펙으로 포함되었다. 기존 불변 데이터 객체는 다음과 같다. public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } 상태를 보유하는 불변 객체를 생성하기 위한 많은 코드를 작성했고 모든..

최근 Node.js Express를 이용한 간단한 웹을 만들어보고 잠시 Node.js를 본격적으로 Routes를 하기전 SpringBoot를 조금 공부하고 가려고 한다. 현재 공부하는 순서는 HTML/CSS 이후 JS 그리고 Node.js를 밟고 있고 별도로 Java/SpringBoot 그리고 Kotlin 다음 Dart를 생각하고 있는데 사실 한개의 언어를 깊게 하는게 중요할 것 같다. 아직은 주니어라고 말하기도 어려운 실력이다보니 여러가지를 경험하는 것에 목적을 두고있다. 서론은 여기까지이고 본격적으로 SpringBoot 프로젝트를 만드는 방법을 살펴보자. 1. Spring Starter Project 생성 2. Gradle - Groovy 선택 3. 의존성추가 4. application.propert..

1. Spring Boot 프로젝트 생성 2. maven을 사용한다면 pom.xml에 추가하고 Gradle을 사용한다면 build.gradle에 추가합니다. pom.xml org.apache.tomcat.embed tomcat-embed-jasper javax.servlet jstl build.gradle derendencies { compile('javax.servlet:jstl') compile("org.apache.tomcat.embed:tomcat-embed-jasper") } Spring은 시작할 때, application.properties 파일에 정의된 내용을 로드한다. application.properties 파일에 spring.mvc.prefix와 spring.mvc.suffix 프로퍼티..

mapper.xml에서 부적합한 열 : 1111 위와 같이 뜨는 경우 form 에서 넘어오는 parameter 값들 중 null 값이 존재해서 그렇다 이러한 경우 알려주는 오류대로 실행하되 null 값을 그대로 삽입하고 싶다면 아래의 방법을 사용하면 된다 INSERT INTO table (id , name, title) VALUES (#id:VARCHAR#, #name:VARCHAR#, #title:VARCHAR#) INSERT INTO table (id , name, title) VALUES (#{id, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR}, #{title, jdbcType=VARCHAR})

1. 웹소켓 탄생배경 기존 HTTP 프로토콜은 요청에 대해서만 응답을 보낼 수 있기 때문에 채팅에서 계속 메시지를 받기만 하는 상황을 구현하기 힘들었고 HTTP 프로토콜은 매 요청과 응답마다 연결을 수립하고 끊는 과정을 반복해야 했기 때문에 유사한 통신을 반복해야 한다는 비효율성에 대한 문제가 있었다. HTTP를 이용한 실시간 통신의 문제를 해결하기 위해 HTML5부터 웹소켓이 등장했습니다. 웹소켓은 실시간 양방향 통신 을 지원하며 한번 연결이 수립되면 클라이언트와 서버 모두 자유롭게 데이터를 보낼 수 있습니다. 이는 채팅과 같은 연속적인 통신에 대해 계속 유사한 통신을 반복하지 않게 해주어 통신의 효율성도 개선하였습니다. 2. 웹소켓 프로토콜 웹소켓은 HTTP와 같은 OSI 모델의 7계층에 위치하는 프..