0. 참고자료https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술| 김영한 - 인프런 강의현재 평점 5.0점 수강생 29,838명인 강의를 만나보세요. 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고,www.inflearn.com 1. Front Controller 도입 배경여러 서블릿이 있고, 각 서블릿마다 공통 로직(인증 체크, 권한 확인, 로깅, 인코딩 설정 등)이 필요한 상황이었습니다. 문제점:서로 다른 서블릿이 호출될 때마다 공통 로직도 중복 실행같은 코드가 모든 서블릿에 반복적으로 작성됨공통..
Spring/Spring Boot
2025.11.24 - [Spring/Spring Boot] - [Spring Boot] Front Controller 패턴이란? [Spring Boot] Front Controller 패턴이란?0. 참고자료https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술| 김영한 - 인프런 강의현재 평점 5.0점 수강생 29,838명인 강의를 만나보세요. 웹 애플리케이aibigdata-study.tistory.com 위 내용이 다음 내용 중에 나오니 참고하길 바란다.참고로 다음 자료는 김영한 - spring MVC1 강의에서 가져온 것이다. 1. Spring Boot 란?Spring Boot = 내장..
0. 참고자료https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술| 김영한 - 인프런 강의현재 평점 5.0점 수강생 29,838명인 강의를 만나보세요. 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고,www.inflearn.com 1. 서블릿 탄생배경 서버에도 http 요청을 받아 반환하는 과정이 매우 복잡실제 서비스 로직을 실행하기 위한 부분은 초록색 상자에 한함 이 복잡한 과정을 제거하고 개발자가 핵심 비즈니스 로직을 실행시켜 주도록 해주는 게 서블릿 2. 서블릿 동작방식 (1). 요청 수신웹..
1. 서론코딩을 조금이라도 해본 사람은 '객체지향' 이라는 단어를 들어보았을 것이다. 특히 Java는 객체지향 언어의 대표주자로 불리고 있는, 객체지향이 무엇이고 객체지향과 Spring의 관계, 그중에서도 객체지향의 핵심인 다형성에 대해 깊이 있게 알아보려고 한다. 대부분 Spring을 사용하는 개발자들은 이에 왜 Spring을 왜 사용해야 하는지 고민해본 적이 많이 없을 것 같은데 이 글을 읽고 한 번쯤 그 이유를 알아가보면 좋을 것 같다. 2. 객체지향이란?객체지향은 말 그대로 '객체'를 중심으로 프로그램을 설계하고 구현하는 방식이다. 여기서 객체란 실제 세계의 물체나 개념을 프로그래밍적으로 표현한 것을 말하는데, 객체지향엔 다양한 특징들이 있다. 객체지향의 특징을 자세히 살펴보면:캡슐화: 데이터와..
통합테스트 최종적인 테스트 DB와 연동하여 테스트 진행 @SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다. @Transactional : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org...
원리 1. 회원가입에 들어가면 >/members/new로 전달이 되고 2. 그럼 creatForm은 아무런 역할도 하지 않고 템플릿에 있는 members/createMemberForm 을 불러옴 (주소는 members/new 이지만 내용은 members/createMemberForm ) 3. Imput 칸 안에 값이 입력되면 name = “name”이 키 값이 됨 4.등록버튼을 누르면 /members/new 에 post 방식으로 넘어감 5.그럼 MemberController 에 @PostMapping(“/members/new”) 로 input 내용이 넘어감 6.그럼 post 밑에 있는 메서드 create 실행 / 이 때 create 메서드에 인자로 받는 MemberForm에 input 값이 name으로 ..
SpringConfiguration @Configuration 애노테이션 추가 MemberService를 스프링 빈으로 등록하기 위해 @Bean 등록 이 때 MemberService 는 memberRepository 를 인자로 받기 때문에 memberRepository도 스프링 빈으로 연결해줘야 함 위와 같이 스프링 빈으로 등록하게 되면 다음과 같은 의존관계 성립 Controller 를 따로 Cofiguration 파일에 스프링 빈으로 등록하지 않는 이유는 스프링 컨테이너에서 직접관리하기 때문에 별도로 작성하지 않아도 된다. 참고사항 Dependency Injection에 3가지 방법이 있는데 1. 생성자를 통해서 들어오는 방법 > 이 방법으로 권장됨 (위와 같은 방법임. 생성자를 통해 MemberSer..
회원가입 등의 기능을 수행하고 그 결과를 html로 뿌려주는 것들을 하려고 함 그러기 위해선 MemberService 를 통해서 회원가입하고, 데이터를 조회할 수 있는 Controller를 만들어야 함 > 이것을 의존관계가 있다고 함 . MemberController가 MemberService를 의존한다고 표현 컨트롤러가 멤버 서비스를 가져다 써야함 이전엔 new 를 사용하여 사용할 수 있지만, 별 기능이 없기 때문에 여러 개 생성할 필요 없이 하나만 만들어서 공용으로 사용함 스프링이 관리하게 되면 스프링 컨테이너에 등록하고 컨테이너에 받아서 사용해야 함 >따라서 스프링 컨테이너에 등록해서 사용하면 되는 것임 1. 스프링 빈 등록하는 2가지 방식 1. 컴포턴트 스캔 2. 자동 의존 관계 설정 우리가 지금..
api 방식은 직접 입력한 데이터를 직접적으로 표현하는 방식 객체가 전달 받았을 때 json 형태로 데이터를 만들어서 http 응답에 반환하는 것이 기본 정책 기존에선 viewResponse 였지만 ResponseBody 의 경우 HttpMessageConverter 가 작동함 문자를 전달 받으면 StringConver 가 동작하여 문자를 전달해줌 객체면 JsonConverter 가 json 방식으로 바꿔줌 문자열을 입력 받는 경우 객체를 입력 받는 경우 정적 컨텐츠 : 파일을 그대로 내려준다 탬플릿 엔진 방식 : 템플릿 엔진을 모델 뷰 방식으로 쪼개서 뷰를 템플릿방식으로 프로그래밍 된 html을 고객에게 전달 api : json 방식으로 객체를 반환하는 것
컨트롤러 템플릿 구조 localhost:8080/hello-mvc 의 입력을 받으면 톰캣 서버를 통해 스프링 컨테이너에 전달 컨트롤러에서 hello-mvc의 해당하는 메서드를 실행함 HelloController를 보면 hello-mvc 는 name 을 파라미터로 받는다 (model 에 키 값과 전달받은 파라미터 값들을 매칭하는 모델 생성) 그리고 return hello-template > /templates/hello-template.html 실행한다. 파라미터 값이 전달되면 th:text 출력 실행 파라미터 값 전달하는 경우 파라미터 값을 전달하지 않는 경우
정적페이지의 경우 톰캣 서버에 localhost:8080/hello-static.htrml 을 넘겨줌 우선적으로 스프링 컨테이너에 전달해줌 > 근데 hello-statifc.html이 없음 스프링 컨테이너에 없으면 resorce에 가서 static/hello-static.html을 실행시킴
static/index.html Controller controller 패키지를 만들고 그 폴더 안에 HelloController 클래스를 만든다 위 메서드를 실행하게 되면 키워드가 :"data" 고 value 가 "hello!!" 인 model 이 생성이 되는 것 여기서 return hello 는 템플릿의 hello.html 의 hello를 가리키는 것임. 즉 매핑이 되는 것임 templates/hello.html 논리적인 작동원리 hello 버튼을 클릭하면 hello 의 액션값이 전달 되고 톰캣 서버를 통해 스프링 컨테이너의 helloController 실행 helloController에서의 @GetMapping("hello") 를 실행시킴 @GetMapping("hello") 를 실행시키면 mode..