달력

12

« 2019/12 »

  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  


 

 

 

핵심기능과 부가기능

·         업무(Biz) 로직을 포함하는 기능을 핵심 기능(Core Concerns)이라고 합니다.

·         핵심기능을 도와주는 부가적인 기능(로깅,보안 ) 부가기능 (Cross-cutting Concerns) 이라고 합니다.

·         객체지향의 기본 원칙을 적용하여도 핵심기능에서 부가기능을 분리해서 모듈화하는 것은 매우 어렵습니다. AOP 적용하면 보다 쉽게 부가기능을 분리할 있습니다.

·         AOP방법은 핵심 기능과 부가기능(공통 기능) 분리 시켜놓고, 부가 기능을 필요로 하는 핵심 기능들에서 사용하는 방식 입니다.


 



구분

설명

핵심 기능

(Core Concerns)

·         핵심관심모듈

·         업무(Biz) 로직을 포함하는 기능

 

·         ex) 예금대출송금신용카드 

·         ex) 글쓰기주문하기요금 계산 

부가기능

(Cross-cutting Concerns)

·         횡단관심모듈

·         핵심기능을 도와주는 부가적인 기능

·         공통 기능

 

·         ex) 보안로깅트랜잭션 

 

 

 

 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

MyBatipse 설치 하기

MyBatipse MyBatis XML 설정파일을 쉽게 생성할 있게 해주는 플러그인입니다.

 

 

Eclipse Marketplace 실행

eclipse 메뉴: [Help] >> [Eclipse Marketplace…]


 

 

 

 

 

 

mybatis Add-On 설치

mybatis 검색 >>

[MyBatipse x.x.x] 항목의 [Install] 버튼을 클릭합니다.

 


 


 

 

 

[I accept the terms of the license agreements] 체크 >>

[Finish]


 

 

설치 ...


 

 

[Install anyway]


 

 

[Restart Now]


 

 


 

 

 

 

 

설치 확인하기

 

새로운 파일 생성시 파일 타입에 MyBatis XML Mapper 항목이 보여집니다.


 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

 

MyBatis

·         마이바티스

·         MyBatis 자바 오브젝트와 SQL문을 자동 Mapping 하는 기능을 지원하는 ORM 프레임워크입니다. (SQL Mapper)

·         SQL 별도의 파일(XML) 분리해서 관리하게 해주며 자바객체와 SQL 사이의 파라미터 Mapping 작업을 자동으로 해줍니다.

·         MyBatis Hibernate JPA(Java Persistence Api)처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담없이, 개발자가 익숙한 SQL 그대로 이용하면서 JDBC 코드 작성의 불편함도 제거해주고, 도메인 객체나 VO 객체를 중심으로 개발이 가능하다는 장점이 있습니다.

·         Scala MyBatis, .NET MyBitis, mybatis-spring 별도의 라이브러리로 존재합니다.

 

 

 

http://blog.mybatis.org/

http://www.mybatis.org/


 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

RESTful Controller 어노테이션(Annotation)

·         Sprint MVC에서는 Client에서 전송한 XML이나 JSON 데이터를 Controller에서 Java Object 변환해서 받을 있는 기능(수신) 제공합니다.

·         Java  Object XML이나 JSON으로 변환해서 전송할 잇는 기능(송신) 제공하고 있습니다.

 

 

RESTful Controller 위한 핵심 어노테이션(Annotation)입니다.

Annotation

설명

@RequestBody

HTTP Request Body(요청 몸체) Java Object 전달 받을 있습니다.

 

https://codedragon.tistory.com/8929

@ResponseBody

Java Object HTTP Response Body(응답 몸체) 전송할 있습니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

uptodate

https://codedragon.tistory.com/8931

 

 

 

Jackson Library 검색 설치

 

http://mvnrepository.com/

 

"jackson mapper"으로 검색

jackson mapper


 

 

첫번째 항목 선택


 

 

버전번호 클릭


 

 

 

Maven항목의 dependency 정보 복사

http://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl/1.9.13


 

 

 

Project Explorer [Maven Dependencies]항목을 펼치면 JUnit라이브러리가 추가된 것을 확인할 있습니다.


 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

Spring MVC 특징

·         Spring 기반으로 하고 있기 때문에 Spring 제공하는 트랜잭션 처리나 DI AOP등의 기능을 손쉽게 사용할 있습니다.

·         서블릿 기반의 개발을 위한 MVC 프레임워크를 제공합니다.

·         Front Controller Pattern, Command Pattern, MVC Model2 프레임워크 차원에서 제공합니다.

·         Front Controller 역할을 하는 DispatcherServlet 클래스를 계층의 앞단에 놓고, 서버로 들어오는 모든 요청을 받아서 처리하도록 구성되어 있습니다.

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

IoC 컨테이너(IoC Container)

·         스프링 프레임워크는 객체에 대한 생성 생명주기를 관리 있는 기능을 제공하고 있습니다.

·         , IoC 컨테이너 기능을 제공합니다. 그래서 IOC 컨테이너를 스프링 프레임워크, Spring Container라고 합니다.

·         관리되어지는 (Managed bean) 모여 있는 곳입니다.

·         Application Context 클래스로 구현됩니다.

 

 

 

 

 

IoC 컨테이너 기능

·         IoC 컨테이너는 객체의 생성을 책임지고, 의존성을 관리합니다.

·         POJO 생성, 초기화, 서비스, 소멸에 대한 권한을 가집니다.

·         개발자들이 직접 POJO 생성할 있지만 컨테이너에게 역할을 맡깁니다.

 


 

Posted by codedragon codedragon

댓글을 달아 주세요


 

IoC(Inversion of Control)

·         제어권의 역전

·         객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미합니다.

·         Framework Container 제어권을 가지고 있습니다.

·         컴포넌트 의존관계 결정 (Component dependency resolution), 설정(Configuration) 생명주기(Lifecycle) 해결하기 위한 디자인 패턴(Design Pattern) 입니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

STS 설치파일 다운로드

 

STS Tools 페이지로 이동합니다.

https://spring.io/tools

 

or

페이지 하단 메뉴의 [TOOLS] 클릭


 

 

중간 정도에 "Spring Tools 4 for Eclipse" 영역에 있는 Windows 64-bit[DOWNLOAD STS4] 버튼을 클릭합니다.


 

 


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

TransactionTemplate

기본적으로 사용한 PlatformTransactionManager 인터페이스 보다 더욱 많이 사용됩니다. 많이 사용된 다는 것은 기존의 방법보다 개발자의  노력과 시간을 덜어줍니다.

 

 

기존 코드

PlatformTransactionManager transactionManager;

 

public void setTransactionManager(PlatformTransactionManager transactionManager) {

this.transactionManager = transactionManager;

}

 

public void buyTicket(final TicketDto dto) {

// transactionManager 사용하기 위한 기본 설정

// 트랜잭션 처리를 위한 기본 객체 생성

TransactionDefinition definition = new DefaultTransactionDefinition();

// 트랜잭션 수행 객체을 얻어 status 저장

TransactionStatus status = transactionManager.getTransaction(definition);

 

// try ~catch구문으로 트랜잭션 처리

try { // 트랜잭션 처리 구문을 포함시킵니다.

// 카드 결제 작업 - card테이블 변경

template.update(new PreparedStatementCreator() {

@Override

public PreparedStatement createPreparedStatement(Connection con)

throws SQLException {

// SQL 쿼리 수행

return pstmt;

}

});

// 정상 수행시 커밋 수행

transactionManager.commit(status);

}catch(Exception e) { // 트랜잭션 실패시 처리 내용

e.printStackTrace();

// 에러 발생시 롤백 수행

transactionManager.rollback(status);

}

}

 

 


Posted by codedragon codedragon

댓글을 달아 주세요