MySQL5

Database/MySQL 2007/08/13 04:41
작성자 : shin-gosoo(hchshin@chol.com)
작성일 : 2007.04.10


새창 보기

윈도우 자바개발환경을 위한 기본적인 Mysql 5 설치방법입니다.

목차
  1. 데이터베이스 설치
  2. Mysql 환경설정 - 한글개발환경(euckr)일 경우
  3. Mysql 환경설정 - 다국어 개발환경(utf-8)일 경우
1. 데이터베이스 설치
  • 설치 버전 : 5.0.37 (2007.04.10 현재 최신 버전)
  • 다운로드 URL : http://dev.mysql.com/downloads/mysql/5.0.html#win32
  • Without installer (unzip in C:\) : mysql-noinstall-5.0.37-win32.zip (45.6M) 를 선택해서 다운로드 받는다.
    개인 취향이겠지만 필자는 인스톨 버전은 싫어함.
    또한, 필자는 개발환경은 하드드라이브가 C, D로 나눠서 있을 경우 D 드라이브에 설치한다. 가끔씩 윈도우를 재설치 할 경우를 대비해서.
  • mysql-noinstall-5.0.37-win32.zip 를 풀면 mysql-5.0.37-win32 폴더가 생긴다. mysql-5.0.37로 이름변경해서 아래와 같이 설치하자.
  • 설치 예)
    • 설치디렉토리 : D:\dev\mysql-5.0.37
    • 윈도우 시스템환경변수 설정
      • Path : D:\dev\mysql-5.0.37\bin; 추가
    • 윈도우 서비스로 설정
      • 도스프롬프트 : D:\dev\mysql-5.0.37\bin> mysqld --install ( 서비스 제거는 mysqld --remvoe )
      • 제어판 - 관리도구 - 서비스를 통해 Mysql 서비스 시작
    • 도스 프롬프트에서 C:/>mysql -uroot 로 접속되면 설치 성공.
2. Mysql 환경설정 - 한글개발환경(euckr)일 경우
  • my.ini 설정
  • C:\Windows 밑에 my.ini 파일 생성
    1. [mysql]
    2. default-character-set= euckr
    3. [mysqld]
    4. character-set-client-handshake=FALSE
    5. init_connect="SET collation_connection = euckr_korean_ci"
    6. init_connect="SET NAMES euckr"
    7. default-character-set= euckr
    8. character-set-server= euckr
    9. collation-server= euckr_korean_ci
    10. [client]
    11. default-character-set= euckr
    12. [mysqldump]
    13. default-character-set= euckr
  • Mysql Restart
  • root 계정으로 mysql 접속후
  • mysql>status
  • 아래와 같이 나오면 설정 OK.
    1. mysql>status
    2. --------------
    3. mysql Ver 14.12 Distrib 5.0.37, for Win32 (ia32)
    4. Connection id: 1
    5. Current database:
    6. Current user: root@localhost
    7. SSL: Not in use
    8. Using delimiter: ;
    9. Server version: 5.0.37-community MySQL Community Edition (GPL)
    10. Protocol version: 10
    11. Connection: localhost via TCP/IP
    12. Server characterset: euckr
    13. Db characterset: euckr
    14. Client characterset: euckr
    15. Conn. characterset: euckr
    16. TCP port: 3306
    17. Uptime: 10 sec
    18. Threads: 1 Questions: 4 Slow queries: 0 Opens: 12 Flush tables: 1 Open tabl
    19. es: 6 Queries per second avg: 0.400
    20. --------------
    21. mysql>
  • root 계정 초기 비밀번호 지정하기
    1. C:>mysql -uroot mysql
    2. mysql>updateusersetpassword=password('새비밀번호') whereuser='root';
    3. mysql>flush privileges;
    4. mysql>exit
    5. C:>mysql -uroot -p새비밀번호
  • 데이터베이스 생성 및 사용자 생성
    1. C:>mysql -uroot -p비밀번호
    2. mysql>CREATEDATABASEmyproject_kr DEFAULTCHARACTERSETeuckr COLLATEeuckr_korean_ci;
    3. mysql>GRANTALLPRIVILEGESON*.* TO'javamaster'@'localhost'IDENTIFIED BY'1234'WITHGRANTOPTION;
    4. mysql>GRANTALLPRIVILEGESON*.* TO'javamaster'@'%'IDENTIFIED BY'1234'WITHGRANTOPTION;
    5. mysql>FLUSH PRIVILEGES;
    6. mysql>exit
    7. C:>mysql -ujavamaster -p1234 myproject_kr
    4라인 : euckr 환경으로 myproject_kr 이라는 데이터베이스 생성
    6라인 : 아이디 javamaster, 비밀번호 1234로 로컬에서만 접속권한이 있는 사용자 생성
    8라인 : 아이디 javamaster, 비밀번호 1234로 원격에서도 접속권한이 있는 사용자 생성
    10라인 : 권한 적용
    14라인 : 새로 생성한 계정으로 접속

3. Mysql 환경설정 - 다국어 개발환경(utf-8)일 경우
  • my.ini 설정
  • C:\Windows 밑에 my.ini 파일 생성
    1. [mysql]
    2. default-character-set= utf8
    3. [mysqld]
    4. character-set-client-handshake=FALSE
    5. init_connect="SET collation_connection = utf8_general_ci"
    6. init_connect="SET NAMES utf8"
    7. default-character-set= utf8
    8. character-set-server= utf8
    9. collation-server= utf8_general_ci
    10. [client]
    11. default-character-set= utf8
    12. [mysqldump]
    13. default-character-set= utf8
  • Mysql Restart
  • root 계정으로 mysql 접속후
  • mysql>status
  • 아래와 같이 나오면 설정 OK.
    1. mysql>status
    2. --------------
    3. mysql Ver 14.12 Distrib 5.0.37, for Win32 (ia32)
    4. Connection id: 1
    5. Current database:
    6. Current user: root@localhost
    7. SSL: Not in use
    8. Using delimiter: ;
    9. Server version: 5.0.37-community MySQL Community Edition (GPL)
    10. Protocol version: 10
    11. Connection: localhost via TCP/IP
    12. Server characterset: utf8
    13. Db characterset: utf8
    14. Client characterset: utf8
    15. Conn. characterset: utf8
    16. TCP port: 3306
    17. Uptime: 10 sec
    18. Threads: 1 Questions: 4 Slow queries: 0 Opens: 12 Flush tables: 1 Open tabl
    19. es: 6 Queries per second avg: 0.400
    20. --------------
    21. mysql>
  • root 계정 초기 비밀번호 지정하기
    1. C:>mysql -uroot mysql
    2. mysql>updateusersetpassword=password('새비밀번호') whereuser='root';
    3. mysql>flush privileges;
    4. mysql>exit
    5. C:>mysql -uroot -p새비밀번호
  • 데이터베이스 생성 및 사용자 생성
    1. C:>mysql -uroot -p비밀번호
    2. mysql>CREATEDATABASEmyproject_utf8 DEFAULTCHARACTERSETutf8 COLLATEutf8_general_ci;
    3. mysql>GRANTALLPRIVILEGESON*.* TO'javamaster'@'localhost'IDENTIFIED BY'1234'WITHGRANTOPTION;
    4. mysql>GRANTALLPRIVILEGESON*.* TO'javamaster'@'%'IDENTIFIED BY'1234'WITHGRANTOPTION;
    5. mysql>FLUSH PRIVILEGES;
    6. mysql>exit
    7. C:>mysql -ujavamaster -p1234 myproject_utf8
    8. mysql>setnames euckr;
    4라인 : euckr 환경으로 myproject_utf8 이라는 데이터베이스 생성
    6라인 : 아이디 javamaster, 비밀번호 1234로 로컬에서만 접속권한이 있는 사용자 생성
    8라인 : 아이디 javamaster, 비밀번호 1234로 원격에서도 접속권한이 있는 사용자 생성
    10라인 : 권한 적용
    14라인 : 새로 생성한 계정으로 접속
    16라인 : utf8 환경일 경우 도스프롬프트에서 테이블에 한글문자를 등록(insert)하거나 한글을 조회(select)시 깨져보임. set names euckr; 로 설정을 바꾸면 한글이 제대로 보임(Mysql 5일 경우)


'Database>MySQL' 카테고리의 다른 글

MySQL - JDBC Source(0) 2007/10/29
Connecting to a MySQL Database using Connector/J JDBC Driver(0) 2007/10/29
MySQL - create table examples(0) 2007/10/29
MySQL - JDBC(0) 2007/10/29
MySQL5(0) 2007/08/13
MySQL for JDBC Driver(0) 2007/06/13

'기본 카테고리' 카테고리의 다른 글

리눅스에 파이썬 설치하기  (0) 2008.02.13
sql 학습  (0) 2008.02.13
정규표현식 기초  (0) 2008.02.01
에디터용 글꼴  (0) 2008.02.01
USB 메모리나 하드에 WIndows XP 설치하기 (USB에 XP설치)  (0) 2008.01.31

정규표현식 기초

저자 전정호 (mahajjh@myscan.org)


 

Copyright (c) 2001 Jeon, Jeongho.Permission is granted to copy, distribute and/or modify this documentunder the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation;with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

 


이 글은 유닉스 사용과 관리에 필수인 정규표현식을 설명합니다. 또, 정규표현식을 처리하는 C 라이브러리도 마지막에 설명합니다.

1. 정규표현식이란?

아마 MS-DOS를 접해본 분이라면 와일드카드(wildcard, 유닉스에서는 glob pattern이라고 부른다)이라고 부르는 *?와 같은 기호에 익숙할 겁니다. a로 시작하는 모든 GIF 파일을 a*.gif와 같이 비슷한 파일명을 일일이 명시하지 않고 지정할 수 있습니다. 정규표현식(regular express, 줄여서 regexp, regex, re)도 MS-DOS의 *?와 같이 패턴을 기술하는 방식입니다. 그러나 정규표현식은 MS-DOS의 와일드카드와는 달리 파일명 뿐만이 아니라 파일 내용을 포함한 일반적인 용도로 사용이 가능하며, 그 기능도 더 강력합니다.

유닉스는 기본적으로 그래픽보다는 문자 기반 인터페이스를 제공하기 때문에, 문자들을 찾거나 다른 문자로 대체하는 도구인 정규표현식은 매우 중요합니다. 사실, 정규표현식을 모르고 유닉스를 사용하는 것이 가능할까란 의문이 들 정도로 정규표현식은 유닉스 사용과 관리의 많은 부분에 적용이 가능합니다. 우리가 자주 사용하는 편집기인 vi와 emacs, 자주 사용하는 도구인 grep과 sed와 awk, portable shell로 불리는 Perl, 자동으로 메일을 정리하는 procmail 등, 정규표현식은 유닉스의 거의 모든 도구와 관련이 있습니다. 개인적으로 뼈아픈 경험뒤에 "멍청하면 손발이 고생한다"는 격언(?)의 적절한 예로 정규표현식을 꼽습니다.

불행히도 도구마다 정규표현식을 지원하는 정도가 조금 차이가 나지만 몇번 시도해보면 이 차이를 알 수 있습니다. 그러면 기본적이고 광범위하게 쓰이는 정규표현식부터 하나씩 알아봅시다.

2. 정규표현식 기초

기본적으로 정규표현식은 다음 세가지로 구별할 수 있습니다.

 

  • 문자에 해당되는 부분
  • 앞의 해당되는 부분을 반복하는 부분
  • 문자에 해당되지않고 위치나 결합을 나타내는 부분

 

이제 MS-DOS의 *와 같이 특수한 의미를 가지는 문자들을 만나게 됩니다. 우리가 정규표현식을 배운다는 것은 이런 특수 문자들과 그들의 의미를 아는 것입니다.

2.1. 문자에 해당되는 부분

우선 보통 알파벳과 숫자 등은 그 문자 그대로를 나타냅니다. 물론 대소문자는 서로 구별됩니다.

 

$ egrep 'GNU' COPYING                    GNU GENERAL PUBLIC LICENSEfreedom to share and change it.  By contrast, the GNU General Publicthe GNU Library General Public License instead.)  You can apply it to...(생략)...$

위에서 egrep은 파일들에서 원하는 문자들을 찾는 도구입니다. (흔히들 사용하는 grep의 변종으로 grep보다 다양한 정규표현식을 사용할 수 있습니다.) 첫번째 아규먼트로 원하는 문자를 나타내는 정규표현식을 사용합니다. 여기서 GNU는 정규표현식으로 뒤에 나오는 파일들에서 G, N, U 세 문자가 연이어 나오는 경우를 찾습니다. 여기서 사용한 파일인 COPYING은 자유 소프트웨어 소스코드에서 쉽게 찾을 수 있는 GPL 조항입니다. 결과를 명확하게 하기 위해서 찾은 단어를 굵게 표시했습니다.

그런데 왜 GNU 주위에 따옴표를 했을까요? 여기서 따옴표는 정규표현식에서 쓰이는 *, ?, | 등의 문자들이 쉘에서도 특별한 기능을 하기때문에 이들 문자가 쉘에서 처리되지 않게하려고 필요합니다. 또, egrep 'modified work' COPYING와 같이 찾으려는 패턴에 공백이 포함된 경우에도 따옴표는 이들을 한개의 아규먼트로 처리합니다. 사실 위의 GNU에 따옴표는 필요없지만, 항상 규칙처럼 따옴표를 같이 사용하는 것을 권합니다.

어떤 특정한 문자가 아니라 가능한 여러 문자들을 지정할 수도 있습니다.

 

$ egrep '[Tt]he' COPYING  The licenses for most software are designed to take away yourfreedom to share and change it.  By contrast, the GNU General Publicsoftware--to make sure the software is free for all its users.  This...(생략)...$

위에서 [Tt]는 그 자리에 Tt가 나올 수 있음을 의미합니다. 이렇게 []안에 가능한 문자들을 적어줄 수 있습니다.

[a-z]와 같이 [] 안에 -를 사용하여 그 범위 안의 문자들도 지정할 수 있습니다. 예를 들어, [a-zA-Z0-9]는 영문 알파벳 대소문자와 숫자들을 모두 포함합니다. 또, [^a-z]와 같이 [] 처음에 ^를 사용하여 뒤에서 지정된 문자 이외의 문자를 지시할 수도 있습니다. 즉, 이는 영문 알파벳 소문자를 제외한 문자들을 의미합니다.

([a-z]에서 범위는 ASCII 코드값으로 a (97)에서 z (122)까지를 뜻합니다. 만약 [z-a]와 같이 큰 값을 앞에 쓰면 안됩니다. ASCII 코드값은 man ascii로 볼 수 있습니다.)

마지막으로 (보통 행바꿈 문자를 제외한) 어떤 문자에도 대응되는 .이 있습니다. (MS-DOS의 ?와 같습니다.)

 

$ egrep 'th..' COPYING of this license document, but changing it is not allowed.freedom to share and change it.  By contrast, the GNU General Publicsoftware--to make sure the software is free for all its users.  ThisGeneral Public License applies to most of the Free SoftwareFoundation's software and to any other program whose authors commit to...(생략)...$

이는 th 뒤에 두 문자가 나오는 경우를 찾습니다. 세번째 줄 끝에 This는 대소문자를 구별하기 때문에 패턴에 해당되지않고, the 에서 공백도 한 문자로 취급한 것을 주의하길 바랍니다. 위에서 program will individually obtain patent licenses, in effect making the와 같은 줄을 출력하지 않은 이유는 마지막 the에서 th와 그 뒤의 한 문자는 찾았지만 그 뒤에 문자가 줄바꿈 문자이기 때문에 조건이 만족되지않기 때문입니다.

2.2. 앞의 해당되는 부분을 반복하는 부분

여기서는 *, ?, +을 다룹니다.

*는 바로 앞의 문자를 0번 이상 반복해도 됨을 나타냅니다. 예를 들어, abc*

 

  • abccccccccc
  • abc
  • ab

 

를 모두 만족합니다. 여기서 주의해서 볼 것은 "0번 이상"이기 때문에 마지막 경우와 같이 앞의 문자가 안나와도 된다는 것입니다. (그래서 MS-DOS의 *은 정규표현식으로 .*입니다.)

 

*와 비슷하게, ?는 앞의 문자가 없거나 하나 있는 경우를 나타내고, +는 앞의 문자가 1번 이상 반복하는 경우를 나타냅니다. 그래서 a+aa*와 같습니다.

이제 abc 모두를 반복하고 싶다면 어떻게 해야 되는지 의문이 듭니다. 이 경우 (, ) 괄호를 사용하여 문자들을 묶어주면 됩니다. 그래서 (abc)*

 

  • abcabcabcabc
  • abc
  •  

 

를 모두 만족합니다. 마지막 예는 0번 반복한 경우로 어떤 문자도 없는 빈 경우입니다. 이제 앞에서 말한 "앞의 문자"라는 말을 정정해야 겠습니다. *, ?, +는 "앞의 문자"에 적용되는 것이 아니라 "앞의 단위"에 적용됩니다. 기본적으로 한 문자는 그 자체로 한 단위입니다. 그래서 abc*에서 *는 바로 앞 문자이자 단위인 c에 적용된 것입니다. 그러나 괄호로 문자들을 묶어서 단위를 만들 수 있고, (abc)*의 경우에 *는 앞의 단위인 abc에 적용된 것입니다.

 

주의
위에서 (abc)*가 0번 반복해서 어떤 문자도 없는 것을 나타낼 수 있음을 주의해야 합니다. 정규표현식에서 이런 경우 대상과 관계없이 패턴이 만족한 것으로 판단하기 때문에 egrep '(abc)*' COPYING와 같은 명령어는 COPYINGabc라는 부분이 없음에도 불구하고 모든 줄을 출력합니다. 즉, egrep '(abc)*' COPYING | wc -lwc -l COPYING은 같습니다.

또, 주의할 점은 정규표현식은 패턴을 만족시키는 가장 긴 부분을 찾는다는 점입니다. 즉, abababab에 대한 정규표현식 (ab)+ababab에 대응되지 않고 abababab 모두에 대응됩니다. 이런 행동은 어떻게보면 당연한 것이지만 주의를 하지않으면 문제가 생길 수도 있습니다. 예를 들어, <B>compiler</B> and <B>interpreter<\B>에 대한 정규표현식 <B>.*<\B>는 (의도했을) <B>compiler</B>을 찾지않고 <B>compiler</B> and <B>interpreter<\B> 전체를 찾게 됩니다. 이를 해결하기 위해 <B>[^<]*<\B>을 사용합니다. . 대신에 [^<]를 사용한 것처럼 찾는 대상을 제한하기 위해서 [^...] 형식을 자주 사용합니다.

 

2.3. 문자에 해당되지않고 위치나 결합을 나타내는 부분

여기서 다루는 ^, $, |는 앞에서와는 달리 특정 문자에 대응하지는 않지만, 위치나 결합의 중요한 기능을 합니다.

우선 ^는 줄의 처음을 뜻합니다.

 

$ egrep '^[Tt]he ' COPYINGthe GNU Library General Public License instead.)  You can apply it tothe term "modification".)  Each licensee is addressed as "you".the scope of this License.The source code for a work means the preferred form of the work for...(생략)...$

정규표현식의 마지막 문자가 공백임을 주의하길 바랍니다. 만약 이 공백이 없다면 Thesethemselves,로 시작하는 줄들도 찾게됩니다. 이렇듯 정규표현식을 적을 때는 자신이 찾길 원하는 부분을 빼먹거나, 자신이 원하는 부분 이외의 것을 포함하지 않도록 주의해야 합니다. 지금처럼 정규표현식을 입력하고 그 결과를 하나씩 살펴볼때는 문제가 없지만, 많은 경우 정규표현식은 스크립트로 많은 문서를 한꺼번에 처리할때 사용하기때문에 주의해야 합니다. 잘못 쓴 정규표현식때문에 원하는 결과를 얻지 못하는 것은 물론이고 원본까지 망치게 되는 경우가 있습니다.

^는 이렇게 [Tt]와 같이 특정 문자에 대응되지는 않지만 원하는 문자가 선택될 수 있게 도와줍니다. 반대로, $는 줄의 끝을 나타냅니다. 그래서 ^$과 같은 정규표현식은 빈 줄을 찾습니다.

|은 기호 앞뒤의 것 중 하나를 선택한다는 뜻입니다. 즉, 문서에서 this(This)나 that(That)을 찾는다면,

 

  • this|This|that|That
  • [tT]his|[tT]hat
  • [tT]his|hat - 틀림! 이 정규표현식은 [tT]hishat을 찾음.
  • [tT](his|hat)
  • [tT]h(is|at)

 

모두 가능합니다. 세번째와 네번째 경우에서 괄호의 기능을 알 수 있습니다.

2.4. 일반문자와 특수문자

아마도 지금쯤 ^이 두가지 의미로 쓰인다는 것이 이상해 보일 수도 있을 겁니다. 정규표현식에서 쓰이는 문자는 크게 일반문자와 특수문자로 나눠볼 수 있습니다. 여기서 특수문자란 앞에서 다룬 (순서대로) [, ], -, ^, ., *, ?, +, (, ), $, |과 같이 정규표현식에서 문자그대로의 의미로 해석되지 않는 문자들입니다. 반대로 특수문자가 아닌 문자는 일반문자로 G, N, U와 같이 문자그대로의 의미를 가집니다.

여기서 특수문자는 쓰이는 곳에 따라 다릅니다. 자세히 말하면, []안이냐 밖이냐에 따라 특수문자가 달라집니다.

우선 [] 밖에서는 -를 제외한, ^, ., *, ?, +, (, ), $, |이 특수문자입니다. 여기서 ^는 줄의 시작을 의미합니다.

그러나 [] 안에서는 -^만이 특수문자이고, 다른 문자들은 일반문자가 됩니다. 즉, [*?+]는 반복이 아니라 문자그대로 *?+ 중 하나를 뜻합니다. [] 안에서 (제일 앞에 나오는) ^는 뒤에나오는 조건을 만족하지 않는 문자를 찾는다는 의미가 됩니다.

2.5. 특수문자에 해당하는 문자 사용하기

그렇다면 찾으려는 부분에 특수문자가 포함되있다면 어떻게 할까요? 예를 들어 what?이라는 물음표로 끝나는 문자를 찾고 싶다고, egrep 'what?' ...이라고 하면 ?이 특수문자이므로 wha를 포함한 whale도 찾게 됩니다. 또, 3.14로 찾을때는 3+14 등도 찾게 됩니다.

특수문자가 [] 안과 밖에서 다르다는 점을 생각하여 각각의 경우를 살펴봅시다. 우선 [] 밖의 경우는,

 

  • \을 특수문자 앞에 붙이기. 예, what\?, 3\.14
  • []을 사용하기. 예, what[?], 3[.]14

 

첫번째 방법은 보통 escape라고 부르며, 특수문자 앞에 \을 붙여서 특수문자의 특수한 기능을 제거합니다. 두번째 방법은 [] 밖의 많은 특수문자들이 [] 안에서는 일반문자가 되는 점을 이용한 것입니다. 보통 첫번째 방법을 많이 사용합니다.

주의할 점은 첫번째 방법에서 사용하는 \가 뒤에 나오는 특수문자를 일반문자로 만드는 특수문자이기 때문에, 문자 그대로의 \을 나타내려면 \\을 사용해야 합니다. 물론 [\]도 가능합니다.

[] 안의 특수문자는 위치를 바꿔서 처리합니다. 먼저, ^[^abc]와 같이 처음에 나와야만 의미가 있으므로 [abc^]와 같이 다른 위치에 사용하면 됩니다. -[a-z]와 같이 두 문자 사이에서만 의미가 있으므로 [-abc][abc-]와 같이 제일 처음이나 마지막에 사용합니다.

(grep과 같이 도구에 따라 역으로 일반 문자앞에 \를 붙여서 특수문자를 만드는 경우가 있습니다. 아래 각 도구에 대한 설명 참고.)

3. 정규표현식 고급

고급이라고 제목을 붙였지만 여기서는 도구마다 차이가 나거나 없을 수도 있는 내용을 다룹니다.

3.1. 자세한 반복

반복하는 횟수를 자세히 조정할 수 있습니다.

 

  • {n} - 정확히 n번 반복. a{3}aaa와 같음.
  • {n,} - n번 이상 반복. a{3,}aaaa*와 같음.
  • {n,m} - n번 이상 m번 이하 반복. a{2,4}aaa?a?와 같음.

 

물론 (abc){2,4}같이 괄호로 반복할 단위를 지정할 수 있습니다. 여기서 {, }*, ?, +와 같이 특수문자임을 주의하길 바랍니다. (엄밀한 의미에서 }은 특수문자가 아닙니다.)

3.2. 기억하기

앞에서 여러 문자를 묶어서 단위로 만드는 괄호는 정규표현식으로 찾은 부분을 기억하여 다른 곳에서 사용할때도 사용합니다. 예를 들어, HTML 제목 테그는 (egrep에서) <[Hh]([1-6])>.*</[Hh]\1>와 같이 찾을 수 있습니다. 여기서 ([1-6])(, )는 사이에 대응된 부분을 기억하여 (첫번째 기억된 내용을) \1에서 사용합니다. 즉, <H2>Conclusion</H2>에서 </H2> 외에 </H1></H3> 등은 만족하지 않습니다.

(...)은 여러번 사용할 수 있고 (심지어 겹쳐서도), \n은 기억된 n번째 부분을 지칭합니다. 순서는 기억이 시작되는 (의 순서입니다.

여기에서는 ()이 특수문자이고, 그냥 \(\)는 일반문자이지만, 도구에 따라 반대인 경우도 있습니다.

이 기능은 또 치환에서 자주 사용됩니다. 아래 vi와 sed 부분을 참고하길 바랍니다.

3.3. 단어 찾기

앞에서 the를 찾으면 the 외에 them 등도 같이 찾는 것을 보았습니다. 그러면 정관사 the만 찾으려면 어떻게 할까요?

간단히 정규표현식 앞뒤에 공백을 추가한 the를 생각해 볼 수 있습니다. 그러나 이 정규표현식에는 두가지 문제가 있습니다. 첫번째는 탭(tab) 등 다른 공백문자가 있기 때문입니다. 두번째는 이 정규표현식으로 the가 줄 제일 앞이나 제일 뒤에 나오는 경우는 찾지 못하기 때문입니다. 물론 [], ^, $|를 복잡하게 결합하여 이들 경우를 모두 처리할 수 있는 정규표현식을 쓸 수 있지만, 자주 사용하는 표현이기 때문에 간단히 할 수 있는 방법이 마련되있습니다.

그것은 \<\>로, \<은 공백에서 공백이 아닌 문자 사이, \>는 공백이 아닌 문자에서 공백 사이의 위치를 나타냅니다. 즉, ^$와 같이 문자에 해당되지않고 위치만을 나타냅니다. 이제 해답은 \<the\>입니다.

3.4. 단축 표현들

정규표현식에는 이외에도 자주 사용되는 표현에 대한 단축된 형식을 제공합니다. 예를 들어, vim에서 \i는 (C 언어 인식자 이름에서 사용하는 문자인) [_a-zA-Z0-9]와 같습니다. 그러나 이런 단축된 형식은 도구에 따라 많은 차이가 나기때문에 관련 문서를 참고하길 바랍니다.

POSIX.2에서 정의한 단축 표현은 다음과 같습니다. (C 언어에서 <ctype.h>에 선언된 is*() 함수와 비슷한 것을 알 수 있습니다.) 단축된 형식이 나타내는 정확한 값은 locale에 따라 변합니다. 여기서는 영어권에서 사용하는 값을 보입니다. 독일어의 움라우트(ä)와 같이 다른 언어권에서는 다른 값을 가질 수 있습니다.

 

  • [:alnum:] - 알파벳과 숫자. [a-zA-Z0-9]
  • [:alpha:] - 알파벳. [a-zA-Z]
  • [:cntrl:] - 제어문자. ASCII 값으로 0x00-0x1F와 0x7F
  • [:digit:] - 숫자. [0-9]
  • [:graph:] - 제어문자와 공백을 제외한 문자. ASCII 값으로 0x21-0x7E
  • [:lower:] - 소문자. [a-z]
  • [:print:] - 제어문자를 제외한 문자. ASCII 값으로 0x20-0x7E
  • [:punct:] - [:graph:] 중에 [:alnum:]에 속하지 않은 문자. !, @, #, :, ,
  • [:space:] - space, tab, carriage return, new line, vertical tab, formfeed. ASCII 값으로 0x09-0x0D와 0x20
  • [:upper:] - 대문자. [A-Z]
  • [:xdigit:] - 16진수에 사용하는 문자. [0-9a-fA-F]

 

** 요약

 

^ (caret)라인의 처음이나 문자열의 처음을 표시^aaa (문자열의 처음에 aaa를 포함하면 참, 그렇지 않으면 거짓)
$ (dollar)라인의 끝이나 문자열의 끝을 표시aaa$ (문자열의 끝에 aaa를 포함하면 참, 그렇지 않으면 거짓)
. (period)임의의 한 문자를 표시^a.c (문자열의 처음에 abc, adc, aZc 등은 참, aa 는 거짓)
  a..b$ (문자열의 끝에 aaab, abbb, azzb 등을 포함하면 참)
[] (bracket)문자의 집합이나 범위를 나타냄, 두 문자 사이의 "-"는 범위를 나타냄[]내에서 "^"이 선행되면 not을 나타냄
{} (brace){} 내의 숫자는 직전의 선행문자가 나타나는 횟수 또는 범위를 나타냄a{3} ('a'의 3번 반복인 aaa만 해당됨)
* (asterisk)"*" 직전의 선행문자가 0번 또는 여러번 나타나는 문자열ab*c ('b'를 0번 또는 여러번 포함하므로 ac, ackdddd, abc, abbc, abbbbbbbc 등)
+"+" 직전의 선행문자가 1번 이상 나타나는 문자열ab+c ('b'를 1번 또는 여러번 포함하므로 abc, abckdddd, abbc, abbbbbbbc 등, ac는 안됨)
?"?" 직전의 선행문자가 0번 또는 1번 나타나는 문자열ab?c ('b'를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨)
() (parenthesis)()는 정규식내에서 패턴을 그룹화 할 때 사용 
| (bar)or를 나타냄a|b|c (a, b, c 중 하나, 즉 [a-c]와 동일함)
\ (backslash)위에서 사용된 특수 문자들을 정규식내에서 문자로 취급하고 싶을 때 '\'를 선행시켜서 사용하면됨filename\.ext ("filename.ext"를 나타냄)
\s띄어쓰기 

정규식에서는 위에서 언급한 특수 문자를 제외한 나머지 문자들은 일반 문자로 취급함

위의 정규식 연산자 가운데 vi에서는 지원하지 않는 연산자가 있습니다. vi의 경우 +연산자도 없습니다. regular expression library에 따라 지원하는 연산자의 종류가 상당히 다릅니다. 요즘은 perl-style regular expression이 표준으로 자리잡아가는 것이 대체적인 추세이고, perl의 regular expression은 가장 복합하고 기능이 많은 편입니다.

    Vim 에서는 +, ?, (, ), {숫자} 등의 확장정규표현식은 연산자 앞에 백슬래쉬를 붙여주어서 사용할 수 있습니다.
 * [abc] (a, b, c 중 어떤 문자, "[a-c]."과 동일)  * [Yy] (Y 또는 y)  * [A-Za-z0-9] (모든 알파벳과 숫자)  * [-A-Z]. ("-"(hyphen)과 모든 대문자)  * [^a-z] (소문자 이외의 문자)  * [^0-9] (숫자 이외의 문자)  * [[:digit:]] ([0-9]와 동일)  * a{3,} ('a'가 3번 이상 반복인 aaa, aaaa, aaaa, ... 등을 나타냄)  * a{3,5} (aaa, aaaa, aaaaa 만 해당됨)  * ab{2,3} (abb와 abbb 만 해당됨)  * [0-9]{2} (두 자리 숫자)  * doc[7-9]{2} (doc77, doc87, doc97 등이 해당)  * [^Zz]{5} (Z와 z를 포함하지 않는 5개의 문자열, abcde, ttttt 등이 해당)  * .{3,4}er ('er'앞에 세 개 또는 네 개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당)  * * (선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열도 해당됨)  * .* (선행문자가 "."이므로 하나 이상의 문자를 포함하는 문자열, 공백 문자열은 안됨)  * ab* ('b'를 0번 또는 여러번 포함하므로 a, accc, abb, abbbbbbb 등)  * a* ('a'를 0번 또는 여러번 포함하므로 k, kdd, sdfrrt, a, aaaa, abb, 공백문자열 등)  * doc[7-9]* (doc7, doc777, doc778989, doc 등이 해당)  * [A-Z].* (대문자로만 이루어진 문자열)  * like.* (직전의 선행문자가 '.'이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이 됨, like, likely, liker, likelihood 등)  * ab+ ('b'를 1번 또는 여러번 포함하므로 ab, abccc, abb, abbbbbbb 등)  * like.+ (직전의 선행문자가 '.'이므로 like에 하나 이상의 문자가 추가된 문자열이 됨, likely, liker, likelihood 등, 그러나 like는 해당안됨)  *[A-Z]+ (대문자로만 이루어진 문자열)  * yes|Yes (yes나 Yes 중 하나, [yY]es와 동일함)  * korea|japan|chinese (korea, japan, chinese 중 하나)  * [\?\[\\\]] ('?', '[', '\', ']' 중 하나) 

 

 

3.5. 눈으로 보는 정규표현식

정규표현식이 패턴을 찾는 과정을 시각적으로 보여주는 프로그램들이 있습니다.

 

 

4. 정규표현식 사용

이제 이런 정규표현식을 실제로 어떻게 사용하는지 알아봅시다. 평소에 많이 사용하는 vi, grep/egrep/fgrep, sed/awk의 예를 들어보겠습니다.

4.1. vi에서

vi에서 정규표현식은 ':'상태에서 사용합니다. (실제로 이 상태에서 실행하는 명령어는 ed나 ex라는 프로그램이 처리하게 됩니다. 그래서 보통 이 상태를 "ed-모드"라고 합니다.) 문서에서 원하는 패턴을 찾으려면, (커서 다음에서 찾을때) /패턴이나 (커서 전에서 찾을때) ?패턴을 사용합니다.

정규표현식은 문자치환과 결합하여 강력한 기능을 합니다. 문자치환 명령은 다음과 같습니다.

 

:범위s/변경전/변경후/수정자

"범위"는 명령이 실행될 범위를 나타내며, 보통은 현재 편집하고 있는 문서 전체를 지시하는 (첫번째 줄에서 마지막 줄까지를 뜻하는) 1,$나 줄여서 %를 사용합니다.

뒤에 "s"는 치환(substitute) 명령어입니다.

"변경전"과 "변경후"에 치환할 내용을 입력합니다. "변경전"에 정규표현식을 적습니다. 정규표현식으로 ., *, ^, $, [], \(...\), \<...\>, POSIX.2 단축 표현을 사용할 수 있습니다. 여기서 여러 문자를 묶여서 단위를 만들고 찾은 내용을 기억하는 특수문자가 \(, \)임을 주의해야 합니다. 반대로 (, )가 일반문자입니다. vim(VI iMproved)에서는 vi에 추가로 |, +, (?와 같은) =, {n,m}을 사용할 수 있지만, 앞에 \를 붙여야 합니다. 또, vim에는 \i, \k, \p, \s 등의 단축 표현들이 있습니다.

"변경후"에 \n&를 사용할 수 있습니다. \n는 "변경전"에서 n번째 \(...\)에 대응하는 부분이고, &는 "변경전"에 만족한 전체를 나타냅니다. 예를 들어, :%s/\([0-9][0-9]*\) \([Cc]hapter\)/\2 \1/는 문서에서 12 Chapter같은 부분을 Chapter 12와 같이 치환하고, :%s/F[1-9][12]*/&/g는 HTML 문서에서 "F1" ~ "F12"란 단어 모두를 굵은 체로 바꿉니다. (주의! &는 정규표현식의 특수문자는 아니지만 vi의 특수문자이므로, 문자그대로의 &를 사용하려면 대신 \&를 사용해야 한다.) 이외에도 (뒤를 모두 대문자로) \u나 (뒤를 모두 소문자로) \l같은 기능이 있습니다.

"수정자"는 치환 명령의 세부사항을 결정합니다. 필요한 것만 뒤에 적어주면 됩니다.

 

  • g (global) - 한 줄에서 정규표현식을 만족하는 부분을 여러개 찾았을 때 모두다 치환한다. 이 수정자를 사용하지 않으면 처음 것만 치환한다.
  • c (confirm) - 만족하는 정규표현식을 찾았을때 치환하기 전에 확인한다.
  • i (ignore-case) - 대소문자를 무시하고 찾는다. 즉, :%s/[aA][bB][cC]/XXX/ 대신에 :%s/abc/XXX/i를 사용할 수 있다.

 

마지막으로 주의할 점은 치환명령어가 / 문자로 각 부분을 구분하기때문에 "변경전"이나 "변경후"에 / 문자를 사용하려면 \/ 같이 써야합니다. 필요하다면 / 대신 다른 문자를 사용해도 됩니다. 예를 들어, :%s/\/usr\/local\/bin\//\/usr\/bin\//g 대신 :%s#/usr/local/bin/#/usr/bin/#g가 알아보기 더 쉽습니다.

4.2. grep/egrep/fgrep에서

grep은 Global Regular Expression Print(ed 명령어로 :g/re/p)의 준말로 입력에서 원하는 정규표현식을 찾는 명령어입니다. grep에는 egrep과 fgrep이라는 변종이 있습니다. 전통적으로 egrep은 grep 보다 더 다양한 정규표현식을 지원하고, fgrep은 정규표현식을 지원하지 않고 빨리 검색하기 위한 명령어입니다. GNU grep에서 egrep은 grep -E, fgrep은 grep -F와 같습니다.

grep과 egrep 모두 ., *, ?, +, {n,m}, ^, $, |, [], (...), \n, \<...\>, POSIX.2 단축 표현을 지원합니다. 단, grep은 ?, +, {, |, (, )를 일반문자로 보기때문에 특수문자로 사용하려면 앞에 \를 붙여야 합니다.

4.3. sed/awk에서

...

5. Perl 정규표현식

...

6. 정규표현식 응용

7. 정규표현식 프로그래밍

프로그래밍 언어와 관계없이 정규표현식을 프로그래밍하는 방식은 비슷하다. 먼저, 사용할 정규표현식을 "컴파일"한다. 여기서 컴파일한다는 말은 정규표현식을 실행파일로 만든다는 말이 아니라 정규표현식을 처리하기위한 내부 자료구조를 만든다는 뜻이다. 이 자료구조를 사용하여 정규표현식을 빠르게 처리할 수 있다. 컴파일한 후 컴파일된 자료구조를 사용하여 원하는 검색과 치환을 하게된다. 마지막으로 사용이 끝난 자료구조를 반환한다. 프로그래밍 언어에 따라 이 과정이 필요없는 경우도 있다.

7.1. C 언어

glibc(GNU C Library)에 정규표현식을 위한 다음과 같은 함수들이 있다.

 

#include <regex.h>int regcomp(regex_t *compiled, const char *pattern, int cflags);int regexec(regex_t *compiled, char *string, size_t nmatch, regmatch_t matchptr[], int eflags);void regfree(regex_t *compiled);size_t regerror(int errcode, regex_t *compiled, char *buffer, size_t length);

먼저 함수와 자료형이 선언된 regex.h를 포함한다. regcomp()pattern에 주어진 정규표현식을 컴파일하여 결과를 compiled에 저장한다. cflags 인자는 정규표현식 처리 옵션들을 지정한다. 정상적으로 실행되면 0을 반환하고, 오류가 발생한 경우 0이 아닌 값을 반환한다.

표 1. cflags 인자

 

REG_EXTENDED
REG_ICASE대소문자 구별안함
REG_NOSUB괄호로 찾은 부분 영역 기억하지 않기
REG_NEWLINE여러 줄을 처리. 이 옵션이 없다면 .에 행바꿈 문자가 포함되고, (사이에 행바꿈 문자가 있더라도) ^$는 찾으려는 문자열의 시작과 끝만을 의미한다.

실제 정규표현식 검색은 regexec()으로 한다. string에 정규표현식으로 검색할 문자열을 주면 ...

http://www.onjava.com/pub/a/onjava/2003/11/26/regex.html 참고

7.2. Java

7.3. Python

7.4. PHP

 

참고 자료

  • grep(1), regex(3), regex(7), fnmatch(3) manpage
  • GNU C Library 문서
  • Learning the vi Editor, 6th ed, Linda Lamb, O'Reilly, 1998
  • sed & awk, 2nd ed, Dale Dougherty & Arnold Robbins, O'Reilly, 1997

'기본 카테고리' 카테고리의 다른 글

sql 학습  (0) 2008.02.13
MySQL5  (0) 2008.02.05
에디터용 글꼴  (0) 2008.02.01
USB 메모리나 하드에 WIndows XP 설치하기 (USB에 XP설치)  (0) 2008.01.31
파이썬으로 EXCEL 파일 열고 쓰기  (0) 2008.01.31

에디터용 글꼴

윈도우에서 텍스트 파일을 다루기 시작한 이래로 쭉 '굴림체'를 사용하고 있었다. 윈도우 기본 글꼴인 만큼 가독성도 훌륭하고 꽤 괜찮은 글꼴이긴 한데 코딩 작업에 쓰기에는 몇가지 흠이 있다. 소문자 엘, 대문자 아이의 모양이 거의 같은데다 영문자 오, 숫자 영의 모양은 완전히 같고 역슬래시가 원화 기호로 나온다는 점. 그래서 코딩용 글꼴을 바꿔보려는 생각은 계속 갖고있었지만 마음에 드는 글꼴이 없어서 여지껏 굴림체를 쓰고 있었다.

내가 원하던 글꼴의 조건은,

  1. 고정폭 글꼴일 것
  2. I,l,1,O,0의 구분이 명확할 것
  3. 굴림체에 버금가는 가독성을 보일 것
  4. 역슬래시를 \ 모양으로 표시해줄 것
  5. 9pt 에서 Anti-aliasing 없이 출력될 것
  6. 한글은 굴림 9pt로 출력될 것

훌륭한 영문 글꼴은 많지만 대부분 6번 조건을 만족시키지 못했는데 한글과 섞어놨을때 한글이 바탕체로 나오거나 굴림체지만 10pt 정도로 크게 나오거나 하는 문제가 많았다. 결국 저 6가지 조건을 만족시키는 글꼴은 없는가 하고 고민하다가 직접 만들면 안되나? 하는 생각까지 이르러서 주말에 삽질을 좀 했다.

한글과 섞어 써야 하기 때문에 글꼴 폭은 굴림체와 같은 5픽셀로 하고 Verdana와 굴림체의 영문을 적절히 섞어서 만들었다. 굴림체에 너무 익숙해져서 그런지 좀 지저분해 보이는 감이 없지 않지만 계속 보고 있으니 좀 익숙해지는 것도 같고..;;

굴림체로 표시된 소스코드

굴림체

새로 만든 글꼴로 표시된 소스코드

새로 만든 Crizin Code 글꼴 (이름참..;;)

Courier, Courier New, Lucida Sans Typewriter, 굴림체 글꼴과 비교

다른 글꼴들과 비교

(2006.05.23) 일부 특수문자가 나오지 않는 오류 수정 (KYG님 완전 감사!!)

CrizinCode.ttf

Version : 2006.05.23.01

USB 메모리나 하드에 WIndows XP 설치하기 (USB에 XP설치) | 기술
2007/11/28 19:40

출처는 아래 영문사이트임니다

http://www.ngine.de/index.jsp?pageid=4176

그대로 따라 하시면 됨니다만 XP SP1는 잘되는 편이나 SP2는 시스템에 따라 부팅이 안되는 경우가 많습니다

저도 USB20G 외장 하드에 SP2로 설치를 시도했으나 제 컴퓨터에서는 윈도우 설치시 파일 Copy후재부팅

되면서 부팅이 되고 하드웨어를 잡아야 하는데, 재부팅이 안되고 파란화면이 나옴니다.

SP2 PRO 버젼이나 HOME 버젼 다 해봤는데 안되더군요. 그래서 SP1로 설치하니 잘되서, SP2 업데이트를하니

SP2로도 무사희 부팅이 됨니다. 그러니 처음 SP2로 적용해보시고 안되시는 분은, SP1으로 설치 하신다음

SP2 업데이트를 해보세요. 외장하드에 설치해서 체감속도도 쓸만하더군요.

외장하드에 메모리에 윈도우XP 설치를 하시려는 분들은 아마 속도빠른 USB메모리나 요즘 MySSD UX 를 노트북등에서

사용하시려는 분들이겠지요.

위 영문 사이트의 내용을 간단희 설명하고 첨부파일에 미리 적용한 파일을 올려놓으려 했으나 여러분이 가지고 계신 XP의

종류가 달라서 안되시는 분들이 있을까봐 첨부파일은 USBboot.inf 파일만 올리겠으니, 위 방법대로 수동으로 파일을 수정하시면 됨니다.

XP버젼은 Home이나 PRO는 상관없지만 기본버젼이 아니고 SP1이나 SP2버젼을 이용하셔야 함니다

그리고 컴퓨터는 당영희 USB부팅을 지원해야 함니다.

가. USB 부팅지원 XP CD 만들기

1.UltraISO 를 다운받아 설치함니다. 비슷한 winiso등의 ISO를 다룰수 있는 프로그램이면 됨니다

여기서는 UltraISO를 사용하겠습니다

http://www.ezbsystems.com/ultraiso/download.htmUltraISO 홈페이지

그다음 XP CD를 준비하시고 XP CD 안에 i386 폴더에서 아래 5개의 파일을 임의의 폴더에 복사후

알집이나 winrar등으로 USB.IN_ USBPORT.IN_ USBSTOR.IN_ 를 압축을 해제하면

USB.INF USBPORT.INF USBSTOR.INF 의 3개의 파일이 생김니다. 원래의 파일은 삭제해도 됨니다.

혹 XP를 ISO나 BIN파일등으로 가지고 계신분들은 Ultraiso 를 실행해서 ISO파일을 열고 i386 폴더에서

아래의 파일을 원하는 폴더에 드래그앤드롭 하면 됨니다

TXTSETUP.SIF

DOSNET.INF

USB.IN_

USBPORT.IN_

USBSTOR.IN_

2. XP CD를CD롬에 넣고UltraISO를 실행 후 F8키를 누르거나 도구-CD 이미지 만들기를 눌러서

XP CD를 ISO 파일로 만듬니다. 이미 ISO 파일로 가지시고 계신분은 3.번으로 넘어가면 됨니다

3.이제 위 5대의 압축해제한 파일들을 편집하면 됨니다 아래 방법대로 하시면 됨니다

a. TXTSETUP.SIF

노트패드나 울트라에디터등 에디터로 아래부분을 수정하시면 됨니다

아래 [InputDevicesSupport.Load] 부분을 찾아서 줄친 파일을 잘라내서[BootBusExtenders.Load]

부분에다가 붙혀넣기 하면 됨니다. 다른파일들도 마찬가지로 하시면 됨니다, 없는 부분은그대로 타이핑하시면됨니다

줄친글자는 삭제할 부분이고 굵은 글자는 타이핑칠 부분임니다

[InputDevicesSupport.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbccgp = usbccgp.sys
hidusb = hidusb.sys
serial = serial.sys
serenum = serenum.sys
usbstor = usbstor.sys

[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
isapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = ohci1394.sys
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys

[InputDevicesSupport]
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci = "Open Hostcontroller",files.usbohci,usbohci
usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub
hidusb = "HID-Parser",files.hidusb,hidusb
serial = "Treiber fr seriellen Anschluss",files.none,serial
serenum = "Enumerator fr seriellen Anschluss",files.none,serenum
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor
usbccgp = "USB Generic Parent Driver",files.usbccgp,usbccgp

[BootBusExtenders]
pci = "PCI-Bustreiber",files.pci,pci
acpi = "ACPI Plug & Play-Bustreiber",files.acpi,acpi
isapnp = "ISA Plug & Play-Bustreiber",files.isapnp,isapnp
acpiec = "Integrierter ACPI-Controllertreiber",files.none,acpiec
ohci1394 = "IEEE-1394-Bus-OHCI-konformer Anschlusstreiber",files.ohci1394,ohci1394
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci = "Open Hostcontroller",files.usbohci,usbohci
usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor

[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = dmreg.inf,DM.AddReg
AddReg = usbboot.inf,usbservices

[SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3
bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll = 1,,,,,,3_,2,0,0,,1,2

b. DOSNET.INF

[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

c. usb.inf

[StandardHub.AddService]
DisplayName = %StandardHub.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender

[CommonClassParent.AddService]
DisplayName = %GenericParent.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbccgp.sys
LoadOrderGroup = Boot Bus Extender

d. usbport.inf

[EHCI.AddService]
DisplayName = %EHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbehci.sys
LoadOrderGroup = Boot Bus Extender

[OHCI.AddService]
DisplayName = %OHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbohci.sys
LoadOrderGroup = Boot Bus Extender

[UHCI.AddService]
DisplayName = %UHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbuhci.sys
LoadOrderGroup = Boot Bus Extender

[ROOTHUB.AddService]
DisplayName = %ROOTHUB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender

e. usbstor.inf

USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3

ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender

f.새로만드는 파일 USBBOOT.INF

아래부분을 복사해서 usbboot.inf 파일로 만들던지 첨부파일의 usbboot.inf 를 사용하세요 이 파일은 모든버젼의

XP CD 에 공통으로 사용되는 같은 파일임니다.

http://mfiles.naver.net/69bb5f8891c8a4123f59/data28/2007/10/19/117/usbboot-songdg55.rar

이파일을 받아도 됨니다.

[usbservices]

HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","DisplayName",0x00000000,"USB Mass Storage Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ImagePath",0x00020000,"system32\DRIVERS\USBSTOR.SYS"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","DisplayName",0x00000000,"USB 2.0 Enhanced Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ImagePath",0x00020000,"system32\DRIVERS\usbehci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","DisplayName",0x00000000,"USB2 Enabled Hub"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ImagePath",0x00020000,"system32\DRIVERS\usbhub.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","DisplayName",0x00000000,"Microsoft USB Universal Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ImagePath",0x00020000,"system32\DRIVERS\usbuhci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","DisplayName",0x00000000,"Microsoft USB Open Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ImagePath",0x00020000,"system32\DRIVERS\usbohci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Type",0x00010001,1

4. 이제 위 파일들중usb.inf usbport.inf usbstor.inf 를 압축할 차례임니다

http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/Cabsdk.exe

위에 사이트에서 Cabsdk.exe 를 다운받아 실행하면 압축이 풀림니다 이중 bin 폴더의 파일을 위에서 압축해제한

파일들이 있는곳으로 Copy 후 cmd(DOS창) 창을열어서 파일들이 있는곳으로 이동 후 아래와 같은 명령을 내림니다

cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

5. 이제 UltraISO 를 실행하고,만들어 논 XP의 ISO 파일을 연다음, 아래의 파일들을 드래그앤드롭해서 I386 폴더에

덮어쓰기 하고 저장하면 됨니다.

USBBOOT.INF

DOSNET.INF

TXTSETUP.SIF

USB.IN_

USBPORT.IN_

USBSTOR.IN_

6. 공CD나 CDRW를 넣고 5. 번에서 저장한 XP 를 구우면 됨니다.

UltraISO에서는 F7키를 눌러서 CD 이미지 레코딩을 하면 되고 아니면 Nero 등에서 구우면 됨니다

나. CD로 XP 설치하기

컴퓨터의 내장하드의 파워케이블을 제거해서 내장 하드를 인식 못하게 하거나, CMOS 에서 내장 하드를 인식못하게 함니다

그다음 USB 메모리나 하드를 컴퓨터에 연결하고 Cmos (바이오스)로 들어가서부팅운선순위를 1번째는 CD로 놓고 2번째는 USB

한다음 저장후 XP CD 부팅을해서 XP를 설치하면 됨니다.

XP CD를 넣고 부팅하면, 하드를 선택하는 부분이 있는데, 내장하드를 cmos에서만 인식 못하게 하면 USB 하드가 먼저 잡희고

그다음 내장하드도 IDE 호환모드등이면 2번째로 잡힘니다. 이때 USB하드를 선택하고 이왕이면 포멧을 하고 설치하면

XP파일을 USB하드에 Copy 후 몇초기다리거나 엔터를 치면 자동으로 재부팅되고 나머지 설치과정을 진행함니다.

만일 재부팅과정에서 파란화면이 나오면, XPCD를 SP2로 했다면 SP1으로 만들어서 다시 한번 해보세요

XP를 설치 후 나머지 드라이버나 프로그램을 설 치 한 다음 Cmos 에서 원래 내장하드를 연결하거나 Cmos에서 인식하게 고치고

USB 하드로 부팅하면 내장하드가 D: 드라이버로 인식을 하게 됨니다.

다. USB 하드로만 XP설치 하기

이 방법은 나. 의 CD로 설치 하는것 보다 시간이 더 많이 걸리고 안될 수도 있으니 CD 드라이브가 있다면 CD로 설치하고

없다면 마지막 방법으로 설치해보세요

1. HP USB TOOL 툴이나 FlashBootWizard 등으로 USB하드를 FAT32로 포멧하고 DOS로 부팅되게 함니다

DOS에서는 config.sys 에서는 himem.sys를 autoexec.bat에 반듯이 smartdrv.exe 를 로드하세요 안그러면 XP설치가 많이 느려짐니다
2. 위에서 수정한 XP.iso 파일를 UltraISO 등으로 열어서 I386 폴더만 USB 하드로 Copy함니다
3. 이제 재부팅해서 위 2.번과 같이 내장하드를 제거하거나Cmos에서 인식못하게 하고 저장한다음 USB 하드로 부팅함니다
4. DOS로 부팅되면
USB의 i386 폴더로 이동함니다
cd i386 엔터
Winnt 엔터
이렇게 하면 XP의 설치를 시작함니다
나머지는 위 CD 설치 방법과 비슷함니다
5. FAT32를 쓸거면 그냥 사용하면 되고 만일 NTFS로 사용할거면

a.시작, 실행을 차례로 누르고 cmd를 입력한 다음 확인을 누릅니다.
b.명령 프롬프트에서 CONVERT driveletter: /FS:NTFS를 입력합니다.
c.Convert.exe가 파티션을 NTFS로 변환하려고 시도합니다

d. c: 드라이브에 대한 단독 액세스를 얻을 수 없기 때문에 지금은 변환할 수 없습니다.

다음에 시스템이 다시 시작될 때 변환되도록 하시겠습니까?(Y/N)

가 나오면 Y를 누르고 재부팅하면 NTFS로 변환이 됨니다

라.팁

1. USB하드면 상관이 없으나 만일 USB 메모리라면 메인메모리가 충분하다면 가상메모리를 없에거나

내장 하드로 변경함니다

2. 작은 용량의 USB메모리에 XP를 설치했다면 위 가상메모리를 변경한것 만으로 많은 공간이 생기며

이 밖에 아래 공간의 파일들을 제가 하고 나면 WIndows는 1기가정도만을 차지 함니다

windows\system32\dllcache\*.*

windows\temp\*.*

windows\Driver Cache\*.*

windows\help\Tours\*.*

windows\SoftwareDistribution\Download\*.*

windows\$HF_MIG$\* 윈도우 업데이트파일
windows\$NTUNIN* 로 시작하는 폴더로 윈도우 업데이트파일

3. 제어판-인터넷 옵션-설정-폴더이동 부분을 내장하드로 이동 한다든지 하면 USB메모리를 좀더 오래

사용 할수 있을 검니다.

USB메모리는 쓰기제한 횟수가 있어서 어떤거는 1만번정도 어떤거는 10만번정도라고 함니다. 제품마다 다르지많요

4. 내컴퓨터-오른쪽마우스-속성-고급-환경변수 에서 Temp와 tmp폴더도 내장 하드등으로 변경하면 USB메모리에

쓰기횟수를 줄일수 있습니다.

5. USB에 XP를 설치하면기본으로 이동 디스크로 연결되어빠른 제거를 위해 최적화 되어 있어 쓰기 캐시가 안되어

있습니다. 그래서 쓰기시 느릴수가 있는데 USB에 쓰기를 많이 안한다면 모르지만 캐시를 설정하려면

내컴퓨터-오르쪽마우스-속성-하드웨어-장치 관리자-디스크 드라이브-USB 하드 선택하고 오르쪽 마우스 누르고 속성

-정책-성능을 위해 최적화에 선택 한다음 그 밑에 디스크 쓰기 캐시 사용을 체크함니다

시스템에 따라디스크 쓰기 캐시 사용이 활성화가 안되는 경우가 있습니다

6. 디스크 최대절전모드가 안된다고 하지만 방법이 있다고 함니다

http://www.msfn.org/board/Multiple_Partition_USB_Stick_Multi_Boo_t69211.html에 방법대로

USB 장치를 고정디스크로 만드는 방법을 사용하면 됨니다

a. http://www.xpefiles.com/download.php?id=88&sid=3653ceee7119d789678efb0f3654773e여기서 히다찌

드라이버를 다운 받습니다. 안받아지는경우에는아래서 받습니다

http://mfiles.naver.net/68ba5e8990c9a5133f59/data28/2007/10/19/152/xpfildrvr1224_320-songdg55.zip

b. regedit 실행해서 아래 키값중 USBSTOR 이하의 값을 알아냄니다. 아래 빨간친 부분으로 USB장치에 따라 값이 다름니다

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Disk&Ven_Generic&Prod_USB_Flash_Disk&Rev_0.00

c. a, 에서 다운받은 파일이나 첨부파일(xpfildrvr1224_320) 을 압축을 해제하고 이중 cfadisk.inf 를 수정해야 함니다

[cfadisk_device] 에서

%Microdrive_devdesc% = cfadisk_install,IDE\DiskIBM ..... 생긴 문자열을 찾아서 아래와 같이 바꿈니다

(주의점은 8군데이고 USBSTOR\이하 부분은, 연결한 USB 장치에 따라 다르니 무턱되고

아래 빨간 글자를 넣으면 안됨니다)

%Microdrive_devdesc% = cfadisk_install,USBSTOR\Disk&Ven_Generic&Prod_USB_Flash_Disk&Rev_0.00

d. 수정한 cfadisk.inf 를 저장하고 아래 방법대로 USB 하드나 메모리의 드라이버를 이걸로 업데이트하면 됨니다

내컴퓨터-오른쪽마우스-속성-하드웨어-장치 관리자-디스크 드라이브-USB 하드 선택하고 오르쪽 마우스 누르고 속성-

드라이버-드라이버 업데이트 -목록 또는특정위치 ... -다음-검색 안함. 설치할 ..... -다음-디스크 있음-찾아보기-

경로를 Hitachi storage driver 있는 폴더로 지정-Hitachi Microdrive 선택하고 다음을 눌러서 드라이버를 업데이트 하면 됨니다

7. USB메모리에 XP를 설치하면, 자체적으로 레지등 변경하고 하는등의 작업을 해서 USB 메모리에 쓰기를 계속 한다고 함니다

영문에서 검색해보니 10만번 쓰기가 가능한 장치에서 하루에 8시간 컴을 쓴다고 할때 60일 정도면 USB메모리가

에러가 날 수가 있다고 함니다. (USB하드는 제외)

그러니 위 방법대로 임시 파일등의 쓰기를 행하는 작업은 내장 하드로 이동시키고 사용하시고 아래 방법의 EWF방법을

한번 사용해보세요. EWF란 MS에서 나온 XP Embedded라는 OS의 EWF(Enhanced Write Filter)라는 드라이버입니다.

EWF는 XP 사용시 변동 사항을 메모리에 저장해두었다가 사용자의 저장 명령이 있는 경우에만 한꺼번에 저장을 하는

드라이버라고 함니다. EWF는 XP Embedded에 포함된 드라이버로, 레지스트리 조작에 의해 일반 XP에서도 사용이

가능하다고 함니다

http://mason.gmu.edu/~sfiorito/eXPinstall.htm 영문원본 사이트임니다

http://pc4car.com/bbs/view.php?id=diy&no=374 번역해 놓은 사이트 임니다.

http://mfiles.naver.net/8052b66178214dffd7a5/data29/2007/10/19/79/ewf-songdg55.zip 첨부파일 EWF.zip

8. USB메모리나 CF메모리등 플래시메모리에 XP를 설치시는 파일 시스템은FAT32를 권장함니다 . 이유는 NTFS에서는

파일을읽는 경우에도 파일마다 마지막 액세스 기록시간을 남기게 되어 쓰기가 진행됨니다. 그러니 FAT32를 사용하시고 꼭

NTFS를 사용하시겠다면 아래 레지를 1로 해서 이 기능을 해제하세요

Registry Settings
System Key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
Value Name: NtfsDisableLastAccessUpdate
Data Type: REG_DWORD (DWORD Value)
Value Data: (0 = disable, 1 = enable
9.플래시메모리에 XP를 설치하겠다면 이왕이면 웨어레벨링 (wear leveling)을 지원하는 플래시를 사세요
이기능은 쓰기를 할때 메모리의 섹터마다 쓰기 횟수를 기억해서 쓰기가 많이된 섹터에는 저장을 안하고 다른곳에
쓰기를해서 전체적으로 비슷하게 쓰기횟수를 만드는 기능으로 메모리릐 수명을 몇배 더 오래가게 함니다
CF중트랜센드 133x과 266x 모델은 사양서에 wear-leveling 이 지원된다고 하네요. 디직스 300X 메모리도요.
10. 플래시중에는 MYSSD UX가 빠른 속도를 지원하지만 이게 성능이 부족하다고 느끼시는분은
이런 상품들이 있네요 CF to IDE 나 CD to SATA 로 CF메모리를 IDE나 SATA에 직접 연결하는 제품들임니다
http://www.andico.co.kr/bbs/view.php?id=n_product&no=132요건3만원대로 값이 비싼데
트랜센드 266X CF 메모리는 평균읽기 40MB/sec 과액세스가 0.4ms 가 나오네요. 거기다가 RAID등으로 묶으면
더 높은 속도가 나와 SSD 보다 저렴한 가격으로 SSD 효과를 낼수 있다고 함니다
또 비슷한 거로는 5000원에서 1만원대의 CF 2 IDE 젠더들이 옥션에서 팔리고 있습니다. 속도는 잘 모르겠습니다
써보지를 않아서, CF 2 IDE로 검색해보세요

'기본 카테고리' 카테고리의 다른 글

정규표현식 기초  (0) 2008.02.01
에디터용 글꼴  (0) 2008.02.01
파이썬으로 EXCEL 파일 열고 쓰기  (0) 2008.01.31
제 1회 게임기획전문가 시험 실기  (0) 2008.01.19
CMap Class  (0) 2008.01.10

파이썬으로 EXCEL 파일 열고 쓰기

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

import win32com.client
xl = win32com.client.dynamic.Dispatch("Excel.Application")
wb = xl.Workbooks.Open("c:\\temp.xls")
sh = wb.Sheets[0]
sh.Cells(1,1).Value = "test"
wb.Save()
xl.Quit()

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

import win32com.client
xl = win32com.client.dynamic.Dispatch("Excel.Application")
wb = xl.Workbooks.Open("c:\\temp.xls")
sh = wb.Sheets[0]
sh.Cells(1,1).Value = "test"
wb.Save()
xl.Quit()

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

게임기획전문가 실기 자격증

2005/07/12 09:15

http://blog.naver.com/dldlaldo/40015152976

노하우 : 게임기획전문가 실기 노하우! Knowhow
평점 :
+3 (5명)나도 평가하기조회: 2198
집필자 : min2__da(2004-12-30 15:13)신고하기 | 이의제기
노하우사전 분류 :게임

-----------------
제 1회 게임기획전문가 시험 필기.
-----------------

1번문제> 자신의 만들게임의 장르를 결정하고 그 이유에 대해서 200자 내외로 설명하시오.

-200자면 원고지 한장 분량이군요. 이른바 30초 마케팅용임을 염두에 둔다면 문제없을듯 합니다.
문제가 정확하다면, 중요한건 '장르의 결정'이고, 설명해야하는건 그 장르를 왜 결정했는지에
대한 이유일 것입니다. 만들게임에 대해 쓸 필요는 없어보이는 문제입니다. 왜 그 장르의 게임을
만들기로 했는지에 대한 이유에 대해서 집중하시면 문제될 것은 없어보입니다.
200자 내외라면 몇자나 초과해도 되느냐라고 궁금해하실 분이 있으실지 모르겠는데, 200자쯤 되는
그 '줄'에서 멈추시면 됩니다. 글자 맞추는 놀이는 아니고, 내외라고 했으니 앞뒤 10자 정도의
여유는 있다고 봐야겠죠.


2번문제>예시된 장르 RTSgame <실시간 전략시뮬레이션> 참고게임 ----->스타크래프트,워크래프트 시리즈..등등..
* 그에 따른 대상 연령층을 정하시오..
* 그 대상 연령층을 정한 이유가 무엇인가 (200자내외)

(예시를 들 필요가 있습니다만, 앞서 이야기한 이유로 예를 들 필요가 있다면 문제에 언급된 대로
스타크래프트로 하겠습니다. 하지만 수험자에게 스타크래프트를 분석하라는 문제는 아닙니다.)

-이건 전제를 조건으로 하는 문제입니다. 당신이 RTS를 만들기로 이미 결정된 것입니다. 이제부터
변명의 시간인거죠. 어라? 난 RTS 안할건데... 란 생각은 마시고, 문제에 충실하시길. RTS를 만들기로
했으니, 이제 거기에 입각해서 생각하면 됩니다.그래서 머리속에 당신이 만들 RTS를 하나 생각해두어야 합니다.
대상 연령층을 잡는거야 잡으시면 되고, 이유는 이 게임에 어떤 특징이나 이유때문에 그 연령층이 타겟이
되는지 설명해야합니다. 그 게임이 그 연령층(유아,10-15세,중고등학생,23-30세의 남성 등등..)에게 어떤
점에서 어필할 수 있는 지, 혹은 그 연령층 외에 계층은 어떤 이유로 이 게임의 타겟이 되지 못했는지에
대해 언급하면 됩니다.

* 게임의 제목을 정하시오.
* 그 제목을 정한 이유를 무엇인가? (200자 내외)

-앞서와 같습니다. 제목은 마케팅의 첫번째 무기입니다. 왜 그 제목을 정했으며, 그 제목은 어떤 의미를
가지고 어떻게 어필하는지 적어야합니다. 앞서 문제인 연령층에 그 제목이 어떻게 어필하는지에 대해 적
을수도 있을 겁니다. 독특한 언어가 사용되었다던가, 어감이 특정한 어감이라면 왜 그런 어감이 됐으며
어떤 이유가 있었는지, 그 제목이 보는 이로하여금 어떤 기대를 불러일으키는지 언급할 수 있습니다.
앞으로 편의상 수험자가 디자인하는 이 게임을 'It'이라고 부르겠습니다.

* 다른 게임에 비해서 특징이 되는 플레이상의 기술에 대해서 3가지 기술하시오..
-RPG의 스킬 이야기가 아닙니다. 워크래프트는 스타크래프트와 다르게 히어로라는 성장개념이 가미되어
있습니다. 이것은 분명 일반게임인 스타크래프트에 비해 특징이 되는 플레이상의 기술일 것입니다.
마찬가지로 'It'에서 유저가 느끼게될 게임방식의 차이점을 말하면 됩니다. 요는 아 이 부분은 다른
RTS(스타크래프트나 워크래프트 등등)랑 다르구나라고 생각할 수 있는 부분에 대한 이야기입니다.
문제에서 언급한 '다른 게임'상호간의 차이로서는 MS사의 어떤 RTS는 스타크래프트와 다르게
플레이어가 직접 컨트롤을 통해 지역공격등의 게임내 개입을 할 수 있습니다.
이런 식으로 '다른 RTS'들과 'It'의 플레이상의 차이점에 대해 3가지를 씁니다.


* 게임의 기술적 우위에 대해서 3가지 기술하시오.
* 위에 같은 기술이 있을경우 우려되는 문제를 기술하시오.
-문제의 문맥이 여러가지로 해석될 수 있어서, 자료부족을 탓할 수밖에 없군요.
어쨌든 무턱대고 유추한다면 개발환경이나 개발기술에 대한 이야기가 될 수 있을 겁니다.
아마 실제문제가 이렇게 무턱대고 나오리라고는 생각하지 않습니다. 좀 더 설명이 있기를
기대해야죠. --; 3D라거나, LOD가 적용됐다거나, 그런걸 언급해야할까요? 잘 모르겠습니다.--;



* 이 게임의 장,단점을 4분야에서 2가지 이상 기술하시오.<SOWT분석>

-SOWT는 전략경영기법입니다. Strength,Weakness,Opportunity,Therat의 약자입니다.
강점과 약점, 기회와 위기를 말합니다.
대체로 강점과 약점은 이 게임 자체의 내부적인 이야기이고,
기회와 위기는 외부적인 이야기를 말합니다.
이 강,약,기회,위기 4분야에서 2가지씩 써넣는 것입니다.

흠... 예를 들어야겠는데, 그럼 선을 넘는 것 같아서, 다른 이야기를 잠시 드리겠습니다.
SOWT에는 다른 4가지 전략이 있습니다. SO ST WO WT가 그것입니다.

SO는 강점+기회 전략으로서 이 기회에 이 게임 'It'의 강점을 밀어붙여서 시장에서 전략적 승리를 얻는 것입니다.
ST는 강점+위기 전략으로서 위기를 이 강점을 이용해 극복하는 것입니다.
WO는 약점+기회 전략으로서 '기회'때문에 '약점'이 축소되는 것, 약점이 있지만, 기회로 극복하는걸 말합니다.
WT는 약점+위기 전략으로서 위협을 피하고, 약점을 최소화하는 방법을 도출하기 위한 것입니다.

따라서 SOWT는 거꾸로 SO,ST,WO,WT를 도출할 수 있는 내용을 적으면 되며, 작성방법은 다음과 같습니다.

첫째. 강점부분에 이 게임이 가진 2가지 강점을 써 넣습니다. 주 관점은 시장에서의 승리. 유저의 호응입니다.
언급된 2가지 강점은 이 주 관점을 충족시키는 것이어야 합니다.

둘째. 약점부분은 강점의 반대입니다.

셋째. 기회부분에는 SO전략을 충족시킬 수 있도록 '강점'부분에서 언급한 2가지 강점이 어떤 외부적 요인에
의해 강점으로서 존재할 수 있는지 적으면 됩니다.
또 WO전략을 충족시킬 수 있도록, '약점'이 그리 큰 문제가 되지 않는 외부적 이유를 적으면 됩니다.

넷째. 위기부분에는 ST,WT를 충족시킬 수 있도록, 강점이 소실되고,약점이 도출될만한 외부적 요인을 적습니다.

다시 첫째. 강점은 SO,ST를 도출할 수 있도록, '기회'에 적은 2가지 요인에 상승할만한 것이어야 합니다.
또 위기에 적은 이유로 무의미해질 위험이 있는 것이어야 합니다.
다시 둘째- 약점은 WO,WT를 도출할 수 있도록, '기회'에서 감춰지며, '위기'에서 문제가 될만한 내용이어야합니다.

이렇게 4개가 상호보완적이 될 수있도록 적으면, 문제가 요구하는 답변을 적을 수 있습니다.

뜬금없이 저가형 에어콘에 대해서 적자면...(사실과 무관함. 그냥 예시를 위한 예시임)

강점 : 가격 초 저렴.
약점 : 성능은 더 저렴(--).
기회 : 경제불황으로 인해 저가형 상품 선호, 덥지않은 날씨이므로 이정도 성능으로 충분함.
위기 : 불황과 그리 덥지않은 날씨로 인한 매출 감소로 고가 에어콘 가격이 하락세임.

이런 식이 됩니다. 뜬금없이 적은 예라 좀 적절치 못한듯 하지만, 아무튼 이런 식입니다.




* 인터 페이스를 예시에 맞게 구성하시오..<그림 문제>
예시>자원:금,철강,기름,인구..
전체 맵, 메인메뉴 ,동맹 버튼 , 공격,이동,정지,순찰 버튼
힘 ,체력, 민첩 ,지능, 인벤토리 <6개저장> ,마법스킬,레벨
현재 경험치, 다음 레벨 필요 경험치, 캐릭터 얼굴 등등

- 수험자가 디자인한 게임인 'It'의 인터페이스를 그리면 됩니다. 기술적 특징과 플레이상의
차이점을 수용할 수 있어야 합니다. 직접 그리던가 컴퓨터로 그리던가하면 됩니다.


* 이 인테페이스의 특징을 기술하시오...<200자내외>
- 말 그대로입니다. 앞서 플레이상의 차이점을 수용했다면 그 부분을 쓰고, 또 다른게임들에
비해 발전된 다른 기능성향상 혹은 플레이 편의를 위한 아이디어가 들어갔다면 그점을 언급
하면 됩니다.



* 마케팅시 광고 카피를 정하시오.
- 뛰어난 카피라이터가 될 필요는 없습니다만, 좋으면 좋을수록 좋겠죠. 짧고 간결하게.
이 게임의 캣치프레이즈를 적으면 됩니다. 게임 잡지를 보고 다른 게임의 캣치프레이즈를
봐두면 도움이 될 것입니다.
대충 항간의 말로는 인칭은 2인칭 단수로 쓰고, 명사와 동사로 만들다거나, 압축해야하고,
대상이 앞에 있는 것처럼 대화체, 유행어로 말하거나, 드라마틱해야한다는 소리도 있습니다.
http://ilovecopy.com/ 에 가면 카피에 대한 많은 이야기가 있습니다. 제목이라던가,
바로 아래문제인 텍스트를 작성하는데도 도움이 될 겁니다.

* 마케팅시 주 광고 카피아래에 들어갈 게임을 간략하게 설명하는 글 3가지를 기술하시오.
-카피와 마찬가지. 카피보다는 좀 더 구체적이고, 직접적인 것이 되겠죠.

* 마케팅시 이벤트로한 아이템을 패키지와 함께 추가 하려고 한다..
어떤 아이템을 넣을 것인가? <5000원짜리 >
* 그 아이템을 선택하는 이유는 무엇인가?
-이건 따로 멘트할게 없군요. 팩키지게임 열어보면 들어있는 기념품같은 걸 뭘 넣을건지
왜 그걸 골랐는지 이유를 설명하는 것입니다.





*캐릭터 배경 설정 문제
보기>장보고라는 소년이 있다. 때는 제력 000년이고 무슨무슨 왕국이
왕권을 강화하기위해서 이제는 수인들이 사는곳으로 변해버린 성지를
되찾기 위한 전쟁을 일으킨 시대이다. 0 은 인간관 짐승이 반반씩
섞인 종속들로 결코 인간은 될수 없는 종속이다..

문제>여자 캐릭터를 정하고 그 캐릭터의 그래픽 디자인 특징을 13항목
이상 설명하시오..

- 미국에 있는 원화그리는 사람에게 메일로 여자 캐릭터를 그려달라고
부탁하면서 그 모양새를 설명한다고 생각하면 됩니다. 13가지 항목으로
주문하는 것이죠. 미니스커트를 입히라는둥, 단발머리라는 둥...


보기>장보고 일행이 설산을 향해 가던중 무슨 무슨 왕국의 지그프리트
왕자이 야만족 마을을 학살하는 것을 발견한다.. 장보고 일행은 그것
을 저지하기 위해 지그프리트 왕자 일행과 전투를 하게되고 지그프리
트 왕자 일행과 전투를 하게되고 지그 프리트 왕자 일행은 패하고 도
망을 간다..전투가 끝난뒤 장보고는 야만족 영웅을 만난다.
설산을 들어가는 입구에서 설산으로 들어가시 위해서는 협곡을 지
나가야 하는데 그러기 위해서는 수송계 부대가 필요하다. 그때 수송계
부대가 위기에 처했다는 소식을 듣고 수송계 부대를 구하기 위한 전투
를 벌인다. 이때 제시카라는 여자를 구하는 이벤트가 발생한다.
협곡을 지나서 설산 입구에 들어섰을때 지그프리트 왕자는 장보고
일행을 막기 위해 눈사태를 일으키고 지그프리트 왕자의 동생 제시카
의 도움으로 빠져나갈 입구를 찾게 된다.
그러나 눈사태가 멈추지 않고 계속되어서 위기에 빠질무렵 어디선가
동방의 닌자 일행이 나타나 함께 탈출한다. 달아난 지그프리트 왕자를
쫒다가 지그프리트 왕자의 마법 부대를 만나서 전투를 하려는 찰나 믿
었던 닌자 일행이 장보고가 지닌 용의 구슬을 탈취해서 달아나고 장보
고는 힘겹게 전투를 벌인다...

*각 장면대로 순서를 나열하시오.< 플로우 챠트 작성문제>
- 파랜드텍틱스같은 게임의 장면을 연상하십시오. 일종의 씬의 문제입니다.
비주얼이 나오고, 전투를 하고, 다시 비주얼이 나오고 전투를 하는 문제입니다.

예를 들자면 어떤 게임에서 "주인공이 길을 가다가 비명소리를 듣고 뛰어가니
늑대에게 둘러쌓인 여성이 있었다. 늑대를 해치우면 여성은 고맙다며 다리를
다쳤다고 근처의 마을에 데려다달라고 한다."라면..

비주얼 1 (주인공 걸어감. 비명소리대사출력,주인공 대사출력, 주인공이동)
전투 1 (늑대,여자NPC. 늑대가 전멸하면 비주얼2,주인공이 죽으면 종료)
비주얼 2 (여자 대사, 주인공 대사. 페이드아웃)

입니다. 플로차트 작성하는 문제는 따로 설명하지 않습니다.


*게임 진행시 등장한 캐릭터를 순서대로 나열하시오..
*게임 진해시 등장한 지면을 순서대로 나열하시오..
-설명 생략. 보기를 보고 추리면 됩니다.




<시나리오 작성문제>
*상황을 대본을 작성하시오.. (1000자 내외)
상황> 세계를 정복하려는 대마왕이 공주를 납치하고,주인공과 동료1,2는
모든 역결을 물리치고 마지막으로 공주가 납치되어 있는 대마왕 앞에
서 있다..
표정 1-->화난 표정
표정 2-->찡그린 모습
표정 3-->우는 모습
표정 4--> 웃는 모습
기호를 넣으며 작성..

-일반적 RPG에서 옆에 그림 나오면서 대사 나오는 비주얼씬을 말하는 것입니다.
작성의도는 이 답변을 보고 어떤 그림파일을 불러오고, 어떤 대사를 출력할 지를 정하는 것입니다.
아래 3가지 요소를 적어나가면 됩니다.

대상(주인공,동료1,2,대마왕,공주)
표정(표정1,2,3,4)
대사(좋을대로~)

표정은 문제에 횟수가 정해져있지 않는한 한번만 쓸 필요는 없습니다만, 골고루 써주는게 좋습니다.





* 어는 양식장에 물고기 5종류를 풀어 놓았다. 물고기 B를 잡을 확률을
구하라.
물고기 A --6마리 물고기 B-->12마리 물고기 C-->8마리
물고기 D -->10마리 물고기 E-->4마리
* 물고기 C를 잡을 확률을 구하라.
- 못풀면 기획시험을 보지 마십시오. 자격증 질 떨어집니다.




*다음표는 피보나치 수열이다.. 레벨 증가시 경험치가 늘어나는 상태를
수열로 나타내어라.
1 2 3 4 5 ..... _______> LV1 LV2 LV3 LV4 LV5 LV6 LV7..
1 1 2 3 5 .... _______> 10 10 20 30 50 80 120

-피보나치 수열은 앞의 두 수를 더하여 본수로 삼는 방법입니다.
1부터 시작하면 0+1=1, 1+1=2, 입니다. 그래서 처음엔
1 1 2 가 되고, 다음 수는 앞의 두 수인 1+2=3이 됩니다.
1 1 2 3 이 되고, 다음 수는 2+3은 5입니다.
1 1 2 3 5 가 되고, 다음수는 3+5인 8입니다.
1 1 2 3 5 8...

수열로 나타내는 부분은 알아서 공부하십시오. 기획의 방향성 문제는 아니니까요.
대충 말씀드리면 An=An-2+An-1 정도겠죠. (n번째 A) = (n-2번째 A) + (n-1번째 A)
우연찮게도 n은 레벨과도 같습니다. 레벨n의 경험치An은 An-2+An-1입니다만, 문제의
보기를 보면 아시겠듯 곱해줘야할게 있습니다.






* 레벨 증가시 경험치가 늘어나는 상태를 수식으로 나타내어라..
LV1 LV2 LV3 LV4 LV5 LV6 LV7......
10 20 40 80 160 320 640......
-해당레벨의 경험치 A= 레벨*2 라면 2레벨의 경험치는 4점입니다, 답이 아닙니다.
해당레벨의 경험치 A= (위의 보기에 나온 값이 정확히 나오는 식)이 들어가야합니다.





* 비공격형 몬스터가 있다. 그 몬스터의 행동 양식은 7가지되어있다.
몬스터 게이지 100%~30% ,30%~
PC 의 캐릭터 100%~65% ,65%~30% , 30%~0
상황에 따른 몬스터의 행동을 설명하여라..
-행동양식은 행동의 조건입니다. 아래와 같은 식으로 사용합니다.
몬스터의 HP가 100~30%면 전투
몬스터의 HP가 30%미만이면 도망친다.
단 이때 PC의 HP가 30%미만이면 도망치지 않는다.
몬스터게이지와 캐릭터 게이지를 어떤 행동의 지표로 삼는 것입니다. 잘 만들어보세요.





*스토리 보드 작성문제
주어진 시나리오를 주고,,,난뒤 스토리 보드작성하는 문제도 있음.

- 이 문제는 필기를 잘 준비하신 분이라면 문제 없을겁니다.





-----


1차는 여기까지입니다. 저도 게임기획전문가 자격의 수준을 알기위해 이 시험을 봤었죠.
다음의 2차는 게임과기획(http://cafe.daum.net/imgCon) Q&A 게시판. 194번글. 가을바람님의 글입니다.
무단 전제한 것에 대한 죄송한 말씀과 함께, 손수 정리해주신 가을바람님께 감사드립시다.^^

---------------------------------------
제 2회 게임기획전문가 실기문제
---------------------------------------


1.[창작성] 게임 컨텐츠 제작의 기초단계 [6점]
설명: 제작할 게임의 장르가 결정된 이후에는 도일 장르의 게임들과 비교해서 어떠한 독창성을 갖을 것인가에 대하여 구상해 두어야 한다.
다음의 주어진 장르에 따라 게임을 제작하게 될 경우 다음 문제들의 답안을 작성하라.

장르: 탑뷰 방식을 중심으로 한 슈팅게임.
조건: 제작인원 10명으로 10개월 이내에 제작할수 있을 것.
동일 장르의 게임 : (ex/라이덴, 기가윙스)

문제:
1-1) 동일 장르의 게임들과 비교해서 어떠한 요소로 차별화를 시도할 것인지에 대하여 작성하시오.(차별화된 요소 3가지 이상 기술)
1-2) 온라인 게임으로 기획할 경우 다수의 유저들이 서로 경쟁 할 수 있는 환경이 필요하다.
어떠한 환경을 조성하여 다수의 유저들이동시에 즐길 수 있게 할 것 인지 기술하시오.
(3가지 이상 기술)

2.[창작성] 주어진 조건에 맞는 스토리 구상과 세계관 설정 [15점]
설명: mmorpg장르의 게임을 만들 때 자연스러운 커뮤니티의 형성을 위하여 게임세계 안에서 여러 가지 단체와 세력이 존재할 필요가 있다. 다음의 주어진 조건에 맞는 게임의 세계관을 설정하라.

조건: 현대 내지는 미래으 ㅣ한반도에 위치한 항구도시, 과학문명과 초능력, 영혼, 악령, 주술 등이 공존하는 세계관.

문제
2-1) 게임의 무대가 되는 도시는 다른 도시와 철저히 교통과 통신이 두절된 상태이어야 하며 탈것(자동차, 오토바이등)들이 등장하기는 하지만 매우 귀한 아이템으로 등장하기 때문에 주 이동수단은 보행이 되어야한다. 어떠한 사건이 일어나서 그런 상황이 되었는지 간략한 배경스토리를 설정하라. (200자 이내)

2-2) 플레이어들이 임의로 결성 및 해체할 수 있는 혈맹 또는 길드 개념의 단체 이외의 게임세계의 흐름을 이끌어가는 (직업을 대표하며 해당직업을 지원해주는)커다란 세력을 지닌 단체들이 필요하다.
문제 2-1에서 설정한 스토리와 연계하여 4개의 세력들의 이름과존재 이유, 주요 목적 등을 서술하라. (100자 이내)

2-3 플레이어들이 가지게 될 직업의 이름과 개념을 정의해야 한다.
다음 조건에 맞는 직업의 이름과게임 상에서 그 직업이 생기게 된 유래를 간단히 정리하라.
조건1. 아이템 조합, 자원 채취에 능하고 전투에는 부적합 하지만 회피력이 뛰어나고 폭약을 사용할 때 추가 데미지를 가질 수 있는 직업.
조건2. 접근전용 무기 사용에 능하고 체력과 공격력 방어력 등이 잘 조화를 이루는 균형 잡힌 전사 타입의 직업
조건3. 원거리용 무기 사용에 능하고 각종 기계장비들을 사용할 때 보너스 포인트를 받는 직업
조건.4 여러 가지 주술을 사용하여 전투를 수행하고 주술아이템을 만들어내는 직업

3.[창작성] 캐릭터 설정 능력 [9점]
설명: 캐릭터와 직업에 대한 기본적인 배경스토리와 설정이 끝나면 어떠한 요소들을 사용하여 캐릭터의 개성을 나타낼 것인지 결정해야 한다.

문제: 2번에서 제시했던 게임에서 등장하는 필레이어 캐릭터들이 가질 수 있는 모든 능력치의 이름과 용도를 정의하여 표로 만들어라, 모든 능력치의 용도는 2가지 이상이 되어야 한다.
(2개 이상의 능력치 작성)
ex) 이름/용도
힘 / 1) 근접무기 공격력 상승 2) 체력 최대치 증가
집중력 / 1) 원거리 무기 공격력 상승 2) 모든 무기 명중률상승
지능 / 1) 주술 위력 상승 2)마력 최대치 증가

4. [창작성] 배경 설정 능력 [4점]
설명: 캐릭터들이 활동할 무대가 될 맵을 작성해야 한다. 타일구조로 맵을 구성 할 때는 타일 셋트의 개수와 조합 방식 등을 생각해보아야 한다.
조건: 800*600 해상도에 쿼터뷰(타일크기 128*84)구조의 게임배경을 제작해야 한다.

문제:
4-1) 작은 선착장이 잇는 해안 마을이 스타트 지점으로 결정되었다. 캐릭터가 한화면(800*600)을 직선으로 가로질러 가는데 걸리는 시간이평균 3초가량 걸린다고 가정 했을 때 마을안의 모든 편의시설을 방문하는데 걸리는 시간이 40초가 넘지 않도록 마을의 대략적인 지도를 제작하고 마을의 크기(픽셀사이즈)를 설정 하라.

4-2) 위의 문제에서 만들어진 지도대로 배경을 제작할 경우 타일은 몇 개의 셋트가 필요한지 결정하시오.

5. [분석 및 마케팅] 판매 전략 분석[4점]

5-1)2,3,4,번에서 설정한 게임이 기존의 mmorpg들과 어떠한 차이점을 가지고 있으며 게임상의 요소 중 어떤 부분을 강조하여 마케팅을 할 것인지에대한 보고서를 작성하라, 보고서에는 다음과 같은 요소가 포함되어 있어야 한다.



<b>문제5 답안에 포함되어야 하는것은 대략...
경쟁게임에는 어떤것이 있고, 이 경쟁게임의 특징과 2,3,4 에서 설정한 게임의 특징을 설명하는 것.
그리고 경쟁게임과 비교되는 특별한 점
어떤 계층을 대상으로 할 것인가 등...</b>

12[기술성] 캐릭터 행동 양식 설정[3점]
허드슨 소프트의 ‘봄버맨’과 유사한 게임을 만들고자 하는데 몬스터와 캐릭터 사이으 ㅣ거리와 위치, 장애물의 유무, 포탄의 위치에 따라서어떠한 행동을 보일 수 있는지하나의 몬스ㅓ가 최대 5개의 행동방식을 가질 수 있다고 가정 할 때 몬스터로 등장할 캐릭터들의 ai표를 작성해서 프로그래머에게 전달하고자 한다. 알기 쉽게 작성하라

13. [기술성] 게임 인터페이스 작성 [5점]
쿼터뷰 rpg게임의 인터페이스를 작성하려고 한다. 플레이어 캐릭터는 기본적으로 무장의 교환, 마법사용, 아이템 조합, 캐릭터간 거래, 용병(소환수) 관리 등이 가능해야 한다.
앞서 열거한 행동들이 메인화면에서 마우스 클릭 4버 이내에 모두 가능할수 있도록 인터페이스화면과 순서도를 작성하라.

14. [기술성] 각 팀의 역할 분담 및 PM[8점]
게임개발팀은 크게 분류해서 기획팀, 프로그래밍팀, 그래픽팀 으로 나뉘어 진다. 각 팀들의 역할을 각각 50자 이내로 서술하고, 기획팀중 pm의 자질과 역할에 대하여 기술하시오,

문제:
14-1) 기획팀의 역할에 대해서 50자 이내로 서술하시오.
14-2) 프로그램팀의 역할에 대해서 50자 이내로 서술하시오.
14-3) 그래픽팀의 역할에 대해서 50자 이내로 서술하시오.
14-4) PM의 역할에 대해서 50자 이내로 서술하시오.

15) [창작성] 초기 구상시 문제점해결[3점]
문제: 주사위를 던져서 보드 위를 움직이는 턴방식의 온라인 보드게임을 만들려고 한다. 동시 참여 하는 플레이어의 수가 최대 6인까지 가능하게 구상하려고 하는데, 동시 참여하는 플레이어의 수가 많아질수록 자신의 턴을 기다리는 동안 대기시간이 길어져서 지루해할 우려가 있다. 어떠한 방식으로 해결할 수 있는지에 대하여 자신의 생각을 서술하라.

16. [창작성] 현재 상황의 문제점 파악 [3점]
문제: 현재 대한민국의 게임시장에서 패키지게임은 거의 자취를 감추고 온라인 게임만이전성기를 맞이 하고 있다.
물론 세게적으로 보았을 때도 온라인 게임쪽에비중이 커지고 있는 추세이지만 이와 같은 현상은 유독 대한민국에만 두드러지게 나타난다고 한다. 현재 게임시장에 있어서 패키지 게임의 문제점은 무엇이고 이를 해결하기 위해서는 어떠한 환경이 준비되어야하는지에 대해서 서술하시오.

CMap Class
자료구조용으로 많이 사용하는데 CList, CArray 등이있다.
3가지의 장단점을 비교한 내용이다.

classOrderd?Indexed? Insert an elementSearch for specified elementDuplicate elements?
Listyesnofastslowyes
Arrsyyesby intslowslowyes
Mapnoby keyfastfastno(keys), yes(values)


표에서 나와있듯이 속도면에서는 CMap 클래스가 좋은것 같다.

원형은
template< class KEY, class ARG_KEY, class VALUE, class ARG_VALUE >class CMap : public CObject
KEY : Map에 키로 사용될 오브젝트클래스
ARG_KEY : KEY참조값으로 사용된다
VALUE : 저장할 값을나타낸다.
ARG_VALUE : VALUE 참조값으로 사용된다.

사용예 :
// CMap 클래스 헤더 포함
#include "afxtempl.h"

// CMap 유형 정의
typedef CMap <CString, LPCSTR, StrType, StrType&> CMapTest;
// CMap 전역변수 선언
CMapTest m_Map;


// 해쉬 테이블 초기화 및 크기(권장 : 소수값) 설정
m_Map.InitHashTable(17);

// 키와 키값 해쉬 테이블에 저장
m_Map.SetAt(str1, mStr1);
m_Map.SetAt(str2, mStr2);
m_Map.SetAt(str3, mStr3);

// 각각의 저장된 값을 해쉬 테이블에서 읽음
StrType strVal;

strVal.hWnd = NULL;
m_Map.Lookup(str1, strVal);

strVal.hWnd = NULL;
m_Map.Lookup(str2, strVal);

strVal.hWnd = NULL;
m_Map.Lookup(str3, strVal);

// 모든 데이타 삭제
m_Map.RemoveAll();





2008년도 국가기술자격검정 시행공고



「국가기술자격법 시행령」제15조의 규정에 의거 2008년도 국가기술자격검정 시행계획을 다음과 같이 공고합니다.




2008년 1월 4 일








한국산업인력공단 이사장






Ⅰ. 검정시행일정 및 종목

1. 검정시행일정

등급

회별

필기시험 원서접수

필 기

시 험

필기시험

합격(예정)자 발 표

응시자격 서류제출

필기시험 합격자결정

실기(면접)

시 험

합격자

발 표

방문제출

실기(면접)시험 원서접수

인 터 넷

인 터 넷

기술사

제84회

1.18~1.24

2.17

3.31

3.31~4.3

4.26~5.8

6.2

제85회

5.2~5.8

5.25

7.7

7.7~7.10

8.2~8.13

9.8

제86회

8.1~8.7

8.24

10.6

10.6~10.9

11.1~11.13

12.8

기능장

제43회

3.7~3.13

3.30

4.11

4.14~4.17

5.17~6.6

6.23

제44회

6.20~6.26

7.13

7.25

7.28~7.31

8.23~9.12

9.29

기사

(산업기사

전문사무)

제1회

1.25~1.31

3.2

3.14

3.17/3.19~3.21

(3월18일 제외)

4.19~5.2

6.2

제2회

4.18~4.24

5.11

5.30

6.2~6.5

7.5~7.18

8.18

제3회

7.4~7.10

7.27

8.14

8.18~8.21

9.27~10.10

11.10

제4회

8.15~8.21

9.7

9.26

9.29~10.2

11.1~11.14

12.15

기능사

제1회

1.18~1.21

2.3

2..22

1차: 2.11~2.13 (필기시험 면제자 대상)

2차: 2.25~2.27

(당회 합격자 대상)

3.22~4.4

4.29

제2회

3.7~3.13

3.30

4.11

4.14~4.16

5.17~5.30

6.23

제3회

전문계고등학교(이에 준하는 각종 학교 포함)등 필기시험면제자 검정

일반 필기시험면제자는 해당하지 않음

5.13~5.15

6.14~6.29

7.21

제4회

6.20~6.26

7.13

7.25

7.28~7.30

8.23~9.5

9.29

제5회

9.5~9.11

10.5

10.17

10.20~10.22

11.22~12.5

12.29

유의 사항

원서접수시간 : 원서접수 첫날 00:00부터 마지막 날 18:00까지

필기시험 합격(예정)자 발표시간 : 해당 발표일 13:00

※ 단, 기술사의 경우는 00:00

최종합격자 발표시간 : 해당 발표일 00:00

종목에 따라 시행일정이 다르므로 해당 종목의 등급별․회별․시행종목 현황을드시 확인하시기 바람




/*************************************************************

오라클 SQL & SQL*PLUS & PL/SQL Syntax 정리

**************************************************************/


----------------------------------------------------

- * syntax 기호 -

- -

- [] : 대괄호 안의 내용이 생략가능 -

- | : 또는 -

- {} : 중괄호 안의 내용이 하나 이상 올 수 있다. -

- ... : 앞 표기와 같은 형식으로 더 올 수 있다. -

- , : 구분자 -

----------------------------------------------------




/***********************************************************************

SQL, SQL*PLUS

************************************************************************/



* SELECT
SELECT [DISTINCT] {*, COLUMN [ALIAS], . . .}
FROM TABLE_NAME
[WHERE CONDITION]
[ORDER BY {COLUMN, EXPRESSION} [ASC|DESC]];


* 비교연산자

= : 같다.

> : 보다 크다.

>= : 보다 크거나 같다.

< : 보다 작다.

<= : 보다 작거나 같다.

<>, !=, ^= : 같지 않다.

NOT Column_name = : 같지 않다.

NOT Column_name > : 보다 크지 않다.


* SQL연산자

between a and b : a와 b 사이에 있다. (a, b값 포함)

in (list) : list의 값 중 어느 하나와 일치한다.

like : 문자형태와 일치한다. (%, _ 사용)

%는 값이 없거나 하나이상, _는 하나의 문자

in null : null 값을 가졌다.

not between a and b : a와 b사이에 있지 않다. (a, b값 포함하지 않음)

not in (list) : list의 값과 일치하지 않는다.

not like : 문자 형태와 일치하지 않는다.

not is null : null 값을 갖지 않는다.


* 논리연산자

and : 양쪽 컴포넌트의 조건이 true이면 true를 리턴

or : 한쪽 컴포넌트의 조건만이 true이면 true를 리턴

not : 이후의 조건이 false이면 true를 리턴


* 우선순위 규칙

1) 괄호

2) 수치연산자 > 결합연산자 > 비교연산자

3) is[not] null, like, [not] in > [not] between

4) not > and > or


* 문자형 함수

1) 변환함수

lower : 알파벳값을 소문자로 변환

syntax -> lower(column|expression)

upper : 알파벳 값을 대문자로 변환

syntax -> upper(column|expression)

initcap : 첫번째 글자만 대문자로 변환

syntax -> initcap(column|expression)

2) 문자조작함수

concat : 두 문자열을 연결(합성)

syntax -> concat(column1|expression1, column2|expression2)

substr : 문자열 중 특정 문자 또는 문자열의 일부분을 선택

syntax -> substr(column|expression,m,[,n])

length : 문자열의 길이를 구함

syntax -> length(column|expression)

instr : 명명된 문자의 위치를 구함

syntax -> instr(column|expression,m[,n])

lpad : 왼쪽 문자자리 채움

syntax -> lpad(column|expression,n,'string')

rpad : 오른쪽 문자자리 채움

syntax -> rpad(column|expression,n,'string')

ltrim : 왼쪽 문자를 지움

syntax -> ltrim(column1|expression1, 'string')

rtrim : 오른쪽 문자를 지움

syntax -> rtrim(column1|expression1, 'string')

translate : 특정 문자열을 대체

syntax -> translate(column1|expression1, 'string1', 'string2')

replace : 특정 문자열을 대신

syntax -> replace(column1|expression1, 'string1', 'string2')


* 숫자형 함수

round : 숫자를 반올림

syntax -> round(column1|expression1, n)

trunc : 숫자를 절삭

syntax -> trunc(column1|expression1, n)

mod : 나머지를 구함

syntax -> mod(column1|expression1, n)

power : 거듭제곱

syntax -> power(column1|expression1, n)

sqrt : 제곱근

syntax -> sqrt(column1|expression, n)

sign : 양수, 음수, 0인지를 구분

syntax -> sign(column1|expression1)

chr : ascii값에 해당하는 문자를 구함

syntax -> chr(column1|expression1)


* 날짜연산

date + number : 결과는 date : 일수를 날짜에 더함

date - number : 결과는 date : 날짜에서 일수를 뺌

date - date : 결과는 일수(숫자) : 어떤 날짜에서 다른 날짜를 뺌

date + number/24 : 결과는 date : 시간을 날짜에 더함


* 날짜함수

months_between : 두 날짜사이의 월수를 계산

syntax -> months_between(date1, date2)

add_months : 월을 날짜에 더함

syntax -> add_months(date1, n)

next_day : 명시된 날짜로부터 다음 요일에 대한 날짜를 나타냄

syntax -> next_day(date1, 'string'|n)

last_day : 월의 마지막 날을 계산

syntax -> last_day(date1)

round : 날짜를 반올림

syntax -> round(date1 [,fmt]) -> fmt는 'month', 'year'

trunc : 날짜를 절삭

syntax -> trunc(date1 [,fmt])


* 암시적 형변환 (Oracle서버가 자동형변환)

varchar2 or char -> number

varchar2 or char -> date

number -> varchar2

date -> varchar2


* 변환함수

to_char : 숫자나 문자값을 지정한 형식의 varchar2문자열로 변환

syntax1 -> to_char(date, 'fmt') : 날짜를 문자로

syntax2 -> to_char(number, 'fmt') : 숫자값을 문자로

to_number : 숫자를 포함하는 문자열을 숫자로 변환

syntax -> to_number(char) : 숫자를 포함하는 문자열을 숫자로 변환

to_date : 날짜를 나타내는 문자열을 명시된 날짜로 변환

syntax -> to_date(char [,'fmt']) : 날짜를 나타내는 문자열을 명시된 날짜로 변환


* 날짜 형식

scc or cc : 세기(BC날짜에는 -를 붙임)

years indates yyyy of syyyy : 년(BC날짜에는 -를 붙임)

yyy or yy or y : 년의 마지막 3, 2 또는 1자리 수

y,yyy : 콤마가 있는 년

|yyy,|yy,|y,| : ISO표준에 바탕을 둔 4, 3, 2또는 1자리 수

syser or year : 문자고 표현된 년(BC날짜에는 _S를 붙임)

bc or ad : bc/ad 지시자

b.c or a.d : .이 있는 bc/ad지시자

q : 년의 4분의 1

mm : 두자리 값의 월

month : 9자리를 위해 공백을 추가한 월이름

mon : 세자리의 약어로 된 월이름

rm : 로마숫자 월

ww or w : 년이나 월의 주

ddd or dd or d : 년, 월 또는 주의 일

day : 9자리를 위해 공백을 추가한 요일 이름

dy : 세자리 약어로 된 요일 이름

j : Jilian day (bc4713년 12월 31일 이후의 요일 수)


* 시간형식

am or pm : 정오 지시자

a.m or p.m : .이 있는 정오 지시자

hh or hh12 or hh24 : 하루 중 시간(1-12, 0-23)

mi : 분(0-59)

ss : 초(0-59)

sssss : 자정 이후의 초(0-86399)

/ . , : 사용 문자가 결과에 다시 나타남

"문자" : 인용부호내의 문자(들)가 결과에 출력


* 숫자에 영향을 주는 접미사

th : 서수(ddth -> 4th)

sp : 명시한 수(ddsp -> four)

spth or thsp : 명시한 서수(ddspth -> fourth)


* 숫자형식

9 : 9의 수는 출력폭을 지정

0 : 맨 앞에 0을 출력

$ : $ 기호

L : 지역 화폐기호

. : 명시한 위치에 소수점

, : 명시한 위치에 콤마

mi : 우측에 마이너스 기호(음수 값)

pr : 음수를 ()로 묶음

eeee : 과학적인 부호 표기

v : 10을 n번 곱함

b : 0을 0아닌 공백으로 출력


* 기타함수

case, decode : case나 if-then-else-end if 문장의 조건적 조회

1) case

syntax -> case expr when 조건 then 반환값

[when 조건 then 반환값]

...

else 반환값

end

2) decode

syntax -> decode(col|expr, search1, result1[,search2, result2, ...][,default])


* 중첩함수 : 여러 단일행함수의 중첩

syntax -> f3(f2(f1()))


* 그룹함수

avg(distinct|all|n) : null값을 제외한 n개 행의 평균값

count(distinct|all|expr|*) : null이 아닌 행의 개수

max(distinct|all|expr) : 최대값

min(distinct|all|expr) : 최소값

stddev(distinct|all|n) : null값을 제외한 n의 표준편차

sum(distinct|all|n) : null값을 제외한 n의 합계

variance(distinct|all|n) : null값을 제외한 n의 분산


* 그룹함수

syntax : select group_function(column) [,group_function(column)...]

from table_name

[where condition]

[ order by column]


* 그룹핑

syntax : select group_function(column) [,group_function(column)...]

from table_name

[where condition]

[group by group_by_expression]

[having group_condition]

[ order by column]


* 조인

1) cartesian join : 모든 가능한 행들의 조인 (결과가 의미없는 경우가 대부분)

2) equi join(inner join) : 조인 조건이 정확히 일치하는 경우 사용 (일반적으로 PK, FK사용)

syntax : select table1.column1 [,table2.column2, ...]

from table1, table2

where table1.column1 = table2.column2;

3) non-equi join : 조인 조건이 정확히 일치하지 않는 경우에 사용

4) outer join : 조인 조건이 정확히 일치하지 않는 경우에도 모든 행들을 출력

조인시킬 값이 없는 쪽에 (+)연산자 적용

syntax : select table1.column1 [,table2.column2, ...]

from table1, table2

where table1.column1 = table2.column2(+);

5) self join : 하나의 테이블에서 행들을 조인하고자 할 경우에 사용


* SET연산자

syntax : select *|column1[,column2, column3, ...]

from table1

...

set operator

select *|column1[,column2, column3, ...]

from table2

...

[order by column|expression];

1) union : 각 결과의 합 (합집합:중복되는 값은 한번만 출력)

2) union all : 각 결과의 합 (합집합:중복되는 값 그대로 출력)

3) intersect : 각 결과의 중복되는 부분만 출력 (교집합)

4) minus : 첫번째 결과에서 두번째 결과를 뺌 (차집합)


* 서브쿼리

syntax : select select_list

from table

where expression

operator

(select select_list

from table

where expression)


* 서브쿼리에서의 연산자(operator)

1) in : 2개 이상의 값을 리턴하는 서브쿼리에 대해 비교연산자를

기술하면 에러가 발생. 이런 경우 서브쿼리에서 리턴된 목록의

각각과 비교하여 쿼리를 수행하는 연산자

2) any : 서브쿼리에서 리턴된 목록의 각각의 값과 비교

3) all : 서브쿼리에서 리턴된 목록의 모든 값과 비교

4) exists: 서브쿼리에서 적어도 1개의 행을 리턴하면 논리식은 참


* 다중열 서브쿼리

syntax : select *|column1[,column2, ...]

from table

where (column1, column2 ...)

in

(select column1, column2, ...

from table

where condition);


* SQL*PLUS 명령어

a[ppend] text : 현재 편집라인의 끝에 text를 추가

c[hange]/old/new:현재 편집 라인의 old문자를 new문자로 바꿈

del [n] : n라인을 삭제

i[nput] [text] : 현재 편집 라인 다음에 라인을 추가하여 text를 추가

l[ist] [n] : SQL문장을 보여주고, 편집 라인을 이동

n text : n번재 라인을 text로 바꿈

r[un] : buffer에 있는 명령어를 실행한다.(/와 동일)

edit [filename[.ext]] : 지정된 파일의 내용이나 버퍼의 내용을 운영체제의

문자편집기로 불러온다.

sav[e] [filename[.ext]] [rep[lace] | app[end]]

: SQL버퍼의 내용을 파일에 저장하고 기존 파일에 추가하기 위해서 append를,

기존 파일에 중복해서 쓰려면 replace를 사용한다. 기본적인 파일 확장자는 sql이다.

sta[rt] [filename[.ext]] : 지정된 파일을 수행한다. start라는 명열 대신에 @를

사용할 수 있다. 파일 확장자가 .sql이 아니면 파일 확장자를 명시

get [filename[.ext]] : SQL버퍼에 파일의 내용을 기록한다. 파일명의 기본적인 확장자는

.lis또는 .lst이다

spo[ol] [filename[.ext]] [off | out] : SQL*PLUS의 내용을 파일에 저장

host : sql*plus안에서 호스트 운영체제의 명령어를 실행한다.

! : 운영체제 shell로 나들이

!vi file_name.sql : file_name.sql을 vi편집기로 부름 (unix)


* set : sql*plus의 환경설정

syntax : set 시스템변수 값

- 앞 숫자는 기본값

array[size] {20|n} : 데이터베이스 데이터 패치의 크기를 설정

colsep { | text} : 열 사이에 출력되는 문자를 설정 (디폴트:공백하나)

feed[back] {6|off|on} : 질의가 최소한 n개이어야 row의 수를 출력

hea[ding] {off|on} : 열의 heading을 출력할지의 여부 결정

lin[esize] {80|n} : 라인당 문자의 수

long {80|n} : long값을 출력하기 위해 최대 폭을 설정

pages[ize] {24|n} : page당 line수를 지정

pau[se] {off|on|text} : 화면제어를 함

term[out] {off|on} : 결과를 화면에 출력할지의 여부를 결정

col[umn] [column_option] : 열 포맷을 제어

syntax : col[umn] [{column|alias} [option]]

option : cle[ar] : 어떤 열의 형식을 해제

for[mat] format : 열 데이터의 디스플레이를 변경

hea[ding] text : 열 헤딩을 설정, 수직 바(|)는 헤딩 라인을 한줄 띄움

jus[tify] [align] : 열 heading을 정렬(좌, 우, 중간)

nopri[nt] : 열을 숨김

nul[l] text : null일때 디스플레이할 텍스트 명시

pri[nt] : 열을 보여줌

tru[ncated] : 디스플레이 되는 첫번째 라인의 마지막 문자열을 절삭

wra[pped] : 문자열이 끝나면 다음 라인으로 이동

tti[tle] [text|off|on] : 리포트의 머리말을 명시

bti[tle] [text|off|on] : 리포트의 꼬리말을 명시

bre[ak] [on report_element] : 중복값을 제거하고 라인 피드로 행들을 단락지음

-> 해제시 clear break

syntax : break on column[|alias|row] [skip n|dup|page] on ... [on report]

page : break값이 변경될 대 새로운 page로 skip

skip n : break값이 변경될 때 n만큼 줄을 skip(column, row, page, report)

duplicate : 중복되는 값을 출력

compute : SQL*PLUS명령어를 이용하여 요약된 계산을 한다.

해제시 -> clear compute

syntax : compute function of compute_column on break_column

function : count, num, max, min, sum, avg, std, var중 하나

compute_column : 계산에 사용되는 column이나 식

break_column : break명령으로 기술된 column


* 치환변수

& : 리턴되는 데이터를 동적으로 제한, 변수를 인식


* 사용자 변수 정의

1) define variable = value : char데이터형 사용자 변수를 생성하고 값을 할당

2) define variable : 변수, 변수 값, 변수 데이터형을 출력

3) define : 값과 데이터형을 가진 모든 데이터형을 출력

4) accept : 사용자 입력 라인을 읽고 그것을 변수에 저장

syntax : accept variable [datatype] [for[mat] format] [prompt text] [hide]

variable : 값을 저장하는 변수의 이름

존재하지 않으면 SQL*PLUS가 그것을 생성하여 사용

datatype : number, char 또는 date, char는 최대 길이 240바이트

date는 형식 모델을 다시 검사하고 데이터형은 char

format : 형식 모델을 명시(예:a10, 9,999)

text : 사용자가 값을 입력하기 전에 값을 출력

hide : 사용자 입력을 숨긴다.(예:패스워드)


* 오라클 객체

1) table : 행과 열로 구성된 기본적인 저장 구조

2) view : 하나 이상의 테이블에서 데이터의 부분집합을 논리적으로 표현

3) sequence : 고유한 번호를 자동으로 발생시키는 객체로 주로 PK값 생성에 사용

4) index : 질의(select) 성능을 향상시키기 위하여 사용하는 물리적인 저장 구조

5) synonym : 객체에 대한 이름을 부여


* 테이블 생성

syntax : create table [schema.]table_name

(column datatype [default expr] [column_constraint],

...

[table_constraint]);


* 오라클 data type

varchar2(n) : 가변길이 문자 데이터 (1~4000byte)

char(n) : 고정 길이 문자 데이터 (1~2000byte)

number(p, s) : 전체 p자리 중 소수점 이하 s자리 (p:1~38, s:-84~127)

date : 7byte(bc4712년 1월1일부터 ad9999년 12월 31일)

long :가변길이 문자 데이터 (1~2Gbyte)

clob : 단일 바이트 가변 길이 문자 데이터 (1~4Gbyte)

raw(n) : n byte의 원시 이진 데이터 (1~2000)

long raw : 가변 길이 원시 이진 데이터 (1~2Gbyte)

blob : 가변 길이 이진 데이터 (1~4Gbyte)

bfile : 가변 길이 외부 파일에 저장된 이진 데이터 (1~4Gbyte)


* constraints (제약)

- primary key(pk) : 유일하게 테이블의 각행을 식별 (not null과 unique 동시 만족)

- foreign key(fk) : 열과 참조된 열 사이의 외래키 관계를 적용하고 설정합니다.

- unique key(uk) : 테이블의 모든 행을 유일하게 하는 값을 가진 열 (null을 허용)

- not null(nn) : 열은 null값을 포함할 수 없습니다.

- check(ck) : 참이어야 하는 조건을 지정함(대부분 업무 규칙을 설정)

1) column level

syntax : column datatype [constraint constraint_name] constraint_type

2) table level

syntax : column datatype,

...

[constraint constraint_name] unique(column1[,column2...])


* subquery를 사용한 테이블 생성

syntax : create table table_name [column1[,column2...]] as subquery


* 테이블 수정 (add 열추가, modify 열수정, drop 열삭제)

syntax : alter table table_name

add (column datatype [default expr]

[,column datatype [default expr]...]


* 제약조건 수정 (add 제약추가, drop 제약삭제) : 제약변경은 못함

syntax : alter table table_name

add [constraint constraint_name] constraint_type (column);

- add자리에 disable, enable로 제약조건활성화 결정할 수 있다.


* 객체 이름 변경

syntax : rename old_name to new_name


* truncate table (테이블 비움:롤백불가)

syntax : truncate table table_name


* 테이블에 주석문 추가

syntax : comment on table table_name | column table.column is 'text';


* 테이블 삭제

syntax : drop table table_name


* DML

insert : 테이블에 새로운 행 추가

syntax : insert into table_name [(column1[, column2, ...])]

values (value1[, value2 ...]);

update : 테이블의 행 내용을 변경

syntax : update table_name

set column1 = value1 [,column2 = value2, ...]

[where condition];

delete : 테이블의 행 삭제

syntax : delete [from] table_name

[where condition];

merge : 행이 존재하면 update, 새로운 행이면 insert

merge into table_name as table_alias

using (table/view/sub_query) as alias

on (join condition)

when matched then

update set

col1 = col1_val1, col2 = col2.val2

when not matched then

insert (column_list) values (column_values);

commit : 저장되지 않은 모든 변경 사항을 Database에 저장

syntax : commit;

savepoint : savepoint 설정

syntax : savepoint name;

rollback : 저장되지 않은 모든 변경 사항을 취소

syntax : rollback [to savepoint name]


* sequence (nextval, currval 사용)

syntax : create sequence sequence_name

[increment by n]

[start witn n]

[{maxvalue n | nomaxvalue}]

[{minvalue n | nominvalue}]

[{cycle | nocycle}]

[{cache | nocache}]

- sequence_name : sequence의 이름입니다.

- increment by n : 정수 값인n으로 sequence번호 사시의 간격을 지정.

이 절이 생략되면 sequence는 1씩 증가.

- start with n : 생성하기 위해 첫번째 sequence를 지정.

이 절이 생략되면 sequence는 1로 시작.

- maxvalue n : sequence를 생성할 수 있는 최대 값을 지정.

- nomaxvalue : 오름차순용 10^27 최대값과 내림차순용 -1의 최소값을 지정.

- minvalue n : 최소 sequence를 지정.

- nominvalue : 오름차순용 1과 내림차순용 -(10^26)의 최소값을 지정

- cycle | nocycle : 최대 도는 최소갑에 도달한 후에 계속 값을 생성할지의

여부를 지정, nocycle이 디폴트.

- cache | nocache : 얼마나 많은 값이 메모리에 오라클 서버가 미리 할당하고

유지하는가를 지정. 디폴트로 오라클 서버는 20을 cache


* sequence 수정

syntax : alter sequence sequence_name

... (생성과 같다)


* sequence 제거

syntax : drop sequence sequence_name


* view 생성 (simple view)

syntax : create [or replace] [force|noforce] view view_name [(alias[,alias, ...])]

as subquery

[with check option [constraint constraint_name]]

[with read only]

- or replace : 이미 존재한다면 다시 생성한다.

- force : base table유무에 관계없이 view를 만든다.

- noforce : 기본 테이블이 존재할 경우에만 view를 생성한다.

- view_name : view의 이름

- alias : subquery를 통해 선택된 값에 대한 컬럼명이 된다.

- subquery : select 문장을 기술한다.

- with check option : view에 의해 엑세스 될 수 있는 행만이 입력, 갱신될 수 있다.

- constraint : check option 제약 조건에 대해 지정된 이름이다.

- with read only : 이 view에서 DML이 수행될 수 없도록 한다.


* view 생성 (complex view)

syntax : create [or replace] [force|noforce] view view_name [(alias[,alias, ...])]

as subquery

[with check option [constraint constraint_name]]

[with read only]

- complex view에서는 둘이상의 테이블이 조인되어 view에 나타난다.


* view 제거

syntax : drop view view_name;


* inline view : from절에 subquery를 사용


* top-n analysis

syntax : select [column_list], rownum

from (select [column_list] from table order by top-n_column)

where rownum <= n;


* index 종류

- unique index : 지정된 열의 값이 고유함을 보장

- non-unique index : 데이터를 검색할 때 가장 빠른 결과를 보장

- single column index : 하나의 열만 인덱스에 존재

- composite index : 여러 열을 결합하여 하나의 인덱스를 생성(16개의 열까지)


* index 생성 (사용자정의)

syntax : create index index_name

on table_name (column1[,column2, ...]);


* index 제거

syntax : drop index index_name;


* synonym 생성

syntax : create [public] synonym synonym_name

for object_name;


* synonym 제거

syntax : drop [public] synonym synonym_name;


* user 생성

syntax : create user user_name

idntified by password;


* 권한부여

syntax : grant system_privilege1[,system_privilege2, ...]

to user_name1[,user_name2, ...]

[with admin option]

- with admin option을 주면 부여받은 권한을 다시 부여할 수 있다.


* 권한제거

syntax : revoke system_privilege1[,system_privilege2, ...] | role1[,role2, ...]

from {user1[,user2, ...] | role1[,role2 ...] | public};


* Role 생성 : Role은 권한(privilege의 모임)

syntax : create role role_name;


* Role 부여

syntax : grant role_name to user_name;




/***********************************************************************

PL/SQL

************************************************************************/


* 기본구조

declare : 실행부에서 참조할 모든 변수, 상수, 커서, exception을 선언

variables, cursor, user_defined, exception

begin : 데이터베이스의 데이터를 처리할 sql문과 pl/sql블록을 기술

sql, pl/sql statements;

exception : 실행부에서 에러가 발생했을때 수행될 문장을 기술

actions to perform wher erros occur

end;


* anonymous

syntax : [declare]

begin

statements;

statements;

statements;

[exception]

end;


* procedure

syntax : create procedure procedure_name

is

begin

statements;

statements;

[exception]

end;


* function

syntax : create function function_name

return datatype

is

begin

statements;

statements;

return value;

[exception]

end;


* Data Dictionary 조회

select * from system_privilege_map;

select * from table_privilege_map;

select * from role_sys_privs;

select * from user_free_space;

- 현재 세션을 이루고 있는 사용자가 소유하고 있는 테이블

select table_name, tablespace_name from user_tables;

- 현재 세션을 이루고 있는 사용자가 소유한 모든 객체

select object_name, object_type, timestamp from user_objects;

- 현재 세션을 이루고 있는 사용자가 소유한 테이블, 뷰, 동의어, 시퀀스 조회

select * from user_catalog;

- 현재 세션을 이루고 있는 사용자가 소유하고 있는 시퀀스 조회

select sequence_name, min_value, max_value, increment_by, last_number

from user_sequences;

- 현재 세션을 이루고 있는 사용자가 소유한 view를 조회하시오.

select * from user_views;

- object권한의 종류 확인

select * from table_privilege_map;

APM_Setup5를 활용한 모바일 서버 구축하기By [이지성]
-제1장 1과 모바일 서비스란?
-제1장 2과 APM_Setup5로 MIME Type 설정
-제1장 3과 OpenWave SDK 5.1 프로그램 소개
-제1장 4과 OpenWave SDK 5.1 프로그램 설치하기
-제1장 5과 또 다른 소프트웨어의 WML 에디터 소개
-제1장 6과 OpenWave SDK 5.1 실행
-제1장 7과 OpenWave SDK 5.1의 조작방법
eAccelerator - PHP Accelerator & EncoderBy [이근상]
-PHP의 속도를 빠르게! eAccelerator!!
-다운로드 & 설치
초보자를 위한 PHP 강좌By [mizzle]
-APM 설치
-PHP 기본 구조
-변수 사용법
-배열 변수
-전역 변수
-정적 변수
-가변 변수
-폼(Form)을 통한 변수의 전달
-산술 연산자, 대입 연산자
-비교 연산자, 논리 연산자
-조건 제어문(1)
-조건 제어문(2)
-반복 제어문(1)
-반복 제어문(2)
-그 밖의 제어문
-사용자 정의 함수(1)
-사용자 정의 함수(2)
-사용자 정의 함수(3)
-문자열 함수(1)
-문자열 함수(2)
-문자열 함수(3)
-문자열 함수(4)
-문자열 함수(5)
-날짜 및 시간 함수
-파일 처리 함수(1)
-파일 처리 함수(2)
-파일 처리 함수(3)
-수학 연산 함수
-기타 함수
-정규 표현식
-자바스크립트(1)
-자바스크립트(2)
-자바스크립트(3)
-자바스크립트(4)
초보자를 위한 PHP 강좌 - 간단한 게시판 만들기By [mizzle]
-간단한 게시판 만들기 - 준비작업
-간단한 게시판 만들기 - 글 목록 및 글 읽기
-간단한 게시판 만들기 - 글 쓰기
-간단한 게시판 만들기 - 글 수정
-간단한 게시판 만들기 - 글 삭제
navyism 의 PHP 강좌By [navyism]
-몇가지만 알면
-PHP의 특징
-PHP구문의 선언
-변수에 대한 이야기
-연산하기
-비교연산과 조건문
-반복실행문
-배열
-함수이야기
-form을 이용해 봅시다
-파일의 입출력 [퍼미션]
-파일의 입출력 [기록하기]
-파일의 입출력 [출력하기]
-include와 require
-사용자 인증...쿠키
-시간함수 활용하기
-mySQL이란
-mySQL사용하기
-mySQL접속하기
-mySQL테이블의 설계
-mySQL관련 함수이야기
-mySQL을 사용한 메모장만들기 계획
-mySQL테이블 만들기
-mySQL자료넣기
-mySQL자료꺼내오기
-페이지이동 로직
-mySQL자료삭제
-mySQL자료수정
-날짜 계산팁
-텍스트(숫자)를 이미지로 바꾸기
-게시판 프로그램의 간단한 구성
-현재 접속자 체크 로직
-예제에서 사용된 메모장소스
-GET에 대한 긴 이야기
-재미있는 정규표현식 I
Smarty - the compiling PHP template engineBy [이근상]
-Smarty template engine 소개와 대략적인 특징
PEAR DB_Pager ClassBy [이근상]
-PEAR DB_Pager Class 소개 & 설치
-PEAR DB_Pager Class 사용법
PHP.INI 설정하기By [이근상]
-PHP.INI 위치와 설정방법
-일반적인 구성
-전자메일 관련 구성
-에러 메세지 관련
-번역 (php.ini-recommended)
PHP 범용 함수 만들어 보기By [이근상]
-파일 종류에 따른 아이콘 나타내기
PEAR DB, HTML_Template_Sigma Class 이용한 방명록 만들기By [이근상]
-PEAR DB, HTML_Template_Sigma Class 이용한 방명록 만들기 :: 시작
-PEAR DB, HTML_Template_Sigma Class 이용한 방명록 만들기 :: 글쓰기
-PEAR DB, HTML_Template_Sigma Class 이용한 방명록 만들기 :: 리스트
-PEAR DB, HTML_Template_Sigma Class 이용한 방명록 만들기 :: 글 수정
-PEAR DB, HTML_Template_Sigma Class 이용한 방명록 만들기 :: 글 삭제
-PEAR DB, HTML_Template_Sigma Class 이용한 방명록 만들기 :: 마치며
PEAR HTML_Template_Sigma ClassBy [이근상]
-PEAR HTML_Template_Sigma Class 소개 & 설치
-PEAR HTML_Template_Sigma Class 형식
-PEAR HTML_Template_Sigma Class 처음 사용해 보기
PEAR DB ClassBy [이근상]
-PEAR DB Class 소개
-PEAR DB Class 데이터베이스에 접근하기
-PEAR DB Class 데이터베이스에 Query & Fetch
PEARBy [이근상]
-PEAR 소개
-PEAR 설치
Windows 2003 + IIS + PHP 를 세팅해보자By [이근상]
-Windows 2003 에 IIS 설치하기
-Windows 2003 에 IIS 에 PHP 세팅하기 (ISAPI)
-Windows 2003 에 IIS 에 PHP 세팅하기 (CGI) PHP4 Setup for IIS
-Windows 2003 에 IIS 에 MIME 형식 추가
-Windows 2003 에 IIS 에 웹 사이트 추가하기
PHP 와 플레쉬(FLASH)를 이용한 카운터 프로그램 만들기By [이근상]
-PHP 로 카운터 프로그램 제작하기
-Flash 작성하기
정규 표현식이란? 정규 표현식에 대해 알아보자By [김태성]
-정규 표현식의 정의와 구조
-메타캐릭터
PHP 와 친해질 수 있다..By [이근상]
-PHP의 역사와 지원 기초적인 스크립트 형식에 대해 알아 보자.
-PHP의 변수와 변수형태에 대해 알아보자.
-변수의 하용범위에 대하여 알아보자
-연산자에 대해 알아보자.
-제어문에 대해 알아보자.
PHP 기본을 배우자 !!!By [써니루루☆]
-웹프로그래밍의 이해.
-HTML Form Tag 의 간략한 사용 예.
-웹프로그래밍의 제일 기초 - 페이지사이의 값 넘기고 받기
-연산자 다루기와 간략한 소개
기사 입력시간 : 2007-12-30 오후 4:01:27
“리더가 설치면 조직은 침묵한다”
잭 웰치 부부의 성공 어드바이스
중앙SUNDAY

Q: 어떤 사람을 형편없는 리더라고 부를 수 있을까요.(크로아티아 자그레브에서 고란 밀리치)

A: 언젠가 뿌리깊은 ‘상사 혐오증’을 보이는 직원들 얘기를 쓴 적이 있습니다. 참 논란이 많았던 글이죠. 그런데 나쁜 상사들에 대해선 제대로 쓴 적이 없네요. 이번 기회에 흔히 접하게 되는 잘못된 리더십의 몇 가지 유형을 정리해 봅시다.

첫째, 무엇이든 다 아는 체하며 나서는 리더들입니다. 가장 사람을 지치게 하는 경우지요. 그들은 세상과 회사가 어떻게 돌아가는지, 당신이 이런 저런 일을 했을 때 어떤 역풍을 맞을 수 있는지, 왜 제품의 사소한 부분도 바꿔서는 안 되는지에 대해 끊임없이 떠들어댑니다. 심지어 당신에게 어떤 차를 타야 한다고 간섭하기도 합니다.

이런 사람들의 허풍이 맞아떨어지는 경우도 있습니다. 하지만 대부분 그들 스스로가 나쁜 인성의 희생자가 됩니다. 당신과 당신의 회사 또한 희생이 될 수도 있습니다. 이런 부류들은 단순히 눈꼴사나운 정도가 아니라 아주 위험하기 때문입니다.

그들은 절대로 다른 사람들의 의견을 듣지 않습니다. 자연히 회사 내에서 창의적인 아이디어가 솟구치고, 이를 토론하고, 한걸음 더 나아가는 데 걸림돌이 됩니다. 어떤 한 사람이 아무리 똑똑하다 해서 혼자 사업을 이끌어갈 수는 없는 법입니다. 다른 사람들의 목소리도 들어야 합니다. 하지만 나서기 좋아하는 리더가 있는 조직에는 오로지 침묵만 흐르게 됩니다.

모든 걸 간섭하는 리더들이 너무 나서서 탈이라면 너무 나서지 않아 탈인 리더들도 있습니다. 형편없는 리더의 두 번째 유형인데요, 바로 남과 섞이지 않으려는 사람들입니다. 이런 부류는 조직원들과 함께 협력해서 일하는 것보다는 사무실 문을 닫아놓고 혼자 있는 걸 편안해 합니다. 물론 그런 리더들도 회의에 참석하고 꼭 필요한 일을 하기는 합니다. 하지만 자기 방에서 컴퓨터 들여다보는 데 시간을 보내고, 성가시고 사람과 부딪쳐야 하는 일들은 인사부서 담당자에게 떠넘겨 버립니다.

나서기 좋아하는 사람들처럼 이런 부류의 리더들도 위험하기는 마찬가지입니다. 그들은 조직원들을 고무시키지 못합니다. 이건 큰 문제입니다. 리더는 결국 조직원들이 무엇을 하도록 만드는 사람입니다. 그렇게 하자면 그들에게 끊임없이 열정을 불러일으켜 줘야 합니다.
세 번째 유형은 사람들에게 호감을 얻지 못하는 스타일입니다. 비열한 성격이거나, 부하를 학대하거나, 지독히 둔감하거나 혹은 셋 모두인 경우입니다. 이런 리더들은 대개 부하를 닦달해 성과를 내는 것으로 자신을 보호합니다. 하지만 이런 파괴적인 인성으로는 사람들의 신임을 얻지 못합니다. 이런 리더들은 결국 스스로를 파괴합니다. 물론 당신이 바라는 것처럼 빨리 무너지지는 않겠지요. 하지만 스스로 자신의 단점을 발견하고 인정하지 않는다면 결국은 그렇게 됩니다.

네 번째 유형은 이와는 정반대의 스타일입니다. 조직원들에게 너무 잘 보이려 하는 경우지요. 보통 이런 사람들은 어렵지만 반드시 해야 할 결정을 내릴 능력이 없습니다. 그들은 언제 어디서나 ‘예스’만 연발합니다. 자연히 사무실은 혼란에 빠지고 이를 바로잡는 데 상당한 시간을 허비하곤 합니다. 이런 리더들은 흔히 합의를 이루기 위해 노력하는 것이라고 자기 변명을 하곤 하지요. 하지만 사실은 겁을 내는 겁니다.

마지막 유형도 이와 관련이 있습니다. 중요도를 따져 구별을 지을 배짱이 없는 리더들이죠. 모든 투자와 사람이 동일한 성과를 거둘 수는 없습니다. 하지만 어떤 이들은 이런 현실을 직시하지 않습니다. 그저 ‘좋은 게 좋다’는 식으로 기업의 한정된 자원을 여기저기 분산시켜 버립니다.

특히 사람의 문제에서 심각한 결과를 초래합니다. 그들은 개개인의 성과를 엄밀하게 평가하는 대신 모든 직원에게 “잘했다”고 하고 맙니다. 보상을 할 때도 최고와 최저의 차이를 크게 내지 않습니다. 이런 평등주의적 접근을 두고 ‘인간적이다’ ‘공평하다’고 포장하는 사람도 있습니다. 하지만 그 본질은 나약함일 뿐입니다. 그런 리더십으로는 기업을 번성시키고 직원들을 성장시킬 수 없습니다.

형편없는 리더들이 이 칼럼을 읽는다고 해서 자신을 돌아보게 될 것이라고 기대하지 않습니다. 그들은 어떤 유형이든 공통적으로 자각능력이 떨어지기 때문입니다.
만약 당신의 보스가 위의 유형들에 속한다면 부디 마음을 다잡으시길. 그리고 당신이 리더가 됐을 때, 뭘 하지 말아야 할지 반면교사로 삼길 바랍니다.

정리=조민근 기자

중앙SUNDAY 구독신청

공고번호 제2007-49호

2008년도 제45회 변리사시험 시행계획 공고

2008년도 제45회 변리사시험 시행계획을 다음과 같이 공고합니다.

2007년 12월 24일

한국산업인력공단 이사장

1. 선발예정인원

일 반

응 시 자

제1차 시험

최소합격인원의 3배수

동점자는 합격처리

제2차 시험

최소합격인원 200명

특 허 청

경 력 자

변리사법시행령 제4조제3항의 합격자 결정방법에 의하여 합격자로 결정되는 인원

2. 시험과목 및 시험방법

가. 제1차 시험(4과목) : 객관식 선택형

산업재산권법(특허법․실용신안법․상표법․디자인보호법 및 조약포함)

민법개론(친족․상속편 제외)

자연과학개론(물리․화학․생물․지구과학 포함)

영어(민간어학능력검정시험으로 대체)

나. 제2차 시험(4과목 : 필수3, 선택1) : 주관식 논술형

필수과목 (3과목)

특허법(조약포함)․상표법(조약포함)․민사소송법

선택과목 (1과목)

자인보호법(조약포함)․저작권법․산업디자인․기계설계․열역학․금속재료유기화학․화학반응공학․전기자기학․회로이론․반도공학․제어공학․데이터구조론․발효공학․분자생물학․약제학․약품제조화학․섬유재료학․콘크리트 및 철근콘크리트공학 중 1과

다. 시험 과목별 시험시간

□ 제1차 시험

일 자

교시

과 목

시 간

3. 9 (日)

1

산업재산권법

10:00 ~ 11:10 (70분)

2

민법개론

11:50 ~ 13:00 (70분)

3

자연과학개론

14:30 ~ 15:30 (60분)

□ 제2차 시험

일 자

교시

과 목

시 간

8. 9 (土)

1

특허법(조약포함)

10:00 ~ 12:00 (120분)

2

상표법(조약포함)

14:00 ~ 16:00 (120분)

8. 10 (日)

1

민사소송법

10:00 ~ 12:00 (120분)

2

선택과목 (19과목 중 본인선택 1과목)

14:00 ~ 16:00 (120분)

3. 합격자 결정 방법

가. 제1차 시험

영어능력 검정시험의 기준 점수 이상 취득자로서, 영어과목을 제외한 나머지 과목에 대하여 매과목 100점을 만점으로 하여 매과목 40점 이상, 전과목 평균 60점 이상을 득점한 자 중에서 전과목 총득점에 의한 고득점자 순으로 결정합니다.(변리사법시행령 제4조제1항)

나. 제2차 시험

일반 응시자

매과목 100점을 만점으로 하여 매과목 40점 이상, 전과목 평균 60점 이상인 자를 합격자로 하되, 최소합격인원에 미달할 경우 매과목 40점 이상을 득점한 자 중 전과목 평균 득점에 의한 고득점순으로 결정합니다. (변리사법시행령 제4조제2항)

특허청 경력자

매과목 100점을 만점으로 하여 매과목 40점 이상을 득점한 자 중 응시과목 평균득점이 일반 응시자 최종 순위 합격자의 합격 점수 이상 득점한 자를 합격자로 결정합니다.(변리사법시행령 제4조제3항)

4. 변리사 결격사유(변리사법 제4조)

다음 각호의 어느 하나에 해당하는 자는 변리사시험에 합격하여도 변리사자격을 취득할 수 없습니다.

1) 금고이상의 실형을 선고받고 그 집행이 종료(집행이 종료된 것으로 보는 경우를 포함한다)되거나 집행이 면제된 날부터 3년이 경과되지 아니한 자

1)의2. 금고이상의 형의 집행유예선고를 받고 그 유예기간 중에 있는 자

2) 미성년자·금치산자 또는 한정치산자

3) 파산선고를 받은 자로서 복권되지 아니한 자

4) 탄핵 또는 징계처분에 의하여 면직되거나 이 법 또는 변호사 법에 의하여 등록취소 또는 제명된 자로서 면직·등록취소 또는 제명된 후 2년을 경과하지 아니한 자

5. 시험시행일정

구 분

응시원서

접 수

시험장소

공 고

시험지역

시험일자

시 험 과 목

합격자

발 표

제1차

시 험

1.7(月)

~ 1.16(水)

응시원서

접 수 시

시 험 장

사전선택

서 울

대 전

3.9(日)

산업재산권법

민법개론

자연과학개론

5.7(水)

제2차

시 험

1.7(月)

~ 1.16(水)

7.21(月)

서 울

8.9(土)

특허법

상표법

12.5(金)

8.10(日)

민사소송법

선택과목

※ 제1차 시험과 제2차 시험의 원서접수기간이 같으며, 제1차 시험 시험장소는 응시원서 접수시 응시자 본인이 직접 선택하여 입력하여야 함

6. 시험의 일부 면제

다음의 경우에 해당하는 자는 2008년도 변리사 제1차 시험이 면제됩니다.

○ 2007년 제1차 시험에 합격한 자

○ 2002년 제1차 시험에 추가합격한 자(특허청 공고 제2006-91호)

특허청소속의 7급이상 공무원으로서 10년이상 특허행정사무에 종사한 경력이 있는 자(기준일 : 제2차 시험 초일)

음의 경우에 해당하는 자는 2008년도 변리사 제1차 시험의 전 과목과 제2차 시험 과목 중 일부를 면제합니다.

특허청의 5급 이상 공무원 또는 고위공무원단에 속하는 일반직공무원으로서 5년 이상 특허행정사무에 사한 경력이 있는 자(기준일 : 제2차 시험 초일)

□ 전년도 제1차 시험 합격자 또는 2002년도 제1차 시험 추가 합격자(특허청 공고 제2006-91호)의 2008년도 제1차 시험 재응시 가능 여부

○ 2008년도 제1차 시험에 응시 가능하며, 인터넷 원서접수시 일반응시자로 접수하여야 합니다.

○ 제1차 시험 면제자가 일반응시자로 접수하여 제1차 시험에 재응시한 경우 합불여부에 관계없이 당회 제2차 시험에 응시가능하고, 당회 제2차 시험에 합격하면 최종합격 처리됩니다.

< 2008년도 변경시행 사항 (특허청 경력 제출 대상자)>

변리사법 제4조의3 제1항 또는 제2항에 해당하는 자는 시험의 일부면제를 위하여 특허청 경력증명서 원본을 원서접수 기간 내에 수험자 본인이 선택할 시험응시지역을 관할하는 한국산업인력공단 서울지역본부 또는 대전지역본부에 제출한 이후에만 인터넷 원서접수가 가능합니다.

원서접수 마감일(1. 16)까지 경력요건이 부족하여 소명이 되지 않는 경우, 요건 만족시 다시 한번 소명자료를 제2차 시험의 전일까지 제출하셔야 합니다.

7. 민간 영어능력 검정시험

□ 제1차 시험 중 영어과목 시험은 아래의 영어능력검정시험으로 대체합니다.

○ 기준점수

시 험 명

TOEFL

TOEIC

TEPS

G-TELP

FLEX

PBT

CBT

IBT

기준점수

560

220

83

775

700

77(level-2)

700

당해 검정시험기관의 정기시험 성적만 인정하고, 수시 또는 특별시험 성적은 인정하지 않습니다.

○ 국외에서 취득한 영어성적표도 인정하나, TOEIC시험에 한해서는 대한민국일본에서 시행하는 시험의 성적만 인정합니다.

○ 민간 영어능력 검정시험의 인정범위는 2006년 1월 1일 이후 실시된 시험으로서 제1차 시험 전일(2008. 3. 8)까지 성적이 발표․통지된 시험 중 기준점수 이상인 경우에 한합니다.

청각장애 2․3급 응시자의 경우, 듣기 및 말하기 부분을 제외한 점수가 TOEFL PBT 373, CBT 146, IBT 41, TOEIC 387, TEPS 420, G-TELP 51(level-2), FLEX 350점 이상이 기준점수입니다.

시험 응시자는 제1차 시험 당일 유효한 영어성적표 원본을 해당 시험실 감독관에게 제출하여야 합니다.

○ 영어 성적표를 위․변조하여 제출하는 경우 당해시험은 무효처리되며 변리사법시행령에 따라 3년간 응시자격이 정지될 수도 있습니다.

제출한 영어 성적표 원본은 반환하지 않으며, 제출한 영어성적표가 차년시험에서도 계속 유효할 경우 차년도 시험 응시 시 별도로 영어 성적표를 제출하지 않아도 됩니다.

8. 응시원서 접수

○ 접수 기간(시간) : 2008. 1. 7(月) 09:00 ~ 1. 16(水) 18:00

※ 제2차 시험 응시자도 제1차 시험과 동일한 접수기간 내에 응시원서를 접수하여야 함

접수 방법

- 한국산업인력공단 국가자격시험 홈페이지(www.Q-net.or.kr) 를 통한 인터넷 접수만 가능

○ 응시 수수료 : 30,000원 (신용카드 및 계좌이체만 가능합니다)

제1차 시험 응시자는 응시원서 접수시 응시지역(서울 또는 대전) 및 시험장을 선택하여야 하며, 수험표에 기재된 입실시간 및 시험장에서만 시험을 보실 수가 있습니다.

○ 제2차 시험장소는 7월 21일 한국산업인력공단 국가자격시험 홈페이지(www.Q-net.or.kr)에 사후공고 할 예정이니 시험 응시에 착오 없으시기 바랍니다.

원서 접수시 사진은 최근 6개월 내에 촬영한 탈모 상반신 사진만을 인정하며 반드시 규격(3.5㎝ × 4.5㎝)을 맞추어 업로드 하시기 바랍니다.

○ 원서접수 마감일(2008. 1. 16, 18:00) 이후부터는 취소 및 변경이 불가합니다.

※ 선택과목 등의 변경은 원서접수 기간 내에 원서접수를 취소한 후 다시 접수하여야 함

○ 응시원서 접수시 영어성적 입력

- 수험자가 인터넷 원서접수 시 취득점수 및 시험일자를 해당 항목에 직접 입력하여야 합니다.

- 원서접수 기간 중 성적이 미발표(미통지)된 경우에는 취득예정자로 입력하여야 합니다.

9. 기 타 사 항

가. 합격자 발표는 특허공보 및 한국산업인력공단 국가자격시험 홈페이지(www.Q-net.or.kr)를 통해 이루어집니다.

나. 전신마비자․뇌성마비자․시각장애인 등은 인터넷 응시원서 접수 시 해당 장애를 표기하시고, 희망하는 요구 사항을 입력하여야 합니다.

※ 해당 장애를 입증할 수 있는 증빙서류 등 제출(원서접수기간 안에 우편, 방문, FAX 등 이용)

10. 수험자 유의사항

가. 수험자는 시험전일까지 반드시 시험장 위치 및 교통편을 확인하여야 하며(단, 시험실 출입은 할 수 없음), 시험당일 09:30까지 신분증(주민등록증, 유효기간 내 여권 및 외국인 등록증, 운전면허증, 공무원증만 허용), 응시표, 컴퓨터용 사인펜, 영어성적표 원본을 소지하고 해당 시험실의 지정된 좌석에 착석하여야 합니다.

수험자는 시험당일 유효한 영어성적표 원본을 반드시 제출해야하며 제출하지 않는 경우 시험에 응시할 수 없습니다.

(단, 과년도에 제출한 영어성적이‘08년도 시험에서도 유효한 경우 별도로 영어성적을 제출할 필요가 없습니다.)

답안지는 반드시 컴퓨터용 사인펜으로 작성하여야 하며, 컴퓨터용 사인펜으로 작성하지 않은 답안지는 무효로 처리될 수 있습니다.

나. 수험자는 매 과목 시험시간표와 수험자 입실시간을 반드시 확인하시기 바랍니다.

※ 입실시간 : 1교시 09:30, 2교시 11:40, 3교시 14:00

다. 본인이 응시원서 접수 시 선택한 지역이 아닌 다른 지역이나 지정된 시험실 이외에는 응시할 수 없으며, 제1교시 시험에 응시하지 않은 자는 이후의 시험에 응시할 수 없습니다.

라. 시험 당일 시험장 내에는 주차공간이 협소하므로 가급적 대중 교통을 이용하여 주시고, 교통 혼잡이 예상되므로 미리 입실할 수 있도록 준비하시기 바랍니다.

마. 시험장 내에는 별도의 식당이 없으므로 수험자는 가급적 중식을참하시기 바랍니다. 중식을 지참하지 않으신 경우 점심시간에 외부출입이 가능하나, 시험시간 30분 전(14:00)에는 반드시 입실하여 주시기 바랍니다.

바. 시험이 시작되면 휴대폰 등 통신장비와 전산기기는 일절 휴대할 수 없으며 만약 시험 중 휴대폰 등 통신장비 및 전산기기를 휴대하고 있다가 적발될 경우 실제 사용 여부와 관계없이 부정행위자 처리될 수 있음을 유의하시기 바랍니다.

※ 1차 시험에서는 전자계산기 사용이 불가하므로 전자계산기는 소지하여서는 안 됨.

사. 시험실에 별도로 시계가 준비되지 않으므로 각자 손목시계 등을 준비하시기 바랍니다.

아. 시험시작 전 20분부터는 화장실 출입이 불가하며, 시험시작 후 종료시까지 어떠한 이유로도 퇴실하실 수 없으니, 과다한 수분 섭취를 자제하고 배탈예방 등 건강관리에 유의하시기 바랍니다.

자. 부정행위를 하거나 답안카드에 기재된 수험자 주의사항답안카드 작성요령에 따르지 않아 무효가 되지 않도록 주의하시기 바랍니다.

차. 시험 종료후 시험감독위원의 답안카드 제출지시에 불응한 채 계속 답안카드를 작성하는 경우 부정행위자로 간주 될 수 있습니다.

카. 답안카드 양식이 금번 제 45회 시험부터 견본과 같이 변경되었으니 답항 작성에 착오 없으시기 바랍니다.

타. 금번 제 45회 시험부터 영어성적은 답안카드에 기재하지 않고, 원서 접수시에 수험자가 직접 인터넷에 입력하고 영어시험 성적표 원본제1차 시험 시행당일에 해당 시험실 감독관에게 제출하여야 합니다.

11. 한국산업인력공단 서울지역본부 및 대전지역본부

기관명

주 소

우편번호

담당팀

연락처

서울지역본부

서울 마포구 표석길 14

(공덕동 370-4)

121-757

검정1팀

02-3273-9651

대전지역본부

대전 중구 보리3길 72

(문화동 165)

301-748

검정1팀

042-580-9132

한국산업인력공단 문의처 :

- HRD 고객센터 ☎ 1644-8000

2008년 제45회 변리사 국가자격시험부터 시행주체가 특허청에서

한국산업인력공단으로 변경됨에 따라 인터넷 접수프로그램 등의

차이로 수험자 여러분께 불편을 끼쳐 드린 점 죄송스럽게 생각합니다.

우리공단에서는 수험자 여러분께 보다 나은 서비스를 제공하기 위해

변리사 자격시험 전용 홈페이지를 운영하는 신 전산시스템을 2008년 10월부터 개통할 계획입니다.

현행 공단에서 시행중인 타 자격 시험과 공용 홈페이지를 사용하는 것이 불편하시더라도 양해하여 주시면 감사하겠습니다.

< 답안카드 견본 >

<인터넷원서접수 순서도>

< 2008년도 제45회 변리사 자격시험 변동사항 >

구 분

제44회(2007년)

제45회(2008년)

사 유

제2차 시험

선택과목

■31개 과목 중 택일

■19개 과목 중 택일

‘06. 12월 특허청 공고

영어성적 기준점수

■TOEFL PBT : 530

560

‘06. 12월 특허청 공고

■TOEFL CBT : 197

220

■TOEFL IBT : -

83

■TOEIC : 700

775

■TEPS : 625

700

■G-TELP (level-2) : 65

77

■FLEX : 625

700

답안카드

■변리사 답안카드

■국가자격 통합 답안카드

통합관리 효율화

■영어성적 득점 및 취득일자 답안카드에 마킹

인터넷 원서접수시 수험자가 영어성적 및 취득일자를 직접 입력

답안카드 마킹착오

사전 배제

시험 홈페이지

■변리사시험 홈페이지

http://pt.uway.com

공단 국가자격시험 홈페이지

www.q-net.or.kr

통합관리

전년도 제1차 시험 합격자의 제1차 시험 재응시

■제1차 재응시를 원할경우 중복 접수함: 일반응시자제1차 시험 면제자 두 가지로 접수(접수비도 두 번 납부함)

■제1차 재응시를 원할경우 일반응시자로 접수 (제1차 시험 합불 여부 관계없이 당회년도 제2차 합격시 최종합격 처리됨)

동일 수험자 중복접수 방지

제1차 시험

장소공고

■사후(접수 후) 공고

(‘07. 2. 22)

■사전(인터넷 직접 입력) 공고 (‘08. 1. 7)

수험자 편의 도모

제1차 시험 이의제기

시험 종료 후 2일부터 9일간 인터넷으로 신청

시험익일부터 7일간 인터넷 신청하되, 본인만 열람가능며 개별회신은 하지 않고 최종 정답게시로 통보 갈음

통합 관리로 변경

시험일부 면제자 경력서류 제출

■원서접수가 속한 달의 말일까지 제출

(‘07. 1. 31)

■원서접수 기간내제출

(‘08. 1. 7 ~ 1. 16)

■미제출시 원서접수 불가

서류접수 합리화

제출시 경력요건이 미흡한 경우 요건 완료시 다시 제출

■ 원서접수 기간내 경력요건 미흡시 제2차시험 전일까지 다시 제출

'기본 카테고리' 카테고리의 다른 글

PHP 강좌가 있는 싸이트  (0) 2008.01.05
“리더가 설치면 조직은 침묵한다”  (0) 2007.12.30
플래쉬 3d 연습  (0) 2007.12.07
LUA Serious-code.net  (0) 2007.12.06
Homunculus AI Script User’s Guide  (0) 2007.12.06

+ Recent posts