본문 바로가기

to Developer/Spring6

Ajax 비동기 vs 동기 동기처리(Synchronous) : 클라이언트가 서버에게 데이터 요청을 하면 그 요청에 맞는 응답이 올때까지 다른 작업을 하지 않고(멈춰있음) 기다린다. 그 후에 요청에 맞는 응답을 받게 되면 그제야 다음 요청을 처리한다. 즉, 브라우저는 스크립트가 서버로부터 데이터를 수집하고 이를 처리한 후 페이지 나머지 부분이 모두 로드될 때까지 대기하는 것이다. 비동기처리(Asynchronous) : 클라이언트가 서버에게 데이터 요청을 한 후, 서버가 요청에 맞는 응답을 언제 줄지 모르기 때문에 무작정 기다리지 않고 비동기처리를 한다. 즉, 요청만 보내놓고 응답이 오지 않아도 다음 새로운 요청으로 넘어가버린다. (다른 작업이 가능) 여기서 자바스크립트 언어는 순차적 연산을 거치는 동기처리에 가깝다..
WAS, Servlet 웹 서버와 웹 애플리케이션 서버 웹 서버 정적 리소스 파일을 제공하는 서버 ex) HTML, CSS, javascript, 이미지, 파일 등 즉시 응답 가능한 컨텐츠 웹 애플리케이션 서버(WAS) 웹 서버가 하는 일 + 애플리케이션 로직(DB 연결, 동작 수행, 데이터 제공)까지 제공하여 동적인 처리를 하는 서버 자바 진영에서는 서블릿 컨테이너 기능을 제공하면 WAS 라고 한다. 위 그림에는 없지만 WAS 안에도 웹 서버가 따로 존재한다. WAS만 써도 되겠다? NO. WAS는 DB 조회 및 다양한 로직을 처리하는 데 집중해야 하기에, 단순 정적 컨텐츠는 웹 서버에 맡겨 기능을 분리해 서버 부하를 방지한다. 웹 서버를 WAS 앞에 두고 필요한 WAS들을 웹 서버에 플로그인 형태로 설정하면 더욱 효율적인 ..
Spring Container, Bean Spring Container (스프링 컨테이너) 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 한다. 스프링에서는 자바 객체를 빈(Bean)이라 한다. 스프링 컨테이너의 종류에는 BeanFactory와 ApplicationContext가 있다. 둘 다 빈을 등록하고 생성하고 조회하고 돌려주는 등 빈을 관리하는 역할을 한다. ApplicationContext가 BeanFactory의 빈 관리 기능들을 상속 받았고, 그 외에 국제화 등의 추가적인 기능을 갖고 있어 스프링 컨테이너라고 하면 보통 ApplicationContext라고 한다. Spring Container 사용하는 이유 먼저, 객체를 생성하기 위해서는 new 생성자를 사용해야 한다...
Spring Framework Spring Framework (스프링 프레임워크) 프레임워크 (Framework) 프레임워크란 응용 프로그램이나 소프트웨어 솔루션 개발을 수월하기 위해 구조, 틀이 제공된 소프트웨어 환경 이다. Spring 스프링은 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크 이다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. POJO 기반의 구성으로 자바 코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용할 수 있다. 덕분에 높은 생산성과 유연한 테스트를 할 수 있다. DI(의존성 주입)을 통한 객체 관계 구성을 지원한다. 객체의 생성부터 소멸까지 객체 생명주기 관리를 사용자가 아닌 특별한 객체에게 맡긴다. (IoC) AOP(횡단 관심사 분리) 지원 MVC 구조로 계층이 분..
Dispatcher Servlet Dispatcher Servlet 디스패처 서블릿이란 서블릿 컨테이너의 가장 앞단에서 HTTP 프로토콜로 들어오는 모든 요청을 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러. 프론트 컨트롤러 프론트 컨트롤러(Front Controller)란 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해주는 컨트롤러. 프론트 컨트롤러가 도입되기 전에는 각 컨트롤러마다 공통 로직을 복붙 형식으로 다시 작성하여 사용했지만, 프론트 컨트롤러가 도입된 이후에는 공통의 로직에 대한 처리가 가능해졌다. Spring MVC에서의 Dispatcher Servlet 흐름 처음 클라이언트에서 요청이 오면 디스패처 서블릿이 해당 요청을 받는다. Handler Mapping을 통해 요청에 알맞은..
MVC 패턴 팀 프로젝트를 MVC2 패턴으로 진행했었다. 프로젝트를 진행한 지 오래 되기도 하고 MVC에 대해 다시 정리하고자 포스팅을 한다. MVC 패턴 (Model - View - Controller) Model - 프로그램의 내부 상태, 데이터(정보) 를 뜻함 View - 사용자 인터페이스, 클라이언트에게 보여지는 화면을 뜻함 Controller - 데이터와 비즈니스 로직 간의 상호 작용을 뜻함, DB 접근 경우에 따라 Service에 접근 MVC 패턴 장단점 정의 Model, View, Controller로 분리하는 아키텍처 장점 과거에는 Controller에 다 담아두고 처리했다. 기능 별로 코드를 분리하여, 가독성을 높이고 재사용성을 증가시킨다. 단점 view와 model 사이에 의존성이 높아서 애플리케이..