Clean Code that Works.


봄싹 발표 모임 화면.

자료, 의견을 탭으로 분류(탭 클릭시 페이지 로딩)
각각 액션에 대한 비주얼 이벤트 추가.

자료 삭제 비동기로 변경, 자료 추가의 경우는 파일 첨부 문제로 좀 더 봐야함.
자료 타입에 따른 icon 타입 추가, link, file(파일 타입 더 추가할 것인지도 고려해봐야함(pdf, hwp, txt 등등)
자료 추가(add.jsp)에 있는 내용을 resource.jsp 안으로 옴겨옴
iframe 제거(폼에 있는 submit 버튼을 삭제 하고, dialog에 전송 으로 submit)


의견 추가, 삭제를 비동기로 변경,
의견 추가 버튼 이미지 변경


대략 이정도로 해봤습니다.
오른쪽 상단에 있는 액션 버튼등을 좀 바꿔 봐야겠네요.(fg-menu로 변경)

발표에 의견 추가시 해당 발표가 속해있는 모임에 참가신청한 분들에게 전송.
모임에 의견 추가시 해당 모임에 참가신청한 분들께 전송

발표 추가, 업데이트 화면 하나로 합체(form.jsp)

조회 수 중복으로(화면갱신) 안올라가게 수정 -ㅁ-;;;;;


프로세스 생각 정리용 ~_~

현재 위치를 새 위치로 변경 할 경우

1. 새로 변경할 위치에 마커를 생성
 - > 마커 생성 후, 간단할 글 작성후 현재 위치 변경 버튼 클릭
2. 기존에 만들었던 마커들 삭제(신규 작성 위치를 위해 만들었던 마커들)
3. 현재 위치로 지정 되어 있는 마커의 정보를 갱신(DB)
4. 새로 작성한 마커의 타입을 현재 타입으로 변경
 - > 마거 아이콘 변경.
5. 마커 표시 정보에 대한 디자인 및 url구성


이슈
1. 위치와 간단한 텍스트 외에 포함할 정보를 무엇으로 할 것인가.(간단한 이미지 한장 첨부)
2. 현재 위치 변경 후에 과거 위치 미래 위치 로그들 보기
3. 다른 사람들 현재 위치 표시 하기

JavaDB

프로젝트2009. 4. 16. 15:22

프로젝트에 javadb를 사용해야 해서 요 몇일 보구 있다.

구글링을 해보니 원래는 아파치 산하 derby 라는 프로젝트였는데 sun에서 같이 물고 올라간다는.. 주절 주절.
여튼 derby = javadb

swing app 개발인데 javadb를 물고 올라가야 한다는..

관련 문서가 죄다 영어라서 조금 진행이 어렵기는 하지만 나름 진도가 나가고 있다.

=ㅅ=..

NetworkServerControl server = new NetworkServerControl(InetAddress.getByName("localhost"),1527);
server.start( null);

위 소스 코드를 메인함수에 추가 하면 애플리케이션이 올라 가면서 javadb를 물고 올라간다.
server.start( new PrinterWriter( System.out)); 으로 바꾸어 주면
간단한 로그가 찍히고.
좀더 자세히 알고 싶으면
server.getSysinfo() 하게 되면 javadb 정보를 확인 할 수 있다.

연결 하는 방법은
 String nsURL="jdbc:derby://localhost/D:/DBFile/Derby/ADMIN;create=true";
 java.util.Properties props = new java.util.Properties();
 props.setProperty("user","admin");

 Class.forName("org.apache.derby.jdbc.ClientDriver");
 Connection conn = DriverManager.getConnection(nsURL);

요렇게 하면 커넥션이 만들어 진다.

관련 파일들은 D:/DBFile/Derby/ADMIN URL에 자동으로 생성 되게 된다.

이렇게 연결해서 사용하기 위해서는 admin 유저에 따른 스키마를 생성 해야 하고,
각각 테이블을 생성 하면 된다.

문서 보기 : Click me!

문서화는 잘 되어 있는데 죄다 영어라는게 문제다. =ㅅ=;;

열심히 구글링 하면서 개발 해야겠다능.

=========================================================================================================

따로 스키마를 생성 하지 않으면 디폴트로 APP란 스키마를 사용 하게 된다.

String nsURL="jdbc:derby://localhost/D:/DBFile/Derby/ADMIN;create=true";
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection conn = DriverManager.getConnection(nsURL);

이렇게 연결 해서 테이블을 만들어 보면 APP 스키마 아래에 테이블이 생성된 것을 확인 할 수 있다.


머..
요구사항 분석이랄꺼 까지는 없구

요구사항을 확인해 보자.

주요 기능
  1. 이미지 검색 : 입력한 이미지를 가지고 기존 이미지와 검색
  2. 키워드 검색 : 입력한 키워드를 가지고 병해충 정보에서 검색하여 결과 이미지 표시
  3. 구조 검색 : XML 파일로 만들어져있는 데이터 파일의 구조 검색.

확장 기능

  • 사용자 기능 추가 하여 사용자 이미지 업로드 가능 하게 할 것(댓글, 개인 페이지)
  • 매일 새벽에 크론 돌면서 사용자가 업로드한 이미지까지 인덱싱 작업 할 것(이미지가 많아질 경우 매일 작업을 매주 작업으로 변경)


개발 환경

  • java(1.5), oracle(공부좀 허자)
  • spring 2.5, spring MVC, ibatis
  • JQuery, Flex
  • IE 8, FF 3

개발 방법

  • TTD 생각 하면서 할 것
  • CBD 생각 하면서 할 것
  • 읽기 쉽게 개발할 것
  • CLEAN CODE THAT WORKS.

대충 이정도로 해서 개발.

음.. 기존에 만들어 놓은게 있으니 -ㅅ-..

일단 요구사항에 대한 분석을 조금 더 해보자

이번주 목표
요구사항 정리!

웹 버전.

프로젝트2008. 8. 23. 13:33
현재 이미지, 키워드, 구조 검색 구현은 다 되어있다.

앞으로 해야 할 것은..

일단 정렬이 좀 이상하게 된다 이거 수정좀 -_-;;;

1. 사용자가 업로드한 쿼리 이미지 바로 보여주기.
 - 업로드는 되는데 업로드 하고 나서 이클립스 내의 업로드 폴더를 새로 고침 해주어야 접근 가능하다. 이건 어찌 처리 해야 하는겨 -_-;;

2. 구조 검색할때 옆에 트리 구조로 XML 문서 보여주기
 - XML 문서 용량이 크면 로딩 시간이 오래 걸릴꺼 같아 하지 않으려고 했으나 데이터 다 집어 넣어도 5MB 정도면 될꺼 같아서 추가 해야 한다.

3. 서비스 측면으로 회원 서비스 제공
 - 간단한 회원 서비스를 제공할 목적이다.
 - 병해충 정보에 사용자가 댓글을 달 수 있도록 하거나, 사용자가 직접 촬영한 이미지를 업로드 할 수 있도록 한다.
 - 사용자 개인 화면을 제공하여, 최근 본 데이터, 업로드한 이미지 나 작성한 글을 볼 수 있도록 한다.

사용자 삽입 이미지

메인 화면



사용자 삽입 이미지

이미지 검색 결과

사용자 삽입 이미지

병해충 상세 정보


지금 swt기반으로 만들어 놓은것을 웹 기반으로 변경해야겠다.

일단 가장 중요한 기능 3가지인
이미지 검색, 키워드 검색, 구조 검색.

이미지 검색 및 구조 검색은 별반 다를것이 없어 보이고
키워드 검색 같은 경우에는 XML 문서에서 루씬으로 인덱스 뽑아서 제시어 제공하였는데
이걸 데이터베이스하고 연관해서
네이버 최근 인기 검색어 같이 왼쪽에다가 간단히 만들어 주어야겠다.
뭐 디비에서 카운트 올리고 뽑아다가 보여주기만 하면 되겠지 -_-;;;

일단 회원 개념은 빼고 검색 관련해서 기능을 제공 한 다음에.
회원 기능 추가해서 검색 상세 결과에다가 댓글 단다던지 이런 기능을 제공 할 수 있도록 해보자.

개발 툴 : 이클립스 3.4 가니메데..였던가 -_-;;
사용언어 : JAVA, JSP, 머 또 간단한 AJAX나 CSS -_-;;
서버 : 톰캣 6.0
데이터베이스 : MYSQL
프레임워크 : 스트럿츠2, IBATIS

이렇게 해서 다음주 부터 해보도록 하자.

일단 기본 검색 기능은 swt로 만들어 논거 그대로 가져다가 하면 되기 때문에
여기서 주의 할 것은 리팩토링 하면서 성능을 올릴 수 있도록 하는거!!
생각같아서야 플렉스로 해보고 싶지만 시간이 너무 오래 걸릴꺼 같다.

swt로 만든것도 같이 리팩토링 진행하면서 8월 31일에 마감하는
소프트웨어 공모전에 둘 다 출품할 수 있도록 노력하자 ! 'ㅂ'/

다음주에 할것.
화면 설계 및 패키지, 클래스 정의.
으흐 =ㅂ=.. 화이삼