본문 바로가기
반응형

springboot34

[Spring Boot] : Spring MVC 실용적인 방식 활용 이번에는 전 방식에서 Model을 도입하고 ViewName을 직접 변환하고 @RequestParam을 사용한다. @Controller @RequestMapping("/springmvc/v3/members") public class SpringMemberControllerV3 { 이번에도 마찬가지로 클래스 단위에서 @RequestMapping을 통해 Bean을 경로 이름으로 등록해주었다. @RequestMapping("/new-form") public ModelAndView newForm() { return new ModelAndView("new-form"); } 위 코드를 @RequestMapping(value = "/new-form", method = RequestMethod.GET) public St.. 2022. 1. 24.
[Spring Boot] : Spring MVC 시작 스프링이 제공하는 컨트롤러는 어노테이션 기반으로 동작해 매우 유연하고 실용적이다. 원래 예전에 여러 프레임워크들이 있었는데 @RequestMapping 기반의 어노테이션 컨트롤러가 등장하면서 MVC 부분에서 스프링이 흥하게 되었다고 한다. 실무에서 주로 사용하는 핸들러 매핑과 어댑터는 RequestMappingHandlerMapping과 RequestMappingHandlerAdapter이라고 한다. 이번에는 기존에 사용한 컨트롤러를 @RequestMapping 기반의 스프링 MVC 컨트롤러로 바꿔보는 진도를 나간다. @Controller public class SpringMemberFormControllerV1 { @RequestMapping("/springmvc/v1/members/new-form").. 2022. 1. 24.
[Spring Boot] : Spring MVC 구조 확인하기 직접 만들어 보았던 MVC 프레임워크와 스프링 MVC를 비교했다. 사실 전에 만들었던 MVC프레임워크크 스프링 MVC 구조와 똑같다고 한다. 클라이언트 → 프론트 컨트롤러 → 핸들러 매핑 정보 → 핸들러 어댑터 목록 → 핸들러 어댑터 → 핸들러 → 핸들러 어댑터에서 다시 프론트 컨트롤러 → 뷰 리졸버 호출 → View 반환 → render(model) 호출 → HTML 응답 이런 식이다. 다른점은 FrontController가 스프링 MVC에서는 DispatcherServlet이라는 것과 기존에 스프링 MVC에 이미 있어서 이름을 살짝 바꿔준 항목들 뿐이다. DispatcherServlet이 스프링 MVC의 핵심이다. 디스패처 서블릿은 부모 클래스에서 HttpServlet을 상속 받아 사용하고, 서블릿으.. 2022. 1. 24.
[Spring Boot] : HttpServletResponse 기본 사용법과 응답 코드 HttpServletResponse 기본 사용법과 응답 코드 HttpServletResponse는 인터페이스이며 ServletRequest를 상속받는다. public interface HttpServletRequest extends ServletRequest { } 실제로 확인해 보면 이렇게 인터페이스로 구현되어 있는 것을 확인할 수 있다. 추가로 공식 문서를 참고하면 이렇다. Extends the ServletResponse interface to provide HTTP-specific functionality in sending a response. For example, it has methods to access HTTP headers and cookies. The servlet container.. 2022. 1. 20.
[Spring Boot] : HTTP의 Form을 통해 클라이언트에서 서버로 데이터 전송하기 HTTP의 Form을 통해 클라이언트에서 서버로 데이터를 전송한다. 주로 회원 가입이나 상품 주문 등에서 자주 사용한다고 한다. username: age: 전송 HTML의 Form 태그의 action 속성을 통해 값을 받을 경로를 설정하고 button 태그의 submit을 주어 action의 경로로 데이터를 전달하게 된다. 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부한 내용입니다. 2022. 1. 19.
[Spring Boot] : Web Server와 Web Application Server 웹 서버 HTTP 기반으로 동작한다. 정적 리소스와 부가 기능들을 제공한다. 웹 애플리케이션 서버 (WAS) HTTP 기반으로 동작한다. 웹 서버 기능을 포함한다. 정적 리소스 제공 및 부가 기능 등 프로그램 코드를 통해 애플리케이션 로직 실행이 가능하다. 동적 HTML, HTTP API(JSON), ( REST API ) 서블릿, JSP, 스프링 MVC Tomcat, Jetty 등 웹 서버와 WAS 차이 웹 서버는 정적 리소스 제공, WAS는 애플리케이션 로직을 실행할 수 있다. 차이가 애매하다. 웹 서버도 프로그램을 실행하는 기능을 포함하기도 한다. 웹 애플리케이션 서버도 웹 서버의 기능을 제공한다. 자바는 서블릿 컨테이너 기능르 제공하면 WAS 서블릿 없이 자바코드를 실행하는 서버 프레임워크도 있다.. 2022. 1. 18.
[TIL] : 74 일일 배움을 위한 Today I Learned ! Spring Boot 싱글톤 사용 시 주의 사항과 @Configuration이 싱글톤관 어떤 관계를 갖고 있는지 공부했다. 김영한님의 강의를 들으면서 상당히 요즘 만족하고 있다. 개강전에 로드맵을 끝낸다는 생각으로 공부하고 있다. 2022.01.08 - [Framework/Spring Boot] - [Spring Boot] : 싱글톤 사용시 주의해야 하는 것 2022.01.08 - [Framework/Spring Boot] - [Spring Boot] : @Configuration과 싱글톤의 관계 2022. 1. 8.
[Spring Boot] : @Configuration과 싱글톤의 관계 @Configuration과 싱글톤의 관계 @Configuration과 싱글톤 @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl( memberRepository(), discountPolicy()); MemberService 와 OrderService 를 보면 new memberRepository() 를 호출한다. → 싱글톤이 지켜지지 않는다고 생각할 수 있다. @Test void con.. 2022. 1. 8.
[Spring Boot] : 컨테이너에 등록된 빈 조회하기 컨테이너에 등록된 빈 조회하기 컨테이너에 등록된 모든 빈 조회하기 @Test @DisplayName("모든 빈 출력하기") void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(beanDefinitionName); System.out.println("name = " + beanDefinitionName + "Object = " + bean); } } 스프링 내부에서 사용하는 빈과 내가 직접 등록한 빈 모두 포함이 된다. 구분하기 위해서는 Role()를 사용한다. @Test.. 2022. 1. 5.
[TIL] : 70 일일 배움을 위한 Today I Learned ! Spring Boot 스프링 부트를 공부했다. DIP 코드를 리팩터링하기도 했고 제어의 역전에 대해 공부하기도 했다. 라이브러리와 AppConfig에 대해 적었고 스프링에서 사용하는 어노테이션 두 가지에 대해서 정리했다. 2022.01.04 - [Framework/Spring Boot] - [Spring Boot] : DIP 코드를 리팩터링하여 OCP도 만족하게 하기 2022.01.04 - [Framework/Spring Boot] - [Spring Boot] : 제어의 역전 2022.01.04 - [Framework/Spring Boot] - [Spring Boot] : 라이브러리, DI컨테이너, 스프링 2022. 1. 4.
[TIL] : 69 일일 배움을 위한 Today I Learned ! Spring Boot DIP 관련 코드를 작성했고 그 중 공부하기 적당한 코드를 따로 빼서 공부했다. 객체 지향 설계 원칙과 테스트 코드, 클린 코드를 적용하면서 프로젝트를 진행하면 진짜 너무 재밌을 것 같다. 2022.01.03 - [Framework/Spring Boot] - [Spring Boot] : DIP 의존 관계 역전 원칙 적용 예시 동아리 및 스터디 이번주부터 시작 될 스터디를 대비해 첫 장을 작성했다. 간단한 스터디 소개와 시작 전 알림을 적어놨다. 2022.01.03 - [발전소/동아리 및 스터디] - [동아리 및 스터디] : [코딩&리뷰] : 소개 2022. 1. 3.
[TIL] : 54 일일 배움을 위한 Today I Learned ! 회고 오늘 처음으로 회고를 썼다. 회고를 쓰면서 느낀 점도 많았고 되돌아 보면서 초심을 다시 느끼는 시간이 됐다. 나의 회고를 통해 스스로를 공부하는 시간도 됐지만 누군가 내 회고를 보고 도움이 됐으면 좋겠다. 나도 개발을 시작할 때 누군가의 시작 기록을 보고 싶어 많이 찾아보고 다녔지만 이런 회고가 별로 없어서 아쉬웠다. 그래서 작성한다. 2021.12.19 - [회고] - [회고] : 개발을 시작하면서 2021년 마무리까지 회고 질문 노트 오늘도 간단한 질문 노트를 작성한다. 이런 짤막한 지식을 찾아보는 것을 습관화 해야 한다고 생각한다. 앞으로도 궁금한 내용은 짧게 짧게 찾아보면서 공부할 것이다. 2021.12.19 - [컴퓨터 공부/질문 노트] -.. 2021. 12. 19.
[Spring Boot] : 프로젝트 설정 프로젝트 설정 https://start.spring.io/ 위 링크에서 스프링 부트 파일을 받기 위해 간단한 설정을 합니다. 최소한의 스프링의 핵심만을 배우기 때문에 추가사항 없이 이렇게만 설정하고 파일을 받아줍니다. 학교에서 배울 때에는 메이븐으로 했는데 요즘은 메이븐의 단점을 보완해 나온 그래들을 사용한다해서 그래들을 사용하는 쪽으로 진행해 봅니다. 파일을 받고 압축을 풀어준뒤 인텔리제이에서 프로젝트 오픈으로 열어줍니다. plugins { // 부트 버전이 표시되어 있습니다. id 'org.springframework.boot' version '2.6.1' // 의존관계 관련된 부분도 설정이 되어 있습니다. id 'io.spring.dependency-management' version '1.0.11.. 2021. 12. 15.
반응형