교육과정 기록

Spring 의존성 주입 (DI)
- 스프링 프로젝트에, 의존성을 주입할 클래스 3개 생성 1. Restaurant 클래스 @NoArgsConstructor @Component("restaurant") public class Restaurant { ;; } // class 2. Chef 클래스 @NoArgsConstructor// 모든 생성자는 명시적으로 보이게 하기 @Component("Chef")// stereotype annotations public class Chef { ;; } // class 3. Hotel 클래스 @NoArgsConstructor @Component("Hotel") public class Hotel { ;; } // class - src 폴더 안에서 root-context.xml 파일 찾아 열기..
![[08.05] Quartz](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNpw3x%2FbtrI1U3J2lt%2FYrZOCFshashLKCwN61PIC1%2Fimg.png)
[08.05] Quartz
Quartz - 다양한 Java 애플리케이션에 적용 될 수 있는 작업 스케줄링 라이브러리 --> Job Scheduling Library - 일반적으로 프로세스 워크 플로우, 시스템 관리 작업을 지원하고 애플리케이션 내에서 적시에 서비스를 제공하기 위해 엔터프라이즈 급 애플리케이션에 사용됨 * Quartz Job Scheduler 구현 전에 알고 있어야 할 용어 및 개념 * 1. Job : 수행시켜야 할 일(Task) 2. JobDetail : 위1의 Job에 대한 상세정보 - 위 1의 Job을 포함 - Identity : Job Name, Job Group - Job에 전달할 데이터 설정 3. trigger : 위 2에 대한 "스케쥴링"(When? How?) 정보 - Identity: name, gro..
[08.03] MyBatis 개념 정리
* MyBatis SQL Mapper Framework 사용하기 * 1. MyBatis Library Download => 현재 Maven 을 사용하여 의존성(즉, 필요한 라이브러리들)을 관리하기 때문에, 아래와 같이 "pom.xml" 파일에 의존성 추가하면 끝! org.mybatis mybatis 3.5.10 2. MyBatis의 설정파일(XML파일이어야 함)을 생성 a. 설정파일의 이름: 우리 맘대로 지어도 되지만, 일반적으로 "mybatis-config.xml"이라고 지음. b. 설정파일을 생성하고, 이 XML파일의 위치는 "src/main/resources" 소스폴더에 저장 (설정파일은 프로그램 소스파일이 아니되, MyBatis 실행에 반드시 필요한 소위 "자원파일"이기 때문에) c. MyBati..
![[08.02] MyBatis](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQVigD%2FbtrII0KHXKv%2F8Sp1BINcieCESKOgJ5nDX1%2Fimg.png)
[08.02] MyBatis
MyBatis - 데이터 생성 객체 DAO 역할 - 마이바티스의 기본 설정파일 이름은 우리 맘대로 결정 하지만, 기본으로 "mybatis-config.xml" 로 생성 - xml 파일 작성 정보: MyBatis 페이지에서 참고 https://mybatis.org/mybatis-3/ko/getting-started.html# MyBatis – 마이바티스 3 | 시작하기 mybatis.org * XML설정파일에서 지정하는 마이바티스의 핵심이 되는 설정 - 트랜잭션을 제어하기 위한 TransactionManager → 트랜잭션 바운더리 단위로 Commit/Rollback (All/Nothing) - 데이터베이스 Connection인스턴스를 가져오기 위한 DataSource ( Connection Pool ) ..
[7.28] JSP - EL
EL은 데이터를 출력하기 위한 언어로서 문법이 직관적으로 사용하기 쉽게 구성이 되어있다. 일반적으로 JSP에서는 변수를 출력할 때 변수선언과 초기화가 반드시 필요하지만 EL은 그러한 과정 없이 바로 사용이 가능하고 null값 처리가 쉽다. 따라서 다양한 형태로 저장된 데이터를 효율적으로 처리할 수 있는 장점이 있다. 다양한 형태란 것은 Map형식, List 형식, 배열 형식, 자바빈(JavaBeans)등과 같은 형태를 의미한다. * EL언어의 문법: ${ EL변수 } * EL변수란 무엇인가? 또한, 무엇이 EL변수로 지정가능한가? (1) 4개의 공유영역에 바인딩 되어있는 공유속성명 (***) (이거야말로, 진짜 EL스펙상 나오는 EL변수임) request > session > application --%..
![[7.27] JSP - 액션 태그, 자바빈(JavaBeans) 규약](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxHGAT%2FbtrIh5TJlNV%2FlHdweHF0VWVMgtBxFDD3l0%2Fimg.png)
[7.27] JSP - 액션 태그, 자바빈(JavaBeans) 규약
JSP 표준 액션 태그 기본적인 스크립팅 요소이외에 JSP 스펙(Specification)에서는 표준 액션 태그를 제공한다. 대표적인 스크립팅 요소인 Scriptlet tag안에는 많은 자바코드가 삽입되어 실행된다. JSP를 사용하는 목적이 Presentation Logic을 구현할 목적이기 때문에 많은 자바코드를 포함하고 있는 Scriptlet tag을 제거 및 감소할 목적으로 액션 태그가 제공되는 것이다. 즉 자바코드 대신에 액션 태그만을 가지고 동일한 결과를 얻을 수 있는 것이다. 추가로 액션 태그만을 가지고는 100% 자바코드를 제거할 수는 없으며 나중에 배울 JSTL 또 는 EL 기능을 같이 추가하여 사용된다. * 대표적인 표준 액션 태그 1. - 자바빈 컴포넌트를 사용하기 위한 액션태그 2. ..
![[7.27] JSP - 예외 처리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrjfPQ%2FbtrIjNkl9I2%2FJUkcOfSqZiZJKE8KBp0kUK%2Fimg.png)
[7.27] JSP - 예외 처리
* Web Application 의 예외처리 방법 3가지 * 1. page directive의 "isErrorPage"와 "errorPage"속성을 이용한 예외처리 ( exception 내장 객체를 이용한 예외 처리 ) - "JSP 전용" 예외처리 방식 - 유지보수 어려운 단점 * 아래 방법2,3은 Web Application "공통" 예외처리 방식 2. web.xml에 예외처리 설정하는 방식(HTTP status code기반) 3. web.xml에 예외처리 설정하는 방식(예외타입 기반) 1.exception 내장 객체를 이용한 예외 처리 1. 예외를 발생시키는 JSP 작성 - JSP명 : divide.jsp - 0으로 나누어 NullPointerException 발생 isErrorPage="false"..
![[7.26] JSP 기본 개념](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXpm8%2FbtrIlwBunVf%2FtsDKekEVtJ20AoHDPqCzh0%2Fimg.png)
[7.26] JSP 기본 개념
1. JSP == Servlet 2. HTML문서의 원하는 위치에 Model 데이터를 injection(주입)하기 위해서, 태그(JSP Scripting Tags)를 배움 3. JSP 내장객체 4. JSP 액션태그 5. EL (Expression Language) 6. JSTL(JSP standard tag libraries) --> 태그들!!! JSP Scripting 요소 5가지 (1) 주석태그 : (2) 지시자태그 : - page ===> JSP 를 서블릿 소스코드로 변환시, 변환내용을 변경 - include ===> 지정된 JSP/HTML파일의 소스코드 내용 그대로 포함(삽입) → 페이지의 모듈화 (공통적인 부분은 따로 생성한 후에 포함해 효율적인 사용이 가능. 비어있는 행까지 있는그대로 가져온다..
![[7.25] 서블릿 - 파일 업로드 & 다운로드](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA47IG%2FbtrIfRyYPWy%2FCCsi7p57qVxoQoHnFeJm31%2Fimg.png)
[7.25] 서블릿 - 파일 업로드 & 다운로드
1. @MultipartConfig 어노테이션을 이용한 파일 업로드 파일 업로드 기능을 구현하기 위한 여러 가지 방법중에서 현재까지 가장 많이 사용되고 알려진 것은 아파치 그룹에서 제공하는 Commons FileUpload 라이브러리이다. Spring 프레임워크 및 Struts2 프레임워크 같은 유명한 프레임워크에서도 사용되는 매우 안정적인 라이브러리이다. 하지만 서블릿 3.0 버전부터는 @MultipartConfig 어노테이션과 javax.servlet.http.Part 인터페 이스를 사용하여 보다 쉽게 파일 업로드 기능을 구현할 수 있다. * @MultipartConfig 어노테이션에서 사용 가능한 속성 목록 maxFileSize -- 업로드 파일의 최대크기값. 기본값은 -1(크기 제한 없음) max..
![[7.21] 서블릿 - 세션 관리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWBu7f%2FbtrHWFyTcX3%2FjExcKa73DaT1A2xghm9kRK%2Fimg.png)
[7.21] 서블릿 - 세션 관리
세션 관리 ( session tracking ) 일반적으로 사용되는 세션의 정의는 ‘서버와 클라이언트간의 지속적인 연결’을 의미한다. 연결을 통하여 클라이언트는 지속적으로 서버에 특정 동작을 요청할 수 있으며 서버는 실행 결과를 클라이언트에 응답할 수 있다. 데이터베이스를 사용하는 경우에도 클라이언트와 DB서버간에 지속적인 연결을 의미하는 세션이 필요하다. 하지만 HTTP 프로토콜을 기반으로 하는 웹서비스는 동작 메커니즘이 다르다. 불특정 다수인 클라이언트와 지속적인 연결방식으로는 웹서버의 부하가 매우 크기 때문이다. 동시 접속자가 100만건이라고 가정했을 때, 100만 클라이언트와 지속적으로 연결된 서버가 동작하는 것은 불가능하다. 따라서 클라이언트가 웹서버에 요청하고 응답 받으면 즉시 연결을 끊는 c..
![[7.18] 서블릿 Listener / Filter](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC1PMA%2FbtrHAIkoOEU%2FS7Msg8AF8u0VkKuMRkGsxK%2Fimg.png)
[7.18] 서블릿 Listener / Filter
서블릿 이벤트 서블릿은 다양한 시점에 발생되는 이벤트와 이벤트를 처리하기 위한 인터페이스를 정의하고 있다. 이들 이벤트와 인터페이스를 이용하면 웹 어플리케이션에서 필요로 하는 데이터의 초기화나 요청 처리 등을 추적할 수 있고, 데이터 저장 영역 ( application, session, request)에 데이터가 들어가고 나가는 (혹은 그 객체가 생성되고 소멸되는) 일련의 작업들에 대해 컨트롤이 가능하다. 이런 이벤트에 대해서 미리 web.xml 파일에 등록해두면 웹 서버는 초기 구동 시에 해당 이벤트를 대기 상태로 두었다가 이벤트 발생 시 자동으로 이벤트를 감지하고 우리가 지정한 클래스 내의 메서드를 실행해준다. 때문에 서블릿에서 이벤트 클래스를 실행되게 하려면 web.xml 파일의 설정이 중요하다. ..
![[7.15] 서블릿에서 파일 접근](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0SAH4%2FbtrHCWCgNZq%2FahWUNjS7DZJKQKveoms6EK%2Fimg.png)
[7.15] 서블릿에서 파일 접근
서블릿에서 웹 어플리케이션내의 특정 파일을 접근하기 위해서 ServletContext 객체를 사용 할 수 있다. 단, 읽기 모드만 가능하고 쓰기는 불가능하다. 1) 서블릿에서 읽을 텍스트 파일을 웹 어플리케이션의 WEB-INF 폴더에 testFile.txt 형식으로 작성하고, 내용을 입력 시킨 후에 저장한다. 2) 서블릿 작성 - ․ 서블릿명 : ContextFileServlet.java ․ 맵핑명 : /ContextFile @WebServlet("/ContextFile") public class ContextFileServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void servi..