일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react
- linux 배포판
- docker
- helm-chart
- 주니어개발자
- Recoil
- useLayoutEffect
- 타입 단언
- TypeScript
- task queue
- 암묵적 타입 변환
- 클라이언트 상태 관리 라이브러리
- AJIT
- Custom Hook
- 명시적 타입 변환
- prettier-plugin-tailwindcss
- JavaScript
- Microtask Queue
- type assertion
- Redux Toolkit
- useCallback
- CS
- Headless 컴포넌트
- Sparkplug
- Compound Component
- Render Queue
- zustand
- jotai
- 프로세스
- 좋은 PR
- Today
- Total
목록SPRING FRAMEWORK (22)
구리
목차 1. 메시지 파일 작성 2. MessageSource 등록 3. LocaleResolver 등록 4. Locale 변경 5. JSP 파일 설정 1. 메시지 파일 작성 원하는 언어로 메시지 출력시 각 언어에 따른 메시지 파일을 작성해야 하며 확장자는 'properties'로 파일명은 언어에 해당하는 Locale 정보를 결합합니다. (1) src/main/resources에 new File 생성하여 messageSource_en.properites, messageSource_ko.properites로 2개의 파일을 생성합니다. (2) 영어 메시지 파일 작성 #login.jsp message.user.login.title=LOGIN message.user.login.id=ID message.user.lo..
목차 파일 업로드 처리 (1) 파일 업로드 입력 화면 글 등록 Log-out 제목 작성자 내용 업로드 글목록 파일 업로드를 위해 form 태그에 entype 속성 추가 후 멀티파트 형식인 "multipart/form-data"로 지정하며 input type="file" 태그를 추가합니다. (2) Command 객체 수정 업로드할 파일 정보 추가로 인해 BoardVO에 파일 관련 변수를 추가합니다. package com.springbook.biz.board; import java.sql.Date; import org.springframework.web.multipart.MultipartFile; // VO public class BoardVO { private int seq; private String t..
목차 더보기 비즈니스 컴포넌트 사용 1. DAO 클래스 교체 2. AOP 설정 비즈니스 컴포넌트 로딩 1. 2-Layered 아키텍처 2. ContextLoaderListener 등록 3. 스프링 컨테이너의 관계 검색 기능 구현 1-1. 검색 정보 추출 1-2. Command 객체 수정 2. Controller 구현 3. DAO 클래스 수정 - BoardDAOSpring 클래스 수정 사실 Controller는 비즈니스 컴포넌트를 이용해 사용자의 요청을 처리해야 하며, 이때 컴포넌트가 제공하는 Service 인터페이스를 사용해야 합니다. 지금껏 사용했던 방법처럼 Controller가 직접 DAO 객체의 메소드 호출시 여러 문제를 야기하기 때문입니다. 문제 1. 유지보수 과정에서 DAO 클래스를 다른 클래스..
목차 더보기 1. 어노테이션 설정 2. Controller 클래스에 @Controller 어노테이션 설정 3. @RequestMapping 사용 4. 클라이언트 요청 처리 - Command 객체 이용 글 등록 기능 구현 글 목록 검색 구현 글 상세 보기 구현 글 삭제 구현 글 수정 구현 로그인 기능 구현 로그아웃 기능 구현 컨트롤러 통합하여 하나의 클래스로 생성 요청 방식에 따른 처리 - @RequestMapping의 method JSP에서 Command 객체 사용 @ModelAttribute - Command 객체 이름 변경 Servlet API 사용 일관성 있는 Controller 리턴 타입 기타 어노테이션 사용 - @RequestParam 사용 - @ModelAttribute : View에서 사용할..
목차 Spring MVC 구조 DispatcherServlet 등록 및 스프링 컨테이너 구동 스프링 설정 파일 변경 방법 인코딩 설정 Controller 설정 HandlerMapping 등록 ViewResolver 활용 프로젝트 구조도 (BoardWeb_SpringMVC) 프로젝트 수정 사항 - 에서 값은 프로젝트명으로 변경 후 톰캣 서버 모듈에서 해당 프로젝트 Path가 /프로젝트명 으로 되어 있는지 확인 후 변경 Spring MVC 구조 ① 클라이언트로부터 모든 요청을 DispatcherServlet이 받습니다 ② DispatcherServlet은 HandlerMapping을 통해 요청 처리할 Controller를 검색합니다 ③ DispatcherServlet은 검색된 Controller를 실행하여 ..
트랜잭션 트랜잭션은 어떤 일련의 작업을 의미 합니다. 어떤 일련의 작업들은 모두 에러 없이 끝나야 하며, 만약 중간에 에러가 발생 한다면, 에러 발생 이전 시점까지 작업되었던 내용은 모두 원상복구 되어야 합니다. 이렇게 데이터에 대한 무결성을 유지하기 위한 처리 방법을 '트랜잭션 처리' 라고 합니다. 스프링 트랜잭션 처리 과정 (AOP로 처리) 1. 스프링 설정 XML 파일에서 tx 네임스페이스 추가 - 반드시 XML 기반으로 설정 (어노테이션 설정 불가능) - 이용하여 설정 ( 사용 불가) 2. 트랜잭션 관리자 등록 어떤 기술을 이용하느냐에 따라 트랜잭션 관리자도 달라지는데 지금은 DataSource를 이용하기에 DataSourceTransactionManager 클래스 이용할 예정 등록 방법 DB 접..
목차 AOP 설정 1. 어노테이션 사용을 위한 스프링 설정 스프링 설정 파일에 엘리먼트 선언 해당 엘리먼트를 선언함으로써 스프링 컨테이너는 AOP 관련 어노테이션들을 인식하고 용도에 맞게 처리해줍니다. 2. 포인트컷 설정 package com.springbook.biz.common; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Service; @Service public class LogAdvice { @Pointcut("execution(* com.springbook.biz..*Impl.*(..))") public void allPointcut(){} @Pointcut("execution(* com...
목차 Before 어드바이스 비즈니스 메소드 실행 전 동작 예시 어드바이스 클래스 package com.springbook.biz.common; public class BeforeAdvice { public void beforeLog() { System.out.println("[사전 처리] 비즈니스 로직 수행 전 동작"); } } applincationContext.xml allPointcut으로 지정한 모든 Impl 클래스의 메소드가 실행되기 전 before로 지정한 어드바이스의 beforeLog() 메소드가 실행된 것을 볼 수 있습니다. After Returning 비즈니스 메소드가 성공적으로 리턴되면 동작 (void 메소드에선 적용되지 않음) 예시 어드바이스 클래스 package com.spring..