스프링

스프링 통합으로 추가되는 기능들 스프링의 SpringEL 문법 통합 ${@myBean.doSomething()} 처럼 스프링 빈 호출 지원 편리한 폼 관리를 위한 추가 속성 th:object (기능 강화, 폼 커맨드 객체 선택) th:field , th:errors , th:errorclass 폼 컴포넌트 기능 checkbox, radio button, List 등을 편리하게 사용할 수 있는 기능 지원 스프링의 메시지, 국제화 기능의 편리한 통합 스프링의 검증, 오류 처리 통합 스프링의 변환 서비스 통합(ConversionService)
스프링 MVC - 웹 페이지 만들기 1. 요구사항 분석 상품 도메인 모델 상품 ID 상품명 가격 수량 상품 관리 기능 상품 목록 상품 상세 상품 등록 상품 수정 프론트엔드 개발자가 만든 html 폼 상품목록(등록, 상세 버튼) 상품등록 폼(저장, 취소 버튼) 상품 상세(수정, 목록 버튼) 상품 수정 폼(저장, 취소 버튼) 1) 클라이언트가 상품 목록 요청 2) `상품목록 controller`에서 `상품목록 폼` 랜더링 2-1) 상품등록 버튼 클릭 -> `상품등록 controller`에서 `상품등록 폼` 랜더링 3-1) 상품저장 버튼 클릭 -> `상품저장 controller`에서 `상품상세 폼` 랜더링 3-2) 취소 버튼 클릭 -> `상품등록 폼`에서 `상품목록 링크`로 이동 2-2) 상품상세 버튼 클릭 ..
스프링 MVC - 기본 기능 1. 프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.4.x Project Metadata Group: hello Artifact: springmvc Name: springmvc Package name: hello.springmvc Packaging: Jar (주의!) Java: 11 Dependencies: Spring Web, Thymeleaf, Lombok war를 사용하면 /webapp/ 경로에 index.html 을 두면 http://localhost:8080 호출시 index.html 페이..
서블릿, JSP, MVC 패턴 1. 회원 관리 웹 애플리케이션 요구사항 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 회원 도메인 모델 id 는 Member 를 회원 저장소에 저장하면 회원 저장소가 할당한다 회원 저장소 회원 저장소는 싱글톤 패턴을 적용했다. 스프링을 사용하면 스프링 빈으로 등록하면 되지만, 지금은 최대한 스프링 없이 순수 서블릿 만으로 구현하는 것이 목적이다. 싱글톤 패턴은 객체를 단 하나만 생생해서 공유해야 하므로 생성자를 private 접근자로 막아둔다 회원 저장소 테스트 코드 회원을 저장하고, 목록을 조회하는 테스트를 작성했다. 각 테스트가 끝날 때, 다음 테스트에 영향을 주지 않도록 각 테스트의 저장소를 clearStore() 를 호출해..
서블릿 Hello 서블릿 @ServletComponentScan : 해당 패키지와 하위 패키지의 servlet을 모두 찾아서 등록해준다. @WebServlet : 서블릿 애노테이션 name : 서블릿 이름 urlPatterns : URL 매핑 HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다. protected void service(HttpServletRequest req, HttpServletResponse resp) 개발시 편리하게 HTTP 요청 메시지를 다 보고싶다면? application properties에 다음 문장을 추가하자. logging.level.org.apache.coyote.http11=debug 참고 운영서버에 모든 요청정보를 다 남기면 성능..
객체지향 프로그래밍이란 일반적으로 나열하는 형식의 프로그래밍에서 벗어나 객체를 중심으로 프로그래밍하는 것을 의미한다. 좋은객체지향 프로그래밍이란 역할과 구현을 잘 구분한 프로그래밍이다. 즉, 인터페이스와 구현클래스로 나누어 프로그래밍 하는 것을 의미한다. 인터페이스와 구현클래스를 나누면 좋은 이유는 변화에 대비하는 프로그래밍이기 때문이다. 예를들어, 영화관에서 A할인정책을 시행하고 있다고 하자. 이때, B할인정책으로 바꿀려고 한다. 만약, 할인정책을 인터페이스로 두지 않고, A할인정책 클래스, B할인정책 클래스가 구현되어 있다면, 각 할인정책마다 공통적인 코드가 중복되어서 코드가 간결하지 않을 수 있고, 여러 개발자가 함께 개발하는 환경에서, 해당 할인 정책이 어떤 메소드를 가지고 있는지 알기 위해서는 ..
코드 미식가
'스프링' 태그의 글 목록