Spring 2

순수 Java로 WAS 구현해보기 (1) - 스프링과 WAS의 핵심 개념 이해

지난 2월, 웹 애플리케이션 서버(WAS)의 내부 동작 원리를 깊이 있게 이해하고자 순수 Java만을 이용하여 WAS를 직접 구현해 보는 프로젝트를 진행했습니다.요즘은 Spring Boot가 내장 톰캣(Embedded Tomcat)을 제공하기 때문에, 개발자들은 단순히 main 메서드만 실행하면 뚝딱 웹 서버가 뜨는 '마법'에 익숙해져 있습니다. 하지만 이 마법 상자 안에서 HTTP 요청이 어떻게 파싱되고, 어떤 과정을 거쳐 우리가 만든 @Controller에 도달하는지 그 블랙박스를 열어보는 것은 백엔드 개발자로서 한 단계 성장하기 위한 필수 코스라고 생각합니다.본격적인 코드를 짜기 전에, 오늘은 첫 번째 시간으로 우리가 만들 WAS(톰캣)가 도대체 무슨 일을 하는 녀석인지, 그리고 거대한 스프링 프레..

스프링 정리

02.16 1. 스프링은 IoC 컨테이너를 가진다**IoC(Inversion of Control)**는 **'제어의 역전'**이란 뜻이다. 기존 자바 프로그래밍에서는 개발자가 직접 객체를 생성(new)하고, 메소드를 호출하며 프로그램의 흐름을 제어했다. 하지만 스프링에서는 이 제어권이 개발자가 아닌 **프레임워크(스프링 컨테이너)**로 넘어간다.개발자: 객체의 설계도(클래스)만 작성하고, 설정(Configuration)만 해준다.스프링 컨테이너: 알아서 객체(Bean)를 생성하고, 관리하고, 필요할 때 없애는 **생명주기(Lifecycle)**를 전담한다.즉, **"내가 호출하는 게 아니라, 프레임워크가 내 코드를 호출한다"**는 것이다.2. 스프링은 DI를 지원한다**DI(Dependency Injec..