본문 바로가기

분류 전체보기100

MyBatis 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM 프레임워크 MyBatis는 SQL을 별도의 파일로 분리해서 관리하게 해주며, 객체-SQL 사이의 파라미터 Mapping 작업을 자동으로 해준다. MyBatis 주요 컴포넌트의 역할 MyBatis 설정파일 데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등의 고정된 환경정보를 설정한다. SqlSessionFactoryBuilder MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성한다. SqlSessionFactory SqlSession을 생성한다. SqlSession MyBatis 설정 파일에 있는 SQL 실행이나 트랜잭션 관리를 실행한다. SqlSession 오브젝트는 Thread-Safe 하지.. 2020. 5. 5.
MVC 패턴의 개념과 모델2 아키텍쳐 MVC(Model-View-Controller) 패턴의 개념 소프트웨어 공학에서 사용되는 아키텍쳐 패턴으로 MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위함이다. Model 데이터 저장소(DB)와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 일을 함. DAO클래스, Service 클래스에 해당함 View 모델이 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면을 만드는 일을 함. 생성된 화면은 웹 브라우저가 출력하고, 뷰 컴포넌트는 HTML과 CSS, Java Script를 사용하여 웹 브라우저가 출력할 UI를 만든다. HTML과 JSP를 사용하여 작성할 수 있다. Controller 클라이언트의 요청을 받았을 때 .. 2020. 5. 3.
JDBC 모든 자바의 데이터 액세스 기술의 근간이 된다. 엔티티 클래스와 어노테이션을 이용하는 최신 ORM(MyBatis, Hibernate) 기술도 내부적으로는 DB와의 연동을 위해서 JDBC를 이용한다. 로우 레벨 기술로 인식되고 있다. 간단한 SQL을 실행하는 데도 중복된 코드가 반복적으로 사용되며, DB에 따라 일관성 없는 정보를 가진 채로 Checked Exception으로 처리한다. Connection과 같은 공유 리소스를 제대로 릴리즈 해주지 않으면 시스템의 자원이 바닥나는 버그를 발생시킨다. Spring JDBC 기존의 JDBC의 단점을 극복할 수 있게 해주고, 간결한 형태의 API 사용법을 제공하며, JDBC API에서 지원되지 않는 편리한 기능을 제공한다. 반복적으로 해야하는 많은 작업들을 대신.. 2020. 4. 25.
프로젝트 아키텍쳐 웹 애플리케이션은 효율적인 개발 및 유지보수를 위하여 계층화(Layering)하여 개발하는 것이 일반적이다. 프로젝트 아키텍쳐에서 기본적으로 가지는 계층은 프리젠테이션 계층, 서비스 계층, 데이터액세스 계층 이 3계층과 모든 계층에서 사용되는 도메인 모델 클래스로 구성되어 있다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야 하며, 각 계층에서 담당해야 할 기능들이 있다. 각 계층 사이에서는 인터페이스를 사용해서 의존관계를 맺도록 통신하는 것을 원칙으로 한다. 프리젠테이션 계층 브라우저 상의 웹클라이언트의 요청 및 응답을 처리 상위 계층(서비스 계층, 데이터 액세스 계층)에서 발생하는 Exception에 대한 처리 UI에서 입력한 데이터에 대한 유효성 검증 기능을 제공 비즈니스 로직과.. 2020. 4. 24.
Bean 등록 및 의존관계 설정 Annotation Bean 등록 Annotation @Component : 컴포넌트를 나타내는 일반적인 스테레오 타입으로 태그와 동일한 역할을 함 @Repository : 영속성을 가지는 속성(파일, 데이터베이스)과의 접속을 지원하는 클래스의 경우에 사용 @Service : 비즈니스 로직을 가지는 클래스에 사용 @Controller : 웹 요청과 응답을 처리하는 클래스에서 사용 Bean 의존관계 주입 Annotation @Autowired 정밀한 의존관계 주입이 필요한 경우에 유용하다. 프로퍼티, setter 메소드, 생성자, 일반메소드에 사용할 수 있다. , 태그와 동일한 역할을 한다. 해당하는 클래스의 타입으로 찾아와서 의존관계를 주입한다. @Resource 기능으로는 @Autowired와 거의 동일하다 프로퍼티, s.. 2020. 4. 24.
jUnit 테스트 프레임워크 jUnit : 단위 테스트를 지원하는 프레임워크 '개발하는데는 테스트가 가장 중요하다' 라는 TDD 방법론이 적용된 프레임워크이다 jUnit은 assert() 메서드를 지원한다. assert() 메서드는 테스트 케이스의 수행 결과를 확인해 볼 수 있는 메서드이다. 예) assertEquals(예상 값, 실제 값) @Test 메서드가 호출할 때 마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어지도록 한다. jUnit 라이브러리 설치 구글에 maven junit을 검색해서 디펜던시를 pom.xml에 추가한다. junit junit 4.12 test jUnit에서 테스트를 지원하는 어노테이션 @Test @Test가 선언된 메서드는 테스트를 수행하는 메소드가 된다. 각각의 테스트가 서로 영향을 주지 않고.. 2020. 4. 23.