일반적인 웹 시스템 1. 정적 컨텐츠 (HTML) 웹 브라우저가 웹 서버로부터 저장된 HTML을 읽어와 표현 웹 브라우저 요청에 대해 매번 같은 콘텐츠만 반환 HTML, CSS, 자바스크립트 2. 동적 컨텐츠 (JSP) 웹 브라우저가 웹 서버에 동적 페이지를 요청 이
각 Layer의 역할 프레젠테이션 층 사용자 인터페이스 + 컨트롤러 제공 컨트롤러는 사용자 인터페이스를 통해 사용자의 입력을 받아 적정한 로직을 호출 그 결과를 사용자 인터페이스로 변환하는 작업 사용자 인터페이스는 화면 인터페이스를 의미 다양한 사용자 인터페이스 등장
프로젝트 관리 도구빌드 자동화 기능과 프로젝트 관리 기능을 제공pom.xml 파일을 이용하여 프로젝트 관련된 jar 파일을 다운로드하고 관리프로젝트 산출물을 일관된 구조로 관리빌드 작업들을 간단하고 쉽게 그리고 일관성 있게 수행할 수 있는 통합 환경을 제공빌드는 소스
엔터프라이즈 애플리케이션 개발할 때, 하나의 기능을 처리하기위해 여러 개의 컴포넌트를 조합해서 구현하는 경우가 일반적 데이터베이스 컴포넌트GUI 관련 컴포넌트외부 접속 컴포넌트다양한 오픈소스 라이ㅂ러리여러 개의 컴포넌트를 통합할 때 의존 관계 주입 디자인 패턴이 매우
빈의 생성, 빈의 의존관계 관리등의 DI의 기본 기능을 제공빈이 많지 않고 경량 컨테이너로 작업할 때 활용XML 파일로부터 설정 정보를 활용하는 가장 많이 사용되는 클래스일반적인 스프링 컨데이너를 의미BeanFactory 인터페이스를 상속받아 하위 인터페이스로 확장된
XML을 이용한 DI di-xml 예제 프로젝트 구성 di-xml 예제 프로젝트 만들기 ![](https://media.vlpt.us/images/dlwldbs/post/01833c22-a424-4949-a74f-3e97961617f5/%E1%84%89%E1%85%B
Anotation 메타데이터를 XML등의 문서에 설정하는 것이 아니라 소스코드에 @애노테이션의 형태로 표현 클래스, 메소드, 필드의 선언부에 표현 주요 Annotation @Autowired(@Inject) 컨테이너가 빈과 다른 빈과의 의존성을 자동으로 연결하도록
xml 문법 대신 자바 코드로 빈 설정개발 환경에 따라 설정 방식 선택Java로 DI 설정 코드의 장점TypeSafe하고 Refactoring에 매우 적합프로퍼티 명 or 클래스 명이 틀렸을 경우 컴파일 에러\* 컨테이너 생성 클래스AnnotationConfigAppl
데이터 액세스 처리를 비즈니스 로직 층에서 분리데이터 액세스 처리에 특화된 오브젝트데이터 취득, 변경에 데이터 처리를 DAO 오브젝트로 분리하는 패턴JDBC, Hybernate, MyBatis, JPA데이터 액세스 기술을 쉽게 사용하기 위한 기능 제공데이터 액세스 기술
스프링 프레임워크에서 만든 클래스(@Controller, @Service, @Repository,@Component 등이 붙은 클래스)를 테스트 하는 모듈단위 테스트, 통합 테스트를 지원하기 위한 매커니즘이나 편리한 기능을 제공Junit 테스트 프레임워크를 사용 ->
프론트 컨트롤러 패턴에 기초한 MVC 프레임워크모델, 뷰, 컨트롤러 -> 각각의 인터페이스가 정의 구현에 의존적이지 X -> 약한 결합도로 구성되어 유연하고 확장이 쉬움다양한 서드 파티 라이브러리 연계애노테이션 도입으로 스프링 MVC 보급이 확대JSP만 사용하여 개발하
spring-webmvc를 설정 -> 스프링 웹과 기타 스프링 프레임워크 의존 모듈(spring-context)에 대한 의존 관계도 함께 처리스프링 MVC는 Bean Validation 구조체를 이용해 자바 빈(VO)값의 유효성을 애노테이션을 통해 검증웹 애플리케이션에
MVC 예제 프로젝트 mvc-simple 예제 프로젝트 구성 mvc-simple 예제 스프링 MVC 프로젝트 생성 오류 실습은 윈도우 였지만 글쓴이는 MAC OS를 사용중 패키지 내용 보기 -> Contents -> Eclipse -> StringToolSuite
MVC 프로젝트 예제 - memberController
클라이언트와 서버 사이에 데이터 연동 애플리케이션을 위한 아키텍처 스타일웹 상의 정보를 리소스로 파악하고 그 식별자로서 URL를 할당해 고유하게 지정하는 방법HTTP 프로토콜 -> 리소스에 접근HTTP 메서드에 대한 처리 결과 -> 서버는 JSON or XML 형식으
리소스 형식을 JSON(JavaScript Object Notation)으로 사용Jackson-databind 를 사용하면 JSON 형식과 자바 빈즈와 상호 변환<pom.xml>@RestController : REST API를 제공하는 컨트롤러를 의미 \-> @C
컨트롤러 별로 예외처리컨트롤러의 메소드에서 예외가 발생 시 처리를 정의별도의 예외 처리 메소드 정의그 메소드에 @ExceptionHandler 설정하나의 웹 애플리케이션 안에서 공통된 예외 처리 클래스 정의복수의 컨트롤러에서 사용할 수 있는 공통된 예외 처리 클래스 정
Properties-Java Build Path : 1.11 확인(Project Facets]- Java : 1.11 확인org.tukorea.myweb -> org.tukorea.myweb.controller • 마우스 우측 클릭-refactor-renamePOM.x
예제 프로젝트 개요 mvc-mybatis 예제 프로젝트 작업 순서 데이터 엑세스 층 개발 MemberDAO.java MemberDAOImpl.java ![](https
❤️🔥MyBatis 개요 MyBatis SQL과 자바 객체를 매핑하는 사상에서 개발된 데이터베이스 접근용 프레임워크 MyBatis 장점 SQL의 체계적인 관리 ☞ 자바 Mapper 인터페이스를 통해 SQL 설정파일과 연동 ☞ 비즈니스 로직에서 Map
어플리케이션을 개발하기 위한 구현 기능들 "관심사"어플리케이션의 비즈니스 중요 기능들을 "핵심 관심사"여러 모듈에 걸쳐 공통적이고 반복적으로 필요로 하는 처리 내용을 "횡단 관심사"횡단 관심사를 한 곳으로 모은 것 "횡단 관심사의 분리"이를 실현하는 방법 "관점지향 프
<pom.xml>DI, AOP를 이용한 인터페이스 기반의 컴포넌트화를 완성AOP를 통해 횡단 관심사와 이에 영향 받는 객체 간 결합도를 낮춘다.이전 xml예제 프로젝트에 있는 StudentVO.java, MemberDAO.java, MemberDAOImpl.jav
MemberAspect.javaAspect 선언 \- @Aspect DI 컴포넌트 선언 \- @Component Advice 선언 \- @Before \- @After \- AfterReturning \- Arround \- AfterThrowingPo
aop-xml 프로젝트 org.tukorea.di.\* 패키지(aop 제외)를 aop-java 프로젝트내 복사 aop-annotation 프로젝트 org.tukorea.aop 패키지를 aop-java 프로젝트내 복사org.tukorea.di.config 패키지 생성Ja