전체 글 1097

Spring MVC 1: 개요 { MVC, MVC Model 1 아키텍처, MVC Model 2 아키텍처, MVC Model 2 발전형, Spring Web Module(Spring MVC) }

수업목표 이번 시간에는 Spring 프레임워크에서 웹 어플리케이션 작성을 위해서 제공되는 Web MVC 모듈에 대해 알아보도록 하겠습니다. MVC란? MVC는 Model-View-Controller 의 약자입니다.원래는 제록스 연구소에서 일을 하던 트뤼그베 린즈커그가 처음으로 소개한 개념으로, 데스크톱 어플리케이션용으로 고안되었습니다. 이런 개념들을 웹 어플리케이션에서도 사용하게 되었습니다. Model : 모델은 뷰가 렌더링하는데 필요한 데이터를 의미합니다. 예를 들어 사용자가 요청한 상품 목록이나, 주문 내역이 이에 해당합니다. View : 웹 어플리케이션에서 뷰는 실제로 보이는 부분이며, 모델을 사용해 렌더링을 한다. 뷰는 JSP, JSF, PDF, XML 등으로 결과를 표현한다. Controller..

Spring JDBC 실습5: Select & Delete

수업목표 이번 시간에는 한 건 Select 와 Delete 를 수행해보겠습니다. RoleDaoSqls 수정 Select 와 Delete 를 수행할 SQL 을 우선 작성해두도록 하겠습니다. SQL 은 RoleDaoSqls 에서 작성하기도 했었습니다. 여기서도 :roleId 와 같이 바인딩을 위해 DTO 객체에 있는 필드의 이름을 사용하는 것을 볼 수 있습니다. Delete( ) 생성 : RoleDao 수정 코드를 보겠습니다. NamedParameterJdbcTemplate jdbc 객체가 가지고 있는 update( ) 메서드를 DELETE SQL 문과 Map 객체를 인자로 전달하여 실행하면 됩니다. Update 를 수행했을 때는 두 번째 인자로 SqlParameterSource params 객체를 넣어주었..

Spring JDBC 실습4 : INSERT & UPDATE { SimpleJdbcInsert, SqlParameterSource }

수업목표 이번 예제에서는 Insert 와 Update 구문을 실행을 시켜볼 예정입니다. RoleDao 수정 ( SimpleJdbcInsert, insert( ) ) 이전 시간에 Config, DTO, DAO 를 작성을 다 해두었는데요. INSERT를 수행할 수 있는 코드를 DAO 객체에 추가해주어야 합니다. Insert 를 수행하기 위해서는 SimpleJdbcInsert 라는 객체가 필요합니다. 이 객체를 생성하는 일을 우선 시작하겠습니다. SimpleJdbcInsert 객체를 RoleDao 생성자에서 초기화를 시켜주는데요. dataSource 를 인자로 제공하고, withTableName( ) 메서드로 어떤 테이블에 생성할지만 골라주면 됩니다. 그 다음 할 일은 실제 insert( ) 메서드를 구현하면..

Spring JDBC 실습3 : SelectAll { DTO, DAO, NamedParameterJdbcTemplate, RowMapper, ConnectionPool & DataSource }

수업목표 지난 예제에서는 접속을 하는 부분까지 작성을 하였는데요. 이번에는 Select 하는 부분까지 작성을 해보겠습니다. Select 하기 위한 클래스들 생각해보기 Select 하기 위해서는 어떤 클래스가 필요할지 생각을 하고 진행을 하겠습니다. 데이터를 select 하기 위해서는 데이터의 교환이 이루어지게 됩니다. 그때 DTO(Data Transfer Object) 가 필요합니다. 그 다음에 우리는 쿼리문이 필요할텐데요. 쿼리문을 가지고 있는 RoleDaoSqls 라는 클래스도 하나 만들겠습니다. 그리고 마지막으로 데이터에 실제로 Access 할 수 있는 DAO(Data Access Object) 객체인 RoleDao 가 필요합니다. NamedParameterJdbcTemplate 와 SimpleJd..

Spring JDBC 실습2: 프로젝트설정 { 라이브러리추가, ApplicationConfig, DBConfig, DataSource Test }

수업목표 Spring JDBC에 대해 알아보도록 하겠습니다. - DTO와 DAO에 대한 개념을 이해합니다. - Spring JDBC를 이용해 DAO를 작성할 수 있습니다. Maven 프로젝트 생성 Spring JDBC 실습을 진행하겠습니다. 우선 연결이 잘 되는지부터 확인을 해볼건데요. 프로젝트 생성 먼저 진행하겠습니다. maven-archetype-quickstart 로 Maven 프로젝트를 시작할 건데요. artifact id 는 daoexam 으로 설정하여 생성하였습니다. 위와 같이 성공적으로 프로젝트가 생성된 것을 확인할 수 있습니다. pom.xml 라이브러리 추가 pom.xml 에 필요한 라이브러리들을 추가해주는 작업을 우선 해주도록 하겠습니다. 우선 Spring 을 사용할 것이니까 Spring..

Spring Test { 통합 테스트, Mock, @InjectMocks, @Mock, given( ), verify( ) }

수업목표 지난 강의에 스프링 빈 컨테이너가 관리하는 빈(Bean)을 테스트하는 방법에 대해 살펴보았습니다. 빈과 빈 사이에는 다양한 관계가 있습니다. 이번 시간에는 그 관계를 목(Mock) 객체를 이용하여 끊고, 테스트하고자 하는 객체에만 집중하여 테스트하는 단위 테스트(unit test)에 대해 알아보도록 하겠습니다. 통합 테스트 란? 빈들 간에는 다양한 관계를 맺고 있는 경우가 많습니다. 하나의 빈을 사용한다는 것은 관계된 빈들도 함께 동작한다는 것을 의미합니다. 하나의 빈을 테스트할 때 관련된 빈들이 모두 잘 동작하는지 테스트하는 것을 우리는 통합 테스트(integration test)라 합니다. 목(Mock) 을 사용하게 되는 이유 관계된 다른 클래스와는 상관 없이 특정 빈이 가지고 있는 기능만 ..

Spring Test { 빈 객체 테스트, @Runwith, @ContextConfiguration }

수업목표 지난 시간에는 JUnit 을 이용해 테스트 클래스를 작성하는 방법에 대해서 알아보았습니다. 이번 시간에는 스프링 빈 컨테이너에서 관리하는 빈 객체를 테스트하는 방법에 대해 알아보도록 하겠습니다. 기존 프로젝트 수정 이전 시간에 생성했던 CalculatorService 클래스를 스프링 프레임워크에서 Bean 으로 관리되도록 프로젝트를 수정해보겠습니다. 기존 테스트 클래스도 수정하여 Bean 을 테스트하겠습니다. 4.0.0 org.edwith.webbe calculatorcli 1.0-SNAPSHOT false 5.2.3.RELEASE junit junit 4.12 test org.springframework spring-context ${spring.version} org.springframewo..

Spring Test { JUnit, @Test 등, assert 메서드 }

수업목표 이전 시간에는 테스팅이 무엇인지 알아보았습니다. 이번 시간에는 Java 애플리케이션을 테스트할 때 자주 사용하는 JUnit 에 대해서 알아보도록 하겠습니다. - JUnit 의 개념에 대해 이해합니다. - JUnit 을 이용해 간단한 테스트를 수행할 수 있습니다. JUnit 이란? 프로그래밍 언어마다 테스트를 위한 프레임워크가 존재합니다. 이러한 도구들을 보통 xUnit 이라고 말합니다. 자바 언어의 경우는 JUnit 이라고 말합니다. 자바언어의 경우에는 JUnit 이라고 말합니다. JUnit 과 같은 테스트 프레임워크를 사용하는 이유는 무엇일까요? 그 이유는 '단위 테스트'와 관련이 있습니다. 프로그램을 완성시킨 다음에 실행을 시켜서 테스트를 진행하면 오류가 발생했을 때 어느 지점에서 에러가 발..

Spring Test { 개요, Testing 에 대한 이해, TDD }

Test 란 ? 프로그램을 사용하다 한번쯤은 버그를 발견하게 됩니다. 사용하던 프로그램이 멈추거나, 오동작을 하는데요. 좀 더 잘 동작하는 프로그램을 작성하기 위해서는 테스트를 진행할 필요가 있습니다. 이번 시간에는 테스트가 필요한 이유에 대해 알아보도록 하겠습니다. - 테스트가 필요한 이유에 대해 이해합니다. - 테스트의 원리에 대해 이해합니다. 테스팅이란 무엇인가? '테스팅'이란 응용 프로그램 또는 시스템(구성요소 포함)의 동작과 성능, 안정성이 요구하는 수준을 만족하는지 확인하기 위해 결함을 발견하는 과정이라고 말할 수 있습니다. 전통적인 테스팅 개념은 응용 프로그램 또는 시스템이 잘 작동하는지 확인하는 것입니다. 현재의 테스팅 개념은 사용자의 기대 수준과 요구 사항에 맞게 구현되고 동작하는지를 확..

Spring JDBC 실습1 { DTO, DAO, ConnectionPool, DataSource, 프로젝트 구조 }

DTO 란? DTO 란 Data Transfer Object 의 약자입니다. 계층간의 데이터 교환을 위한 자바빈즈입니다. 여기서의 계층이란 컨트롤러 뷰, 비즈니스 계층, 퍼시스턴스 계층을 의미합니다. 일반적으로 DTO는 로직을 가지고 있지 않고, 순수한 데이터 객체이다. DTO 는 컨트롤러와 뷰, Entity 는 Repository와 DB 간의 전송을 위해 사용하는 모델입니다. DTO 의 예시 & 이해하기 DTO는 필드와 getter, setter 를 가지고 있고 toString( ), equals( ), hashCode( ) 등의 Object 메서드를 오버라이딩 할 수 있다. DTO를 간단하게 이해해보겠습니다. 계층 간의 데이터 교환을 하는 자바빈즈가 DTO라고 했습니다. 계층간 이동을 하면서 데이터를..