Java, 시간을 측정하는 클래스

devLog | 2009/10/13 17:58 | yangsae
요즘 진행중인 프로젝트에서 대용량 데이터를 가지고 DB에 import 하는 작업을 하는데 이게 정말 오래 걸린다.
이를테면 어제 밤 12시쯤 퇴근하면서 '시작'하고 갔는데 9시 좀 넘어 출근해 보니 겨우 파일 세개를 import 했다거나
점심먹고 병원까지 갔다와도 여직 하고 있다는 그런 얘기. 사실 지금 글을 쓰는 시점에도 네개째의 파일, 그러니까
용량으로 따지자면 430메가가 조금 넘는 정도를 import 하고 있다.

일이 이렇다 보니 과연 이거 실행하는데 얼마나 시간이 걸리냐 하는 것이 궁금해져서 예전에 보던 책 중에
퍼포먼스 어쩌고 하는 책에서 찾아볼까 하다가 웹을 뒤져보니 재미있는 라이브러리가 있어서 포스팅한다.
일단 다운로드

Apache의 Commons project에 포함되어 있는 StopWatch 클래스인데, 이 클래스를 이용하면 굳이
System.currentTimeMilles() 이런 문구를 찍지 않아도 간단한 메소드 활용으로 메소드가 진행되는 시간을 측정
할 수 있다.

처음에 StpoWatch 객체를 생성하고 start, getSplitTime, suspend, resume, stop 등의 메소드를 활용하여
시간을 기록하면 된다.

Eclipse, checksum error 처리 Tip

devLog | 2009/09/22 18:08 | yangsae
Eclipse에서 SVN을 이용해 sync와 commit을 수행하려 할 때

 svn: Checksum mismatch for 'C:\project_emms_device\workspace\uaprof-ear\uaprof-lib\src\java\osp\component\device\common\util\CommConfig.java'; expected: '65922f4a9dee198aff8232d894dcb382', actual: 'null'

*** Error (took 00:01.150)

 
뭐 이런 종류의 에러가 나는 경우가 종종 있는데 일단 Initial commit을 수행하면 안되었다고
나오지만 대부분 repository에 올라가 있는 경우가 많다.
먼저 실제 repository에 패키지와 클래스 파일이 올라가 있는지 확인 후에 로컬의 패키지를 통째로 지운다.
나의 경우에는 osp 디렉토리부터 통째로 지웠고 그 뒤로 다시 SVN sync를 수행.

그러면 업데이트가 가능하다. 원인은 아직 확실히 모르겠지만 로컬의 파일과 repository의 파일이
다르다는 얘기 같은데, 이런 식으로 해서 repository에 올라가 있는 파일을 새로 가져와서 sync하면
해결이 된다.

Django 프로젝트 기본

devLog | 2009/08/25 10:58 | yangsae
1. django project 생성

- django-admin.py, manage.py 를 사용해서 Project를 개설하고 Application 생성

- django Project의 구성
  • Project
    • Project settings
    • Application
      • Model
      • View(기존의 Controller)
    • Template(기존의 View)
    • Media
- Project를 개설하는 것은 실행에 필요한 설정파일들을 구성하는 것(django로 web project를 운영하는 데 필요한 초기 구성)을 말함

django-admin.py startproject 프로젝트명

ex) django-admin.py startproject testproject

이렇게 실행하고 아무 메시지가 안나오고 다시 명령행이 등장하면 잘 생성된 것임.
명령을 실행한 디렉토리에 프로젝트명의 디렉토리가 생성되고 그 안에 들어가면 아래의 파일이 들어있음.
  • __init__.py : Python에서 필요한 파일, 모듈, 클래스를 읽어올 때 초기화 작업에 이용
  • manage.py : Project 관리에 필요한 각종 기능을 포함
  • settings.py : Project 설정 정보
  • urls.py : 주소 체계 정보


2. Application 생성

- application은 앞서 설명한 project, 즉 만들고자 하는 서비스의 하위에 포함되는 개념으로 이를테면 아래와 같다.
  • Yang Web Service(Project)
    • 게시판 service(Application)
    • 방명록 service(Application)
    • 채팅방 service(Application)
- application 생성
application 생성을 위해서는 앞서 생성한 project 폴더로 들어간 뒤에 아래의 명령을 실행한다.

manage.py startapp 어플리케이션이름

ex) manage.py startapp testapplication

 문제없이 생성된다면 아까와 마찬가지로 아무 메시지 없이 다음 명령줄이 보인다. 무소식이 희소식이라는 말임.

결과적으로 Project와 Application 생성을 마치면 아래와 같은 구조로 폴더와 파일이 생성된다.

  • /testproject
    • __init__.py
    • settings.py
    • urls.py
    • manage.py
    • /testapplication
      • __init__.py
      • views.py
      • models.py
태그 : Django,Python