개요클라이언트가 실시간으로 서버로부터 데이터를 받아오는 경우는 매우 흔한 기법이다. 당장 우리가 사용하는 백준 온라인 저지 사이트를 생각해 보자.우리가 코드를 작성하고 이를 제출하면 실시간으로 한 페이지 안에서 채점 상황이 업데이트된다. 이는 우리가 일반적으로 웹 통신에 사용되는 HTTP로 구현할 수 있을까?HTTP로 구현해보자HTTP는 클라이언트(브라우저)가 서버에게 요청을 날린 후, 응답이 오면 자동적으로 연결이 끝난다.(물론, 연결을 지속시켜 Server-Sent-Events라는 기법을 사용하면 비슷한 기능을 구현할 수 있지만, 이는 추후에 알아보자.)따라서 연결이 끝난 후, 서버는 클라이언트에게 더 이상 어떠한 신호도 보낼 수 없다. Polling그렇다면 방법은 하나!주기적으로 클라이언트가 서버에..
나는 왜 Spring을 사용하는가 사실 자바에서 웹 애플리케이션을 개발하기 위한 선택지는 Spring이 유일하지 않다. 네이티브 자바를 사용하여 HTTP 요청을 처리할 수 있고, 더 나아가 MicroNaut를 사용하여 웹 애플리케이션을 구축할 수 있다. 하지만, 이를 모두 제치고 단번의 망설임도 없이 Spring을 선택하는 것은 Spring의 생태계가 매우 넓고 활발하기 때문이다. Spring 생태계 혹시 한번이라도 Spring 프로젝트를 개발하기 위한 첫 걸음으로 Spring Initializr를 써보았다면, 얼마나 많은 Spring 모듈이 존재하는지 알 수 있을 것이다. 당장 Spring 웹을 개발하기 위한 모듈만 해도 일반적인 방식으로 동작하는 spring-web과 비동기적 리액티브 프로그래밍 패러..
당신은 정말 Spring을 알고 있을까? 지금 이 글을 읽고 있는 당신은 정말로 Spring 혹은 Spring Boot에 대해 잘 알고 있을까? 그렇다면 당신이 생각하는 Spring이란 무엇인가? 만약, "웹 프레임워크" 혹은 이와 비슷한 답변을 했다면, 잘못된 지식을 가지고 있다고 생각한다. 공식 사이트에서의 Spring 정의 Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed, simplicity, and productivity has made it the world's most popular Java framework. 공식 사이트에서의 정의에서조차 당신이 생각하는 "Web"이라는..