Web/Spring
-
SpringMVC (4) - MVC 프레임워크 만들기 [중요]Web/Spring 2023. 10. 2. 14:51
1. 프론트 컨트롤러 패턴 소개 - FrontController 패턴의 특징 > 하나의 서블릿으로 클라이언트 요청 받기 > 요청에 맞는 컨트롤러 찾아서 호출 (pojo) > 입구를 하나로 만드는 것이 핵심 (공통처리,pojo를 활용한 확장성 스프링 MVC의 핵심은 FrontController이다. 2. 프론트 컨트롤러 V1 v1의 구조 - V1의 핵심은 서블릿 1개로 만들고 컨트롤러 분리해서 처리하기이다. - 기존 프론트 컨트롤러에 맵핑과 서블릿과 비슷한 모양의 컨트롤러 인터페이스 도입 -컨트롤러 v1 public interface ControllerV1{ void process(HttpServletRequest request, HttpServletResponse respon..
-
Spring MVC (3) - 서블릿, JSP, MVC 패턴Web/Spring 2023. 10. 2. 13:37
- 서블릿과 jsp만을 사용해서 웹 어플리케이션을 구성해보고, 간단한 MVC 패턴을 활용해보자 1. 회원 관리 웹 어플리케이션 요구사항 //회원 도메인 @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; } } //회원 저장소 public class MemberRepository{ private static Map store = new HashMap(); private static long sequence =..
-
SpringMVC (2) - 서블릿Web/Spring 2023. 10. 2. 11:19
- 서블릿 생성방법, HttpServletRequest와 Response에 대해서 알아보자 - reqeust는 HTTP 요청 메시지 파싱한 결과 담김 -> 편리하게 조회 - response는 HTTP 응답 메시지 쉽게 만들도록 함 -> set이 편리 *request는 요청 보내는 거 아님, 받은 요청을 읽는 것 따라서 content-type이나,인코딩 등등은 클라이언트가 요청 메시지 보내면서 잘 만들어서 보내야함 *서블릿은 톰캣 같은 서블릿을 지원하는 애플리케이션 서버를 직접 설치 -> 그 위에 서블릿 클래스 파일을 빌드해서 오린다음 -> 톰캣 서버를 실행함 (스프링 부트는 내장 톰캣 서버를 사용함) * ex war파일로 프로젝트를 export하고, 외장 톰캣 서버 webapp폴더에 이를 집어넣고,cmd..
-
스프링 MVC (1) 웹 애플리케이션 이해Web/Spring 2023. 9. 4. 23:14
1. 웹 서버, 웹 애플리케이션 서버 1.1 웹 - HTTP 기반 - HTTP 메시지를 통해 많은 것을 전송 (HTML,음성,영상,파일,JSON 등등) - 거의 모든 형태의 데이터를 전송할 수 있음 - 서버 간 데이터를 주고 받을 때에도 HTTP를 사용한다. 1.2 웹 서버 VS 웹 애플리케이션 서버 웹 서버: - HTTP 기반으로 동작, 정적 리소스 제공, 기타 부가기능 - 정적 리소스란 HTML,CSS,JS,이미지 영상 등 - 대표적인 웹 서버는 APACHE이다. 웹 애플리케이션 서버: - HTTP 기반 동작, 웹서버 기능 포함 - 프로그램 코드를 실행해서 애플리케이션 로직 수행 (동적 HTML, HTTP API(JSON), 서블릿,JSP, 스프링 MVC) - 톰캣이 대표적인 웹 애플리케이션 서버 -..
-
스프링 핵심 원리 (5) - 빈 생명주기Web/Spring 2023. 8. 22. 12:30
1. 빈 생명주기 콜백 시작 - DB 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 지점에 필요한 연결을 미리 해두고, 종료 시점에 연결을 모두 종료하는 작업 진행시, 객체 초기화 - 종료 작업이 따로 필요하다. public class NetworkClient{ private String url; public NetworkClient(){ connect(); call("연결 메시지"); } public void serUrl(Strin url){ this.url =url; } public void disconnect(){ //.. } //.. } @Configuration static class CycleConfig{ @Bean public NetworkClient networkClient(){ Ne..
-
스프링 핵심 원리 (4) - 컴포넌트 스캔Web/Spring 2023. 8. 18. 03:56
1. 컴포넌트 스캔과 의존관계 자동 주입 - 스프링 빈을 등록할 때 자바코드나 Xml을 통해 설정 정보를 직접 등록했음 - 설정 정보 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능 있다. - 의존관계 자동 주입하는 @Autowired 기능도 제공한다. @Configuration @ComponentScan public class AutoAppConfig{ } > 컴포넌트 스캔을 사용하려면, 설정 정보에 @ComponentScan을 붙여주면 된다. > @Component 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다. @Configuration도 스캔 대상이다. @Component public class MemoryMemberRepository implements MemberRep..
-
스프링 핵심 원리 (3) - 싱글톤 컨테이너Web/Spring 2023. 8. 17. 15:22
1. 스프링 컨테이너의 이점 (싱글톤) 1.1 앱 어플리케이션과 싱글톤 - 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생 - 스프링 어플리케이션은 대부분 웹 어플리케이션임 - 웹 어플리케이션은 보통 여러 고객이 동시 요청한다. AppConfig appConfig = new AppConfig() MemberService memberService1 = appConfig.memberService(); MemberService memberService2 = appConfig.memberService(); - 설정 클래스인 순수 DI 컨테이너 AppConfig를 사용해서 memberService를 생성해보자 - memberService()메서드는 내부적으로 생성자를 사용하여 구현체를 생성하므로, 요청시..
-
스프링 핵심 원리 (2) - 스프링 컨테이너와 스프링 빈Web/Spring 2023. 8. 17. 12:14
1. 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); - 위와 같이 스프링 컨테이너 생성, ApplicatoinContext는 인터페이스이다. (구현객체 어노테이션~,xml~등) - 스프링 컨테이너는 XML기반 혹은 애노테이션 기반으로 만들 수 있다. 1.1 스프링 컨테이너 생성 과정 - ApplicationContext 구현객체를 생성하면, 스프링 컨테이너에 빈 저장소가 생성되고, 파라미터로 넘어온 구성 정보를 통해 스프링 빈 저장소가 채워진다. - 빈 이름은 메서드명, 빈 객체는 리턴 값으로 채워진다. - 빈 이름은 직접 부여할 수 있다.( @Bean(na..