코딩 도구/백엔드 개발 (Backend Development)(14)
-
MVC 패턴: 서블릿과 JSP의 한계를 넘어
MVC 패턴: 서블릿과 JSP의 한계를 넘어이 글에서는 인프런 김영한님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술"을 수강하고 정리했습니다.서블릿의 문제점서블릿을 사용하여 웹 애플리케이션을 개발할 때, HTML을 직접 생성하는 작업이 자바 코드와 뒤섞여서 코드가 복잡하고 유지보수가 어려운 문제가 있었다. 예를 들어, 서블릿에서 문자열로 HTML을 생성하고 출력하는 방식은 가독성이 떨어지고, 작은 수정에도 코드 전체를 수정해야 하는 번거로움이 있었다.JSP를 사용한 개선JSP를 도입하면서 HTML을 보다 깔끔하게 작성할 수 있게 되었다. 뷰를 생성하는 HTML 작업은 JSP에서 담당하고, 동적으로 변경이 필요한 부분만 자바 코드를 적용하는 방식으로 개선되었다. 하지만 여전히 몇 가지 문제가 남아..
2025.03.01 -
웹 서버와 웹 애플리케이션 서버(WAS)
웹 서버와 웹 애플리케이션 서버(WAS)의 차이1. 개요웹 시스템을 구성하는 주요 컴포넌트 중 웹 서버(Web Server)와 웹 애플리케이션 서버(WAS, Web Application Server)의 역할과 차이를 이해하는 것은 중요하다. 이 글에서는 인프런 김영한님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술"을 수강하고 정리했습니다.2. 웹 서버(Web Server)란?웹 서버는 클라이언트(주로 웹 브라우저)로부터 HTTP 요청을 받아 정적 리소스를 제공하는 역할을 한다. 정적 리소스는 HTML, CSS, JavaScript, 이미지, 동영상 파일과 같은 변경되지 않는 콘텐츠를 포함한다.웹 서버의 주요 기능HTTP 요청을 받아 클라이언트에게 정적 리소스를 반환한다.대표적인 웹 서버로는 A..
2025.02.28 -
서블릿과 HTTP 요청/응답
서블릿과 HTTP 요청/응답의 핵심 개념이 글에서는 인프런 김영한님의 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술"을 수강하고 정리했습니다. 1. 서블릿 컨테이너의 동작 방식서블릿 컨테이너(Servlet Container)는 웹 애플리케이션을 실행하고 클라이언트 요청을 처리하는 중요한 구성 요소이다. 대표적인 서블릿 컨테이너로는 Tomcat, Jetty, WildFly 등이 있다.서블릿 컨테이너의 주요 역할HTTP 요청 처리 및 서블릿 객체 관리클라이언트로부터 HTTP 요청을 받으면, 해당 요청에 적절한 서블릿을 찾아 실행한다.서블릿 객체는 컨테이너가 직접 생성하고 관리한다.서블릿 생명주기 관리서블릿 객체는 한 번만 생성되며, 이후 요청마다 service() 메서드가 실행된다.컨테이너가 필요하지..
2025.02.24 -
[Spring] 빈 스코프
스프링 빈 스코프김영한님의 "스프링 핵심 원리 - 기본편"을 수강하고 정리했습니다. 1. 빈 스코프란?스프링 빈은 기본적으로 싱글톤(Singleton) 스코프를 가진다. 하지만 특정 요구사항에 따라 다양한 스코프를 지정할 수 있으며, 이 기능을 활용하면 애플리케이션의 유연성이 증가한다.2. 주요 빈 스코프 종류1) 싱글톤(Singleton) 스코프 (기본값)스프링 컨테이너가 시작될 때 생성되고, 컨테이너 종료 시까지 유지모든 요청에서 동일한 인스턴스 공유대부분의 스프링 빈이 기본적으로 싱글톤으로 동작@Componentpublic class SingletonBean { public SingletonBean() { System.out.println("싱글톤 빈 생성됨"); }}2) 프..
2025.02.21 -
[Spring] 빈 생명주기 콜백
스프링 빈 생명주기 콜백김영한님의 "스프링 핵심 원리 - 기본편"을 수강하고 정리했습니다. 1. 빈 생명주기란?스프링에서 관리하는 객체(빈)는 생성부터 소멸까지의 생명주기를 가진다. 특정 작업을 실행하기 위해 빈의 초기화 및 종료 시점에 특정 로직을 수행할 수 있도록 생명주기 콜백 기능을 제공한다.2. 빈 생명주기 콜백 방식1) @PostConstruct와 @PreDestroy 애노테이션 활용 (권장)스프링이 제공하는 애노테이션을 활용하여 초기화 및 종료 작업을 수행할 수 있다.import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import org.springframework.stereotype.Component;@Compo..
2025.02.19 -
[Spring] 의존관계 자동 주입
스프링 의존관계 자동 주입김영한님의 "스프링 핵심 원리 - 기본편"을 수강하고 정리했습니다. 1. 의존관계 자동 주입이란?스프링에서는 객체 간의 의존성을 자동으로 주입해 주는 기능을 제공한다. 이를 통해 개발자가 직접 객체를 생성하고 주입하는 번거로움을 줄일 수 있으며, 코드의 결합도를 낮춰 유지보수성을 향상시킬 수 있다.2. 의존관계 주입 방법1) 생성자 주입 (Constructor Injection)가장 권장되는 방식으로, 불변성을 보장하며, 테스트가 용이하다.@Componentpublic class OrderService { private final MemberRepository memberRepository; @Autowired public OrderService(Membe..
2025.02.18