1. Spring은 HTTP 요청 파라미터를 가져올 때 아래 3가지 방법을 지원한다.
+ HttpServletRequest 의 getParameter() 메소드를 이용
+ @RequestParam 어노테이션을 이용
+ Command 객체를 이용.
2. 파라미터의 이름과 동일한 객체를 가진 클래스를 작성한다.
메소드에서 그대로 사용하여 HTTP Form 데이터가 자동으로 객체에 저장된다.
이렇게 저장된 객체를 커맨드 객체라고 부른다.
3. 경로가 /로 시작되지 않으면 @RequestMapping 경로 기준 상대경로로 매핑된다.
4. 파라미터 값을 검사하는 방법
* 웹 브라우저 : 자바스크립트를 이용해서 데이터를 웹 서버에 전송하기 전에 미리 검사함
* 웹 서버 : 전달받은 요청 파라미터의 값을 검사함.
파라미터 값이 올바르지 않을 경우 에러 코드를 응답하거나 재입력을 위한 폼 화면을 웹 브라우저에 전송함.
5. 커맨드 값 검증
Error는 반드시 @Valid 다음 순서로 와야함
(ex) public ModelAndView test(@Valid MemberVO memberVO, Errors errors)
6. @NotEmpty(message="빈칸을 입력하세요!")
Annotation 으로 값을 검증하기 위해 validator bean을 추가 해줘야됨
( validation 과 hibernate Validator 를 추가) LocalValidatorFactoryBean
<input ~~~/>
<form:errors path="email"/>
7. @Controller의 주요 리턴 타입
* String
* void
* ModelAndView
* 객체
8. 정적자원 설정
Static File ( CSS, JS, IMG ) 등의 자원은 파일이 존재하는 URL 그 자체로 사용된다.
따로 URL을 주기 위해 mvc:resources가 기능을 제공해준다. DispatcherServlet에 등록해준다.
<mvc:resources location="/WEB-INF/resources/" mapping="/resources/**" />
9. 인터셉터는 총 3부분에 대해서 기능한다.
1) 컨트롤러(핸들러) 실행 전 - preHandle
2) 컨트롤러(핸들러) 실행 후, 아직 뷰를 실행 하기 전 - postHandle
3) 뷰를 실행한 이후 - afterCompletion
10. 최근 가장많이 이용하는 Logging Tool : SLF4J, Logback
11. Bean Config 설정 분리
applicationContext 파일이 비대해지는 것을 막기 위해서
12. 파일 업로드 사용
form 엘리먼트에 enctype 속성을 정의한다.
<form method="post" enctype="multi/form-data">
MultipartResolver를 스프링 설정으로 등록
Spring MVC에서 사용할 수 있도록 변환해준다.
<property name="maxUploadSize" value="104857600"/> <!-- 100MB-->
13. ORM이란?
Object Relational Mapping Framework, 객체 관계 맵핑 프레임 워크
* 간편한 트랜잭션과 일관된 설정으로 데이터베이스의 접근이 용이하다.
* 커넥션들의 자동 지원으로 복잡한 설정이 따로 필요하지 않다.
14. sqlSessionFactory Bean을 이용해 MyBatis-DB 연결
15. MyBatis SqlSessionDaoSupport 설정
<property name="sqlSessionTemplate" ref="sqlSessionTemplate"/>
name -> setter 이름
ref -> 파라미터
16. 웹 어플리케이션 구조
* 모델 : 데이터베이스 테이블과 관련된 클래스가 위치한다. CRUD의 기본 단위로 사용되며, 서비스-DAO 간 데이터를 주고 받기 위한 객체로도 사용한다.
* DAO - Data Access Object의 약자로, 데이터베이스 테이블에 대한 crud 기능을 정의한다. 데이터 입력이나, 수정, 조회 시 데이터 타입으로 모델을 사용한다.
* 서비스 - 컨트롤러를 통해서 전달받은 사용자의 요청을 구현한다. DB연산이 필요한 경우 DAO를 이용한다.
* 컨트롤러 - 사용자의 웹 요청을 받아 서비스나 DAO에 전달하고, 결과를 뷰에 전달한다.
17. Logback Log Level 5단계
TRACE 5
DEBUG 4
INFO 3
WARN 2
ERROR 1
18. DAO의 정의
CRUD에 해당하는 insert, update, select, delete 메서드를 정의한다.
19. Service의 정의
하나의 업무를 처리 하기 위한 로직의 집합.
여러 개의 DAO가 동시에 사용되기 때문에 Transaction의 시작 지점이기도 함.
20. configuration : mapper를 모아둔 파일
21. JSTL : JSP Standard Tag Library : JSP 표준 태그 라이브러리
* JSP에서 자주 사용하는 기능 ( 반복 / 조건/ 데이터 포멧) 을 구현해 놓은 태그 라이브러리
* JSP의 EL과 함께 사용함.
* 궁극적인 목표는 JSP의 Scriptlet을 제거하기 위한 솔루션.
22. AOP : Aspect Oriented Programming
관점 지향 프로그래밍.
공통적으로 적용되는 기능들을 특정 Method 혹은 Class가 실행되기 전/후 등의 단계에서 자동으로 실행될 수 있게
지원하는 프로그래밍 방법
Logging, Transaction, Parameter Check 등 여러 기능들을 대상으로 한다.
공통적으로 실행 되야 할 것이 있다면 한번에 묶어서( 위빙 )을 통해 실행을 시켜주는것.
키워드 : 포인트 컷, 어드바이저, 위빙
23. java 변수 variable 타입
*기본형 ( primitive type )
문자 char
숫자 정수 byte, short, int, long
실수 float, double
논리 boolean
*참조형 string..
24. 프로시져
function같은 것. 반복문처럼 돌아가는 구문
25. 트랜잭션 어떻게 처리하나?
AOP를 이용해서
26. 게시판 어떻게 만드나?
27. 고객이 무리한 요구를 할때?
28. MVC Project란?
Model 은 사용자에게 보내는 데이터
View는 사용자에게 보여주는 view
Controller는 해당하는 url에 보내주는 url mapper
왜쓰는가? 유지보수를 쉽게하기 위해서
29. 모델2 : 보여주는 방식과 처리방식 분리 : 서블릿방식
모델3 : 세부분다 분리시킨 방식 mvc
30. 프레임웍을 쓰는 이유?
이미 바퀴가 만들어져 있는데 굳이 다시 만들필요 있나?
개발을 빠르게 하기 위해서
'Back-end > Spring' 카테고리의 다른 글
Eclipse에서 Spring 설치 (Spring Legacy) (0) | 2019.02.20 |
---|---|
[Spring] 웹소켓 js파일 (0) | 2017.06.05 |
[JPA] 사용해보기 (2) | 2016.05.04 |
[JPA] JPA에 관해.. (0) | 2016.05.04 |
[HTML] 자동완성 기능 만들기 (0) | 2016.05.03 |