태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

Robust Computing은 궁극적으로 사람을 위한 컴퓨팅 환경이 되어야 하며, 그 환경을 만들고 사용하는 모든 사람과 시스템은 강건해야 하는 것입니다.

우선, Robust User가 되어야 겠습니다. 컴퓨팅으로 얻고자 하는 것이 진정으로 인간에게 도움이 되는 것인지를 판단할 수 있어야 겠습니다.
다소 맹목적으로 멋진 그림이나 상상으로 컴퓨팅 환경을 생각해서, 결국에는 사람을 더 힘들게 하거나 비인간적인 결과를 초래해서는 안되겠습니다.

다음으로, Robust User의 바램에 따라서 Robust Programming을 수행해야 합니다. Robust Programming을 수행하기 위해서는 Robust Developer가 되어야 겠습니다. Robust Developer는 항상 자신의 건강과 즐거운 생활을 유지하도록 노력해야 합니다. 그런 다음에야 Robust Programming을 수행할 수 있을 것입니다.

Robust Programming에 의해서 Robust System의 완성될 것입니다. 이 시스템은 Robust User에게 도움이 되며, 시스템적으로 강건해서 오류나 수정이 적어야 합니다. 강건하기 못한 시스템은 Robust User와 Robust Developer에게 도리어 해가 되는 컴퓨팅 환경을 제공하게 되기 때문입니다.

이러한 과정을 잘 수행하기 위해서는 Robust Programming이 가장 핵심적으로 잘 이루어져야 합니다.
Robust Programming을 성공적인 수행을 위한 방안들은 별도로 정리될 것입니다.


저작자 표시
Posted by bomsoft
Robust Computing 은
Computing에 관한 일에 대한 나의 바램을 표현하는 키워드 이기도 합니다.

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

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




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

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

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

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

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

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

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

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

물론 익숙하지 않을 수도 있지만, 몇번만 시도해 보시길 권해 봅니다.
필자도 개발 경력 10년은 가지고 있지만, 두 가지 (자바 스타일의 naming과 고전적(?) naming)을 적절히 혼용해서 사용하고 있습니다. 즉 두가지 모두에 익숙하다는 것입니다.
참고로, 필자가 주로 사용하는 언어도 Java 입니다. 오해 없으시길 바랍니다. 끝.
Posted by bomsoft
TAG java, Naming, RP
많은 소프트웨어 개발자들은 밤 늦게 까지 일하는 경우가 너무나 많습니다.
이렇게 하는 데는 여러가지 이유가 있고, 또한 대부분의 개발자들이 어쩔수 없는 일이라고 생각하는 것 같습니다.
그 여러가지 이유는, 개발 기간이 너무 짧아서, 리더나 상사가 재촉하기 때문에, 개발하는 과정에서 어려운 로직을 구사할 필요가 있어서, 등이 있을 것 입니다.
물론, 필자도 개발자였으며, 현재도 개발에 참여하고 있기 때문에 누구보다도 충분히 이해할 수 있습니다.

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

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

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

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

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

1. 가장 최우선 전제조건은 프로그래머 자신의 정신적/육체적 상태가 건강해야 한다는 것입니다. 프로그래밍도 사람이 하는 일이고, 이것을 하는 사람의 상태가 좋지 않다면, 좋은 결과를 얻을 수 없다는 것입니다.

2. 이를 기반으로, 안정적인 설계와 프로그램 코드를 생산해야 합니다. 프로그램에는 안정성, 성능, 이식성, 가독성, 호환성 등 많은 요소들이 있지만, 안정성을 가장 중요하게 다루어야 합니다. 안정적이지 못한 프로그램은 재작업, 디버깅 등의 어렵고 힘든 일을 만들어 내기 때문입니다.

3. 위의 두가지가 만족된 상태라면, 프로그램의 성능을 고려합니다. 프로그램은 사용자가 사용하는 것이므로, 사용자 입장에서 가장 기본이 되는 평가요소가 성능으로 간주하고 성능 향상을 도모합니다.

이러한 과정을 잘 수행하기 위해서, 기존의 각종 방법론이나 경험들을 정리하여 활용해야 하며, 필요하다면 새로운 기법도 제공되어야 합니다.

Posted by bomsoft
Robust Programming (RP)을 하기 위해서는,
무엇보다 안정적인 프로그램 코드를 빠른 시간 내에 작성해야, 개발자가 건강하고, 그래야 전체적으로 실수 없이 프로젝트가 가능하다고 생각합니다.

보통은 프로그램 코드를 잘 작성하기 위해서, 자신만의 라이브러리를 만들거나 수집해 두는 개발자 분들을 흔히 볼 수 있습니다. 물론 나쁘지 않은 방법입니다. 하지만, 자신 혼자 만의 라이브러리일 경우가 많기 때문에, 제대로 갖추어지기 까지는 무척이나 많은 시간이 걸릴 것입니다. 그리고, 그것을 활용하기에도 자신만이 가능할 가능성이 높아집니다. 즉 여러사람이 쓰기에는 좀 어렵다는 겁니다. 물론 자신 혼자는 아주 막강하게 쓸 수 있지만, 그런 라이브러리를 구축한 개발자는 아마도 없지 않을 까 싶습니다.

그래서, RP에서는 라이브러리 구축이 아닌, Code Sampling을 권장합니다.
즉 여러 프로그램 코드들 중에서, 작은 단위, 즉 한 페이지 정도나 함수 하나 정도의 크기로 샘플을 취하는 것입니다.
이렇게 취해진 code sample은, 아주 단편적인 샘플이여야 하며, 너무 구조적이나 객체지향적이여서는 안됩니다. 이해가 잘 안될 수 있기 때문입니다. 이해하는 데 시간을 많잇 소모하면 좋지 않습니다. 또한, 코멘트가 잘 작성되어 있으면 더욱 좋은 샘플이 될 것입니다.

이런 코드 샘플들을 얼마나 많이 모으고, 쉽게 검색해서, 빨리 활용하는 가를 고려해 나가면 되겠습니다.
잘 정리된 함수나 객체 라이브러리를 구축하고, 교육 받고, 이해하고, 적응하는 시간보다 효율적일 것입니다.
Posted by bomsoft