일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- XACT_STATE
- getChannel()
- dm_exec_requests
- 앵커멤버
- renameTo
- SQLSTATE=42705
- 디스패처서블릿
- SQL
- XWPF
- 재귀멤버
- TRANCOUNT
- 프론트컨트롤러
- 진경혜
- HWPF
- 요청매핑
- 함수
- spring
- 자바
- 배치
- 요약
- 홈스쿨링
- transferTo
- ERROR_MESSAGE
- java
- 튜닝
- 아이
- git
- MSSQL
- 교육법
- 스프링
- Today
- Total
목록김영한 강의 요약 (25)
필기노트
목차 1. 공통 관심 사항 2. 필터 3. 스프링 인터셉터 4. ArgumentResolver 활용 1. 공통 관심 사항 로그인 되지 않은 사용자는 상품 관리 뿐만 아니라 미래에 개발될 페이지에도 접근하지 못하도록 하자. 이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 있는 것을 공통 관심사(cross-cutting concern)라고 한다. 이러한 공통 관심사는 스프링의 AOP로도 해결할 수 있지만, 웹과 관련된 공통 관심사는 지금부터 설명할 서블릿 필터 또는 스프링 인터셉터를 사용하는 것이 좋다. 웹과 관련된 공통 관심사를 처리할 때는 HTTP의 헤더나 URL의 정보들이 필요한데, 서블릿 필터나 스프링 인터셉터는 HttpServletRequest 를 제공한다. 2. 필터 1) 필터 흐름 로그인..
1. 직접 개발한 세션의 내부구조 @Component public class SessionManager { public static final String SESSION_COOKIE_NAME = "mySessionId"; private Map sessionStore = new ConcurrentHashMap(); /** * 세션 생성 */ public void createSession(Object value, HttpServletResponse response) { //세션 id를 생성하고, 값을 세션에 저장 String sessionId = UUID.randomUUID().toString(); sessionStore.put(sessionId, value); //쿠키 생성 Cookie mySessionC..
목차 1. 검증 요구사항 2. Bean Validation 3. @Validated 4. Form 전송 객체 분리 5. Bean Validation - 에러 메시지 6. Bean Validation - 오브젝트 오류 7. BindingResult 8. 오류 코드와 메시지 처리 1. 검증 요구사항 클라이언트 검증은 조작할 수 있으므로 보안에 취약하다. 서버만으로 검증하면, 즉각적인 고객 사용성이 부족해진다. 둘을 적절히 섞어서 사용하되, 최종적으로 서버 검증은 필수이다. API 방식을 사용하면 API 스펙을 잘 정의해서 검증 오류를 API 응답 결과에 잘 남겨주어야 한다. 고객이 상품 등록 폼에서 상품명을 입력하지 않거나, 가격, 수량 등이 너무 작거나 커서 검증 범위를 넘어서면, 서버 검증 로직이 실패해..
1. 메시지 악덕? 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까? 여러 화면들을 다 찾아가면서 모두 변경해야 한다. 화면이 수십개 이상이라면 수십개의 파일을 모두 고쳐야 한다. 왜냐하면 해당 HTML 파일에 메시지가 하드코딩 되어 있기 때문이다. 이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다. 스프링 부트를 사용하면 스프링 부트가 MessageSource 를 자동으로 스프링 빈으로 등록하고, 메시지 소스는 messages 라는 이름으로 기본 등록된다. 따라서 messages_en.properties , messages_ko.properties , messages.properties 파일만 등록하면..
목차 1. 설정방법 2. 입력 폼 처리 3. 체크박스 - 단일 4. 체크박스 - 멀티 5. 라디오버튼 6. 셀렉트박스 1. 설정방법 스프링 부트는 build.gradle 에 다음 한줄을 넣어주면 Gradle은 타임리프와 관련된 라이브러리를 다운로드 받고, 스프링 부트는 타임리프와 관련된 설정용 스프링 빈을 자동으로 등록해준다. build.gradle implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 2. 입력 폼 처리 @GetMapping("/{itemId}/edit") public String editForm(@PathVariable Long itemId, Model model) { Item item = itemReposit..
목차 1. 기본 표현식 2. 변수 - SpringEL 3. 타임리프 유틸리티 객체들 4. 리터럴 5. 속성 값 설정 6. 반복 7. 조건부 평가 8. 블록 9. 템플릿 조각 10. 템플릿 레이아웃 1. 기본 표현식 • 간단한 표현: ◦ 변수 표현식: ${...} ◦ 선택 변수 표현식: *{...} ◦ 메시지 표현식: #{...} ◦ 링크 URL 표현식: @{...} ◦ 조각 표현식: ~{...} • 리터럴 ◦ 텍스트: 'one text', 'Another one!',... ◦ 숫자: 0, 34, 3.0, 12.3,... ◦ 불린: true, false ◦ 널: null ◦ 리터럴 토큰: one, sometext, main,... • 문자 연산: ◦ 문자합치기:+ ◦ 리터럴 대체: |The name is ..
상품 목록 @Controller @RequestMapping("/basic/items") @RequiredArgsConstructor public class BasicItemController { private final ItemRepository itemRepository; @GetMapping public String items(Model model) { List items = itemRepository.findAll(); model.addAttribute("items", items); return "basic/items"; } /** * 테스트용 데이터 추가 */ @PostConstruct public void init() { itemRepository.save(new Item("testA", 10..
목차 1. 요청 매핑 2. 요청 매핑 - API 예시 3. HTTP 요청 파라미터 4. HTTP 요청 파라미터 - Map으로 조회 5. HTTP 요청 파라미터 - @ModelAttribute 6. HTTP 요청 메시지 - 단순 텍스트 7. HTTP 요청 메시지 - JSON 8. HTTP 응답 - 정적 리소스, 뷰 템플릿 9. HTTP 응답 - HTTP API, 메시지 바디에 직접 입력 1. 요청 매핑 @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); /** * 기본 요청 * 둘다 허용 /hello-basic, /hello-basic/ * HTTP 메서드 모두 허용 ..
1. 로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용다. SLF4J - http://www.slf4j.org / Logback - http://logback.qos.ch SLF4J는 인터페이스이고, 그 구현체로 스프링 부트가 기본으로 제공하는 Logback을 대부분 사용한다. 2. LogTestController package hello.springmvc.basic; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; impo..
REFERENCE 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 목차 1. FrontController 패턴 특징 2. 컨트롤러 인터페이스 도입 3. 이 인터페이스를 구현한 컨트롤러를 만들어보자. 4. FrontController를 만들어보자. 5. 뷰를 처리하는 객체를 만들자. 6. 어댑터 패턴 7. 어댑터용 인터페이스 8. 실제 어댑터를 구현해보자. 9. 핸들러 어댑터용 FrontController 10. ModelView 11. 요약 1. FrontCon..