2010/12 20

OOP 객체 액션

요구사항 목적 비디오 가게에서 고객이 대여하는 비디오의 대여정보를 조회할 수 있는 프로그램을 작성한다. 요구사항 고객은 이름을 갖는다.고객은 한번에 여러 개의 비디오를 대여할 수 있으나 각각의 대여기간은 다를 수 있다.비디오는 영화, 스포츠, 다큐먼터리의 세 종류가 있다.각 비디오는 독립적인 일일 대여요금을 갖는다.영화는 대여기간이 2일 이상되면 3일째부터는 대여요금이 1/2로 할인된다.다큐먼터리는 3일 이상 대여하면 4일째부터 1/3로 할인된다.스포츠는 장기대여 할인이 없다.비디오 1개 대여할 때마다 보너스 포인트는 1포인트씩 올라간다. 단, 스포츠는 2포인트씩 올라간다.과거의 대여기록을 보유하고 있을 필요는 없으나 고객이 얻은 총 보너스 포인트 정보는 알고 있어야 한다.고객의 현재 대여정보를 구할 수..

lang/tdd 2010.12.14

우분투 apt-get 명령어

참고Outsiders Dev Story :: Ubuntu의 apt-get 명령어 정리 [code bash] sudo apt-get update sudo apt-get upgrade # 의존성검사하며 설치하기 sudo apt-get dist-upgrade sudo apt-get install 패키지이름 apt-get --reinstall install 패키지이름 # 패키지 삭제 : 설정파일은 지우지 않음 sudo apt-get remove 패키지이름 # 설정파일까지 모두 지움 sudo apt-get --purge remove 패키지이름 # 패키지 소스코드 다운로드 sudo apt-get source 패키지이름 # 위에서 받은 소스코드를 의존성있게 빌드 sudo apt-get build-dep 패키지이름 s..

os/Ubuntu 2010.12.10

mysql 프로시저 insert into GeoLiteCityBlock

MySQL 5.X - FUNCTION,PROCEDURE 만들기 예제 by S2 & NAMU 테이블 정보 -- 지역 IP 대역 정보 CREATE TABLE `GeoLiteCityBlocks` ( `startIPNum` int(10) unsigned NOT NULL, `endIPNum` int(10) unsigned NOT NULL, `locID` int(10) unsigned NOT NULL, PRIMARY KEY (`startIPNum`,`endIPNum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='지역IP대역 '$$ -- 지역정보 CREATE TABLE `GeoLiteCityLocation` ( `locID` int(10) unsigned NOT NULL, `c..

db/mysql 2010.12.09

TDD 우분투에서 phpunit 설치

참고 녹풍 : [우분투] PHPunit 설치와 기본 경로 녹풍 : 이클립스에서 PHPUnit(PHP 단위 테스트) 사용하기 sudo apt-get install phpunit 아래 위치에서 2개의 파일을 다운로드 합니다. 받기:1 http://ftp.daum.net/ubuntu/ lucid/universe php-benchmark 1.2.7-4 [13.5kB] 받기:2 http://ftp.daum.net/ubuntu/ lucid/universe phpunit 3.4.5-1 [310kB] 실행파일 설치 위치는 /usr/bin/phpunit if (strpos('@php_bin@', '@php_bin') === 0) { set_include_path(dirname(__FILE__) . PATH_SEPARAT..

lang/tdd 2010.12.08

TDD jUnit4 비교표현확장: Hamcrest

Hamcrest : 비교표현확장 JUnit 4.7, 4.8 기본 탑재되어 있는 Hamcrest 버전은 1.1 core 입니다. Hamcrest(햄크레스트)는 jMock이라는 Mock 라이브러리 저자들이 참여해 만들고 있는Matcher 라이브러리입니다. 테스트 표현식을 작성할 때 좀 더 문맥적으로 자연스럽고, 우아한 문장을 만들 수 있게 도와줍니다. 개발자만이 읽을 수 있는 프로그램밍 언어라라는 느낌보다 좀 더 문장체에 가까운 느낌으로 넓은 범주의 사람들이 함께 이해할 수 있는 형태로 만들어줍니다. 현재 Hamcrest는 Java 이외에도 C++, Objective-C, Phthon 그리고 PHP 버전으로도 포팅되어 있습니다. Matcher 라이브러리: 필터나 검색등을 위해 값을 비교할 때 좀 더 편리하게..

lang/tdd 2010.12.07

TDD jUnit4 특징

@Test jUnit3 이전에는 메소드 이름을 test로 시작해야한다는 규칙이 있었지만 jUnit4 이 후에는 @Test 애노테이션만 붙이면 테스트 메소드로 인식됩니다. @BeforeClass @AfterClass @Before @After 예외 테스트테스트 메소드내에서 해당 예외가 발생하지 않는다면 테스트 메소드를 실패로 간주합니다. [code java] // jUnit3 public void testException(){ String value = "a103"; try{ System.out.println(Integer.parseInt(value)); assertTrue(false); } catch ( NumberFormatException nfe){ assertTrue(true); } }[/code]..

lang/tdd 2010.12.06

TDD 실습 - 은행계좌(Account) 클래스 만들기

은행계좌 클래스 * 첫번째 질문 구현해야 할 기능을 파악하고, 목록을 작성한다. 계좌 생성 기능을 구현하기 위한 최초의 테스트 케이스를 만들고 실패하는 모습을 확인한다. 작성하고자 하는 메소드나 기능이 무엇인지 선별하고, 작성 완료 조건을 정해서 실패하는 케이스를 작성하는것. 클래스 설계서와 같은 산출물이 있는 경우라면, 크게 고민할 것 없이 메소드 외양부터 만들기 시작. 이때 리턴 타입은 기본 초기값(null, 0 등) 위주로 설정해놓으면 편한다. 이런 방식을 클래스 스켈레톤(skeleton) 구현이라고 부른다. 업무전문가나 설계자로부터 넘겨받은 산출물이 없다면 개발에 필요한 내용을 개발자가 스스로 머릿속에서 떠올려야 한다. 이 예제에서는 설계문서 없이 곧바로 개발한다. 라고 가정. * 기능요구사항 &..

lang/tdd 2010.12.03

TDD 개발 진행방식

질문(Ask) : 테스트 작성을 통해 시스템에 질문한다. (테스트 수행 결과는 실패) 응답(Respond) : 테스트를 통과하는 코드를 작성해서 질무에 대답한다.(테스트 성공)정제(Refine) : 아이디어를 통합하고, 불필요한 것을 제거하고, 모호한 것은 명확히 해서 대답을 정제한다. (리펙토링)반복(Repeat) : 다음 질문을 통해 대화를 계속 진행한다. TDD를 이용한 개발은 크게 '질문 > 응답 > 정제'라는 세 단계가 반복적으로 이루어진다. 참고 : 테스트 주도 개발 고품질 쾌속개발을 위한 TDD 실천법과 도구 30-31p

lang/tdd 2010.12.02

리눅스 모델링툴

참고어느 개발자! : Ubuntu에서 사용할 수 있는 데이터베이스 모델링 도구! by 어느 개발자! StarUML : 무료로 사용가능한 uml 도구 by 시티락 지식창고UML Modeling Tools - 어떤 도구를 사용할까? by Scent of Life DIA 도표편집 프로그램 이미지출처 : ostatic.comGoogle - wwwsqldesigner - Project Hosting on Google Code 이미지출처 : bitbucket.org Oracle - sqlDeveloper 이미지출처 : pcwin.comMySQL - MySQL Workbench 5.2 이미지출처 : forge.mysql.com starUML - http://staruml.sourceforge.net/en/ , Sta..

os/Linux 2010.12.01
반응형