[Spring] Ajax를 이용한 비동기 처리와 아이디 중복검사 구현
·
Spring
비동기 처리비동기 처리는 서버와 클라이언트 간의 통신을 비동기적으로 처리하여, 사용자가 요청을 보낸 후 페이지가 새로고침되지 않고도 결과를 받을 수 있는 기술이다. 여기서는 비동기 처리에서 반환되는 데이터 형태에 대해 알아볼 것이다.1. String(Text) 반환String 형식의 데이터는 주로 간단한 결과나 상태를 반환할 때 많이 사용된다. 보통 특정 작업의 성공 여부나 단순한 메시지를 전달할 때 적합하다. 비동기 통신으로 서버에 요청을 보내고, 응답으로 텍스트 값을 받아 처리할 수 있다. 대표적인 예시는 아래와 같다. 아이디 중복 검사: 회원가입 시 사용자가 입력한 아이디가 이미 존재하는지를 확인할 때, 서버에서 '사용 가능', '사용 불가'와 같은 텍스트를 반환해준다.좋아요 기능: 사용자가 게시물..
[Spring] Tomcat Server 기동 시 Listener와 Spring IoC Container의 초기화 과정
·
Spring
Tomcat 서버와 리스너 개요Tomcat 서버가 켜지면 먼저 서블릿 컨테이너가 동작한다. 이때 웹 애플리케이션이 초기화되고, 설정 파일(web.xml 등)에 정의된 리스너가 등록돼 동작을 시작한다. 리스너는 서버의 상태 변화(시작, 종료, 세션 생성 등)를 감지하는 역할을 한다.Listener와 Spring IoC 컨테이너 초기화ContextLoaderListener가 web.xml에 등록돼 있으면 톰캣이 켜질 때 이 리스너가 동작해서 Spring의 ApplicationContext.xml를 초기화한다. 이 과정에서 Spring의 IoC 컨테이너가 생성된다.Listener는 주로 ApplicationContext 를 설정하고, 필요한 Bean들을 로딩한다. Spring Application은 이때 XM..
[Spring] 2-Layered 아키텍처 정리
·
Spring
2-Layered 아키텍처는 코드의 결합도를 낮추고, 유지보수를 쉽게 하기 위해 설계된 구조이다.이 아키텍처는 서비스 레이어를 추가하여 프레젠테이션 레이어(Controller)와 데이터 접근 레이어(DAO) 간의 결합도를 낮추는 방식으로 동작한다.아키텍처의 구성프레젠테이션 레이어 (Controller)사용자의 요청을 받아 적절한 서비스로 전달한다.주로 요청 처리와 응답을 관리하며, 비즈니스 로직을 직접적으로 처리하지 않고 서비스 레이어를 통해 처리한다.서비스 레이어 (Service)비즈니스 로직을 처리하고, DAO를 사용해 데이터베이스와 상호작용한다.주된 역할은 데이터를 가공하고, 트랜잭션 관리 등의 비즈니스 로직을 담당하는 것이다.주요 특징 및 장점결합도 감소Controller와 DAO 사이의 직접적인..
[Spring] 스테레오타입 어노테이션과 @RequestMapping
·
Spring
Spring에서 제공하는 스테레오타입 어노테이션은 개발자가 클래스의 역할을 명확하게 정의하고, 해당 클래스의 빈(Bean) 관리를 Spring 컨테이너에게 맡길 수 있게 해준다.이를 통해 코드의 구조화와 성능 최적화를 달성할 수 있다. 스테레오타입 어노테이션 종류@Component가장 범용적인 스테레오타입 어노테이션이다. 일반 객체를 Spring 컨테이너에서 관리하도록 할 때 사용한다. @Component를 상속받은 어노테이션@Component를 상속받은 어노테이션중  @Repository, @Service, @Controller 이렇게 3개를 정리해보려고 한다. @Repository는 데이터 액세스 계층(DAO)에서 사용한다.@Repositorypublic class MemberDAO {// 생략.....
[Spring] ViewResolver
·
Spring
ViewResolver ?ViewResolver(VS)는 말 그대로 뷰(View)를 결정하는 역할을 한다.Spring MVC 구조에서, 컨트롤러가 요청을 처리한 후, 클라이언트에게 어떤 뷰 페이지를 보여줄지 결정할 때 ViewResolver가 개입하게 된다. 페이지 이동 시 VR이 관여하고, setter 주입 방식을 사용하므로 prefix와 suffix를 property로 설정한다.컨트롤러가 반환하는 뷰의 이름(예: "login" 또는 "main")을 받아서 실제 JSP 파일 경로로 변환해주는 객체가 바로 ViewResolver다. Spring에서는 다양한 ViewResolver를 제공하는데, 그 중 가장 많이 사용하는 것은 InternalResourceViewResolver다.이 ViewResolver..
[Spring] DispatcherServlet과 Spring MVC의 핵심 흐름 분석
·
Spring
이전 글 이어서 ..https://yn98.tistory.com/88 [Spring] DispatcherServlet, ViewResolver , DI 방식 정리이번 포스팅에서는 DispatcherServlet과 ViewResolver의 역할, 의존성 주입 방식, 그리고 JSP에서 스프링으로 넘어가는 과정에 대해 다루려고 한다. DispatcherServlet의 기본 구조 DispatcherServlet은 스프링 프레yn98.tistory.com앞선 글에서, DispatcherServlet에 알아봤다. 다시 DispatcherServlet에 대해 정리하자면, 앞에 글의 DispatcherServlet는 진짜 DispatcherServlet이 아니라 이해를 위해 임의로 코드를 작성한 것이다.실제 Dispa..
[Spring] DispatcherServlet, ViewResolver , DI 방식 정리
·
Spring
이번 포스팅에서는 DispatcherServlet과 ViewResolver의 역할, 의존성 주입 방식, 그리고 JSP에서 스프링으로 넘어가는 과정에 대해 다루려고 한다. DispatcherServlet의 기본 구조 DispatcherServlet은 스프링 프레임워크에서 요청을 처리하고, 적절한 컨트롤러로 전달한 뒤 응답을 제공하는 중심 역할을 담당하는 서블릿이다.이 서블릿은 FrontController 역할을 하며, 클라이언트의 요청을 받아들이고 HandlerMapping을 통해 적절한 컨트롤러를 찾아 처리 후, ViewResolver를 통해 응답을 생성한다.즉, FrontController == DispatcherServlet 라고 생각하면 된다.package com.yn.app.view.control..
[Spring] Spring DI와 비즈니스 로직
·
Spring
오늘은 패키지 구조와 비즈니스 로직에 대해 정리해봤다.보통 패키지는 3계층으로 나누는데, 회사명, 어플리케이션명(팀이나 프로젝트), 그리고 제공하는 서비스명으로 구성한다.아래 사진이 그 예시이다.핵심은 비즈니스 로직, 즉 비즈니스 메서드인데, 이것은 CRUD 작업이나 핵심 로직을 담당한다.  이 로직을 수행하는 방식은 서비스 계층을 통해 DAO를 호출하는 것과 같다.예를 들어, XXX.do 요청이 들어오면, FC에서 XxxAction 객체를 생성하고, Action 객체는 execute() 메서드를 호출해 다음 페이지로 이동할 수 있는 AF를 반환한다.이 과정에서 실질적으로 서비스 내용은 DAO가 수행하는데, 서비스는 이를 핸들링하는 역할이다. 서비스는 마치 폰이라면, DAO는 그 폰의 기능을 실제로 수행..