2009. 1. 15. 21:22

비디오샾 자체 리뷰 소스 및 자료 제출 (ver 0.1)

안녕하세요~ 아슬아슬 하게 숙제를 마감한 꼴찌입니다.

시간이 늦어서 다른 분께 리뷰를 부탁드리기도 어려울 듯하고,
제가 남의 코드를 리뷰할 실력과 시간이 부족한 관계로 자체 검열을 시도하고 있습니다.

숙제한 소스를 SVN 저장소로 업로드 해야 하는데, SVN에 익숙하지도 않을 뿐더러, 날짜 계산하는 클래스를 회사에서 쓰는 코드를 써가지고 바로 업로드 못합니다. 양해 부탁 드리구요, 문제될만한 걸 고치고, SVN 공부한 후에 저장소로 올리도록 하겠습니다.

모레 발표할 자료와 소스 0.1 버전 올립니다. 내일 0.2 버전으로 추가해서 올릴 예정이구요.
완성된 걸 올리려고 했는데 사무실 난로 석유가 떨어져서 손이 시려요... 호오~ T,T

집에 가서 작업하던가, 내일 보완해서 올릴 예정입니다. 미리 좀 봐주실 분은 좀 봐주시길 부탁 드립니다.
다른 분들 코드 리뷰는 아무래도 2번째 숙제부터 해야할 것 같습니다.

끝.


2009. 1. 15. 20:22

간만에 스프링 이야기 한번 해볼까요 ?

스프링 SQLErrorCode 관련 하여 소스를 보면;;;
public class SQLErrorCodes {

    private String[] databaseProductNames;

public void setDatabaseProductName(String databaseProductName) {
        this.databaseProductNames = new String[] {databaseProductName};
    }

    public void setDatabaseProductNames(String[] databaseProductNames) {
        this.databaseProductNames = databaseProductNames;
    }

========================================
sql-error-codes.xml

<bean id="DB2" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="databaseProductName">
            <value>DB2*</value>
        </property>

<bean id="Derby" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="databaseProductName">
            <value>Apache Derby</value>
        </property>

<bean id="Sybase" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="databaseProductNames">
            <list>
                <value>Sybase SQL Server</value>
                <value>Adaptive Server Enterprise</value>
                <value>sql server</value> <!-- name as returned by jTDS driver -->
            </list>
        </property>

기타등등...........
이런 부분이 있습니다..
databaseProductName은 String[] 타입인데요..
저기 위에 보면 DB2는 특이 하게 디비 이름이 DB2* 라고 되어 있습니다.
밑에 Derby 같은 경우는 Apache Derby 이렇게 되어 있구요..

왜 DB2만 DB2* 라고 되어 있을까요 ?
물론 어떻게 보면 DB2* 이면 모든 버전 ? 이렇게 생각할 수도 있겠는데요..
저는 다른 이유로 저렇게 했다고 생각하는데 ;;; 어떻게들 생각하시나요 ?

스프링 DI의 기본 정도 될듯하네요;;; ㅡㅡ; 아닐수도 있구요;;ㅋ
2009. 1. 15. 10:52

코드 리뷰 해주세요~


밑줄 그어진 폴더를 열고 프로젝트를 확인해주세요.

아직 시간은 좀 남아있습니다. 오늘(목), 내일(금), 모래(토) 오전.. 그 전에 써니님 코드가 올라올지 기대되는데요~ 금요일 밤까지 올려주시면 토요일 오전에 리뷰하고 가겠습니다. ^^

그전까지 하루에 3~4 개씩 보면 되겠네요. 이야~ 드뎌 다른 분들 코드를 볼 수 있어서 얼마나 신나는지 모릅니다. 같은 문제를 두고 다른 사람은 어떻게 생각하고 어떻게 코딩했을지 궁금하지 않으세요? 캬캬캬
2009. 1. 14. 22:26

두 번째 퀴즈: 야구게임

목적

숫자야구게임용 엔진개발

숫자야구게임룰

컴퓨터는 미리 3개의 1~9사이의 숫자를 가지고 있다. (ex. 1 3 5)
사용자는 컴퓨터가 가지고 있는 숫자를 정확히 맞춰야 한다.
사용자는 미리 지정된 만큼의 횟수동안 시도할 수 있다. 지정된 횟수까지 시도해서도 맞추지 못하면 "out"이다.
사용자는 매번 3개의 숫자를 넣고 컴퓨터는 미리 가지고 있는 3개의 숫자와 비교해서 다음의 응답을 해야한다.
1) 3개의 숫자가 맞고 위치도 맞으면 "hit"
2) 1)이 아닐경우 입력한 숫자가 컴퓨터가 가지고 있는 숫자 중의 하나이고 그 위치도 맞으면 strike가 1씩 올라간다.
예를 들어 컴퓨터의 숫자가 1 3 5인데 사용자가 입력한 숫자가 2 3 4이면 "1 strike"이고 2 3 5를 입력했다면 "2 strikes"이다.
3) 숫자는 맞으나 위치가 다르면 ball이 1씩 올라간다. "1 ball", "2 balls", "3 balls"

예) 컴퓨터의 숫자 1 3 5
1 2 3 => "1 strike 1 ball"
5 1 3 => "0 strike 3 balls"
1 5 3 => "1 strike 2 balls"
6 7 8 => "0 strike 0 ball"
1 3 6 => "2 strikes 0 ball"
1 3 5 => "hit"

요구사항

  • BaseballGame클래스를 메인클래스로 작성한다. 완성된 코드는 여러개의 클래스로 구성해도 상관없다.
  • 게임은 여러번 진행할 수 있다.
  • 게임을 시작하기 위해서는 컴퓨터가 가진 숫자와 최대 시도횟수가 등록되어있어야 한다.
  • 게임이 시작되면 이번에 몇번째 게임인지 정보를 돌려준다.
  • 2번째 게임부터의 컴퓨터의 숫자는 이전 게임에서 사용한 것과 동일한 것을 쓸 수 없다. 단 최대 시도횟수는 같아도 상관없다.
  • 게임이 종료되는 것은 "hit" 또는 "out"되었을 때이다.
  • 게임이 종료된 후 다시 게임을 시작하기 전에는 게임을 시도할 수 없다.
  • 게 임 중에는 게임의 현재 상태를 요청할 수 있다. 게임상태는 최대시도가능 횟수, 현재 시도한 횟수, 그리고 현재까지의 최고기록의 정보를 돌려준다. 최고기록은 strike는 3점, ball은 1점으로 계산해서 그 중 최고점수를 가진 시도의 정보(몇번째시도 와 시도한 숫자)를 돌려준다. 최고기록이 같은 경우가 2번이상 있으면 모두 돌려준다.
  • 게임의 최고기록을 요청하면 지금까지 진행된 게임중 가장 적은 시도로 맞춘 결과(시도횟수)를 보여준다. 게임의 최고기록을 요청하는 것은 게임이 종료된 이후에만 가능하며 한번도 게임을 시도하지 않았으면 결과를 요청할 수 없다.
  • 모든 단서조항(...한다, ...할 수 없다, ...일경우는)에 위배되는 경우는 적절한 Exception을 던져야 한다.
  • 각 결과는 적절한 형태로(String 또는 임의의 Object) 리턴되면 된다(화면에 출력될 필요는 없다. 엔진이니까. UI는 이번 엔진을 이용해서 나중에 따로 개발할 것이다)

야구게임 엔진을 만든다는 기분으로...
2009. 1. 14. 09:50

두번째 퀴즈를 먼저 내주는게 어떨까요?

제가 다음 주 일정을 살펴보니 설 연휴가 끼어 있어서 두번째 퀴즈를 개발할 시간이 많지 않을거 같네요. 이번주에 시간적인 여력이 좀 될 거 같은데 두번째 퀴즈를 먼저 내주면 좋겠습니다.

다른 분들도 설 연휴 때문에 준비할 시간이 많지 않을 수도 있으니 미리 내주고 먼저 풀고 싶은 사람은 풀 수 있도록 하면 좋겠습니다.

좋은 하루 되세요.