SpringFramework 03 스프링 프레임워크 03 TDD 와 JUnit의 사용방법 알아보기.

Slides:



Advertisements
Similar presentations
6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
4. 디자인패턴. 학습목표 디자인패턴의 이해  크리스토퍼 알렉산더  Each pattern describes a problem which occurs over and over again in our environment, and then describes.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
최윤정 Java 프로그래밍 클래스 상속 최윤정
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
컴퓨터 프로그래밍 기초 [Final] 기말고사
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
Windows Server 장. 사고를 대비한 데이터 백업.
JSP Programming with a Workbook
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
9강. AOP(Aspect Oriented Programming)-I
1. C++ 시작하기.
6강. DI설정 방법 XML파일을 이용한 DI설정 방법 JAVA를 이용한 DI설정 방법 XML과 JAVA를 같이 사용
FTP 프로그램 채계화 박재은 박수민.
자바 5.0 프로그래밍.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
Powerpoint 프리젠테이션을 로 보내기 [twitter]1. 파워포인트 프리젠테이션을 트위터로 보내기[/twitter]
자바네트워크 제2주 실습 네트워크기초, 스레드.
10장. 예외처리.
Eclipse 를 이용한 네트워킹 퍼즐 게임 “Scrambled Net” 담당 교수님 전진우 교수님 최은아.
Method & library.
비주얼 프로그래밍 1분반 화/목.
Lesson 4. 수식과 연산자.
15차시_스마트 애플리케이션 기획 스마트 애플리케이션 모형 제작 및 발표.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
전자정부 표준프레임워크 호환성 가이드 전자정부 표준프레임워크 사업단 실행환경 개발팀.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
뇌를 자극하는 Windows Server 2012 R2
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Spring 프레임워크의 이해 3. Spring IoC 이해 및 활용.
SpringFramework 기말고사 요약 REST by SpringFramework.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
에어 조건문.
SpringFramework 중간고사 요약 REST by SpringFramework.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
( Windows Service Application Debugging )
알고리즘 알고리즘이란 무엇인가?.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
3. 모듈 (5장. 모듈).
.Net FrameWork for Web2.0 한석수
자신의 브랜딩으로 사업자 모으기 Allyse Sedivy, 더블 프레지덴셜 다이아몬드 “당신의 꿈이 실현가능하다고
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
 6장. SQL 쿼리.
프로젝트 개요 OPENSTACK을 이용한 교육용 CLOUD 환경 구축! 교수님(관리자)와 학생(이용자)으로 구분.
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
7 생성자 함수.
SafeMSR 설정.
Ch 4. 선택 위젯의 사용과 커스텀뷰 만들기 Assignment #1 04 – 1, 2) 08학번 정보과학과 유재윤
Presentation transcript:

SpringFramework 03 스프링 프레임워크 03 TDD 와 JUnit의 사용방법 알아보기

Contents 01 02 03 04 방과후 수업 Review What is TDD / JUnit 방과후 수업 예제 활용 02 What is TDD / JUnit TDD 방법론 과 JUnit 03 실습 예제 (JUnit 예제) Junit를 활용한 예제 04 다음시간 REST 서비스의 이해

같은 일을 하는 인스턴스가 많으면 넘나 좋겠죠????^^ 싱글톤 패턴(singleton pattern) 방과후 수업 Review 같은 일을 하는 인스턴스가 많으면 넘나 좋겠죠????^^

디자인 패턴이 무조건 좋은 것은 아닙니다. 패턴은 패턴일뿐입니다. 싱글톤 패턴(singleton pattern) 방과후 수업 Review 싱글톤의 의미는 매우 간단합니다. 생성하는 인스턴스를 오직 하나로 제한하는 디자인 패턴을 싱글톤이라고 합니다. 객체 지향 언어에서는 싱글톤이라는 말을 자주 사용합니다.(4대 디자인패턴 중 하나) 싱글톤이란 왜 싱글톤을 쓸까요?? 스프링에서의 싱글톤 100권의 책 하나의 문서대장 (EX) DB Connction 불필요한 호출로 자원의 낭비를 막음 인스턴스의 간섭으로 예상치 못한 결과를 만듦 인스턴스를 하나만 만들고 계속 재사용함 사실 싱글톤은 문제가 있음 1. private 생성자라 상속불가 2. 싱글톤은 테스트하기가 힘듦 3. 서버환경에서는 싱글톤이 하나만 만들어지는 것을 보장하지 못한다. 4. 싱글톤의 사용은 전역 상태를 만들 수 있기 때문에 바람직하지 못하다. [싱글톤 레지스트리] 스프링은 이러한 단점을 보완하여 직접 싱글톤 형태의 오브젝트를 관리하는 기능을 제공 싱글톤의 기본 유형 public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance(){ return instance; } 하지만 이건 되게 많이 쓰는거라 알긴 해둬야함ㅋㅋㅋㅋㅋ 디자인 패턴이 무조건 좋은 것은 아닙니다. 패턴은 패턴일뿐입니다.

TDD는 기능코드를 짜면서 테스트 코드를 같이 짜는 방법입니다. 테스트 주도 개발 (Test Driven Development) MVC의 디자인 철학 중 하나가 테스트 용이성(쉬운 테스트)!!! 이를 실현한 것이 바로 TDD 방식입니다 테스트 주도 개발(TDD)는 철학입니다 단위테스트 X 기능 코드 버그수정 코드를 작성하는 시간은 줄어듬 전체적으로 더 많은 버그 발생 기능 코드 우선 방식 기능 코드 버그 수정 버그를 수정하는데 필요한 시간은 줄어듦 전체적으로 동일한 시간 필요 단위테스트 테스트 우선 방식 기능 코드 버그 수정 디버깅 시간이 줄어들어 효과적이다 단위테스트 시간의 문제도 있지만 실수할 확률이 적어지고 옥상으로 끌려갈 상황이 덜 발생하는 방법론입니다. TDD는 기능코드를 짜면서 테스트 코드를 같이 짜는 방법입니다.

JUnit 은 Java의 단위테스트 Framework 특징은 앞으로 쭉 예제를 진행해보면서 상기해보겠습니다. 문자 혹은 GUI 기반으로 실행됨 단정문으로 테스트 케이스의 수행 결과를 판별함 (assertEquals(예상 값, 실제 값)) 어노테이션으로 간결하게 지원함 결과는 성공(녹색), 실패(붉은색) 중 하나로 표시 특징은 앞으로 쭉 예제를 진행해보면서 상기해보겠습니다.

JUnit 은 다음 단정문으로 주로 테스트를 합니다. 저 신호등을 통과하지 못하면 빨간불이 켜집니다! 의미 assertArrayEqual(a,b) 배열 a,b가 일치함을 확인 assertEqual(a,b) 객체 a,b의 값이 같은지 확인 assertSame(a,b) 객체 a,b가 같은 객체 인지 확인 assertTrue(a) A가 참인지 확인 assertNotNull(a) A가 null이 아님을 확인 [모든 단정문의 기능] http://junit.sourceforge.net/javadoc/org/junit/Assert.html 단정문은 신호등이라고 생각하면 됩니다. 저 신호등을 통과하지 못하면 빨간불이 켜집니다!

이러한 구조를 위해서 pom.xml에 다음과 같이 정의되어있어야함 실습하기 Hello World in JUnit [스프링에서의 JUnit 지원 구조] 스프링은 프로젝트 생성시 기본적으로 아래 위치에 자동으로 JUnit 테스트를 위한 장소가 마련되어져 있음 테스트가 시작되면 DemoApplicationTest.java는 DemoAppiivation.java인척 행세하면서 테스트를 진행하게 됩니다(가짜 파일임) 이러한 구조를 위해서 pom.xml에 다음과 같이 정의되어있어야함 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>

이러한 구조를 위해서 pom.xml에 다음과 같이 정의되어있어야함 실습하기 Hello World in JUnit [스프링에서의 JUnit 지원 구조] 스프링은 프로젝트 생성시 기본적으로 아래 위치에 자동으로 JUnit 테스트를 위한 장소가 마련되어져 있음 테스트가 시작되면 DemoApplicationTest.java는 DemoAppiivation.java인척 행세하면서 테스트를 진행하게 됩니다(가짜 파일임) 이러한 구조를 위해서 pom.xml에 다음과 같이 정의되어있어야함 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>

[DemoApplication.java에 다음과 같이 코딩해봐요] 실습하기 Hello World in JUnit [DemoApplication.java에 다음과 같이 코딩해봐요]

실습하기 Hello World in JUnit [JUnit 실행한 결과]

다음시간에는 이제 진짜 REST 기반의 웹서버를 제작합니다 요즘 핫한 Open API의 주역 REST란 무엇인가?