Spring 32

aop(Aspect Oriented Programming)

AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)은 스프링에서 DI와 더불어 매우 중요한 개념중 하나이다. AOP는 절차지향이나 객체지향 프로그래밍처럼 그 자체로 하나의 프로그램을 형성할 수 있는 건 아니고, AOP는 객체지향 코드 위에서 이루어지며 객체지향을 보조하는 역할을 한다고 보면 될 것 같다. AOP의 등장배경 처음 프로그래밍 언어가 생겨나고 프로그램이 생기기 시작했을 때 그 규모는 매우 작은 규모였다. 단순한 식을 계산한다던가 하는 것이 많았다. 이 때 사용한 프로그래밍 방식이 절차지향 프로그래밍이다. 절차지향은 매우 직관적 형태를 가진다. 실행 시 위에서부터 아래로 코드가 실행된다. 프로그램의 규모가 매우 작았기 때문에 코드를 효율적으로 작성하는 방식의 필요성..

Spring 2020.03.24

(Spring Framework, Hibernate)간단한 성적 관리 페이지

github 주소 : https://github.com/leewoopyo/exam_hibernate 이번엔 Hibernate를 이용해서 DB처리를 할 것이다. 이전 블로그 페이지에서 JDBC Template을 이용하여 같은 프로젝트를 한 적이 있다. 그거랑 똑같은 프로젝트이기 때문에 Hibernate가 처리하는 Repository영역을 제외한 나머지 영역은 JDBC Template을 이용한 영역과 같다. ((Spring Legacy Project - MVC모델) JDBC Template을 써서 DB연동) 설정 하기 1. pom.xml Hibernate프레임워크를 사용하기 위해서 mysqlconnector, JPA , hibernate dependency를 추가한다. 4.0.0 com.kopo exam_h..

Spring 2020.03.20

Hibernate 관련 정리,(3계층 구조, 간단 설명 포함)

사전 지식 이전 블로그에서 MVC모델에 대해 적었을 때(https://woopi1087.tistory.com/4) '3계층 구조(3 Tier architecture) 를 효과적으로 구현 할 수 있는 디자인 패턴이 MVC패턴이다. ' 이런식으로 말을 했었다. 그럼 3계층 구조를 보면, 1. Presentation Layer( == UI Layer)(View 와 Controller) 2. Business Logic Layer( == Service Layer)(Service) 3. Data Access Layer( == Persistence Layer)(Repository) 3개의 층으로 나누어져 있다. 이 3계층에서 Hibernate와 관련된 계층은 가장 아래 계층인 Data Access Layer( == ..

Spring 2020.03.20

(Spring Legacy Project - MVC모델) JDBC Template을 써서 DB연동

앞의 글들에서 나는 MVC모델의 영역을 하나씩 보면서 프로젝트를 만들었다. 1. Spring Legacy proejct생성 : https://woopi1087.tistory.com/26 2. Repository : https://woopi1087.tistory.com/23 3. Service : https://woopi1087.tistory.com/25 4. Controller : https://woopi1087.tistory.com/31 이번에는 전체 MVC모델로 간단한 성적관리 웹 페이지를 만들것이다. 그리고 JDBC Template을 사용하여 DB연동을 통해 DB서버에 있는 데이터를 가져올 것이다. 프로젝트를 시작하기에 앞서 DB서버가 구축이 돼 있어야 한다. 나는 virtual box 가상 머신에..

Spring 2020.03.19

el태그, Jstl

EL태그 EL(Expression Language)태그는 해석 그대로 표현언어이다. 속성 값들을 편리하게 출력하기 위해서 제공된 언어이다. jsp에서 의 scriptlet 방식이나, out.println() 과 같은 자바코드를 더 이상 사용하지 않고 좀 더 간편하게 출력을 지원하기 위한 도구이다. 1. Attribute 형식에서는 '${Attribute이름}' 이렇게 쓴다 해당 attribute이름을 찾을 때 작은 Scope에서 큰 Scope로 찾는다. (page → request → session → application) (page : 생성된 페이지 내에서 찾음) (request : 요청된 페이지 내에서 찾음) (session : 웹 브라우저의 생명주기와 동일) (application : 웹 어플리케..

Spring 2020.03.18

(Spring Legacy Proejct) parameter넘기기(get,post)

github : https://github.com/leewoopyo/exam_view2 Spring Legacy Project로 프로젝트를 만든 후 (프로젝트 이름 : exam_view2, 베이스 패키지 : com.exam.view2) 클라이언트에서 get, post 방식으로 보낸 파라메터 값이 포함된 URL을 매핑해서 Controller 에서 그 값을 모델에 담아 view에 보내는 작업을 할 것이다. (Controller와 view만 있는 프로젝트이다.) pom.xml 로 가서 버전 수정을 해 준다. 4.0.0 kopo.exam hello hello war 1.0.0-BUILD-SNAPSHOT 1.8 5.0.7.RELEASE 1.6.10 1.6.6 org.apache.maven.plugins maven..

Spring 2020.03.18

Spring Legacy Project로 Controller 매핑

github : https://github.com/leewoopyo/exam_view Spring Legacy Project로 프로젝트를 만든 후 Controller를 통해 view에 데이터를 보내고 view를 출력하는 것을 보려고 한다. (여기에선 controller와 view만 다룰 것이다.) 우선 프로젝트를 하나 생성한다. (new → Spring Legacy Project(MVC Template)) (베이스 패키지 : com.exam.view) 아래처럼 프로젝트가 생성된다. (java파일을 몇개 넣어둔 상태임) 먼저 pom.xml 로 가서 버전 수정을 해 줄 것이다. 4.0.0 kopo.exam hello hello war 1.0.0-BUILD-SNAPSHOT 1.8 5.0.7.RELEASE 1...

Spring 2020.03.18

Maven과 Spring Legacy Project 설정파일

pom.xml 메이븐(Maven)이란? Maven은 자바 프로젝트의 빌드(Build)를 자동화 해주는 빌드 툴(Build Tool)이다. 빌드(Build) 란? 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물 이다. 이를 좀더 쉽게 풀어 말하자면 우리가 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다. 빌트 둘(Build Tool) 빌드 툴이란 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램. 계속해서 늘어나는 라이브러리 추가, 프로젝트 진행 중 라이브..

Spring 2020.03.17

Servlet Container란?

우선 Servler이 뭔지 간단하게 살피면, Servlet이란? 클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램 (클라이언트의 HTTP 요청에 대해 특정 기능을 수행, HTML문서를 생성등의 응답을 하는 인터넷 서버 프로그램) Java로 웹을 개발하기 위해 여러 Servlet들이 필요하게 되는데, 그냥 서버에 서블릿 만들어서 위치해 둔다고 클라이언트의 Request/Response 를 처리해줄리가 없다. 이러한 Servlet들을 관리하는 것이 Servlet Container이다. Servlet Container는 서블릿의 생명주기를 관리하고 요청에 따른 스레드를 생성해준다. 또, 클라이언트의 Request 를 받아주고 Respons..

Spring 2020.03.17

Spring 컨테이너란?(DI Container, IoC Container)

사전적으로 컨테이너란 무언가를 담는 그릇, 용기를 의미한다. Spring 컨테이너(DI컨테이너, IoC컨테이너라고도 불린다.)도 무언가를 담는 그릇인데, 역활이 무엇이냐면 객체 관리를 주로 수행하는 그릇이다. Bean의 생성과 관계, 사용, 생명 주기 등을 관장한다. Bean(빈)이란 Spring이 관리하는 인스턴스이다. 즉, 개발자가 직접 인스턴스를 생성하고 호출, 삭제하는 것이 아니라 항상 Spring Container를 통해서 관리되는 인스턴스를 우린 Bean이라고 부른다. POJO(어느곳에서 종속되지 않는 JAVA Class)와 설정(Configuration Metadata)을 Spring Container에 주입시키면 Bean으로 등록되고 사용이 가능하다는 얘기이다. (Spring Framewo..

Spring 2020.03.17