'분류 전체보기'에 해당되는 글 142건

  1. 2010.07.03 Rhythm Nerd 0.0000000000001
  2. 2010.06.28 이제는 사람이 살만한 방이 되었습니다.
  3. 2010.06.26 부산대 상대개구멍쪽에 방을 잡았습니다.
  4. 2010.06.26 부산대에서 부산대앞역으로 가는길
  5. 2010.06.25 지하철에 신기한게 생겼습니다.
  6. 2010.06.24 어제 수요일에 자바 스터디 모임을 가졌습니다.
  7. 2010.06.21 정규식 입문 1
  8. 2010.06.21 학교에서 택배도 받아준다고 합니다.
  9. 2010.06.20 정규식 ( Regular Expression ) 소개
  10. 2010.06.20 무언가를 스크롤 해야하는 상황 1
  11. 2010.06.19 난 정말 JAVA를 공부한적이 없다구요
  12. 2010.06.14 요즘 리듬게임을 개발중입니다.
  13. 2010.05.28 도전! 스트리트 파이터 전 시리즈 정리
  14. 2010.05.27 KSF 파일 포맷 검사하는 정규식 만들어보았습니다.
  15. 2010.05.27 KSF_Creator2 1.3 Source 입니다. 1

Rhythm Nerd 0.0000000000001

컴퓨터 이야기/Rhythm Nerd 2010. 7. 3. 14:52

ㅡ,.ㅡ 뚝뚝 끊기게라도 일단 해놨음. 나중에 중간 좌표 보정해줘야지.

'컴퓨터 이야기 > Rhythm Nerd' 카테고리의 다른 글

어느 정도... 윤곽을 보이네요.  (0) 2010.07.30
Rhythm Nerd 인터페이스 구상중.  (0) 2010.07.16
Rhythm Nerd 0.00000001  (0) 2010.07.16
:

이제는 사람이 살만한 방이 되었습니다.

잡담 2010. 6. 28. 00:27
하지만 컴퓨터가 없죠.
:

부산대 상대개구멍쪽에 방을 잡았습니다.

잡담 2010. 6. 26. 01:44


보증금 200 에 월20만원입니다.

가스, 물세 포함된 가격이고

전기세만 부담하면 됩니다.

개인 샤워시설 있고, 물 잘나오고

화장실은 공용입니다. 싱크대 공용, 세탁기 공용, 가스렌지 공용

책상, 냉장고 제공.
:

부산대에서 부산대앞역으로 가는길

잡담 2010. 6. 26. 01:42


새벽에 이길 보드로 쭉 내려가고 싶음.
:

지하철에 신기한게 생겼습니다.

잡담 2010. 6. 25. 01:18


객실 소음표시기라는게 생겼네요.

처음보고 신기해서 바로 사진 찍었죠.

이거 말고도 온도계도 설치되었으면 좋겠습니다.
:

어제 수요일에 자바 스터디 모임을 가졌습니다.

컴퓨터 이야기/JAVA 2010. 6. 24. 05:27

가상머신이라는게 있고 화면에 문자 출력해보고

이것저것 이야기 하다가 끝났음.


혼자 하면 지루한데 기회삼아 배워보자.

'컴퓨터 이야기 > JAVA' 카테고리의 다른 글

android studio 단축키  (0) 2015.12.16
java string int 형변환  (0) 2015.12.15
android AlertDialog 띄우기  (0) 2015.12.15
자바의 변수 수명  (0) 2010.07.17
:

정규식 입문

컴퓨터 이야기/정규식 2010. 6. 21. 16:45

펄 정규식 문법
다음과 문자셋을 제외하고는 전부 매치 할 수 있다.

.[{()\*+?|^$

문자를 직접적으로 표현할려면 \ 을 붙여줘야 됨.
예) \. \[ \? \^


와일드 카드

.

하나의 . 으로 표현될 수 있으며 이것은 널문자나 줄바꿈 문자를 제외하고 모든 문자를 매치함.

줄의 시작과 끝


^$

줄의 시작하는 곳을 찾으려면 ^
줄이 끝나는 곳을 찾으려면 $

표현 묶기

묶기 시작할 곳에서 '(' 그리고 닫는 곳에서 ')'

만약 apple 이란 단어가 여러개 붙어있는 곳을 찾고 싶다면? apple+ 하면 될까?
apple+ 이란 표현은 apple 이란 문자 전체가 반복되는것을 매치하는게 아니고
applee, appleee 와 같은 문자와 매치된다. 만약 우리가 원하는 답을 얻고 싶으면 (apple)+ 이라고 해야 된다.
추가적으로 괄호로 묶인 부분은 back-reference 라고 불리는 놈을 이용하여 재사용될 수 있다.
만약 back-reference 에 포함하기 싫다면 (?:apple)+ 라고 하면 된다.


반복
* 라는 문자는 0개 이상의 문자와 매치한다.
예를 들면 a*b 와 매치되는 문장은
b
ab
aab
aaab

+ 라는 문자는 1개 이상의 문자와 매치한다.
예를 들면 a+b 와 매치되는 문장은
ab
aab
aaaaab

? 라는 문자는 0개 혹은 1개 문자와 매치한다.
예를 들면 ca?b 와 매치되는 문장은
cb
cab
딱 두개다.

a{n} 은 a 가 n 개 반복된다는 뜻이다.
예를 들면 a{5} 와 매치되는 문장은
aaaaa

a{n,} 는 n 개 이상의 a 와 매치된다.
예를들면 a{4,}
aaaa
aaaaa
aaaaaaa

a{n, m} 은 n 번반복과 m번 반복의 사이를 찾아준다.
a{3,5}
aaa
aaaa
aaaaa

이것 혹은 저것
abc|def 는
abc 혹은 def 를 찾아 준다.
그룹으로 묶어줄 수도 있다. ab(d|ef) 는 abd 와 abef 를 찾아 준다.

문자셋
예를 들어 [abc] 는 a 혹은 b 혹은 c 와 매치된다.
주의할 점은 [(ab)c] 같은 문법은 ( 자체가 문자로 인식되어버려 (, a, b, ), c 와 매치된다는 점이다.

문자범위 지정
[a-c] 는 a 부터 c 까지를 뜻한다. 즉 [abc] 와 동일 효과를 지닌다.
그렇다고 해서 쓸모 없는것은 아니다. [a-z] 까지 찾는것을 쓸 때 [abcdef...z] 라고 쓸 순 없겠지.

문자범위 부정
[^a-c] 는 [abc] 와 매치되는것을 제외한 모든 문자와 매치된다.


지금까지 배운것을 어떻게 활용할 수 있을까? 그 응용하는 곳은 자기몫이지만
그래도 어떻게 써야겠다는지 모르는 사람을 위해 간단한 예제를 준비해봤다.

한성수 880502-1165489
우보동
김동미 890245-1234589
돈만동
박재귀 880421-2648712
소시동
정사효 900123-1423475
충덕동
류만삭 880411-2146789
뉴욕
김대규 890915-1654131
부대동
신구민 911102-1213599
덕니동
김환타 881225-1225122
변대동
......


 라는 목록이 있다고 치자. 여기서 주민등록번호만 검색하고 싶으면 아래와 같이 작성하면 된다.
[0-9]{6}-[0-9]{7}

생각외로 쉽게 끝났다. 그런데 보자...
어라? 월, 일은 숫자의 범위가 제한되어야 한다. 조건을 추가해보자.
[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])-[0-9]{7}
왼쪽 부분만 고쳤더니 오른쪽 부분도 사실상 맨 앞자리는 1,2,3,4 4개의 숫자만 들어올 수 있다.
오른쪽 부분만 고쳐보자
[0-9]{7} 에서 (1|2|3|4)[0-9]{6}

생각해보니 2월30일은 없다. 조건 추가하자.






는 훼이크고 정규식을 작성할 때 이런 식으로 조건을 하나하나씩 추가해가면서 정규식을 작성을 하는것이다.

여기서는 완벽한 주민등록번호 검사 정규식을 만드는게 목적이 아니고 어떻게 정규식을 작성하는지에 대해 글을 쓰는거니까 이쯤에서 그만둔다.

잘못된 점이나 하고 싶은 말 있으면 댓글 부탁드려요.


다음글은 이스케이트 문자와 기타 반복자에 대해서 다룰 예정입니다.

:

학교에서 택배도 받아준다고 합니다.

잡담 2010. 6. 21. 01:12


좀 짱인 듯 ? ㅋㅋ
:

정규식 ( Regular Expression ) 소개

컴퓨터 이야기/정규식 2010. 6. 20. 14:42

정규 표현식(正規表現式, Regular expression에서 줄여서 Regexp 또는 Regex)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 정규 표현식은 많은 텍스트 편집기프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있으며, 특히 Tcl은 언어 자체에 강력한 정규 표현식 구현을 내장하고 있다.

정규 표현식은 컴퓨터 과학의 정규 언어로부터 유래하였으나 구현체에 따라서 정규 언어보다 더 넓은 언어를 표현할 수 있는 경우도 있으며, 심지어 정규 표현식 자체의 문법도 여러 가지 존재하고 있다. 이 중 표준화된 것으로는 POSIX의 확장 정규 표현식이 있으며, 표준화되지는 않았지만 펄의 정규 표현식과 그 대체 구현인 PCRE도 널리 사용된다.


정규식의 종류는 JGsoft/.NET/Java/Perl/PCRE/ECMA/Python/Ruby/Tcl ARE/POSIX BRE/POSIX ERE/GNU BRE/GNU ERE 정도가 있는데, 여기서는 사실상 표준처럼 널리 쓰이는 Perl 정규표현식 위주로 글을 쓰겠습니다. 비록 표준은 아니지만 C++ 0x TR1 라이브러리에서도 POSIX BRE/ERE 보다는 Perl Regular Expressions 를 기본값으로 쓰고 있거든요.

정규식을 활용하면 문서내에 숫자를 찾는것도 쉽게 할 수 있고 특정 토큰으로 분리되어있는 문서도 쉽게 뽑아올 수 있습니다.

예를 들어 숫자를 찾고 싶다면
"[-+]?([0-9]+\.[0-9]+|[0-9]+)"

라고 쓰는거죠. 위 식은 "+3.3" "-1.2" "3.5" "03.32" "-52.44" "34" "33" "+3" "-5" 등의 숫자와 전부 매치가 됩니다.

만약에 누가 어떤 문서를 주면서 "이 문서 안에 있는 모든 숫자를 가져와" 같은 업무가 발생한다면

당신은 어떻게 하겠습니까? 몇KB안되는 텍스트 문서라면 일일이 찾을 수 있겠죠. 하지만 그 분량이 많아지면 그 작업은 정말 피곤하고 영양가 없는 작업이 될겁니다. 사람이 직접 한다고 해도 그 작업의 정확성은 보장할 수 없기도 하고요.

이러한 작업을 엄청나게 간단하게 컴퓨터한테 시킬 수 있는 강력한 도구가 정규표현식입니다.
컴퓨터가 할 수 있는 일은 컴퓨터한테 시켜야되지 않겠어요?

'컴퓨터 이야기 > 정규식' 카테고리의 다른 글

이스케이프 문자와 기타 반복자  (0) 2010.07.27
정규식 입문  (1) 2010.06.21
:

무언가를 스크롤 해야하는 상황

컴퓨터 이야기 2010. 6. 20. 14:18
지금까지 리듬게임의 노트를 보면서 든 생각은 노트가 아래로 움직인다 혹은 위로 올라간다고 생각을 했다.

아는형과 이에 관해 이야기를 해봤는데,

"형은 전체 노트의 좌표를 일일이 앞으로 땡기고 그랬어요?"
->"아니, 그럴 필요없는데."
"?? 그럴 필요 없다고요? 그럼 어떻게 했어요?"
->"좌표는 놔두고 화면만 내리면 되잖아."
"ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ???ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ그런 기막힌 방법이!!! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ"

사소한 생각의 전환이 중요하다는것을 느꼈음.

이젠 리듬게임을 볼 때 노트가 올라온다고 생각은 안할거 같다 ㅋㅋ
:

난 정말 JAVA를 공부한적이 없다구요

잡담 2010. 6. 19. 22:33

http://www.yes24.com/24/goods/3497762?scode=032&srank=2


Chapter 01. Let's Start JAVA!
01-1. 자바의 세계로 오신 여러분을 환영합니다.
01-2. 자바 프로그램의 이해와 실행의 원리
01-3. 첫 번째 자바 프로그램의 관찰과 응용
01-4. 컴파일의 대상에서 제외되는 주석!

Chapter 02. 변수(Variable)와 자료형(Data Type)
02-1. 변수의 이해와 활용
02-2. 정수 표현방식의 이해
02-3. 실수 표현방식의 이해
02-4. 자료형의 이해

Chapter 03. 상수와 형 변환(Type Casting)
03-1. 자료형을 기반으로 표현이 되는 상수
03-2. 자료형의 변환

Chapter 04. 연산자(Operator)
04-1. 자바에서 제공하는 이항 연산자들
04-2. 자바에서 제공하는 단항 연산자들
04-3. 비트와 관련이 있는 연산자들

Chapter 05. 실행흐름의 컨트롤
05-1. if ±×¸®°? else
05-2. switch와 break
05-3. for, while ±×¸®°? do~while
05-4. continue & break
05-5. 반복문의 중첩

Chapter 06. 메소드와 변수의 스코프
06-1. 메소드에 대한 이해와 메소드의 정의
06-2. 변수의 스코프
06-3. 메소드의 재귀호출

Chapter 07. 클래스와 인스턴스
07-1. 클래스의 정의와 인스턴스의 생성
07-2. 생성자(Constructor)
07-3. 자바의 이름 규칙(Naming Rule)

Chapter 08. 클래스 패스와 패키지
08-1. 클래스 패스(Class Path)의 지정
08-2. 패키지(Package)의 이해

Chapter 09. 접근제어 지시자와 정보은닉, 그리고 캡슐화
09-1. 정보은닉(Information Hiding)
09-2. 접근제어 지시자(Access Control Specifiers)
09-3. public 클래스와 default 클래스
09-4. 어떤 클래스를 public으로 선언할까요?
09-5. 캡슐화(Encapsulation)

Chapter 10. 클래스 변수와 클래스 메소드
10-1. static 변수(클래스 변수)
10-2. static 메소드(클래스 메소드)
10-3. System.out.println & public static void main

Chapter 11. 메소드 오버로딩과 String 클래스
11-1. 메소드 오버로딩(Overloading)
11-2. String 클래스
11-3. API Document의 참조를 통한 String 클래스의 인스턴스 메소드 관찰
11-4. StringBuilder & StringBuffer 클래스
11-5. 단계별 프로젝트: 전화번호 관리 프로그램 01단계

Chapter 12. 콘솔 입력과 출력
12-1. 콘솔 출력(Console Output)
12-2. 콘솔 입력(Console Input)
12-3. 단계별 프로젝트: 전화번호 관리 프로그램 02단계

Chapter 13. 배열(Array)
13-1. 배열이라는 존재가 필요한 이유
13-2. 1차원 배열의 이해와 활용
13-3. 다차원 배열의 이해와 활용
13-4. for-each
13-5. main 메소드로의 데이터 전달
13-6. 단계별 프로젝트: 전화번호 관리 프로그램 03단계

Chapter 14. 클래스의 상속 1: 상속의 기본
14-1. 상속은 재활용 + 알파(α)
14-2. 상속의 기본문법 이해
14-3. 상속과 접근제어 지시자
14-4. static 변수(메소드)의 상속과 생성자의 상속에 대한 논의

Chapter 15. 클래스의 상속 2: 오버라이딩
15-1. 상속을 위한 관계
15-2. 하위 클래스에서 메소드를 다시 정의한다면?
15-3. 참조변수의 인스턴스 참조와 instanceof 연산자

Chapter 16. 클래스의 상속 3: 상속의 목적
16-1. 개인정보 관리 프로그램
16-2. 모든 클래스가 상속하는 Object 클래스
16-3. final 클래스와 final 메소드
16-4. 단계별 프로젝트: 전화번호 관리 프로그램 04단계

Chapter 17. abstract와 interface 그리고 inner class
17-1. abstract 클래스
17-2. interface
17-3. Inner 클래스
17-4. Local 클래스와 Anonymous 클래스
17-5. 단계별 프로젝트: 전화번호 관리 프로그램 05단계

Chapter 18. 예외처리(Exception Handling)
18-1. 예외처리에 대한 이해와 try~catch문의 기본
18-2. 프로그래머가 직접 정의하는 예외의 상황
18-3. 예외 클래스의 계층도
18-4. 단계별 프로젝트: 전화번호 관리 프로그램 06단계

Chapter 19. 자바의 메모리 모델과 Object 클래스
19-1. 자바 가상머신의 메모리 모델
19-2. Object 클래스

Chapter 20. 자바의 다양한 기본 클래스
20-1. Wrapper 클래스
20-2. BigInteger 클래스와 BigDecimal 클래스
20-3. Math 클래스와 난수의 생성, 그리고 문자열 토큰(Token)의 구분

Chapter 21. 제네릭(Generics)
21-1. 제네릭 클래스의 이해와 설계
21-2. 제네릭을 구성하는 다양한 문법적 요소

Chapter 22. 컬렉션 프레임워크(Collection Framework)
22-1. 컬렉션 프레임워크의 이해
22-2. Collection〈E〉 인터페이스를 구현하는 제네릭 클래스들
22-3. Set〈E〉 인터페이스를 구현하는 컬렉션 클래스들
22-4. Map〈K, V〉 인터페이스를 구현하는 컬렉션 클래스들
22-5. 단계별 프로젝트: 전화번호 관리 프로그램 07단계

Chapter 23. 쓰레드(Thread)와 동기화
23-1. 쓰레드의 이해와 생성
23-2. 쓰레드의 특성
23-3. 동기화(Synchronization)
23-4. 새로운 동기화 방식

Chapter 24. 파일과 I/O 스트림
24-1. File I/O에 대한 소개
24-2. 필터 스트림의 이해와 활용
24-3. 문자 스트림의 이해와 활용
24-4. 스트림을 통한 인스턴스의 저장
24-5. Random Access 파일과 FILE 클래스
24-6. 단계별 프로젝트: 전화번호 관리 프로그램 08단계

Chapter 25. Swing 컴포넌트와 이벤트 핸들링
25-1. Swing을 시작하기에 앞서
25-2. Swing 컴포넌트와 이벤트 핸들링
25-3. 레이아웃 매니저(Layout Manager)
25-4. 이벤트와 이벤트 리스너(Event Listener)
25-5. 다양한 Swing 컴포넌트
25-6. 단계별 프로젝트: 전화번호 관리 프로그램 09단계

APPENDIX A. 데이터 표현방식의 이해
A-1. 진수와 진수변환
A-2. 데이터 표현의 단위(비트, 바이트, 워드)

APPENDIX B. 자료형에 안전한 열거형
B-1. 열거형의 활용
B-2. 열거형 클래스



3~4명이서 진행되는 자바를 처음공부하는 사람들 위주로 진행할건데,
아마도 스터디에서 조금이라도 잘 아는 사람이 설명하고 이에 대해서 궁금한것이나 과제에 대한
토론? 그리고 공부하면서 힘들었던점 같은것을 이야기 하는 식으로 진행될거 같음.

나도 처음이고 스터디 참가자들도 전부 처음이니까 열심히 잘해봐야겠습니다. 챕터마다 차이는 있겠지만 보통 한번 모일 때 마다 챕터 1장 정도 나갈거 같아요.

시간은 수요일, 금요일 11시에 모여서 하는걸로 일단은 정해졌어요.
:

요즘 리듬게임을 개발중입니다.

컴퓨터 이야기 2010. 6. 14. 02:14


리듬게임 제목은

뭘 할지 아직 모르겠지만

게임은 안되지만 옛날 KSF 파일에 한해서 일단

뷰어기능까지는 구현 했습니다. 집에 가서 스크린샷은 첨부하도록 하죠.

일단 그건 그렇고 배속에 대한 아이디어



bpm / 60 = bps

다음노트가 올라오기전까지의 시간 = 1/(bpm/60)/tickcount 초걸림
(즉 1/bps/tickcount 뒤에 다음노트 나옴.)


예를 들면 초당 2비트.
틱카운트 1
1 ( 이 노트는 0초째 )
1 ( 이 노트까지 0.5초 걸림 )
1 ( 이 노트가 시작되는 순간 1초 )

:

도전! 스트리트 파이터 전 시리즈 정리

잡담 2010. 5. 28. 08:25
:

KSF 파일 포맷 검사하는 정규식 만들어보았습니다.

컴퓨터 이야기/KSF Creator2 2010. 5. 27. 14:08

\n*(^(#TITLE|#PLAYER|#BPM|#STARTTIME|#TICKCOUNT|#INTROFILE|#TITLEFILE|#SONGFILE|#DISCFILE|#DIFFICULTY):.*;\\n*)+^#STEP:\n+^(([0124]{13}|(\|[BTDE](([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)|([0-9]+))\|)|(#(BPM|TICKCOUNT|DELAY|DELAYBEAT):(([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)|([0-9]+));))\n|$)+

구 KSF 포맷형식은 지원하지 않습니다.

그렇게 하더라도 사실상 저 정규식엔 헛점이 많습니다. 예를 들면 BPM 넣는곳에 숫자말고 다른 문자가 있어도 true 값을 돌려주겠죠.

말고도 문제가 많습니다. 너무 상세한 검사를 할려면 정규식이 복잡해지니까 고민중;;

깔끔한 정규식 없을까요?

'컴퓨터 이야기 > KSF Creator2' 카테고리의 다른 글

KSF Creator2 1.3 final  (3) 2010.07.20
KSF_Creator2 1.3 Source 입니다.  (1) 2010.05.27
:

KSF_Creator2 1.3 Source 입니다.

컴퓨터 이야기/KSF Creator2 2010. 5. 27. 04:16




Direct Move 에 쓰이는 KSF 파일을 편집하는 프로그램입니다.

라이센스 : GPL
라이브러리 : C++ 0x std::tr1::regex
컴파일러 : Visual Studio 2010

원래는 boost 라이브러리 썼는데 2010 C++ 0x 에 정규식을 지원한다고 해서 2010 으로 포팅했어요.


: