본문 바로가기

Spring30

[Spring] 서블릿, JSP, MVC패턴 회원관리 웹 애플리케이션 요구사항회원관리 웹을 만들고자 한다 package hello.servlet.domain.member; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age) { this.username = username; this.age = age;} }회원 정보는 다음과 같다 package hello.servlet... 2025. 4. 7.
[Spring] 서블릿 Hello 서블릿서블릿은 원래 톰캣같은 웹 애플리케이션 서버를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린다음 톰캣서버를 실행해야하는데, 스프링부트는 톰캣서버를 내장하고있어서 편리하게 서블릿 코드를 실행할 수 있다. 스프링부트에서 서블릿을 직접 등록해서 사용하려면package hello.servlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @ServletComponentScan //서블릿 .. 2025. 4. 4.
[Spring] 웹 애플리케이션의 이해 웹 서버, 웹 애플리케이션 서버웹은 HTTP 기반으로 통신한다.웹 서버HTTP 기반으로 동작한다.정적인 리소스를 제공한다정적이란? HTML, CSS, JS, 이미지, 영상 등 웹 애플리케이션 서버(WAS - Web Application Server)HTTP 기반으로 동작웹 서버 기능 + 정적 리소스 제공프로그램 코드를 실행해서 애플리케이션 로직을 실행동적이란? 동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링 MVC 웹 서버는 정적리소스, WAS는 애플리케이션 로직WAS는 애플리케이션 코드를 실행하는데 더 특화되어있다. WAS는 동적, 정적 리소스를 모두 제공 가능하니까 이런식으로 구성할 수 있다.하지만 WAS에 장애가 발생한다면? 사용자는 에러화면조차 보지 못한다.따라서 정적 리소스.. 2025. 3. 30.
[Spring] 빈 스코프 빈 스코프란이제까지 배운 내용으로는 빈이 생성되고, 스프링 컨테이너에 저장되고, 스프링 컨테이너가 종료될 때까지 유지된다.이건 빈이 기본적으로 싱글톤 스코프로 생성되기 떄문이다.스코프는 빈이 존재할 수 있는 범위를 뜻한다. 빈 스코프를 지정하는 방법은 다음과 같다.@Scope("prototype") @Componentpublic class HelloBean {} @Scope("prototype") @Bean PrototypeBean HelloBean() { return new HelloBean(); } 프로토타입 스코프싱글톤 스코프 빈을 조회하면 항상 같은 빈을 반환한다 반면 프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 반환한다. 위와같이 프로토타입 스코.. 2025. 3. 11.
[Spring] 빈 생명주기 콜백 빈 생명주기 콜백 시작데이터베이스 커넥션 풀(관계형 데이터베이스 할 때 미리 서버랑 db를 연결한다.) 또는 애플리케이션 시작 시점에 연결을 미리 해두고 종료시점에 모두 종료하는 경우 이를 위한 초기화작업과 종료 작업을 어떻게 할지 알아보자! 여기서 초기화작업이란?단순히 객체를 생성하는게 아니라, 그 객체가 동작까지 하는 것을 말한다. public class NetworkClient { private String url;public NetworkClient() {System.out.println("생성자 호출, url = " + url); connect();call("초기화 연결 메시지");} public void setUrl(String url) { this.url = ur.. 2025. 2. 27.
[Spring] 의존관계 자동 주입 다양한 의존관계 주입 방법생성자 주입생성자를 통해서 의존관계를 주입받는다. 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다.불변, 필수 의존관계에 사용된다. (private final)@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy;@Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRep.. 2025. 2. 27.