분류 전체보기81 Spring이 동시요청을 처리하는 방법 Spring과 멀티 스레드 멀티 스레드란, 일반적으로 하나의 프로세스에 하나의 스레드가 작업하는 것과 달리 하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 것을 말한다. 우리가 웹 애플리케이션을 이용할 때 여러 Client의 요청이 날아왔을 때, 모든 사용자가 자신이 원하는 작업을 원활히 할 수 있는 이유는 멀티 스레드 때문이다. 만약 싱글 스레드 환경이라면, 웹 애플리케이션에 접속해 요청을 전달한 최초 사용자에게 응답을 보내기 전까지는 다른 사용자들이 해당 서비스를 이용할 수 없을 것이다. 때문에 대다수의 웹 서버는 멀티 스레드를 이용한다고 하며, Spring의 Tomcat 역시 이에 속한다. 즉, 요약하자면 Spring의 Tomcat을 포함한 대다수의 웹 서버는 멀티 스레드 방식을 따르고.. 2023. 5. 2. Spring과 POJO POJO란 상속/implements 받아 메서드가 추가된 클래스가 아닌 일반적으로 우리가 알고 있는 getter, setter 같이 기본적인 기능만 가진 자바 객체를 말한다. 즉, 특정 기술에 종속되지 않는 순수한 자바 객체를 말한다. public class User { private int id; private String name; private String email; public int getId() { return id; } public String getName() { return name; } public String getEmail() { return email; } public void setId(int id) { this.id = id; } public void setName(Strin.. 2023. 5. 1. Spring Filter vs Interceptor vs AOP 자바 웹 개발을 하다보면, 공통적으로 처리해야 할 업무들이 많다. 예를들어 로그인 관련(세션체크)처리, 권한체크, XSS(Cross site script)방어, pc와 모바일웹의 분기처리, 로그, 페이지 인코딩 변환 등의 공통적으로 처리해야 할 업무들이 있다. 공통업무에 관련된 코드를 모든 페이지 마다 작성 해야한다면 중복된 코드가 많아지게 되고 프로젝트 단위가 커질수록 서버에 부하를 줄 수도있으며, 소스 관리도 되지 않는다. 이러한 이유 때문에 공통 부분은 빼서 따로 관리를 하는 것이 좋다. 이러한 공통 처리를 위해 활용할 수 있는 기술은 Filter, Interceptor, AOP가 있다. Filter 필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet.. 2023. 5. 1. Servlet과 Front Controller Servlet 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술을 말한다. 쉽게 말해 클라이언트의 요청에 맞춰 동적인 결과를 만들어 주는 자바 웹 프로그래밍 기술이라고 할 수 있는 것인데, WAS내의 서블릿 컨테이너에서 동작하며, 요청(Request)을 받으면 요청에 맞는 로직을 실행하고 클라이언트에게 HTTP 형식으로 응답(Response)하게 된다. 클라이언트가 웹 서버에 요청하면 웹 서버는 그 요청을 톰캣과 같은 WAS에 위임한다. 그러면 WAS는 각 요청에 해당하는 서블릿을 실행한다. 그리고 서블릿은 요청에 대한 기능을 수행한 후 결과를 반환하여 클라이언트에 전송한다. 1. 클라이언트 요청 2. HttpServletRequest, HttpSe.. 2023. 5. 1. 브릿지 패턴 (가교 패턴) 브릿지패턴이란 브릿지 패턴 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층구조(추상화 및 구현)로 나눈 후 각각 독립적으로 개발할 수 있도록 하는 구조 디자인 패턴입니다. 말로는 잘 와닿지 않는 개념이니, 그림과 함께 살펴보자 Circle(원) 및 Square(직사각형)라는 한 쌍의 자식 클래스들이 있는 기하학적 Shape(모양) 클래스가 있다고 가정하고, 이 클래스 계층 구조를 확장하여 색상을 도입하기 위해 Red(빨간색) 및 Blue(파란색) 모양들의 자식 클래스들을 만든다고 하자. 그러나 Shape에는 이미 두 개의 자식 클래스가 있으므로 BlueCircle(파란색 원) 및 RedSquare(빨간색 직사각형)와 같은 네 가지의 클래스 조합을 만들어야 한다.. 2023. 4. 24. Spring DI(Dependency Injection) Spring DI(의존성 주입)이란?A 객체에서 B, C객체를 사용(의존)할 때 A 객체에서 직접 생성 하는 것이 아니라 외부(IOC컨테이너)에서 생성된 B, C객체를 조립(주입)시켜 사용하는 방식이다. 의존성 주입은 스프링 컨테이너에 스프링 빈 모두 등록 -> 빈 관계 설정(연관관계 주입)의 순서로 이루어진다. 다만 예외적으로 생성자 주입 방식으로 DI를 수행하는 경우 빈 등록시 생성자가 호출되므로 빈 등록과 동시에 DI가 이루어진다. 의존성 주입을 사용하는 이유는 다음과 같다.유지보수 용이 만약 A클래스를 서로다른 100개의 클래스에서 사용해야 할 때 주입받지 않는다면 각 클래스는 A클래스를 직접 생성해야 한다. 그런데 만약 A클래스에 변경 사항이 생긴다면 100개의 클래스를 모두 수정해주어야 한다... 2023. 4. 24. 이전 1 2 3 4 5 ··· 14 다음