태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Robust Computing 은
Computing에 관한 일에 대한 나의 바램을 표현하는 키워드 이기도 합니다.

즐겁게 일해서 몸도 마음도 건강하고
안정적이고 빠른 시스템을 만들어서 성공적으로 프로젝트를 마무리 하고 싶은 바램을 위한 키워드 입니다.

이런 바램을 위해서, 언제, 누가, 무엇을, 어떻게, 왜 해야 하는 지를 고민해 나갈 생각입니다.
함께 일하는 모든 사람들도 모두 즐겁고 건강해야 하기에...




Posted by bomsoft
요즘은 프로젝트에서 자바 언어를 많이 사용하고 있는 것 같습니다.

자바언어로 개발할 경우의 흔히 사용하는 naming rule은 대문자와 소문자를 혼합하여 사용하는 것이 보통이며,
많이들 선호하는 방식인 것 같습니다. 물론 Java 에서 권장하는 방식이기도 합니다.
이러한 naming 방식은 자바언어에서만 사용되는 것은 아니지만, 대세로 되어 있는 것 같습니다.

필자, 이와 다른 의견은 던지고 싶습니다.
소문자와 "_" 문자를 사용하는 방식, 즉 이전에 C 언어에서 자주 사용하던 방식을 추천합니다.
물론 모든 naming을 이런 식으로 할 것을 주장하는 것은 아닙니다.

자바의 클래스명과 같이 좀더 구별이 필요한 경우는 당연히 앞에 대문자로 시작하는 것이 바람직 하겠습니다.
하지만, 프로그램 중간에 수도 없이 나오는 변수명, 함수명은 되도록이면 소문자로 만들기를 추천합니다.

이렇게 추천하는 이유는 다음과 같습니다.
첫째로, 단순하다고 할 수 있겠지만, 프로그램 개발 할 때, 조금 덜 피로하다는 것입니다. 대문자와 소문자를 변수나 함수를 사용할 때 마다 타이핑한다고 한다면, 대문자를 치기 위해서 쉬프트키를 수도 없이 함께 눌려야 하면, 오타의 확률도 많기 때문에 더 많은 피로감을 준다고 생각합니다.

둘째로, 의외로 가독성에 문제가 없습니다. 도리어 "_" 문자로 연결된 명칭들은 띄워쓰기를 한 것 같아서 가독성에 도움이 될 수도 있습니다.

자바나 객체지향 개념이 나오기 전에는 모두가 대문자 혹은 소문자와 "_" 문자로 변수명/함수명을 사용했습니다.

그 당시에도 가독성은 중요했고, 충분히 만족했다고 생각합니다.

물론 익숙하지 않을 수도 있지만, 몇번만 시도해 보시길 권해 봅니다.
필자도 개발 경력 10년은 가지고 있지만, 두 가지 (자바 스타일의 naming과 고전적(?) naming)을 적절히 혼용해서 사용하고 있습니다. 즉 두가지 모두에 익숙하다는 것입니다.
참고로, 필자가 주로 사용하는 언어도 Java 입니다. 오해 없으시길 바랍니다. 끝.
Posted by bomsoft
TAG java, Naming, RP
#!/usr/bin/ksh
#
# process_start 가 실행하고자 하는 프로그램이라고 가정한다.

COUNT=`ps -ef | grep process_start | grep -v grep | wc -l`

if [ $COUNT -eq 0 ]
then
  process_start
fi
Posted by bomsoft
TAG ksh, RP, UNIX
많은 소프트웨어 개발자들은 밤 늦게 까지 일하는 경우가 너무나 많습니다.
이렇게 하는 데는 여러가지 이유가 있고, 또한 대부분의 개발자들이 어쩔수 없는 일이라고 생각하는 것 같습니다.
그 여러가지 이유는, 개발 기간이 너무 짧아서, 리더나 상사가 재촉하기 때문에, 개발하는 과정에서 어려운 로직을 구사할 필요가 있어서, 등이 있을 것 입니다.
물론, 필자도 개발자였으며, 현재도 개발에 참여하고 있기 때문에 누구보다도 충분히 이해할 수 있습니다.

하지만, 좀더 생각해 볼 필요가 있다고 생각합니다.

첫째, 정말 늦은 밤까지 일하면 전체 개발 기간은 단축되는 가 입니다. 하루 일과를 좀더 찬찬히 살펴보면, 반드시 그런 것 같지는 않습니다.
늦은 밤까지 일하면, 당연히 다음 날은 피곤하고, 따라서 다음 날 오전에는 충분한 능률을 발휘해서 개발할 수 없습니다. 오후나 되어서 컨디션은 회복되고 그제서야 원래의 능률이 발휘가 되는 것은 아닌지 생각해 볼 필요가 있습니다.

둘째, 해결하기 어려운 문제에 부딛혔다고 해서 늦은 밤까지 고민하면 해결되었던 가 입니다. 많은 개발자들이, 화장실에서 볼일을 보다가, 혹은 샤워를 하다가, 혹은 그냥 길을 가다가 우연하게도 어려운 문제를 해결할 수 있는 아이디어를 얻는 경험을 가지고 있을 것입니다. 사람에게는 휴식과 여유가 필요합니다.

셋째, 늦은 퇴근은 개발자의 마음 속에 언제나 불만으로 자리잡게 되지 않았던가 입니다. 이러한 불만은 일을 능률을 떨어뜨리고, 또한 품질을 떨어뜨립니다. 당연히 떨어진 품질은 추가적인 개발 시간을 필요로 하게 되는 것이라 생각합니다. 반드시 그러한 것은 아니지만, 한국사람들은 신바람이 나면 일을 더 잘한다고 알고 있습니다. 다시금 자신의 기분상태를 돌아볼 필요가 있지 않을 까 싶습니다.

여러분 모두가, 바쁘고 힘들고 어려울수록 정시에 퇴근하도록 노력해 보기를 권합니다. 물론 퇴근 후 시간은 자신의 것이며, 자신을 돌보는 데 활용하시길 바랍니다.
Posted by bomsoft
TAG RP, 퇴근

Java 언어에서는 예외처리를 위해서 Exception이라는 클래스를 이용해서 throw 및 catch를 하게 됩니다.

많은 Software Engineer (SE) 들은 여러 가지 경우의 예외를 처리하기 위해서, 일반적으로 Exception으로부터 상속된 새로운 Exception을 만들어 사용하거나, Sun에서 배포되는 Java Development Toolkit에 포함되어 있는 다양한 Exception들을 사용하게 됩니다.

하지만, 실제 프로젝트를 수행하다 보면, SE가 의도한 Exception 에 대해서만 catch를 수행하고 가장 기본적인 Exception에 대한 처리는 누락하는 경우가 많습니다. 가장 흔하게 볼 수 있는 경우가 NullPointerException의 경우입니다.

예를 들어보면, DB SQL 관련 처리를 할 경우 아래와 같은 코드가 있다고 가정해 봅니다 (완전한 코드가 아니고 설명을 위한 예시입니다).

// ----------------------------------------------------

try {

            String sql_cnt = "SELECT count(*) FROM table_a ";

            PreparedStatement pstmt = conn.prepareStatement(sql_cnt);
            ResultSet rs = pstmt.executeQuery();
            if(rs.next()) {
                    int cnt = rs.getInt(1);
            } else
            {
                    System.out.println("no data");

            }
            rs.close();
            pstmt.close();
} catch (SQLException sqlex) {

            // sqlexception에 대한 처리....

}

// ----------------------------------------------------

위와 같은 코드에서 별 문제가 없다면, 아주 잘 돌아가는 코드일 것입니다. 하지만, 실제 run-time 에서는 예상하지 못하는 경우가 종종 발생하게 마련입니다. 위의 코드 중에서

(1) conn.prepareStatement(sql_cnt)
(2) rs.next()

(3) pstmt.executeQuery()

와 같은 코드에 대한 처리를 완벽하게 했다고 말하기는 어렵습니다. 그 이유는 conn, rs, pstmt는 언제든지 null이 될 가능성이 있다고 할 수 있기 때문입니다. 물론 너무 비약하는 것이라고 말할 수도 있지만, 예를 드는 것이라는 점을 감안해야 합니다.

이런 가정 하에서의 모든 예외를 극복하기 위해서는 기본 클래스인 Exception에 대한 catch도 반드시 추가하여 최소한의 NullPointerException에 대한 처리를 추가해 주어야 한다고 생각합니다.

....

} catch (SQLException sqlex) {

            // sqlexception에 대한 처리....

} catch (Exception ex) {

           // 예외 처리...

}


필자는 요즘도 너무나 많은 NullPointerException들과 싸우고 있으며, 이런 잔잔한 오류들은 전체 시스템을 알 수 없는 불안정으로 몰아가기도 합니다.

Posted by bomsoft

$$$ 임시 파일
ACE ACE Archiver 압축 파일
ACF 마이크로소프트 에이전트, HTTP 문자 파일
ACL 코렐 드로우 6, 키보드 가속기 파일
ACM 윈도우 시스템 디렉토리 파일
ACM Fallout 1,2, Baulder`s Gate, 인터플레이 압축 사운드 파일
ACM Dynamic Link Library (DLL)
ACS 마이크로소프트 에이전트, 문자 구조의 저장 파일
AHQ AudioHQ 플러그인 모튤
AI 어도비 일러스트레이터 파일
AI 코렐 트레이스 드로잉
AIF, AIFF Audio Interchange File, 실리콘그래픽스와 매킨토시의 응용프로그램에서 사용되는 사운드파일 형식
AIS ACDSee, 이미지 순서 파일
ALBM HP Photosmart, 사진 출력용 앨범 파일
ALZ 이스트소프트 - 알집, 압축 파일
APP Centura Team Developer, Normal mode 애플리케이션 파일
APP 심포니, 애드인 애플리케이션
APP 마이크로소프트 비주얼 폭스프로, 생성된 애플리케이션 또는 활성화된 문서
APP dBase, 애플리케이션 생성기 객체
APP DR-DOS, 실행 애플리케이션
APP 폭스프로, 생성된 애플리케이션
APR ArcView 프로젝트 파일
APR Employee Appraiser 퍼포먼스 리뷰 파일
APR 로터스 어프로치 97 뷰 파일
ARC LH ARC (old version) 압축 아카이브
ARC SQUASH 압축 아카이브
ARJ Robert Jung ARJ 압축 아카이브
ART AOL, Johnson-Grace 압축 파일
ASD 마이크로소프트, Word 자동 백업 파일
ASF 마이크로소프트 Advanced Streaming Format 파일
ASM 어셈블러 파일, 컴파일되지 않은 어셈블리어 파일
ASP Active Server Page 파일 (마이크로소프 ASP 스크립트를 포함하고 있는 HTML 파일)
ASV 자동저장 파일 (Auto Save File)
ASX Cheyenne 백업 스크립트
ASX 마이크로소프트 Advanced Streaming Redirector 파일
ASX 비디오 파일
ATT AT&T 그룹 4 비트맵
AU Sun/NeXT/DEC/UNIX 등에서 쓰이는 사운드 파일
AVI 윈도우즈 무비를 위한 마이크로소프트 오디오 및 비디오 파일
AWD FaxView, 문서 이미지

BAK 백업파일
BAS 비주얼 베이직 모듈 파일
BAT MS-DOS 일괄처리 파일
BGDB 영산정보통신 배움닷컴용 GVA, 인증기능을 가진 강의 파일 (배움닷컴에서만 서비스받을 수 있음)
BIN 바이너리 파일
BMF Corel, 갤러리 파일
BMP 윈도우 또는 OS/2의 비트맵 그래픽 파일
BNK Electronic Arts 사운드 효과 뱅크 파일
BNK 애드립의 악기 뱅크 파일
BTR Btrieve 5.1, 데이터베이스 파일

C C 언어 소스 코드
CAB 마이크로소프트 캐비넷 파일 (소프트웨어 배포를 위해 압축된 프로그램 파일들)
CAD 소프트데스크 드라픽스 캐드 파일
CAL 윈도우 캘린더 파일
CAM 카시오(Casio) 카메라 파일
CAP 이야기97용 갈무리 파일
CAT dBase, 카탈로그 파일
CBL RM-COBOL, 원시코드 파일
CC C++ 언어 소스 코드
CCA cc:mail 아카이브 파일
CDA CD 오디오 트랙
CDF 마이크로소프트 채널 정의 형식 파일
CDR 코렐 드로우 파일
CDR 오디오 CD (공 CD) 데이터 파일
CDT 코렐 드로우 템플릿 파일
CDX 코렐 드로우 압축 파일
CER 보안 인증서
CFG 구성 파일
CFM ColdFusion, 템플릿
CFM 비주얼 dBASE, 윈도우 커스토머 폼
CFM 코렐. 폰트마스터 파일
CGI CGI 스크립트 파일
CGM 컴퓨터 그래픽 메타파일
CHK 도스에서 CHKDSK를 써서 복원된 파일
CHM Compiled HTML 파일
CLASS 자바 클래스 파일
CLP 윈도우 클립보드 파일
CLS 비주얼베이직 클래스 모듈
CMD Windows NT (OS의 .BAT 파일과 비슷함) 및 OS/2의 명령 파일
CNT Windows 또는 기타 시스템, 도움말 색인 등의 목적으로 사용되는 콘텐츠 파일
CNV Word for Windows, 데이터 변환 지원 파일
CNV WordPerfect for Windows, 임시 파일
CNV WS_FTP Pro, 변환 파일
COB COBOL 소스 코드
COM MS-DOS용 실행 파일
CPL 윈도우 제어판 파일
CPP 비주얼 C/C++ 소스 파일
CPX Corel Presentation Exchange, 압축된 도면 파일
CRC RZSplit, 분할된 파일에 관한 정보
CRW Canon, Raw Format
CSS Cascading Style Sheet file (MIME)
CSV Comma-separated values file
CUE 마이크로소프트 Cue Cards 데이터
CUR 윈도우 커서
CXX C++ 소스코드 파일

DAT 데이터 파일, 어떤 종류의 MPEG에서는 확장자가 DAT로 되어 있는 경우도 있음
DBF dBase 파일
DBF Oracle 8.1.x 테이블공간 파일
DBI Borland, 데이터베이스 탐색 정보
DBK dBase 데이터베이스 백업
DBX Outlook Express 5, 메일 저장 파일
DCR 쇽웨이브 파일
DCU 델파이 컴파일드 유니트
DGN Microstation95 CAD 도면
DIB 장치 독립적인 비트맵 (Device-independent bitmap)
DIR 매크로미디어 디렉터 파일
DIR ProComm Plus 다이얼링 디렉토리
DLL Dynamic Link Library
DLG C++, 다이얼로그 스크립트
DMP 화면이나 메모리의 덤프 파일
DOC 마이크로소프트 워드 파일
DOT 마이크로소프트 서식 파일
DPR 델파이 프로젝트 파일
DRV 드라이버 파일
DRW Micrografx 벡터 그래픽 파일
DRW 로터스 프리랜스 이미지
DRW Pro/E 드로잉
DSC Description 파일
DSC 오라클, 디스카드 파일
DSF Micrografx Designer v7.x
DSF Delusion, 디지털 사운드 파일
DSN ODBC 데이터 소스
DSP 마이크로소프트 디벨롭퍼 스튜디오, 프로젝트 파일
DSP 시그너춰, 디스플레이 매개변수들
DSP 닥터 할로, 그래픽 디스플레이 드라이버
DST C++/Delphi 데스크탑 설정치
DSW Borland C++ 4.5, 데스크탑 설정치
DSW 마이크로소프트 디벨롭퍼 스튜디오, 작업공간 파일
DTD SGML의 문서형식정의(DFD) 파일
DUN 마이크로소프트 윈도우 95/98, 다이얼업 네트워킹 파일
DWF Autodesk, 벡터 그래픽
DWF 마이크로소프트 WHIP autoCAD reader, 도면 웹 파일
DWG 오토캐드 파일
DWT 드림위버 템플릿 파일
DXF 도면 교환 (Drawing Interchange (eXchange)) 형식, 바이너리 DWG 형식의 텍스트 표현
DXR 디렉터 무비 파일 (편집불가)

EAR 자바 엔터프라이즈 애플리케이션 패키징 유니트
EBS WindowsXP 스캐너 파일
EBS Rational, Rose 98 스크립트 소스
EFX Everex EFax, 팩스 문서
EFX Efax Reader, 팩스 문서
EMF Enhanced Windows Metafile
EML 마이크로소프트 아웃룩 익스프레스, 메일 메시지 파일 (MIME RFC 822)
ENC Lotus 1-2-3 - uuencode, Encoded file - UUENCODEd 파일
ENC Encore, 음악 파일
ENV WOPR, Enveloper Macro
ENV Microsoft WordPerfect for Windows, 환경 파일
EPS 캡슐화된 포스트스크립트 이미지
ERX ERWin 파일
ESP 포스트스크립트 프린터를 위해 설계된 정보를 담고 있는 파일들
ETF Enriched Text File
EVT 이벤트 로그 (마이크로소프트 윈도우NT, 2000)
EXE 실행 파일
EXP 저장된 대화 (ICQ에서)
EXT WS_FTP PRO, ASCII 이진전송 파일

F FORTRAN 파일
F FREEZE 압축파일 아카이브
FCD 가상 CD-ROM 파일
FCD FastCAD/EasyCAD 출력 파일
FFA 마이크로소프트 find fast 파일
FLA 플래시 무비 파일
FLI 오토데스크의 FLIC 애니메이션
FLM 오토캐드, 필름 롤
FLX DataFlex, 컴파일된 바이너리 파일
FMG FreeMarkets 그래픽 브라우저
FNT 이야기97용 글꼴 파일
FON 시스템 글꼴 파일
FOR FORTRAN 소스코드
FRM 폼(form) 파일
FXR WinFax 수신문서 (TIFF 형식)

G APPLAUSE, 데이터 차트
G723 가공하지 않은 CCITT G.723 3 또는 5 비트 ADPCM 형식의 데이터
GAL 이야기, 갈무리 파일
GDB 영산정보통신 GVA 및 GVA2000, 압축된 강의 파일
GDB InterBase 데이터베이스 파일
GID 윈도우95 글로벌 인덱스
GIF 컴퓨서브 그래픽 파일
GSP Gnuzip, Zip 파일
GUL 훈민정음 파일
GZ 유닉스 gzip 압축 파일

H C 프로그램 헤더 파일
H30 한글 워디안, 한글97 문서를 한글 워디안으로 불러왔을 때 생기는 백업 파일
HDR 한그림97, 그림 파일
HDR Pc-File+, 데이터베이스 헤더 파일
HDR Egret, 데이터 파일
HDR ProComm Plus, 메시지 헤더 텍스트
HDR 1st Reader, 메시지 헤더 텍스트
HFT 아래아한글 글꼴 파일
HGL HP Graphics Language, 도면 파일
HHP ProComm Plus, 원격 사용자들을 위한 도움말 정보
HLP 도움말 파일
HNT 힌트 파일. 게임 등에서 자주 사용된다.
HP THOR 데이터베이스, 제1 해시 파일
HP HP/GL, HP 프린터 또는 플로터 출력용 프린트 파일
HST (일반적으로) 히스토리 파일

HTA 시스템 레지스트리를 갱신하게 위해 바이러스에 의해 사용되는 HTML 파일
HTM 하이퍼텍스트 문서
HTML 하이퍼텍스트 문서
HTX 확장 HTML, 템플릿 파일
HWD Hollywood, 프레젠테이션
HWP 아래아한글 파일
HWT 아래아한글 서식 파일

ICM Image Color Matching 프로필
ICN 아이콘 소스코드
ICO 아이콘 파일
IDX Outlook Express 4, 메일 저장 파일
IFF Interchange file, (Amiga ILBM)
IFF Image (Sun TAAC/SDSC Image Tool)
IGS CAD 오버레이 파일
IMG GEM, 이미지 파일
IMG Ventura Publisher, 비트맵 그래픽 파일
INC Include 파일 (어셈블러 언어 또는 Active Server)
INF 설치정보 파일
INI 초기화 파일, 환경설정 파일
IPX Interactive Pictures Corporation, AV 파일
ISO ISO 9660 CD-ROM 파일시스템 표준에 기반을 둔, CD-ROM 상의 파일 목록
ISU InstallShield, 언인스톨 스크립트

JAR 자바 아카이브 (애플릿이나 관련 파일들을 위한 압축 파일)
JAVA 자바 소스코드
JNB Sigma Plot 5, Workbook 파일
JPE JPEG 이미지
JPEG JPEG 비트맵 그래픽 파일
JPG JPEG 비트맵 그래픽 파일
JS 자바스크립트 소스 파일

LAN NetWare, Loadable module (LAN DLL)
LBM 비트맵 (DeluxePaint)
LBM Linear Bitmap graphics (XLib)
LCD CDSpace, CD 이미지 파일
LDIF 주소록 교환 형식
LGC 윈도우 애플리케이션 로그 파일
LHA LZH 파일의 또다른 확장자명
LIB 라이브러리
LNK 윈도우 바로가기 파일
LOD 로드 파일
LOG 로그 파일
LZH LH ARC 압축 파일
LWD LotusWorks, 텍스트 문서 파일

M3U MPEG URL (MIME 오디오 파일) (MP3 재생 목록)
MAC 이미지 (MacPaint)
MAK 비주얼 베이직 또는 비주얼 C++ 프로젝트 파일
MAX Kinetix 3D Studio Max, 3D 장면
MAX Paperport, 문서 파일
MAX OrCad, 레이아웃 파일
MAX MAX, 소스코드
MBX Outlook Express 4, 메일 저장 파일
MCC MathCad, 구성 파일
MCD MathCad, 문서 파일
MCF MathCad, 글꼴 파일
MCP Metrowerks CodeWarrior 프로젝트 파일
MCP Capsule 애플리케이션 스크립트
MCP Mathcad 프린터 드라이버
MCR DataCad, 키보드 매크로 파일
MDB 마이크로소프트 액세스 데이터베이스
MDF 마이크로소프트, MS-SQL Master 데이터베이스 파일
MDL CA-Compete!, 스프레드시트
MDL Digital Trakker, 음악 모듈
MDL 3D Design Plus, 모델
MDL Quake, 모델 파일
MDL Rational Rose, 모델 파일 요소
MHT 마이크로소프트, MHTML 문서
MHTM MHTML 문서 (MIME)
MHTML MHTML 문서 (MIME)
MI Cocreate ME10 데이터 파일
MI 잡다한(Miscellaneous) 파일들의 일반적인 총칭
MID 미디 음악 파일
MIX Power C, 오브젝트 파일
MIX 마이크로소프트 PhotoDraw 2000, 그림 파일
MIX 마이크로소프트 Picture-It!, 그림 파일
MIX Command & Conquer, 패키지 파일
MIX Westwood Studios, 리소스 아카이브
MMP MindMapor, MindManager 파일
MMP Bravado, MMP 출력 비디오
MODEL CATIA, 도면 파일
MOV QuickTime for Windows 무비 파일
MP2 MPEG Audio Layer 2 파일 (MIME 비디오 파일)
MP3 MPEG Audio Layer 3 로 압축된 음악 파일
MP4 MPEG-4 비디오 파일
MPEG MPEG 동영상 파일
MPF MP3 Folders, 폴더 파일
MPG MPEG 동영상 파일
MPP 마이크로소프트 프로젝트, 프로젝트 파일
MPP CAD 도면 파일
MPT 마이크로소프트 프로젝트, 템플릿 파일
MRC 서지 데이터 (Machine-Readable Cataloging records)
MSC 마이크로소프트 윈도우 2000, Common Console Document
MSG 마이크로소프트, 전자우편 메시지
MSI 마이크로소프트 윈도우 인스톨러 패키지
MSO 마이크로소프트, FrontPage 파일
MUS Oak Road Systems, WHISTLE 데이터 파일

NFO Folio, Infobase 파일
NIL Norton, 아이콘 라이브러리 파일
NLS Uniscape, 현지화를 위해 사용된 국어 지원 파일
NOD Netobject Fusion, 파일
NRG Nero, ISO 9660 이미지 (CD-ROM 데이터용 순수 ISO 9660 이미지와 동일)

OBD 마이크로소프트 오피스, 바인더
OBZ 마이크로소프트 오피스, 바인더 마법사
OCX 마이크로소프트 OLE custom control
OFT 마이크로소프트 아웃룩, 서식 파일
OGG Vorbis, Vorbis 오디오 파일
OLB 마이크로소프트 OLE, 오브젝트 라이브러리
OLD 백업 파일 들의 일반적인 총칭
OR3 로터스 오거나이저 97 파일
OST 마이크로소프트 아웃룩, 오프라인 파일
OVL 오버레이 파일
OVR 오버레이 파일

P7M S/MIME, 암호화와 서명, 불명료한 서명이나 일반적인 서명된 문서
PAB 마이크로소프트, 개인 주소록
PAS 볼랜드 파스칼, 소스코드 파일
PBR 파워빌더 자원 파일
PCD 코닥 Photo-CD 이미지
PCL HP 프린터 제어 언어 파일
PCO Pro*COBOL, 원시파일
PCT 매킨토시 PICT drawing
PCX ZSoft PC 페인트브로쉬 비트맵 파일
PDF 어도비 애크로뱃 문서 형식 (Portable Document Format)
PG 2D Graphic
PGD PGPdisk, 볼륨 파일
PGP Pretty Good Privacy, 암호화된 파일
PHP PHP 스크립트가 들어있는 HTML 페이지
PHP3 PHP 스크립트가 들어있는 HTML 페이지
PHTML PHP 스크립트가 들어있는 HTML 페이지
PIC PC Paint 비트맵
PIC Lotus picture
PIC 매킨토시 PICT drawing
PICT 매킨토시 PICT 이미지 파일
PIF 프로그램 정보 파일(Program Information File)
PJT 마이크로소프트 비주얼 폭스프로(Visual FoxPro), 프로젝트 테이블 메모 파일
PKG P-CAD, 데이터베이스
PL Perl 프로그램
PLT HPGL Plotter, 도면 파일
PLT AutoCAD, 플롯 도면
PLT (일반적으로) 팔레트 파일
PM4 페이지메이커 4.0 문서 파일
PNG Portable Network Graphics 비트맵 그래픽 파일
POT 마이크로소프트 파워포인트 서식 파일
PPD Adobe Acrobat v.4.0, 포스트스크립트 프린터 정의 파일 규격
PPS 마이크로소프트 파워포인트 슬라이드 쇼
PPS Personal Producer 스토리 보드
PPT 마이크로소프트 파워포인트 파일
PRF 마이크로소프트 윈도우, 시스템 파일
PRF 매크로미디어 디렉터, 설정 파일
PRF Improces-Fastgraph, Pixel Run 형식 그래픽
PRF dBase IV, 프린터 드라이버
PRF Profiler, 출력 파일
PRN 프린트 테이블 (빈칸으로 구분된 텍스트)
PRN 데이터 캐드, 윈도우 프린터 파일
PRN 시그너처, 프린터 드라이버
PRN 로터스123 심포니, 텍스트 파일
PRT CADKEY, 부품 파일
PRZ 로터스 프리랜스97, 그래픽 파일
PS 포스트스크립트 형식의 출력용 파일
PSD 어도비 포토샵 비트맵 파일
PSP 페인트샵 프로 이미지 파일
PST 마이크로소프트 아웃룩, 개인 폴더 파일
PUB Ventura Publisher, Publication 파일
PUB Microsoft Publisher, 문서 파일
PUB PGP, 공개키 링 파일
PWL 윈도우95/98 패스워드 목록 파일
PXR Pixar, Pixar 이미지 형식
PXT 마이크로소프트, 포켓 엑셀 템플릿

QRP Centura, 보고서 작성자 파일
QTX QuickTime, 이미지 파일

RA 리얼오디오 소리 파일
RAM 리얼오디오 메타 파일
RAR RAR 압축 파일
RAW Raw File Format (비트맵)
RBF Rbase, 데이터 파일
RC 마이크로소프트 C/C++, 리소스 스크립트
RC Borland C++, 리소스 스크립트
RC emacs, 구성 파일
RCP Recomposer`s MIDI 시퀀서 음악 파일
RDO Xerox, Document Assembler Metafile
REG 윈도우 레지스트리 파일
RES 마이크로소프트 Visual C++, 리소스 파일
RLE Run-Length Encoded bitmap
RM 리얼오디오 비디오 파일
RMI MIDI 음악 파일
ROL FM 음악 Adlib 음악파일 (Roland)
ROM 카트리지 기반의 홈 비디오 게임 에뮬레이터 파일
RPM 레드햇 리눅스의 패키지 매니저 파일
RPT 크리스탈 리포트 파일 (및 마이크로소프트 비주얼베이직의 서브셋)
RTF Rich Text Format 문서

S 유닉스, 어셈블러 원시 코드 파일
S3M Scream Tracker v 3.0, 16 채널 음악 파일
SAT ACIS, Solid 모델
SAV 저장된 게임 파일 (일반 명칭)
SBD Storyboard Editor, 스토리보드 데이터 파일
SBD Superbase, 데이터 정의 파일
SBL Shockwave 플래시 오브젝트
SCC 마이크로소프트, 소스 세이프 파일
SCR 화면보호기 파일
SD2 SAS 데이터베이스 (윈도우95/NT OS/2, 매킨토시)
SEA 자체적으로 압축이 풀리는 아카이브 파일 (매킨토시 파일들을 위해 Stuffit에서 사용됨)
SFX RAR 자체-풀림 아카이브
SGML Standard Generalized Markup Language 파일
SHTML Server Side Includes (SSI)가 포함되어 있는 HTML 파일
SH3 하바드 그래픽스 프레젠테이션 파일
SIB Sibelius, 음악 파일
SIT Stuffit, 압축된 매킨토시 아카이브 파일
SMI 로터스 CC:Mail, 스마트 아이콘
SND NeXT, 사운드 파일
SND 매킨토시, 사운드 리소스 파일
SNM 넷스케이프, 메일 폴더 인덱스
SPI Siemens Scanner, 그래픽 파일
SPI Phillips Scanner, 그래픽 파일
STEP ISO-10303 STEP 제품 데이터
STP 어도비, Acrobat Exchange 플러그인
STP ISO-10303 STEP 제품 데이터
STP DART Pro, DART Pro 98 시스템 설정치
STY 아래아한글 스타일 파일
SUB Divx 서브타이틀
SWA Macromedia Director, 쇽웨이브 오디오 파일
SWF 쇽웨이브 플래시 객체
SYD QEMM, 기동 파일 백업
SYS 시스템 파일

TAR 테이프 아카이브
TBL Pagemaker TableEditor, 그래픽 형식
TBL OS/2, 표 형식의 값들
TEL 이야기97용 전화걸기 정보 파일
TGA Targa 비트맵
TGZ 유닉스 Gzip/테이프 아카이브
THM 비디오 썸네일 파일
TIF Tag Image File Format 비트맵 파일
TIFF Tag Image File Format 비트맵 파일
TLB 마이크로소프트 OLE type 라이브러리 파일
TLB 버블 에디터 참고 테이블
TLB VAX 텍스트 라이브러리
TLB 비주얼 C++ Type 라이브러리
TMP 윈도우 임시 파일
TRM 윈도우 터미널 파일
TRX I-Cite, 익스포트 파일
TSD trueSpace 4, 데모 파일
TSK Pocket PC, 스킨 파일 (테마)
TSM OS/2용 Turbo Assembler, 설명서 파일
TTC 트루타입 컬렉션 파일
TTF 트루타입 글꼴
TXT 아스키 텍스트
TZZ 탑정보통신 밤톨이 압축파일 (분할 압축시 두번째 파일부터는 002, 003 ... 등 숫자가 사용됨)

URH 훈넷 슬라이더, 이미지 주소 파일
URL 인터넷 바로가기 파일
UU UU-encode된 파일
UUE UU-encode된 파일

VBP 비주얼베이직, 프로젝트
VBR 비주얼베이직, Remote automated registration 파일
VBS 비주얼베이직, 스크립트 파일
VBW 비주얼베이직, Workspace 파일
VBX 비주얼베이직, custom control 파일
VCD Virtual CD-ROM
VCF 넷스케이프, 가상 카드 파일
VCT 마이크로소프트 폭스프로(FoxPro) 클래스 라이브러리
VCX 마이크로소프트 폭스프로(FoxPro) 클래스 라이브러리
VOB Digital Video Disk, 현재 DVD에서 사용되는 암호화된 비디오 및 오디오 파일들
VOC 크리에이티브 랩스 사운드 블라스터 오디오 파일
VOC Quartet 오디오 파일
VQE 야마하 사운드 VQ Locator 파일
VQF 야마하 사운드 VQ 파일 (새로운 표준이 될 가능성이 있는 후보)
VQL 야마하 사운드 VQ Locator 파일
VRML VRML 파일
VSD 비지오 드로잉 파일
VSS 비지오 스텐실 파일
VUE dBase IV 뷰 파일
VUE 마이크로소프트 폭스프로 뷰 파일
VXD 마이크로소프트 가상 장치 드라이버

W44 dBase 임시 파일
WAB Outlook 주소록
WAV 윈도우 웨이브 파일
WCM WordPerfect 매크로
WEJ 나모 웹에디터, 프로젝트 파일
WFX 윈도우 팩스 파일
WKS Microsoft Works, 문서
WMA 마이크로소프트 Windows Media 오디오 파일 (ASF 형식으로 변경 가능)
WMF 윈도우 메타 파일
WMV 마이크로소프트, 윈도우 미디어 파일
WP4 WordPerfect 4 문서
WP5 WordPerfect 5 문서
WP6 WordPerfect 6 문서
WPD WordPerfect 문서
WPG WordPerfect 그래픽
WPS Microsoft Works, 텍스트 문서
WPT WordPerfect 템플릿
WRL 가상현실 모델
WQ1 쿼트로프로/DOS용 스프레드시트
WQ2 쿼트로프로/버전5 스프레드시트
WSD WordStar, 문서파일
WSF Windows 스크립트 파일
WSP Fortran PowerStation, WorkSpace file
WSZ WinAmp, 스킨파일

XDW 제록스 DocuWorks 문서
XLC 마이크로소프트 엑셀 차트
XLM 마이크로소프트 매크로 파일
XLS 마이크로소프트 엑셀 파일
XLT 마이크로소프트 엑셀 서식 파일
XML eXtensible Markup Language 파일
XY XYWrite, 텍스트 파일

Y Amiga, Yabba 압축 아카이브
YAL Arts & Letters 클립아트 라이브러리

ZIP Zip 압축 파일
ZOO Zoo, 초창기의 압축 파일 형식

123 로터스 1-2-3 파일
2BP Pocket PC 비트맵

Posted by bomsoft

HTTP Error Code

OS 2008/03/04 10:07
HTTP Error Code (에러 코드표) 
 
100: Continue
101: Switching Protocols
200: OK, 에러없이 전송 성공
202: Accepted, 서버가 클라이언트의 명령을 받음.
203: Non-authoritavive Information, 서버가 클라이언트 요구중 일부만 정송
204: Non Content, 클라이언트 요구를 처리했으나 전송할 데이터가 없음.
205: Reset Content
206: Partial Content
300: Multiple Choisces, 최근에 옮겨진 데이터를 요청
301: Moved Permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음.
302: Moved Permanently, 요구한 데이터가 변경된 URL에 있음을 명시.
303: See Other, 요구한 데이터를 변경하지 않았기 때문에 문제가 있음.
304: Not modified
305: Use Proxy
400: Bad Request, 요청실패문법상 오류가 있어, 서버가 요청사항을 이해하지 못함, 클라이언트는 수정없이 요청사항을 반복하지 않을 것이다.
401.1: Unauthorized, 권한 없음 (접속실패)이 에러는 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지 않을 경우 발생한다. 
이 경우, 여러분이 요청한 자원에 접근할 수 있는 권한을 부여받기 위해 서버 운영자에게 요청해야 할 것이다. 401.2: Unauthorized, 권한 없음(서버설정으로 인한 접속 실패)이 에러는 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지않을 경우 발생한다.
이것은 일반적을 으로 적절한 www-authenticate head field를 전송하지 않아서 발생한다. 401.3: Unauthorized, 권한 없음(자원에 대한 ACL에 기인한 권한 없음)이 에러는 클라이언트가 특정 자원에 접근할 수 없을 때 발생한다.
이 자원은 페이지가 될 수도 있고 , 클라이언트의 주소 입력란에 명기된 파일일 수도 있다. 아니면 클라이언트가 행당 주소로 들어갈 때 이용되는 또 다른 파일일 수도 있다.
여러분이 접근할 전체 주소를 다시 확인해 보고 웹 서버 운영자에게 여러분이 자원에 접근할 권한이 있는지를 확인해 본다. 401.4: Unauthorized, 권한 없음(필터에 의한 권한 부여 실패)이 에러는 웹 서버가 서버에 접속하는 사용자들을 확인하기 위해 설치한 필터 프로그램이 있음을 의미한다.
서버에 접속한는 데 이용되는 인증 과정이 이런 필터 프로그램에 의해 거부되었다. 401.5: Unauthorized, 권한 없음(ISA PI/CGI 애플리케이션에 의한 권한부여 실패)이 에러는 여러분이 이용하려는 웹 서버의 어드레스에 ISA PI나 CGI프로그램이 설치되어 있어 사용자의 권한을 검증하고 있음을 의미한다.
서버에 접속하는 데 이용되는 인증 과정이 이 프로그램에 의해 거부되었다. 402: Payment Required, 예약됨. 403.1: Forbidden, 금지(수행접근 금지)이 오류는 CGI나 ISAPI,혹은 수행시키지 못하도록 되어있는 디렉토리 내의 실행 파일을 수행시키려고 했을 때 발생한다. 403.2: Forbidden, 금지(읽기 접근 금지)이 에러는 브라우저가 접근한 디렉토리에 가용한 디폴트 페이지가 없을 경우에 발생한다.
아니면 Eecute나 Script로 분한이 부여된 디렉토리에 들어있는 HTML페이지를 보려했을 때 발생한다. 403.4: Forbidden, 금지(SSL 필요함)이 에러는 여러분이 접근하려는 페이지가 SSL로 보안유지 되고 있는 것일 때 발생한다.
이것을 보기 위해서 여러분은 주소를 입력하기 전에 먼저 SSL을 이용할 수 있어야 한다. 403.5: Forbidden, 금지 (SSL 128필요함)이 에러는 접근하려는 페이지가 SSL로 보안유지 되고 있는 것일 때 발생한다.
이 자원을 보기 위해서는 여러분의 브라우저가 SSL의 행당 레벌을 지원해야 한다. 여러분의 브라우저가 128비트의 SSL을 지원하는 지를 확인해 본다. 403.6: Forbidden, 금지(IP 주소 거부됨)이 에러는 서버가 사이트에 접근이 허용되지 않은 IP주소를 갖고 있는데, 사용자가 이 주소로 접근하려 했을 때 발생한다. 403.7: Forbidden, 금지(클라이언트 확인 필요)이 에러는 여러분이 접근하려는 자원이 서버가 인식하기 위해 여러분의 브라우저에게 클라이언트 SSL을 요청하는 경우 발생한다.
이것은 여러분이 자원을 이용할 수 있는 상용자임을 입증하는데 사용된다. 403.8: Forbidden, 금지 (사이트 접근 거부됨)이 에러는 웹 서버가 요청사항을 수행하고 있지 않거나, 해당 사이트에 접근하는 것이 허락되지 않았을 경우 발생한다. 403.9: Forbidden, 접근 금지(연결된 사용자수 과다)이 에러는 웹서버 BUSY 상태에 있어서 여러분의 요청을 수행할수 없을 경우에 발생한다. 잠시 후에 다시 접근해 보도록 한다. 403.10: Forbidden, 접근금지(설정이 확실 하지 않음)이 순간 웹 서버의 설정쪽에 문제가 있다. 403.11: Forbidden, 접근금지(패스워드 변경됨)이 에러는 사용자 확인단계에서 잘못된 패스워드를 입력했을 경우 발생한다. 페이지를 갱신한 후 다시 시도해 본다. 403.12: Forbidden, 접근금지(Mapper 접근 금지됨)여러분의 클이언트 인증용 맵이 해당 웹 사이트에 접근하는 것이 거부되었다.
사이트 운영자에게 클라이언트 인증 허가를 요청한다. 또한 여러분은 여러분의 클라이언트 인증을 바꿀 수도 있다. 404: Not Found, 문서를 찾을 수 없음.웹 서버가 요청한 파일이나 스크립트를 찾지 못했다. URL을 다시 잘 보고 주소가 올바로 입력되었는지 확인해본다.
- 해결방법: a.도구 ▶ 인터넷옵션 ▶ 일반 ▶ 쿠키삭제, 파일삭제, 목록지우기
b.도구 ▶ 인터넷옵션 ▶ 고급 ▶ [URL을 항상 UTF-8FH로 보냄] 체크 해제. 405: Method not allowed, 메쏘드 허용안됨Request 라인에 명시된 메쏘드를 수행하기 위해 해당 자원의 이용이 허용되지 않았다. 여러분이 요청한 자원에 적절한 MIME 타입을 갖고 있는지 확인해 본다. 406: Not Acceptable, 받아들일 수 없음요청 사항에 필요한 자원은 요청 사항으로 전달된 Acceptheader에 따라 "Not Acceptable"인 내용을 가진 Response 개체만을 만들 수 있다. 407: Proxy Authentication Required, 대리(Proxy) 인증이 필요함해당 요청이 수행되도록 proxy 서버에게 인증을 받아야 한다. proxy서버로 로그온 한 후에 다기 시도해 본다. 408: Request timeout, 요청시간이 지남 409: Conflict 410: Gone, 영구적으로 사용할 수 없음. 411: Length Required 412: Precondition Failed, 선결조건 실패Request-header field에 하나 이상에 선결조건에 대한 값이 서버에서 테스트 결과 FALSE로 나왔을 경우에 발생한다.
현재 자원의 메타-정보가 하나 이상의 자원에 적용되는 것을 막기 위한 클라이언트 선결조건이 의도되어졌다. 413: Request entity too large 414: Request-URI too long, 요청한 URI가 너무 길다요청한 URI가 너무 길어서 서버가 요청 사항의 이행을 거부했다. 이렇게 희귀한 상황은 아래와 같은 경우에만 발생한다.
클라이언트가 긴 탐색용 정보를 가지고 POST 요청을 GET으로 부적절하게 전환했다. 클라이언트가 Redirection문제를 접하게 되었다. 서버가, 몇몇 서버가 사용하고 있는 요청한 URI 를 읽고 처리하는 고정된 길이의 메로리 버퍼를 이용해 보안체계에 들어가려는 , 클라이언트에 의한 공격을 받고 있다. 415: Unsupported media type 500: Internal Server Error, 서버 내부 오류웹 서버가 요청사항을 수행할 수 없다. 다시 한 번 요청해 본다. 501: Not Implemented, 적용안됨웹 서버가 요청사항을 수행하는 데 필요한 기능을 지원하지 않는다. 에러가 발생한 URL을 확인한 후에, 문제가 지속될 경우에는 웹 서버 운영자에게 연락한다. 502: Bad gateway, 게이트웨이 상태 나쁨/서버의 과부하 상태Gateway나 proxy로 활동하고 있는 서버가 요구 사항을 접수한 upstream 서버로부터 불명확한 답변을 접수 했을 때 발생한다. 만약 문제가 지속된다면 웹 서버 운영자와 상의해 본다. 503: Service Unavailable, 외부 서비스가 죽었거나 현재 멈춘 상태 또는 이용할 수 없는 서비스서버는 현재 일시적인 과부하 또는 관리(유지,보수) 때문에 요청을 처리할 수 없다.이것은 약간의 지연후 덜게될 일시적인 상태를 말한다.Retry-After 헤더에 지연의 길이가 표시하게 될지도 모른다.
만약 Retry-After를 받지 못했다면 클라이언트는 500 응답을 위해 하고자 했는것처럼 응답을 처리해야 한다. 상태코드의 존재는 서버가 과부하가 걸릴때 그것을 사용해야한다는 것을 말하는 것이 아니다. 몇몇 서버는 접속을 거부하는 것을 바랄지도 모른다. 504: Gateway timeout 505: HTTP Version Not Supported
Posted by bomsoft

Java에 있어서, String 변수가 가지고 있는 값이 유효한 값인지 체크하는 경우는 상당히 많습니다. 많은 개발자들이 비슷하지만 다양한 방법으로 체크를 하는 코드를 작성하고 있습니다.

예를 들면, String의 equals() 함수를 이용해서

    if ( !(str.equals("") ) {
        // OK~~!
    }

와 같이 검사하는 경우가 종종 있습니다.

이렇게 하게 되면, 우선 null 인지 여부를 누락하는 것이고, String 변수에 garbage 값이 들어 있는 경우 오류가 발생할 소지가 있습니다.

따라서, robust programming 에서는 다음과 같이 체크할 것을 권장합니다.
------------------------------------------------------------
String str;

//........<중간생략>........

if (str != null && str.length > 0) {          
    // 유효한 값으로 처리
}
------------------------------------------------------------
여기서, 기본적으로 null 인지 검사하고, 문자열의 길이를 체크함으로써 유효한 값을 가지고 있는 지 검사하는 방법입니다.
이런 방식은 str = "" 의 값을 가질 경우도 유효하지 않은 것으로 가정하는 경우입니다.
str = "" 도 유효하지 않다고 가정하는 이유는, 문자열이 null 은 아니지만 실제로 아무런 값도 가지고 있지 않게 되면 일반적으로, 이와 관련이 있는 다른 코드에서 오류를 유발하는 것을 방지할 수 있기 때문입니다.

또한, 길이 즉 숫자를 체크하는 것이기 때문에, 체크를 위한 속도 측면에서도 권할만 합니다.

Posted by bomsoft
TAG java, RP, String
/*****************************************************************
특정 테이블에 row가 추가/변경/삭제된 경우에 작동되는 트리거 샘플입니다.
추가/변경/삭제가 되면 그 row의 key 값을 지정한 테이블 (tb_log)에 저장하는 간단한 예입니다.
*****************************************************************/

CREATE OR REPLACE TRIGGER trigger_name
    AFTER INSERT OR UPDATE OR DELETE ON table_name
    FOR EACH ROW

BEGIN
   IF INSERTING THEN
         INSERT INTO Tb_log VALUES ( :NEW.table_key, '0');
   ELSIF UPDATING THEN
         INSERT INTO Tb_log VALUES ( :NEW.table_key, '1');
   ELSIF DELETING THEN
         INSERT INTO Tb_log VALUES ( :OLD.table_key, '2');
   END IF;
   EXCEPTION
       WHEN OTHERS THEN
       RETURN;
END;
/
Posted by bomsoft
TAG Oracle, RP, SQL, Trigger
unix 시스템에서, 현재의 시스템 시간을 변수로 담아서 사용하기 위해서는 다음과 같이 해야 합니다.

CHECK_DATE=`date "+%Y.%m.%d.%H.%M.%S"`

여기서,
포맷 스트링의 맨 앞의 "+"는 포맷을 지정한다는 의미이므로 반드시 필요하고, 나머지는 년,월,일,시,분,초 의 순서입니다.
시간 표시인 %H는 12시 이후의 시간으로 13, 14, 15 ... 형식으로 보여주고,
소문자로 %h와 같이 표시하면 12 시 이후의 시간이 다시 1, 2, 3시...와 같이 표시됩니다.

$ man date

를 참조하면 보다 자세한 정보를 알 수 있습니다. unix에서 man을 자주 활용하면 도움이 될 때가 많습니다.

Posted by bomsoft
TAG ksh, RP, shell, UNIX