Book & Superficial2007. 5. 21. 15:14
이 포스트는 저의 싸이홈피에 2006.01.09 09:51 포스팅되었으며 블로그이전으로 재포스팅함

사용자 삽입 이미지

박완서 그녀가 흘려내는 이야기는 가슴을 죄어 온다.
그녀의 이야기를 많이 듣지는 못했다.
그 많던 싱아를 누가다 먹었을까, 아주 오래된 농담 이 2권의 이야기를 읽었던것 뿐이지만 그녀를 알수있을 것만 같은 느낌이 든다.
특히 그녀는 그녀의 이야기를 그녀의 책속에 나오는 주인공들의 삶속으로 밀어넣어 버린다. 그녀의 이야기는 정말 그녀의 이야기인냥 말이다.
6.25를 껶었던 그녀의 유년시절과 6.25이후 한국새대를 살아온 그녀는 그녀의 책속에서 그대로 들어난다.
그리하여 그시대를 껶어보지 못한 나지만 그녀의 책을 읽고 난 후엔 그 시대를 꼭 껶었던것만 같다..
이시대 최고의 작가라는 그녀의 책을 읽지 못한다면 후회하게 될것이다.


'Book & Superficial' 카테고리의 다른 글

모모(MOMO)  (0) 2007.05.21
화성에서온여자금성에서온남자  (0) 2007.05.21
내영혼을 위한 닭고기 수프  (0) 2007.05.21
거북이도 난다  (0) 2007.05.21
피크닉(Picnic, 1996)  (0) 2007.05.21
Posted by aspirinirony
Book & Superficial2007. 5. 21. 15:12
이 포스트는 저의 싸이홈피에 2006.01.09 10:03 포스팅되었으며 블로그이전으로 재포스팅함

사용자 삽입 이미지
닭고기 수프라는 제목에서 이것이 무엇일까하는 의구심이 들었다.
에매한 비유법이나 은유나 상징으로 쓰인 문구일까라는 나름 대로의 정의를 내리기나 추리를 했다. 그래서 알아냈다.
미국인들은 아프거나 춥거나 감기에 걸렸을때 엄마가 따끊한 닭고기스프를 해준다고 한다. 그리고 그 닭고기수프를 먹으면 몸에 온기가 살고 감기가 낳고 아픈것이 덜해진다고 한다. 그 때문에 미국인들은 닭고기 수프를 그들의 고향처럼 아련하면서도 포근한 그 무엇이냐(문화가 다르니까 어떤설명을 해야할지 모르겠다0TL) 그냥 좋은것으로 여긴다

이 책은 따뜻한 이야기시리즈로 알면된다. 여러가지 따뜻하면서도 교훈적인 단편들로 구성되어 있는데 예전부턴가 트렌드로 부각된 감동을 주는 단편모음전과 같은 책이다.


'Book & Superficial' 카테고리의 다른 글

화성에서온여자금성에서온남자  (0) 2007.05.21
그 많던 싱아를 누가다 먹었을까  (0) 2007.05.21
거북이도 난다  (0) 2007.05.21
피크닉(Picnic, 1996)  (0) 2007.05.21
13층(The Thirteenth Floor, 1999)  (0) 2007.05.18
Posted by aspirinirony
Book & Superficial2007. 5. 21. 15:00
이 포스트는 저의 싸이홈피에서 2005.09.28 02:12에 포스팅되었다가 블로그이전으로 재포스팅함.
사용자 삽입 이미지
거북이도 난다
(Turtles Can Fly,Lakposhtha Ham Parvaz Mikonand,2004)

감독 : 바흐만 고바디
출연 : 소란 에브라힘(위성), 아바즈 라티프(아그린), 아브돌 라흐만 카
림(리가), 사담 후세인 페이살(파쇼) 히레쉬 페이살 라흐만(헹
고), 아질 지바리 쉬르크(쉬르크)

2004/드라마/97분

보지 말아야했다. 이럴줄알았으면 말이다..
이 영화를 다시 보고 싶지 않다.
너무 하다.. 전쟁이라는 것이...
이렇게 슬플줄 알았다면 보지 말걸 그랬다.

그래도 보고 싶다면

'Book & Superficial' 카테고리의 다른 글

그 많던 싱아를 누가다 먹었을까  (0) 2007.05.21
내영혼을 위한 닭고기 수프  (0) 2007.05.21
피크닉(Picnic, 1996)  (0) 2007.05.21
13층(The Thirteenth Floor, 1999)  (0) 2007.05.18
빌리지(The village, 2004)  (0) 2007.05.17
Posted by aspirinirony
Book & Superficial2007. 5. 21. 14:54
이 포스트는 저의 싸이홈피에서 2005.09.25 20:54에 등록된 포스트이며 블로그이전으로 재포스팅한것임.
사용자 삽입 이미지

피크닉(Picnic, 1996)

감독 : 이와이 슌지

출연 : 차라, 이사노 타다노부, 하시즈메 코이치, 무사카 나오마사

1996/ 72분/드라마/베를린 신문독자 심사위원상


담장위에 그들...

지구 최후에 비야..

지구 최후에 키스야...

태양에 총을 쏘면 대폭발을 일으킬지도 몰라

역시 내가 죽지 않으면 안될것 같아
네가 진 죄, 전부 내가 씻어 줄게.. 탕~


'Book & Superficial' 카테고리의 다른 글

내영혼을 위한 닭고기 수프  (0) 2007.05.21
거북이도 난다  (0) 2007.05.21
13층(The Thirteenth Floor, 1999)  (0) 2007.05.18
빌리지(The village, 2004)  (0) 2007.05.17
숨바꼭질 (Hide And Seek. 2005)  (0) 2007.05.10
Posted by aspirinirony
AllAcc?ess2007. 5. 19. 09:23
MBC FM4U=mms://live.imbc.com/imbcMFM
MBC 표준FM=mms://live.imbc.com/imbcSFM
MBC FM4U1=mms://210.114.221.153/busanmbc_fm_onair_7610
MBC 표준FM1=mms://210.114.221.153/busanmbc_am_onair_7610
MBC FM4U2=mms://vod1.dgmbc.com/fmlive
MBC 표준FM2=mms://vod1.dgmbc.com/amlive
MBC FM4U3=mms://220.80.108.1/FMgjmbc
MBC 표준FM3=mms://220.80.108.1/AMgjmbc
MBC FM4U4=http://www.tjmbc.co.kr/vod_aod/대전MBC_fm.asx
MBC 표준FM4=http://www.tjmbc.co.kr/vod_aod/대전MBC_am.asx
MBC FM4U5=mms://211.230.150.18/mbcfm
MBC 표준FM5=mms://211.230.150.18/mbcam
MBC FM4U6=http://210.114.220.120/masanmbcfm
MBC 표준FM6=http://210.114.220.120/masanmbcam
MBC FM4U7=http://www.chmbc.co.kr/broad/../vod/chmbcfm.asx
MBC 표준FM7=http://www.chmbc.co.kr/broad/../vod/chmbcamx.asx
MBC FM4U8=http://210.114.174.235:80/jeju_fm
MBC 표준FM8=http://210.114.174.235:80/jeju_am
MBC FM4U9=mms://onair.usmbc.co.kr/fm
MBC 표준FM9=mms://onair.usmbc.co.kr/am
MBC FM4U10=http://www.gnmbc.co.kr/aod/fmlive.asx
MBC 표준FM10=http://www.gnmbc.co.kr/aod/amlive.asx
MBC FM4U11=http://211.54.140.104:3135
MBC 표준FM11=http://jinju.pusanweb.co.kr/am
MBC FM4U12=mms://210.221.163.25/encoder-fm
MBC 표준FM12=mms://210.221.163.25/encorder-am
MBC FM4U13=http://andong.pusanweb.co.kr/fm
MBC 표준FM13=http://andong.pusanweb.co.kr/am
MBC FM4U14=mms://live.wjmbc.co.kr/fm989
MBC 표준FM14=mms://live.wjmbc.co.kr/fm2
MBC FM4U15=http://vodstr.cjmbc.co.kr/LIVE/mufm.asx
MBC 표준fm15=http://vodstr.cjmbc.co.kr/LIVE/stfm.asx
MBC FM4U16=http://www.scmbc.co.kr/vod/../webprog/vod/data/VOD_LIVE/fmlive.asx
MBC 표준FM16=http://www.scmbc.co.kr/vod/../webprog/vod/data/VOD_LIVE/amlive.asx
KBS 1FM=http://myhome.naver.com/gi037/vod/kbs1fm.asx
KBS 2FM(쿨FM)=http://myhome.naver.com/gi037/vod/kbs2fm.asx
KBS 1R=http://myhome.naver.com/gi037/vod/kbs1r.asx
KBS 2R(해피FM)=http://myhome.naver.com/gi037/vod/kbs2r.asx
KBS 3R=http://myhome.naver.com/gi037/vod/kbs3r.asx
KBS RKI=mms://211.233.92.66/rki/musictrap_audio/A10480.wma
KBS RKI1(라디오한국)=http://rki.kbs.co.kr/src/asx/L_RKI.asx
KBS RKI2(라디오한국)=http://rki.kbs.co.kr/src/asx/L_RKI2.asx
KBS 사회교육방송=http://myhome.naver.com/gi037/vod/kbsscr.asx
SBS LOVE FM=mms://live.sbs.co.kr/am
SBS POWER FM=mms://live.sbs.co.kr/fm
SBS FM1=http://broker.ktcdn.com/broker/cdn_asxbroker.jsp?CUST_ID=EN0000001134&CONTENT_ID=00016932
SBS FM2=mms://211.218.111.165/GTBLive2
SBS FM3=mms://211.224.130.206/tbc_fm
SBS FM4=mms://218.53.176.30/wm5_radio
SBS FM5=mms://218.146.252.66/live_radio
SBS FM6=mms://211.230.150.237/magicfm_live
SBS FM7=mms://live.cjb.co.kr/fm_live
노동방송=http://nanpasun.com.:16000
BIGFM=mms://220.73.215.62/live
SCNFM=http://mic.inlive.co.kr:8910
gfm=http://c16.inlive.co.kr:6460
ifm=mms://211.175.28.21/itv
경기방송=http://61.78.39.187:8000
한국경제 라디오=HTTP://WWW.WOWNET.CO.KR/WOWBOX/GOLD/AOD/WOW_AUDIO.ASX
이토마토=mms://fm.etomato.com/etomato_charge
ebsfm=mmst://219.240.37.17/L-FM_300k
bbs(불교방송)=mms://203.236.103.159/broad1
wbs(원음방송)=mms://220.124.142.132/wbs897
pbc(평화방송)=mms://219.240.83.254/fmlive
bbn=mms://bibleb.wm.llnwd.net/bibleb_korean
CBS AM=mms://aod.cbs.co.kr/cbs981_live
CBS FM=mms://aod.cbs.co.kr/cbs939_live
극동방송AM=mms://live.febc.or.kr/LiveAm
극동방송FM=mms://live.febc.or.kr/LiveFm
온누리라디오=http://myhome.naver.com/gi037/vod/ccm.asx
ccm=mms://210.118.170.43/21tv
c3radio=mms://wmt2.c3tv.com/webradio
tbs 교통방송=mms://211.108.21.53/tbslive
국악FM=mms://211.106.66.141/gukak
국군fm=mms://128.134.37.102/onair
라디오코리아=mms://67.43.175.12/live
라디오21=mms://radio21.nefficient.co.kr/golive
아리랑FM=아리랑FM=mms://211.43.217.85/fm_live
연변조선말방송=mms://202.111.175.181:8000
BBC FM=http://stream.servstream.com/ViewWeb/BBCTechnology/Event/BBC_World_Service.asx
CNN=mms://live.stream.aol.com/cnn_webcast4_high
=======================================================================================
[[24시간 장르별 오디오 방송]]
최신 인기가요=http://c40.inlive.co.kr:8010
최신 인기발라드=http://c40.inlive.co.kr:8020
최신나이트 인기댄스=http://c40.inlive.co.kr:8030
트로트 가요무대=http://c40.inlive.co.kr:8050
80년대 히트가요=http://c40.inlive.co.kr:8060
90년대 히트가요=http://c40.inlive.co.kr:8070
추억의 골든팝스=http://c40.inlive.co.kr:8100
인기 흑인음악=http://c40.inlive.co.kr:8150
J-Pop FM도쿄=http://c40.inlive.co.kr:8160
섹션록 Rock It !=http://c40.inlive.co.kr:8170
러브 발라드=http://c40.inlive.co.kr:8110
CF 드라마&OST=http://c40.inlive.co.kr:8130
모던팝스 라디오=http://c40.inlive.co.kr:8140
엄마랑 EQ동요=http://c40.inlive.co.kr:8200
웰빙뮤직/뉴에이지=http://c40.inlive.co.kr:8090
스무드 재즈=http://c40.inlive.co.kr:8120
로맨틱 와인재즈=http://c40.inlive.co.kr:8180
홈클래식=http://c40.inlive.co.kr:8040
클래식 마스터즈=http://c40.inlive.co.kr:8190

[[노래방]]
e-sky 노래방2(5172~)=mms://gogovod.hanafosvod.com/gogovod/moviekar/0000.wmv
노래방리스트2=http://gi037.com.ne.kr/e-sky/song_list.zip2.zip
e-sky 노래방=http://211.214.161.8/npm_song_data/gayo/0000.asf
노래방리스트=http://gi037.com.ne.kr/e-sky/song_list.zip

[[e-sky Winamp 방송]]
아이팝 인기가요=http://arf000.ipop.co.kr:80
쥬크온FM=http://main.jukeonfm.com/listen.pls
386FM=http://cast5.entoi.com:10020/listen.pls
스카이방송국=http://cast2.entoi.com:11150/listen.pls
포켓방송국=http://cast3.entoi.com:10500/listen.pls
사운드오브뮤직=http://cast3.entoi.com:11800/listen.pls
PANCasT=http://cast5.entoi.com:10010/listen.pls
모짤트음악이야기=http://cast2.entoi.com:10400/listen.pls
뮤직플러스24=http://cast4.entoi.com:11000/listen.pls
FineCast=http://cast3.entoi.com:11200/listen.pls
파워뮤직=http://cast6.entoi.com:10200/listen.pls
캠프케스트=http://cast5.entoi.com:10500/listen.pls
MM종합병원=http://cast4.entoi.com:11400/listen.pls
10대들의공간=http://cast4.entoi.com:11100/listen.pls
아름다운인연=http://comlim.inlive.co.kr/listen.pls
아진뮤직=http://tscthj.inlive.co.kr/listen.pls
봉사모임주역방송=http://chankilee.inlive.co.kr/listen.pls
군주방송=http://goonzu.inlive.co.kr/listen.pls
음악방송=http://jw841130.inlive.co.kr/listen.pls
사랑이있는방송=http://duddnd8176.inlive.co.kr/listen.pls
엠피오드=http://mpiod.com/listen.pls
나폴리방송국=http://gr3.inlive.co.kr:11000
바다사랑=http://s25.inlive.co.kr:8110
가로수=http://www.garosu24.com/garosu.pls
유리배방송국=http://cj24.saycast.com/listen.pls
호미호미카페24시=http://homihomi.inlive.co.kr/listen.pls
24하늘호수방송국=http://24sky.cj.netmarble.net:8000/listen.pls
뮤클캐스트=http://mukulcast.com/listen.pls
루루=http://cjruru.com:1040/listen.pls
바다사랑=http://24cast.inlive.co.kr/listen.pls
엠피오드=http://mpiod.inlive.co.kr/listen.pls
팜케스트=http://freely0109.inlive.co.kr/listen.pls
바람게비=http://n.joycj.com:7600/listen.pls
해피24=http://happy24.org/24.pls
월드뮤직=http://worldmusic7.inlive.co.kr/listen.pls
뮤즈피아=http://muzpia.net/m.pls
무트케스트=http://61.109.255.91:2213
행복음방=http://wio70.inlive.co.kr/listen.pls
MusicHeaven=http://pop.saycast.com/listen.pls
클래식사랑=http://classic.saycast.com/listen.pls
NeOMiX=http://neomix.saycast.com/listen.pls
mo2ja=http://mo2ja.saycast.com/listen.pls
찬양의나라로=http://smile5114.inlive.co.kr/listen.pls
생명시냇가=http://godislove00.inlive.co.kr/listen.pls
예수사랑찬양=http://dudghs64.inlive.co.kr/listen.pls
찬양시험방송=http://whdms.inlive.co.kr/listen.pls
찬양나라=http://ok21.inlive.co.kr/listen.pls
예수님찬양방=http://onlyu000.inlive.co.kr/listen.pls
YCCM=http://yohan4u.inlive.co.kr/listen.pls
고음질 CCM=http://www.ccmlove.com/contents/cast/listen.pls
고음질 CCM2=http://dudghs64.inlive.co.kr/listen.pls
Posted by aspirinirony
AllAcc?ess2007. 5. 18. 14:29
A


$$$ 임시 파일

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, 실리콘그래픽스와 매킨토시의 응용프로그램에서 사용되는 사운드파일 형식

ALBM HP Photosmart 사진 출력용 앨범 파일

ALZ 이스트소프트 - 알집, 압축 파일

ANI Animation의 약어로 움직이는 마우스 포인터 파일

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 파일)로 인터넷 서비스용 파일 포맷

ASF Advanced Streaming Format 파일로 인텔이 만든 멀티미디어 통합 파일 포맷으로 비디오, 오디오, 이미지, URL, 실행프로그램까지

수용 할수 있으며 다운로드 하면서 바로 재생이 가능하다

ASV 자동저장 파일 (Auto Save File), 일정시간마다 저장되는 자동 저장 파일

ASX Cheyenne 백업 스크립트

ASX 마이크로소프트 Advanced Streaming Redirector 파일

ASX 비디오 파일

ATT AT&T 그룹 4 비트맵

AU 썬마이크로시스템스사에서 만든 사운드 포맷으로 Sun/NeXT/DEC/UNIX 등에서 사용

AVI Audio Video Interleave의약어로 MS사에서 만든 동영상 포맷이지만 파일 크기가 큰것 이 단점임

AWD FaxView, 문서 이미지


B 

BAK 백업파일

BAS 비주얼 베이직 모듈 파일

BAT MS-DOS 일괄처리(Batch) 파일로 자동 시작되는 Autoexec.bat 파일이 있다

BGDB 영산정보통신 배움닷컴용 GVA, 인증기능을 가진 강의 파일, (배움닷컴에서만 서비스받을 수 있음)

BIN 바이너리 파일

BMF Corel, 갤러리 파일

BMP 윈도우 와 OS/2의 비트맵 그래픽 파일로 거의 모든 프로그램에서 사용이 가능하지만 크기가 엄청나다는 단점이 있슴

BNK Electronic Arts 사운드 효과 뱅크 파일

BNK 애드립의 악기 뱅크 파일

BTR Btrieve 5.1, 데이터베이스 파일


C

C C 언어 소스 코드

CAB 마이크로소프트 캐비넷 파일 (소프트웨어 배포를 위해 압축된 프로그램 파일들)

CAD 소프트데스크 드라픽스 캐드 파일

CAL 윈도우 캘린더 파일

CAM 카시오(Casio) 카메라 파일

CAP Capture 의 약어로 이야기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의 명령 파일

CMX 코렐드로우에서 사용하는 파일로 벡터방식의 포맷이며 보기는 일반 그래픽 프로그램으로 가능하지만 편집은 코넥드로우만 가능하다

CNT Windows 또는 기타 시스템, 도움말 색인 등의 목적으로 사용되는 콘텐츠 파일

CNV Word for Windows, 데이터 변환 지원 파일

CNV WordPerfect for Windows, 임시 파일

CNV WS_FTP Pro, 변환 파일

COB COBOL 소스 코드

COM MS-DOS용 실행 파일로 작은 파일에 사용됨

CPL Control Panel의 약자로 윈도우 제어판 파일

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 Cursor의 약어로 마우스 포인터의 모양으로 사용되는 파일 (마우스 커서 파일)

CXX C++ 소스코드 파일


D


DAT 데이터 파일

DAT 비디오CD에서 주로 사용되는 동영상 파일이며 MPEG기술로 만든 파일

DB DBF의 확장자의 확장된 파일

DBF 일반적인 데이터베이스 파일을 말하며 표준적인 DB 파일로 사용

DBF Oracle 8.1.x 테이블공간 파일

DBI Borland, 데이터베이스 탐색 정보

DBK dBase 데이터베이스 백업

DBX Outlook Express 5, 메일 저장 파일

DCR 쇽웨이브 파일

DCU 델파이 컴파일드 유니트

DGN Microstation95 CAD 도면

DIB 장치 독립적인 비트맵 (Device-independent bitmap), 윈도우 와 OS/2의 비트맵 그래픽 파일로 거의 모든 프로그램에서

사용이 가능하지만 크기 가 엄청나다는 단점이 있슴

DIR 매크로미디어 디렉터 파일

DIR ProComm Plus 다이얼링 디렉토리

DIZ 셰어웨어의 프로그램에 있으며 간단한 프로그램 소개 파일

DLL Dynamic Link Library로 단독으로 사용하지 못하며 EXE 파일을 실행하는데 도움을 주는 파일

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 디렉터 무비 파일 (편집불가)


E

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 Execute의 약자로 DOS, Windows의 실행 파일

EXP 저장된 대화 (ICQ에서)

EXT WS_FTP PRO, ASCII 이진전송 파일


F

F FORTRAN 파일

F FREEZE 압축파일 아카이브

FCD 가상 CD-ROM 파일

FCD FastCAD/EasyCAD 출력 파일

FFA 마이크로소프트 find fast 파일

FLA 플래시 무비 파일

FLI 오토데스크의 FLIC 애니메이션

FLM 오토캐드, 필름 롤

FLX DataFlex, 컴파일된 바이너리 파일

FMG FreeMarkets 그래픽 브라우저

FNT 이야기97용 글꼴 파일

FON Font의 약어로 Bitmap으로 되어있어 확대하면 깨짐

FOR FORTRAN 소스코드

FRM 폼(form) 파일, 미리 만들어 놓은 문서 양식에 내용만 입력하면 되도록 만든 폼 파일

FXR WinFax 수신문서 (TIFF 형식)


G

G APPLAUSE, 데이터 차트

G723 가공하지 않은 CCITT G.723 3 또는 5 비트 ADPCM 형식의 데이터

GAL 이야기, 갈무리 파일

GDB 영산정보통신 GVA 및 GVA2000, 압축된 강의 파일

GDB InterBase 데이터베이스 파일

GID 윈도우95 글로벌 인덱스

GID 도움말 파일을 보면 자동생성 되며 도움말 파일을 빠르게 보도록 도와준다.

GIF 컴퓨서브 그래픽 파일 포맷으로 통신용으로 개발되어 압축율이 좋음

GSP Gnuzip, Zip 파일

GUL 훈민정음 파일

GZ 유닉스 gzip 압축 파일


H

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 Help의 약어로 윈도우나 응용프로그램의 도움말 파일

HNT 힌트 파일. 게임 등에서 자주 사용된다.

HP THOR 데이터베이스, 제1 해시 파일

HP HP/GL, HP 프린터 또는 플로터 출력용 프린트 파일

HST (일반적으로) 히스토리 파일

HTA 시스템 레지스트리를 갱신하게 위해 바이러스에 의해 사용되는 HTML 파일

HTF Hangul font type의 약어로 한글에서 사용하는 글꼴

HTM Hyper Text Markup Language (하이퍼텍스트 문서)로 인터넷 웹페이지의 표준이며 인터넷의 기본적인 포맷

HTML Hyper Text Markup Language (하이퍼텍스트 문서)로 인터넷 웹페이지의 표준이며 인터넷의 기본적인 포맷

HTX 확장 HTML, 템플릿 파일

HWD Hollywood, 프레젠테이션

HWP 아래아한글 파일

HWT 아래아한글 서식 파일, 미리 만들어져 있는 틀에 입력할수 있도록 만든 Templete 파일


I

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 Information의 약어로 설치에 관련된 파일이며, 하드웨어 배포시 많이 사용됨

INI Initialize의 약어로 윈도우 실행시 필요한 프로그램의 설정값을 저장하는 파일

IPX Interactive Pictures Corporation, AV 파일

ISO ISO 9660 CD-ROM 파일시스템 표준에 기반을 둔, CD-ROM 상의 파일 목록

ISU InstallShield, 언인스톨 스크립트


J

JAR 자바 아카이브 (애플릿이나 관련 파일들을 위한 압축 파일)

JAVA 자바 소스코드

JNB Sigma Plot 5, Workbook 파일

JPE JPEG 이미지

JPEG JPEG 비트맵 그래픽 파일로, 트루칼라로 저장 할때 크기가 가장 작아서 인터넷의 거의 표준으로 자리하고 있슴

JPG JPEG 비트맵 그래픽 파일, 트루칼라로 저장 할때 크기가 가장 작아서 인터넷의 거의 표준으로 자리하고 있슴

JS 자바스크립트 소스 파일


L

LAN NetWare, Loadable module (LAN DLL)

LBM 비트맵 (DeluxePaint)

LBM Linear Bitmap graphics (XLib)

LCD CDSpace, CD 이미지 파일

LDIF 주소록 교환 형식

LGC 윈도우 애플리케이션 로그 파일

LHA LZH 파일의 또다른 확장자명

LIB 라이브러리

LNK Link의 약어로 윈도우 바로가기 파일 (단축 아이콘)

LOD 로드 파일

LOG 로그 파일

LZH LHA, ARC 압축 파일

LWD LotusWorks, 텍스트 문서 파일


M

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, 키보드 매크로 파일

MDA 마이크로소프트 액세스 데이터베이스

MDB 마이크로소프트 액세스 데이터베이스를 자장한 파일

MDF 마이크로소프트, MS-SQL Master 데이터베이스 파일

MDL CA-Compete!, 스프레드시트

MDL Digital Trakker, 음악 모듈

MDL 3D Design Plus, 모델

MDL Quake, 모델 파일

MDL Rational Rose, 모델 파일 요소

MDN 마이크로소프트 액세스 새 DB를 만드는 마법사 파일

MDT 마이크로소프트 액세스 데이터베이스

MDZ 마이크로소프트 액세스 마법사 파일

MHT 마이크로소프트, MHTML 문서

MHTM MHTML 문서 (MIME)

MHTM L MHTML 문서 (MIME)

MI Cocreate ME10 데이터 파일

MI 잡다한(Miscellaneous) 파일들의 일반적인 총칭

MID MIDI를 나타내는 포맷으로 악기음은 사운드카드의 음원 모듈을 사용하고 채널은 미디채널을 사용

MIX Power C, 오브젝트 파일

MIX 마이크로소프트 PhotoDraw 2000, 그림 파일

MIX 마이크로소프트 Picture-It!, 그림 파일

MIX Command & Conquer, 패키지 파일

MIX Westwood Studios, 리소스 아카이브

MMP MindMapor, MindManager 파일

MMP Bravado, MMP 출력 비디오

MOD MPEG에서 사용하는 사운드 부분만 구현하여 압축율이 좋음, CD음악용으로 많이 사용

MODEL CATIA, 도면 파일

MOV QuickTime for Windows 무비 파일, 애플사에서 만든 동영상 포맷으로 매킨토시에서 처음사용

MP2 MPEG Audio Layer 2 파일 (MIME 비디오 파일) MPEG에서 사용하는 사운드 부분만 구현하여 압축율이 좋음

MP3 MPEG Audio Layer 3 로 압축된 음악 파일, MPEG에서 사용하는 사운드 부분만 구현하여 압축율이 좋음

MP4 MPEG-4 비디오 파일

MPEG Moving Picture Experts Group의 약어로 압축된 동영상 파일 포맷이며 MOV, AVI보다 압축율도 좋고 화질도 좋아 비디오CD로 사용되나,

비디오CD 에는 MPEG 파일의 헤더를 바꾼 DAT 파일을 사용

MPF MP3 Folders, 폴더 파일

MPG Moving Picture Experts Group의 약어로 압축된 동영상 파일 포맷이며 MOV, AVI보다 압축율도 좋고 화질도 좋아 비디오CD로 사용되나,

비디오CD 에는 MPEG 파일의 헤더를 바꾼 DAT 파일을 사용

MPP 마이크로소프트 프로젝트, 프로젝트 파일

MPP CAD 도면 파일

MPT 마이크로소프트 프로젝트, 템플릿 파일

MRC 서지 데이터 (Machine-Readable Cataloging records)

MSC 마이크로소프트 윈도우 2000, Common Console doc-ument

MSG 마이크로소프트, 전자우편 메시지

MSI 마이크로소프트 윈도우 인스톨러 패키지

MSO 마이크로소프트, FrontPage 파일


N


NFO Folio, Infobase 파일

NIL Norton, 아이콘 라이브러리 파일

NLS Uniscape, 현지화를 위해 사용된 국어 지원 파일

NOD Netobject Fusion, 파일

NRG Nero, ISO 9660 이미지 (CD-ROM 데이터용 순수 ISO 9660 이미지와 동일)


O


OBD 마이크로소프트 오피스, 바인더 파일

OBZ 마이크로소프트 오피스, 바인더 마법사

OBT 마이크로소프트 오피스 템플릿 파일

OCX 마이크로소프트 OLE custom control, 비주얼베이직, custom control 파일로 일종의 라이브러리 파일이며 지금은 거의 모든 프로그래밍

언어에 서 지원하고 이것을 32Bit로 확장한 것임

OBZ 마이크로소프트 오피스 마법사 파일

OFT 마이크로소프트 아웃룩, 서식 파일

OGG Vorbis, Vorbis 오디오 파일

OLB 마이크로소프트 OLE, 오브젝트 라이브러리

OLD 백업 파일 들의 일반적인 총칭

OR3 로터스 오거나이저 97 파일

OST 마이크로소프트 아웃룩, 오프라인 파일

OVL 오버레이 파일

OVR 오버레이 파일


P

P7M S/MIME, 암호화와 서명, 불명료한 서명이나 일반적인 서명된 문서

PAB 마이크로소프트, 개인 주소록

PAS 볼랜드 파스칼, 소스코드 파일

PBR 파워빌더 자원 파일

PCD 코닥 Photo-CD 이미지

PCL HP 프린터 제어 언어 파일

PCO Pro*COBOL, 원시파일

PCT 매킨토시 PICT drawing

PCX ZSoft PC 페인트브로쉬 비트맵 파일

PDF 어도비 애크로뱃 문서 형식 (Portable doc-ument 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 비트맵 그래픽 파일로 차세대 그래픽 프로그램으로 각광을 받으며 GIF의

인터레이스 기능같은 특수효과를 그대로 사용함

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 마이크로소프트, 포켓 엑셀 템플릿


Q

QRP Centura, 보고서 작성자 파일

QTX QuickTime, 이미지 파일


R

RA 인터넷에서 이용하는 동영상 전송용 플러그인인 리얼플레이어의 파일 포맷으로 실제 동영상을 담고 있슴

RAM 인터넷에서 이용하는 동영상 전송용 플러그인인 리얼플레이어의 파일 포맷으로 동영상이나 소리를 담고 있는

파일의 위치를 저장한 파일로 크기가 작음

RAR RAR 압축 파일

RAW Raw File Format (비트맵)

RBF Rbase, 데이터 파일

RC 마이크로소프트 C/C++, 리소스 스크립트

RC Borland C++, 리소스 스크립트

RC emacs, 구성 파일

RCP Recomposer's MIDI 시퀀서 음악 파일

RDO Xerox, doc-ument Assembler Metafile

REG 윈도우 레지스트리 파일

RES 마이크로소프트 Visual C++, 리소스 파일

RFT Rich Text Format의 약어로 MS Word, Word Pad 의 워드 파일

RLE Run-Length Encoded bitmap

RM 인터넷에서 이용하는 동영상 전송용 플러그인인 리얼플레이어의 파일 포맷으로 실제 소리를 담고 있씀

RMI MIDI를 나타내는 포맷으로 악기음은 사운드카드의 음원 모듈을 사용하고 채널은 미디채널을 사용

ROL FM 음악 Adlib 음악파일 (Roland)

ROM 카트리지 기반의 홈 비디오 게임 에뮬레이터 파일

RPM 레드햇 리눅스의 패키지 매니저 파일

RPT 크리스탈 리포트 파일 (및 마이크로소프트 비주얼베이직의 서브셋)

RTF Rich Text Format 문서


S

S 유닉스, 어셈블러 원시 코드 파일

S3M Scream Tracker v 3.0, 16 채널 음악 파일, MPEG에서 사용하는 사운드 부분만 구현하여 압축율이 좋음, CD음악용으로 많이 사용

SAT ACIS, Solid 모델

SAV 저장된 게임 파일 (일반 명칭)

SBD Storyboard Editor, 스토리보드 데이터 파일

SBD Superbase, 데이터 정의 파일

SBL Shockwave 플래시 오브젝트

SCC 마이크로소프트, 소스 세이프 파일

SCR Screen Saver로 윈도우의 화면 보호기 파일

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 System의 약어로 시스템 파일


T

TAR 테이프 아카이브

TBL Pagemaker TableEditor, 그래픽 형식

TBL OS/2, 표 형식의 값들

TEL 이야기97용 전화걸기 정보 파일

TGA Targa 비트맵

TGZ 유닉스 Gzip/테이프 아카이브

THM 비디오 썸네일 파일

TIF Tag Image File Format 비트맵 파일로 jpg처럼 화질이 떨어지지 않으면서 모든 색상을 표현할수 있고 압축율도 좋아

책과 잡지 편집에 많이 사용함

TIFF Tag Image File Format 비트맵 파일

TLB 마이크로소프트 OLE type 라이브러리 파일

TLB 버블 에디터 참고 테이블

TLB VAX 텍스트 라이브러리

TLB 비주얼 C++ Type 라이브러리

TMP Temporary의 약어로 윈도우 임시 파일

TRM 윈도우 터미널 파일

TRX I-Cite, 익스포트 파일

TSD trueSpace 4, 데모 파일

TSK Pocket PC, 스킨 파일 (테마)

TSM OS/2용 Turbo Assembler, 설명서 파일

TTC 트루타입 컬렉션 파일

TTF True type font의 약어로 윈도우에서 가장 많이 사용함

TXT 아스키 텍스트, 윈도우의 기본적인 문서 파일이며 메모장과 연결되어 있슴

TZZ 탑정보통신 밤톨이 압축파일 (분할 압축시 두번째 파일부터는 002, 003 ... 등 숫자가 사용됨)


U

URH 훈넷 슬라이더, 이미지 주소 파일

URL 인터넷 바로가기 파일

UU UU-encode된 파일

UUE UU-encode된 파일


V

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 Virtual Device Drive (가상 장치 드라이버) 로 32Bit Drive가 메모리도 적게 차지하고 속도도 빠름


W

W44 dBase 임시 파일

WAB Outlook 주소록

WAV 윈도우에서 사용하는 사운드의 기본 포맷이며 녹음시 용량을 많이 차지함

WBK MS Word, Word Pad 의 Back-UP 파일

WCM WordPerfect 매크로

WEJ 나모 웹에디터, 프로젝트 파일

WFX 윈도우 팩스 파일

WIZ 마법사 기능을 제공하는 파일

WKS Microsoft Works, 문서

WMA 마이크로소프트 Windows Media 오디오 파일 (ASF 형식으로 변경 가능)

WMF 드로잉 프로그램 공통의 포맷으로 클립아트로 많이 사용

WMV 마이크로소프트, 윈도우 미디어 파일

WLL 워드에 기능을 추가하는 파일

WP4 WordPerfect 4 문서

WP5 WordPerfect 5 문서

WP6 WordPerfect 6 문서

WPD WordPerfect 문서

WPG WordPerfect 그래픽

WPS Microsoft Works, 텍스트 문서

WRI 윈도우 3.1의 문서 작성기의 문서 파일

WPT WordPerfect 템플릿

WRL 가상현실 모델

WQ1 쿼트로프로/DOS용 스프레드시트

WQ2 쿼트로프로/버전5 스프레드시트

WSD WordStar, 문서파일

WSF Windows 스크립트 파일

WSP Fortran PowerStation, WorkSpace file

WSZ WinAmp, 스킨파일


X

XDW 제록스 DocuWorks 문서

XLC 마이크로소프트 엑셀 차트 파일

XLM 마이크로소프트 매크로 파일

XLS 마이크로소프트 엑셀 파일

XLK 마이크로소프트 엑셀 빽업 파일

XLT 마이크로소프트 엑셀 서식 탬플릿 파일

XM MPEG에서 사용하는 사운드 부분만 구현하여 압축율이 좋음, CD음악용으로 많이 사용

XML eXtensible Markup Language 파일

XX_ 설치용 파일과 함께 제공되는 압축파일로 윈도우의 Extract.exe를 사용 압축을 풀수있슴

XY XYWrite, 텍스트 파일


Y

Y Amiga, Yabba 압축 아카이브

YAL Arts & Letters 클립아트 라이브러리


Z

ZIP Zip 압축 파일

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


숫자

123 로터스 1-2-3 파일

2BP Pocket PC 비트맵

'AllAcc?ess' 카테고리의 다른 글

색상 코드표 입니다  (0) 2007.05.22
라디오 주소들  (0) 2007.05.19
이미지 포멧 확장자 특징 또는 종류  (0) 2007.05.18
migration ; 마이그레이션, 이주(移住)  (0) 2007.05.17
플래쉬 엑션 스크립트 모듬  (0) 2007.05.17
Posted by aspirinirony
AllAcc?ess2007. 5. 18. 13:50

BMP
Bitmap의 약자로 윈도, OS/2 환경에서 사용하는 그래픽 파일. BMP파일은 흑백과 4비트,

8비트, 24비트의 포맷이 있으며, 각각 2색, 16색, 256색, 트루 컬러를 표현한다.

초기 BMP파일은 압축하지 않았으나 윈도 3.0이후부터는 RLE라는 방식으로 압축한다
 
CDR
그래픽 프로그램인 코렐드로의 데이터 파일. 코렐드로는 벡터 방식 그래픽 프로그램으로

비트맵과는 달리 아무리 확대해도 선이 부드러우며, 각 이미지 조각들은 오브젝트라는

개체로 구성되어 있어 색을 변환하거나 모양을 변경하기 쉽다.
 
CGM
Computer Graphics Metafile의 약자로 2D 이미지 그래픽의 표준 포맷이다.
영국의 BSI나 미국의 ANSI같은 단체에서 1987년부터 표준으로 정해졌으며,

일종의 벡터 방식으로 확대해도 이미지가 깨지지 않는 특징이 있다.
 
CMX
Corel Presentation Exchange의 약자로 코렐드로의 벡터 파일을 인터넷으로 볼 수 있게 만든

포맷이다. 간단한 테그로 HTML문서에 첨가할 수 있으며, 정교한 이미지 품질로

프레젠테이션에 적합하다. 코렐사에서는 CMX을 볼 수 있는 CMX Viewer라는

넷스케이프용 플러그인을 제공하고 있다.
 
CUT
과거 도스 시절 닥터 할로라는 그래픽 프로그램에서 사용된 그래픽 파일.

최대 8비트, 256컬러가 한계였으며,

색상 정보를 담고 있는 PAL이란 파일과 함께 사용되었다.
 
DCX
Multiple Page Graphics PCX파일로 기존 PCX파일에 페이지 개념이 추가되어

하나의 그래픽 파일에 여러 페이지의 이미지를 포함한다.
이 파일 포맷은 팩시밀리에서 사용하기도 한다.
 
DRW
마이크로그래픽스사의 디자이너 프로그램용 그래픽 파일.

벡터 방식으로 일러스트에 주로 사용된다.
 
DXF
Drawing Exchange Format의 약자로 오토데스크사의 CAD용 파일 포맷이다
 
EMF
Enhanced Meta File의 약자로 WMF와 동일하지만 32비트로 화질이 개선된 규격이다
 
GIF
Grahics Interchange Forbat의 약자로 PC통신 서비스 업체인 컴퓨터 서브에서

이미지 자료를 게시하기 위해 만든 파일 포맷이다.
비트맵 방식의 압축 형식으로 8비트 256컬러밖에 지원하지 못한다.

GIF파일에는 두 가지 종류라 있다. 87A와 89A 인코딩 방법에 차이가 있다.
89A가 최근 버전으로 여러 장의 이미지를 하나로 합쳐 마치 움직이는 듯한

효과를 낼 수 있다. 또한 이미지를 보여 주는 방식에 따라

Non-Interlaced와 Interlaced방식으로 구분되어 모두 4가지 방식으로 저장할 수 있다.
 
IFF
Amiga Interchange File Format의 약자로 아미가 컴퓨터용 그래픽 파일.

그림뿐 아니라 텍스트도 함께 저장할 수 있다.
PC에서 저장될 때는 LBM이라는 확장자로 바꿔 저장한다.
 
IMG/GEM
DTP프로그램인 벤추라에서 사용되는 이미지 파일
 
JPG/JPEG
Joint Picture Experts Group의 약자로 이미지 압축 기술자 모임에서 만든 이미지 파일이다.
Lossy Compression이라는 불필요한 데이터를 삭제하는 방식으로 압축하여

화질의 저하 없이 파일을 압축한다. 최대 1/20까지 이미지를 압축하며, 24비트 컬러의

트루 컬러를 지원하여 인터넷뿐 아니라 멀티미디어 환경에서도 대중적인 파일 포맷이다.
 
KDC
코닥 디지털 카메라에서 사용되는 촬영 이미지 파일. KDC 파일은 압축 모드와

비압축 모드의 두 가지 종류가 있으며, JPG와 TIF와 구조가 비슷하다.
 
LBM
일렉트로닉아트사의 디럭스페인트에 사용되는 그래픽 파일 포맷.

IFF와 구조상으로는 동일하지만 PC에 사용하기 위해 확장자를 바꾼다.
 
PCD
Kodak Photo CD의 약자로 포토 CD에 사용되는 그래픽 파일.

포토 CD는 35mm필름을 디지털 파일로 바꿔 사용과 보관이 용이하게 만든

코닥사의 규격이다. PCD는 24비트의 비트맵 방식으로 다양한 해상도를 가지고 있어

 화면 출력이나 인쇄에도 용이하다.
 
PCT/PICT
1984년 애플컴퓨터사에서 만든 이미지 파일 포맷. 비트맵 방식으로 초기에는

8가지 컬러밖에 지원하지 못했으나 지금은 32비트 컬러를 구현한다
 
PCX
Zsoft사의 PC Paintbrush소프트웨어에 사용되는 그래픽 파일.

개발 시기에 따라 4가지 버전이 있으며, 버전 0에서 1비트밖에 지원하지 않았지만

버전 5에서는 24비트 트루컬러를 사용할 수 있다.
 
PIC
Lotus Picture File의 약자로 벡터 방식의 그래픽 파일이다. 로터스사의

로터스 1-2-3스프레드시트 프로그램에서 지원되는 것으로 단순한 파일구조 이다.
 
PNG
Potable Network Graphics의 약자로 핑이라고 발음한다. PNG는 GIF를 대체하기 위한 파일로

인터넷의 GIF그래픽 파일은 저작권 있는 압축 기술로 함부로 사용할 수 없기 때문에

저작권이 없는 고유의 압축 기술로 PNG를 개발했다.
파일 구조는 GIF와 동일하여 투명 효과 등 GIF의 장점을 그대로 사용할 수 있으며,

GIF보다 압축률이 우수하다.
 
PSD
어도비사의 포토샵에서 사용되는 이미지 파일. 비트맵과 벡터 방식의 혼합형으로

파일 내부에 레이어와 패스, 채널 정보를 가지고 있어,
이미지를 수정, 편집하기 쉽다. 이 파일은 페인트샵프로에서도 지원된다.
 
RLE
Run-Length Encoding의 약자로 압축된 BMP파일. 주로 윈도의 시작 배경화면이나

바탕화면에 사용된다.
 
TGA
트루비전사의 타가그래픽 포맷으로 고화질 이미지나 광추적 이미지에 사용되는

전문가용 포맷이다. 8비트부터 16,24,32비트까지 트루 컬러를 구현하며,

RLE방식으로 압축하거나 비압축으로 저장한다.
 
TIF/TIFF
Tag Image File Format의 약자로 압축된 형식의 비트맵 이미지 파일이다.

TIF는 다양한 압축 방법을 제공한다. 비압축 모드에서 Hufffman,Pack Bits,LZW, Fax Group 3,

Fax Group 4의 6가지 모드로 압축하기 때문에 다양한 용도에 사용된다
 
WMF
Windows Meta File의 약자로 윈도 3.1,95,98의 표준 그래픽 파일이다.

16비트 벡터 방식이지만 비트맵 방식도 포합하고 있다.
참고로 메타 파일이란 이미지의 오브젝트 정보를 목록식이로 저장한 파일이다.

원, 선 ,상자 등의 이미지 구성 요소를 순서와 위치 정보로 저장한다.
 
WPG
Wordperfect Graphic File의 약자로 워드퍼펙트라는 문서편집기에서 사용된

그래픽 파일이다.
원드퍼펙트 5.0부터 사용되었으며, 비트맵, 벡터 방식이 혼합되어 있다.

최대 8비트를 지원하여 256컬러밖에는 사용할 수 없다.

출처 : http://kin.naver.com/db/detail.php?d1id=1&dir_id=10503&eid=SCAZAxUaogNCAJmMOpSOKJbU6Aupm7Wt&qb=dGlmZsbEwM8gxve45A==

Posted by aspirinirony
Book & Superficial2007. 5. 18. 11:53
이 포스트는 2005.09.25 12:00에 저의 싸이에 있던 자료를 블로그 마그노네이션으로 인해 재 포스팅합니다.
사용자 삽입 이미지

13층 (The Thirteenth Floor, 1999)

감독 : Josef Rusnak
출연 : 크레이그 비에코, 그레첸 몰, 빈센트 도노프리오
1999/98분/스릴러 SF

왜 우리나라는 스릴러에는 이리도 약할까? 뭐저 이 생각이 든다..
그리고 왜 외국 스릴러물은 시나리오상에 빈틈이 없는가..?

빈틈이 있기는 하지만... 스릴러물에서 만큼은 우리나란 아직 멀었다..

1999년이 어떤 해인가..? 20세기의 마지막 년..? 종말론이 세상에 넘처나던 해이며 일명 밀레니엄바이러스가 세상을 멸망하게 할꺼라던 년도 아닌가... 그리고 메트릭스가 개봉한 년도가 아닌가.. 그당시 메트릭스는 혁명이였다.. 이런 영화가 라는 말과 함께 카메라기법 일명 메트릭스 기법이라하여 CF에 많이 등장했던 기법과 메트릭스패러디에 페트릭스 스타일이란 말과 함께 SF와 액션에서 메트릭스를 능가하는냐 마냐가 최고에 SF엑션영화라 해도 지나치지 않는다.. 그건 지금 유효하다.. 그런데 이영화

참 기대이상이다...

찰영기법이나 스타일면에서는 메트릭스를 능가하진 못햇지만 메트릭스 그다음을 생각한 시나리오는 굉장히 똑보인다.

CF에서도 그러지 않는가
.. 세상속에 딴세상... 그것이 메트릭스였다면

세상속에 딴세상속에 그리고 딴세상... 이것이 13층이다.

스릴러가 재미있는 이유는 영화가 관객에게 진실을 풀어야하는 사명감을 집어넣어 주기때문이다.

"나는 생각한다. 고로 존재한다 " 라는 데카르트에 말과 함께 시작한다. 미국의 1937년의 어느 호텔 늙는 남자가 비장한 각오로 편지를 쓰고 침대위에 잠들어 있는 어린여자를 바라보다 돈을 놓아두고는 호텔바로가서는 바텐더에게 편지를 건네주며 더글라스 홀이라는 인물에게 편지를 전해주라는 말과 함께 호텔를 나와 허름한 건물로 들어간다.
어이 없게도 늙은 남자는 아내가 있는 침대로 들어가 누워버라고는 잠시있다 눈에서 무언가 번적거리고는 현재라는 곳으로 돌아온다..

난 거기서 1937년은 가상세계라는 걸 놀라지 않고 알았다.. 뭐 다른이도 별반 다르지 않겠지만...

하지만 스릴러라는 영화장르에 맞추어 사건은 여기서 시작된다.. 그 늙은남자가 누군의 칼에 맞고는 살해된다. 살해되는 시점에서 그 늙은 남자는 자신을 살해한 사람을 알고 있는 듯한 인상을 풍기면 관객에게 사건을 해결하라는 무언에 키를 넘겨버린다.

메트릭스가 없었다면 정말 신선했을텐데...

스릴러가 안겨주는 재미를 기대이상으로 안겨주는 영화

이것도 반전이라 해야하나??

"기억하라 이 사건을 해결하고 싶다면 메트릭스 그 이상을 생각하라.."

'Book & Superficial' 카테고리의 다른 글

거북이도 난다  (0) 2007.05.21
피크닉(Picnic, 1996)  (0) 2007.05.21
빌리지(The village, 2004)  (0) 2007.05.17
숨바꼭질 (Hide And Seek. 2005)  (0) 2007.05.10
monologue.. The Catcher in the Rye - 1951 J.D. Salinger  (0) 2007.04.16
Posted by aspirinirony
Book & Superficial2007. 5. 17. 17:02
이  post는 2005.09.25 09:44 저의 싸이월드에 올려진 글로 블로그이전으로 재 포스팅합니다.
사용자 삽입 이미지

빌리지 (The Village, 2004)

감독 : M, 나이트 샤말란

출연 : 와킨 피닉스, 브라이스 달라스 하워드, 월리암 허트

2004년 / 106분 / 스릴러, 드라마, 공포

나이트 샤말란 이란 이름과 반전이라는 영화장르 보고 너무 기대했다.

나이트 샤말란이 누구인가.. 반전영화의 메뉴얼을 만들었던 식스센스에 감독이 아닌가... 와 재미겠다..

"뭐 그런데로.... 재미있네.."

영화는 첫 5분의 화면들에서 영화를 보는 관객들에게 궁금증을 던진다. 빨간 꽃을 보고는 놀라는 여인이 그 꽃을 땅에 파묻어버리는 장면..

영화가 던저주는 공포와 비밀은 대충 이렇다.

사방이 산으로 둘러싸여있는 조금한 마을에 그들만에 방식으로 규울을 정하고 어디에서 왔는지 모를 사람들이 사는곳.. 그곳은 비밀로 싸여 있는 것이 너무나 많은 곳이다.. 사람들은 입에 담지 못할 그들을 두려워하고.. 마을원로들은 절대 마을 경계선을 넘으면 안되다고 젊은 이들에게 겁을 준다..그리고는 나타나는 입에 담지 못할 그들...

이영화를 보면서. 난 생각했다...

"왜 마을사람들은 마을밖으로 나가 지 않는 걸까? 혹시 외계인에게서 도망쳐나와 숨어사는 사람들 이 마을을 벗어나면 지구가 외계인으로 뒤덥혀 있거나 고슴도치들이 지구를 정복하고 있는거 아냐...? "

내 추리는 너무 오버였다.. 스릴러영화나 반전영화를 볼때는 관찰력있게 봐야한다는 철칙을 잊고있었다..
(사실 짧은 영어 실력으로 자막보는데 정신이 팔리는건 어쩔수 없었다)

반전 영화를 말할때 흔히 우리는 식스센스를 떠올린다.. 왜냐하면 그 충격은 엄청났으니까.. 그 반전 하나로 영화표가 아깝지 안았으니까..

오죽하면 식스센스를 개봉할 당시 영화를 보고 나온 어떤사람이 "브루스 웰리스가 유령이다"를 외치다가 맞았다는 애기까지 있을까 말이다.

그러나 이 영화는 식스센스만큼 헉하는 반전은 없다.. 그런 반전은 분명아니다.. 이 영화의 반전이 주는 의미는 어쩜 슬플수도 있다..
어른들의 거짓말... 그리고 어른들에 잘못 아닌 잘못과 사회에 잘못이 낳은 반전일수도 있다..영화의 반전을 알게된 사람들은 그 마을 사람들을 이해할수 있게 된다..왜 그래야 했는지를...

하지만 이영화를 볼 몇몇 사람들은 기대하라 감독에게...
아마 그 몇몇사람들은 생각할것이다...

감독 너무해.. 혼자노는것도 아니고... 반전에 빠져 허우적거리는 것도 아니고 이게 뭐야...

라는 엄청난 반전을 감독은 당신에게 줄수 있을테니...


Posted by aspirinirony
AllAcc?ess2007. 5. 17. 15:38

정보기술에서, 마이그레이션이란 한 운영환경으로부터, 대개의 경우 좀더 낫다고 여겨지는 다른 운영환경으로 옮겨가는 과정을 말한다. 예를 들어, 윈도우NT 서버를 윈도우2000 서버로 옮겨가는 것을 마이그레이션이라고 볼 수 있는데, 그 이유는 새로운 특색들이 이용된다는 것과, 이전의 설정치들을 변경할 필요가 없다는 것에 대한 확신, 그리고 현재의 애플리케이션들이 새로운 환경에서도 계속 운영됨을 보장하는 단계 등이 수반되기 때문이다. 마이그레이션은 또한 윈도우NT 환경으로부터 유닉스 기반의 운영체계로 옮기는 것 (또는 그의 반대방향의 경우도 마찬가지다)을 의미할 수도 있다. 마이그레이션은 새로운 하드웨어나, 새로운 소프트웨어, 또는 둘 모두가 바뀌는 환경으로의 이주를 포함할 수 있다. 마이그레이션의 규모에는, 단일 시스템이 옮겨가는 것과 같은 소규모 마이그레이션도 있지만, 많은 시스템들이 새로운 애플리케이션이나 새롭게 재설계된 네트웍으로 옮겨가게 되는 대규모 마이그레이션도 있을 수 있다.

마이그레이션은 한 종류의 데이터베이스에서 다른 종류의 데이터베이스로 데이터를 옮기는 경우도 될 수 있다. 이것은 대체로 이전의 데이터베이스로부터의 출력이 새로운 데이터베이스의 입력이 되도록 어떤 공통된 형식으로 데이터를 변환하는 작업이 필요하다. 새로운 데이터베이스는 다르게 구성될 수 있기 때문에, 마이그레이션이 진행중인 파일들을 처리할 수 있는 프로그램을 작성하는 것이 필요할 수도 있다.

마이그레이션은 또한 데이터를 한 저장장치에서 다른 저장장치로 옮기는 과정을 의미하는 데에도 사용된다.

Posted by aspirinirony
AllAcc?ess2007. 5. 17. 13:51

<< 플래쉬 액션 스크립트 flash action script >>

----------------------------------------------------------------------------
// ..... 주석 기호
/* ..... */ 주석 기호
----------------------------------------------------------------------------
\r // 리턴 코드 (ASC 13)
\n // 줄바꿈 코드 (ASC 10)
\r\n // 줄바꿈 코드 (2줄)
\t // Tab 코드 (ASC 9)
\b // Backspce 코드 (ASC 8)
& // text 파일 데이타 구분 코드
----------------------------------------------------------------------------
산술연산자 +, -, *, /, % // % 나머지를 구한다
대입연산자 =, +=, -=, *=, /=, %= // i+=4 와 i=i+4 는 같다
증감연산자 ++, -- // i++ 와 i=i+1 는 같다
비교연산자 ==, !=, >, <, >=, <= // != '같지않다' 로 해석
비교연산자 === // 숫자 와 문자 구분
a = 5; b = "5"; // 숫자 5 와 문자 "5"
(a == b) // 숫자 5 와 문자 "5" 는 같다 (true)
(a === b) // 숫자 5 와 문자 "5" 는 틀리다 (false)
논리연산자 &&, ||, ! // 그리고(AND), 또는(OR), 아니면(NOT)
조건연산자 ? ( a ) ? b : c ; // a 조건이 맞으면 b 틀리면 c 실행
x=5; y=10; z=(x<6) ? x: y; trace (z); // z 은 5 이다
문자연산자 eq ne not or add // eq(==) ne(!=) not(!) or(||) add(+ 문자열의 연결)
( ) // 연산의 순서를 정한다
[ ] // 배열을 지정한다
" " // 문자를 지정한다
a=1+2; trace(a); // 연산 결과 출력. 결과는 3
aaa=1; set("ccc", aaa ); trace(ccc); // 변수에 값을 지정. 결과는 1
aaa=1; set("ccc", "aaa"); trace(ccc); // 변수에 값을 지정. 결과는 aaa
set("ooo", getProperty ("ppp", _x )); // ppp x 좌표를 ooo 에 지정.
----------------------------------------------------------------------------
for (a=1; a<=10; a++) { trace("a="+a); }; // for 반복문
for (i=1; i<=120; i+=12) { continue; }; // for step 반복문
while(true) { if(a == 0) { break; }; }; // while 반복문
do { if(a == 0) { break; }; }; while(true); // do 반복문
if((n == 0) || (n >= 5) && (n <= 55) !(n=15)) { // if 조건문
 gotoAndPlay(1);
} else if (n == 2) {
 gotoAndPlay(2);
} else {
 gotoAndPlay(3);
};
num_ch = 3; // switch 조건문
switch (num_ch) {
case 1: trace ( " case 1 tested true " ); break;
case 2: trace ( " case 2 tested true " ); break;
default: trace ( " no case tested true " );
};
----------------------------------------------------------------------------
function sumnumber(a,b,c) { return(aaa= a+b+c); }; // 함수
sumnumber(1,2,3);
trace(aaa);
----------------------------------------------------------------------------
Math.abs(-1) // 절대값. 결과는 1
Math.sin(1) // sin 값. 결과는 0.841470984807897
Math.cos(1) // cos 값. 결과는 0.54030230586814
Math.tan(1) // tan 값. 결과는 1.5574077246549
Math.log(2) // log 값. 결과는 0.693147180559945
Math.exp(1) // 지수 값. 결과는 2.71828182845905
Math.sqrt(9) // 제곱근 값. 결과는 3
Math.pow(2 , 4) // 거듭제곱 값. 결과는 16
Math.ceil(1.1) // 가까운 정수로 올림 값. 결과는 2
Math.ceil(1.5) // 가까운 정수로 올림 값. 결과는 2
Math.floor(1.2) // 가까운 정수로 내림 값. 결과는 1
Math.floor(1.7) // 가까운 정수로 내림 값. 결과는 1
Math.round(1.2) // 가까운 정수로 반올림 값. 결과는 1
Math.round(1.5) // 가까운 정수로 반올림 값. 결과는 2
Math.max(1 , 2) // 두 정수 중 큰 정수값. 결과는 2
Math.min(1 , 2) // 두 정수 중 작은 정수값. 결과는 1
int(1.12 ); // 수치를 정수화. 결과는 1
int(1.82 ); // 수치를 정수화. 결과는 1
parseInt("3.2"); // 문자열을 정수화. 결과는 3
parseInt("3.7"); // 문자열을 정수화. 결과는 3
parseInt("5abc"); // 문자열을 정수화. 결과는 5
parseInt("abc5"); // 문자열을 정수화. 결과는 NaN
parseInt("3E8", 16); // 16 진수로 변환. 결과는 1000
parseInt("777", 8); // 8 진수로 변환. 결과는 511
parseInt("1010", 2); // 2 진수로 변환. 결과는 10
parseFloat("2") // 문자열을 부동점 숫자로 변환. 결과는 2
parseFloat("2.4") // 문자열을 부동점 숫자로 변환. 결과는 2.4
parseFloat("2.6abc") // 문자열을 부동점 숫자로 변환. 결과는 2.6
Number("11") // 문자열을 숫자로 변환. 결과는 11
Number("12.34") // 문자열을 숫자로 변환. 결과는 12.34
Number("12.34abc") // 문자열을 숫자로 변환. 결과는 NaN
sss = 123; uuu = sss.toString(); // 숫자를 문자로변환. 결과는 123
ord("abc"); // ASCII 값. 결과는 97
s = "abc"; sss = s.charCodeAt(0); // 1번째 ASCII 값 . 결과는 97
s = "abc"; sss = s.charCodeAt(1); // 2번째 ASCII 값. 결과는 98
chr(65); // ASCII 코드를 문자화. 결과는 A
String.fromCharCode(64,65,66); // ASCII 코드를 문자화. 결과는 @AB
Math.random(); // 난수 발생. 결과는 0 - 1 사이의 소숫점 포함한 값
random(5); // 난수 발생. 결과는 0,1,2,3,4 중 하나
----------------------------------------------------------------------------
// delete 변수 또는 객체 ; // 변수를 삭제 (var 로 선언된 변수는 삭제할 수 없다)
account = 1; trace (account) ; // 결과는 1
account = 1; delete account; trace (account); // 결과는 undefined
delete onEnterFrame; // 반복 실행 중지
----------------------------------------------------------------------------
typeof( ); // String, Number, MovieClip, Object, Boolean, Function 여부를 지정
trace (typeof(1)); // 결과는 Number
trace (typeof("1")); // 결과는 String
trace (typeof(aaa)); // aaa가 무비클립 이라면 결과는 MovieClip
----------------------------------------------------------------------------
isFinite( ); // 숫자가 유한수이면 true 무한수거나 음의 무한대이면 false
trace (isFinite(aaa)); // aaa 값이 NaN 이라면 결과는 false
----------------------------------------------------------------------------
Mouse.show(); // 마우스 보임
Mouse.hide(); // 마우스 감춤
myClip. = function () {trace (" depth 무시"); }; // 마우스 누를 때
myClip. = function () {trace ("depth 무시"); }; // 마우스 눌렀다 놓을 때
myClip.onMouseMove = function () { trace ("depth 무시"); }; // 마우스 이동할 때
myClip.onPress = function () { trace ("depth 적용"); }; // 마우스 누를 때
myClip.onRelease = function () { trace ("depth 적용 "); }; // 마우스 눌렀다 놓을 때
myClip.onReleaseOutside = function () { trace ("Outside"); }; // 마우스 나가서 놓을 때
myClip.onRollOver = function () { trace ("Over called"); }; // 마우스 오버 때
myClip.onRollOut = function () { trace ("Out called"); }; // 마우스 아웃 때
----------------------------------------------------------------------------
// 단추무비클립 클릭후 액션 스크립트를 넣는다
on (press){ } // 마우스 버튼을 누를 때 }; x } o
on (release){ } // 마우스 버튼을 눌렀다 뗄 때
on (releaseOutside){ } // 마우스 버튼을 누르고 나가서 뗄 때
on (rollOver){ } // 마우스 포인트가 위로 올라올 때
on (rollOut){ } // 마우스 포인트가 밖으로 나갈 때
on (dragOver){ } // 누른 채로 밖으로 나갔다가 다시 들어올 때
on (dragOut){ } // 마우스버튼을 누르고 바깥으로 드래그할 때
on (keyPress){ } // 지정한 키를 누를 때
----------------------------------------------------------------------------
// 무비클립 클릭후 액션 스크립트를 넣는다
onClipEvent (load) { } // 시작 될때 }; x } o
onClipEvent (unload) { } // 제거 될때
onClipEvent (enterFrame) { } // 트리거 될때
onClipEvent (mouseMove) { } // 마우스가 이동할 때
onClipEvent (mouseDown) { } // 마우스 클릭 시
onClipEvent (mouseUp) { } // 마우스 클릭 후
onClipEvent (keyDown) { } // 키를 누를 때
onClipEvent (keyUp) { } // 키를 눌렀다 놓을 때
onClipEvent (data) { } // loadVariables 또는 loadMovie 액션에서 데이터가 수신될 때
----------------------------------------------------------------------------
TextField.onChanged = function () { trace ("onChanged called"); };
// 텍스트 필드의 내용이 변경될 때
TextField.onSetFocus = function () { trace ("onSetFocus called"); };
// 텍스트 필드의 내용 부분에 마우스가 클릭 될 때
TextField.onKillFocus = function () { trace ("onKillFocus called"); };
// 텍스트 필드의 내용 바깥 부분에 마우스가 클릭 될 때
TextField.onScroller = function () { trace ("onScroller called"); };
// 텍스트 필드의 내용이 스크롤 될 때
----------------------------------------------------------------------------
myMovieClip.onData = function () { trace ("onData called"); };
// 무비 클립이 loadVariables 또는 loadMovie 호출로부터 데이터를 받을 때
myMovieClip. = function () { trace (" called"); };
// 무비 클립이 load 호출로부터 데이터를 받을 때
myMovieClip.onUnLoad = function () { trace ("onUnLoad called"); };
// 무비 클립이 Unload 때
myMovieClip.stop()
// 작업 중지
----------------------------------------------------------------------------
myDate = new Date(); // 날짜 로드
myDate = new Date (년,월,일,시,분,초); // 날짜 지정
yyyy = (myDate.getFullYear() + "-" + (myDate.getMonth() + 1) + "-" + myDate.getDate());
tttt = (myDate.getHours()+ " :" + myDate.getMinutes() + " :" +myDate.getSeconds());
----------------------------------------------------------------------------
_root.onEnterFrame = function() { }; // 메인화면에서 프레임 반복
onEnterFrame = function() { }; // 심볼화면에서 프레임 반복
----------------------------------------------------------------------------
tmtm = getTimer();
onEnterFrame = function() {
if ( (getTimer()-tmtm) >= 500 ) { tmtm=getTimer(); trace (tmtm); }; // 0.5초후 반복실행
if ( (getTimer()-tmtm) >= 1000 ) { tmtm=getTimer(); trace (tmtm); }; // 1초후 반복실행
if ( (getTimer()-tmtm) >= 2000 ) { tmtm=getTimer(); trace (tmtm); }; // 2초후 반복실행
};
----------------------------------------------------------------------------
onEnterFrame = function() {
nr += 1; if (nr > 5 ) { delete onEnterFrame; }; // 5번 반복실행후 중지
trace (nr);
};
----------------------------------------------------------------------------
createTextField ("ins", 1, 100, 100, 50, 50)
ins.border = true;
function callback() {
ins._x += 5;
if ( ins._x > 400 ) { clearInterval( intervalID ); }; // 중지 (clearInterval)
}
var intervalID;
intervalID = setInterval( callback, 100 ); // 0.1초후 반복실행 (setInterval)
----------------------------------------------------------------------------
#include "script.as" // script.as 파일 넣기 (액션 스크립트 txt 파일)
----------------------------------------------------------------------------
System.useCodepage = true; // 한글 깨짐 방지
trace(System.capabilities.language) // Flash Player가 지원하는 언어. 결과는 ko
trace(System.capabilities.hasVideoEncoder) // 지원되는 비디오 인코더. 결과는 true, false.
trace(System.capabilities.hasAudioEncoder ) // 지원되는 오디오 인코더. 결과는 true, false.
trace(System.capabilities.hasAudio) // 오디오 성능이 있는지 여부. 결과는 true, false.
trace(System.capabilities.hasMP3) // MP3 디코더가 있는지 여부. 결과는 true, false.
----------------------------------------------------------------------------
escape("abc가나다"); // URL에 사용하기 위해 인코딩.
// System.useCodePage= true; 일때 결과는 abc%B0%A1%B3%AA%B4%D9
// System.useCodePage= false; 일때 결과는 abc%EA%B0%80%EB%82%98%EB%8B%A4
----------------------------------------------------------------------------
trace(targetPath(this)); // 대상 패스를 반환. 결과는 _level0.instance1 로 표시
trace(this.valueOf()); // 결과는 _level0 로 표시
----------------------------------------------------------------------------
trace(this.getBytesLoaded()); // 무비클립의 로드된 바이트 수를 알려준다.
trace(this.getBytesTotal()); // 무비클립의 전체용량 바이트 수를 알려준다.
----------------------------------------------------------------------------
getURL("C:/") // 탐색기 열기
getURL("C:/Windows/NOTEPAD.EXE"); }; // 메모장 열기
getURL("C:/Program Files/Accessories/WORDPAD.EXE"); // 워드패드 열기
getURL("C:/Program Files/Accessories/MSPAINT.EXE"); // 그림판 열기
getURL("C:/Windows/CALC.EXE"); // 계산기 열기
getURL ("aaa.exe"); // aaa.exe 파일 열기 (message)
getURL ("aaa.txt", "_self"); // aaa.txt 파일 열기
getURL ("movie.html", "_self"); // movie.html 파일 열기
getURL ("http://www", "_blank"); // http://www 를 새로운 창으로 열기
----------------------------------------------------------------------------
Stage.showMenu = "true"; // 스크린 메뉴 보임
Stage.showMenu = "false"; // 스크린 메뉴 감춤
Stage.scaleMode = "noScale"; // 화면의 사이즈를 고정
Stage.align = "TL"; // 화면의 정렬을 T(위) L(왼쪽)
// "T" 위 가운데 "B" 아래 가운데 "L" 가운데 왼쪽 "R" 가운데 오른쪽
// "TL" 위쪽 왼쪽 "TR" 위쪽 오른쪽 "BL" 아래쪽 왼쪽 "BR" 아래쪽 오른쪽
Stage.height // 픽셀로 표시된 스테이지의 높이
Stage.width // 픽셀로 표시된 스테이지의 넓이
----------------------------------------------------------------------------
_root.createEmptyMovieClip("box",1); // 스테이지 테두리 주기
with (_root.box) { moveto(1, 1); linestyle(10, 0x00cc00, 100);
lineto(stage.width, 1); lineto(stage.width, stage.height);
lineto(1, stage.height); lineto(1, 1); };
----------------------------------------------------------------------------
fscommand("showmenu", true); // 스크린 메뉴 보임
fscommand("showmenu", false); // 스크린 메뉴 감춤
fscommand("allowscale", true); // 스크린 크기에 따라 무비의 크기도 변함
fscommand("allowscale", false); // 스크린 크기에 따라 무비의 크기도 안변함
fscommand("fullscreen", true); // 풀 스크린 (esc키 누르면 해제)
fscommand("fullscreen", false); // 풀 스크린을 원래의 크기로 만든다
fscommand("trapallkeys", true); // 키보드 키 사용할 수 없음 (풀 스크린 일때 esc키 먹통)
fscommand("trapallkeys", false); // 키보드 키 사용할 수 있음
fscommand("quit"); // 스크린 닫기
fscommand ("exec", "a.exe"); // a.exe 파일 실행 (no message)
플래시 무비(exe) 가 위치하는 폴더안에 fscommand 라는 하위 폴더를 만들고
fscommand 디렉토리에 a.exe 가 있을때 플래시 무비(exe)를 실행하면 a.exe파일 실행
----------------------------------------------------------------------------
// getURL 로 javascript 사용하기
var hello = "Hello, World";
getURL("deny_javascriptalert(\" "+ hello + " \")"); // 메세지 띄우기
getURL("deny_javascriptwindow.self.close()"); // 윈도우창 닫기
getURL("deny_javascriptwindow.external.AddFavorite('http://','가')" ); //즐겨찾기 추가
----------------------------------------------------------------------------
// fscommand 로 javascript 사용하기
1. fscommand ("messagebox", "This is a Flash."); // aaa.swf flash script
2. 파일메뉴 - 제작설정 - 포맷 (HTML체크) - HTML (템플릿: with FSCommand 체크)
3. 파일메뉴 - 제작 (파일명은 aaa.swf) - aaa.html 파일이 디렉토리에 만들어 진다
4. aaa.html 파일을 열고 function aaa_DoFSCommand(command, args) { 아래에
if (command == "messagebox") { alert(args); }; 을 적고 저장 한다
5. aaa.html 실행 (실행후 제작설정 해제)
----------------------------------------------------------------------------
// fscommand 로 javascript 의 변수값 불러오기
1. fscommand ("search", TextFieldvar); // aaa.swf flash script
2. if (command == "search") { // aaa.html script
EEEfind = "FFFFFFFF";
window.document.aaa.SetVariable("TextFieldvar", EEEfind) ;
return TextFieldvar;
};
3. aaa.html 실행
----------------------------------------------------------------------------
_root.loadMovie("a.swf"); // swf 파일 불러오기
_root.bbb.loadMovie("a.swf") // swf 를 메인에 있는 bbb무비클립인스턴스에 불러오기
_root.loadMovie("a.swf", 1); // swf 를 레벨1로 불러오기 (2 는 1를 screen over)
_root.loadMovie("aaa.jpg"); // jpg 파일 불러오기
_root.bbb.loadMovie("aaa.jpg"); // jpg 파일을 메인에 있는 bbb무비클립인스턴스에 불러오기
unloadMovie (1); // 레벨 1에 로드된 무비를 언로드
unloadMovie ("a.swf"); // 현재 무비에 로드된 a.swf 무비를 언로드
_root.bbb.unloadMovie(); // 메인 타임라인의 bbb 무비클립에 로드된 무비를 언로드
this["bbb"].unloadMovie(); // 현재 타임라인의 bbb 무비클립에 로드된 무비를 언로드
sss.bbb.unloadMovie(); // sss 심볼 타임라인의 bbb 무비클립에 로드된 무비를 언로드
----------------------------------------------------------------------------
button.onPress = function() { _root.loadMovie("aaa.swf"); } // aaa.swf 실행중 초기화 하기
----------------------------------------------------------------------------
_root["ball_"+counter]._x = 11; // 메인 화면의 클립 좌표
this["ball_"+counter]._x = 11; // 현재 화면의 클립 좌표
aaa["ball_"+counter]._x = 11; // aaa 심볼 화면의 클립 좌표
----------------------------------------------------------------------------
this.createEmptyMovieClip("aaa", 1); // 무비클립 생성 (2 는 1를 screen over)
this.duplicateMovieClip (aaa, bbb, 1); // aaa 무비클립 bbb 로 복사
this.bbb.removeMovieClip(); // bbb 무비클립 삭제
myClip._visible = true; // 클립 보임
myClip._visible = false; // 클립 감춤
myClip.swapDepths(100); // 클립 깊이 100 으로 지정 (2 는 1를 screen over)
myClip.swapDepths(otherClip); // 클립 깊이 otherClip 과 바꿈
for (i=1; i<=360; i++) { // 클립 복사
duplicateMovieClip (ins1, "mc"+i, i);
setProperty ("mc"+i, _x, random(300));
setProperty ("mc"+i, _y, random(300));
setProperty ("mc"+i, _alpha, random(300));
setProperty ("mc"+i, _xscale, 150);
setProperty ("mc"+i, _yscale, 150);
};
for (i=1; i<=360; i++) { // 클립 복사
duplicateMovieClip (ins1, "mc"+i, i);
this["mc" + i]._x = i;
this["mc" + i]._y = i;
};
for (i=1; i<=50; i++) { // 클립 이동
this["mc_"+i]._x += 10;
this["mc_"+i]._y += 10;
};
for (i=1; i<=360; i++) { // 클립 삭제
this["mc" + i].removeMovieClip ();
};
----------------------------------------------------------------------------
setProperty ("mv", _x, 150); // mv 무비클립 x좌표 속성 변경
myMovieX = getProperty( mv, _x); // mv 무비클립 x좌표 속성 읽기
trace(myMovieX);
----------------------------------------------------------------------------
_alpha 알파값(%)
_currentframe 현재재생중인 프레임(#)
_droptarget 드래그 앤드드롭 할때 놓는 타깃위치(name)
_framesloaded 로드된 프레임수(#)
_height 높이(#)
_name 인스턴스(string)
_rotation 회전값(#)
_soundbuftime 사운드버퍼링 시간(기본값 5초:#)
_totalframes 총프레임수(#)
_url 다운로드한 URL(string)
_visible 보인다,안보인다 (true,false)
_width 가로길이(#)
_x x좌표(#)
_y y좌표(#)
_xmouse 마우스x좌표(#)
_ymouse 마우스y좌표(#)
_xscale x배율(%)
_yscale y배율(%)
----------------------------------------------------------------------------
_root.a.play; // 메인에 있는 a무비클립 프레임 재생
_root.a.stop; // 메인에 있는 a무비클립 프레임 중지
play(); // stop으로 정지된 현재타임라인의 프레임 재생
stop(); // 현재타임라인의 프레임 중지
gotoAndPlay(1); // 현재 Scene의 1프레임 재생
gotoAndPlay("a"); // 현재 Scene의 Label명 a 재생
gotoAndPlay("Scene 2", "c"); // Scene 2의 Label명 c 재생
a.gotoAndPlay(1); // a무비클립의 1프레임 재생
gotoAndStop(1); // 현재 Scene의 1프레임 중지
nextScene(); // 다음 장면의 프레임 1로 보내고 중지
prevSecne(); // 이전 장면의 프레임 1로 보내고 중지
nextFrame(); // 다음 프레임으로 보내고 중지
prevFrame(); // 이전 프레임으로 보내고 중지
toggleHighQuality (); // 저해상도와 고해상도 간을 전환
updateAfterEvent(); // 화면을 갱신 (onClipEvent 핸들러 내에서만 사용)
// (, , onMouseMove)
----------------------------------------------------------------------------
tellTarget ("../a") { nextFrame(); } // ../a 무비클립을 호출후 다음 프레임 재생
if (_framesloaded = 10) { } // 만약 무비의 10프레임이 로드되면
----------------------------------------------------------------------------
// with 문
for (i=0; i<1000; i++) {
with (aaa[i]) {
_x = Math.floor(Math.random() * 500);
_y = random(500);
_rotation = random(360);
}
}
// tellTarget 문 (속도빠름)
for (i=0; i<1000; i++) {
tellTarget (aaa[i]) {
_x = Math.floor(Math.random() * 500);
_y = random(500);
_rotation = random(360);
}
}
----------------------------------------------------------------------------
aaa = new Array(); // 배열 초기화
aaa = new Array("1","2","3"); // 배열값 넣기
bbb = ["Sun","Mon","Tue"]; // 배열값 넣기
aaa[1] = "abc"; // 배열값 변환 ( "2" 가 "abc" 로 변환)
aaa[0] = "Jan" ; aaa[1] = "Feb" ; aaa[2] = "Mar" ; // 배열값 변환
aaa[3] = "Apr" // 배열 추가 (aaa 값은 "Jan,Feb,Mar,Apr" )
ccc = aaa.concat(bbb); // 배열 합침 (ccc 값은 "Jan,Feb,Mar,Apr,Sun,Mon,Tue" )
ddd = ccc.join("/"); // ,를 /로 변환 (ddd 값은 "Jan/Feb/Mar/Apr/Sun/Mon/Tue" )
ddd = ccc.length; // 배열값 갯수 (ddd 값은 7 )
ddd = ccc.slice(2,4); // 배열값 읽기 (ddd 값은 "Mar,Apr" )
eee = ccc.push("z","zz"); // 배열추가후 배열값 갯수 (eee 값은 9 )
// (ccc 값은 "Jan,Feb,Mar,Apr,Sun,Mon,Tue,z,zz" 로 변함)
eee = ccc.pop(); // 마지막 배열 분리후 값 (eee 값은 "zz" )
// (ccc 값은 "Jan,Feb,Mar,Apr,Sun,Mon,Tue,z" 로 변함)
eee = ccc.shift(); // 첫번째 배열 분리후 값 (eee 값은 "Jan" )
// (ccc 값은 "Feb,Mar,Apr,Sun,Mon,Tue,z" 로 변함)
eee = ccc.reverse(); // 배열값 순서바꿈 (eee 값은 "z,Tue,Mon,Sun,Apr,Mar,Feb" )
// (ccc 값도 "z,Tue,Mon,Sun,Apr,Mar,Feb" 로 변함)
eee = ccc.splice(2,5,"x","xx","xxx"); // 배열값 읽기후 변환 (eee 값은 "Mon,Sun,Apr,Mar,Feb" )
// (ccc 값은 "z,Tue,x,xx,xxx" 로 변함)
eee = ccc.unshift("1","2"); // 첫번째 배열추가후 값 (eee 값은 "7" )
// (ccc 값은 "1,2,z,Tue,x,xx,xxx" 로 변함)
sss = new Array(1,2,3); // 숫자 배열값 넣기
uuu = sss.toString(); // 문자로변환. 결과는 1,2,3
vvv = uuu.toLowerCase(); // 대문자를 소문자로 변환. 원래 값은 변경되지 않음
vvv = uuu.toUpperCase(); // 소문자를 대문자로 변환. 원래 값은 변경되지 않음
xxx = Number("111") // 숫자로 변환. 결과는 111
xxx = Number("aaa") // 숫자로 변환. 결과는 NaN
xxx = Number(true) // 숫자로 변환. 결과는 1
xxx = Number(false) // 숫자로 변환. 결과는 0
----------------------------------------------------------------------------
cliparray = new Array(); // 무비클립을 배열로 저장하기
for (a=1; a<=3; a++) {
cliparray[a] = _root["clip"+a];
cliparray[a].x = _root["clip"+a]._x;
cliparray[a].y = _root["clip"+a]._y;
trace(cliparray[a].x);
trace(cliparray[a].y);
}
----------------------------------------------------------------------------
myString = new String(); // 문자 변수초기화
myString = new String("가나다"); // 문자 넣기
tet="가나다"; myString = new String(tet); // tet 변수 넣기
text0=myString.charAt(0); // text0 값은 "가" - 1개 읽기
text1=myString.charAt(1); // text1 값은 "나" - 1개 읽기
text2=myString.charAt(2); // text2 값은 "다" - 1개 읽기
text3=myString.concat("라마","바사","다"); // text3 값은 "가나다라마바사다" - 추가
text4=text3.substr(2,4); // text4 값은 "다라마바" - 여러개 읽기
text5=text3.substring(2,4); // text5 값은 "다라" - 여러개 읽기
text6=text3.slice(2,4); // text6 값은 "다라" - 여러개 읽기
text7=myString.charCodeAt(1); // text7 값은 45208 - 문자를 코드화
text8="a" + String.fromCharCode(64) + "m"; // text8 값은 "a@m" - 코드를 문자화
text9= text3.indexOf("다"); // text9 값은 2 - 문자위치
text10= text3.lastIndexOf("다"); // text10 값은 7 - 마지막 문자위치
text11= text3.length; // text11 값은 8 - 문자길이
text12= text3.split("나"); // text12 값은 "가,다라마바사다" - 문자분리
text13= text6.concat(text3); // text13 값은 "다라가나다라마바사다" - 문자합침
text14= text13.substr((text13.length-1),1); // text14 값은 "다" - 마지막 문자 읽기
sss = myDate.toString(); day = sss.substring(0,3); // 문자로변환
----------------------------------------------------------------------------
// aaa 문장을 bbb 배열로 저장하기 // 문장을 배열로 저장하기
// 결과는 bbb[0]="a" bbb[1]="b" bbb[2]="c" bbb[3]="d" bbb[4]="e"
aaa = "a b c d e";
aaalen = aaa.length;
bbb = new Array();
for (a=0; a<=aaalen; a++) { bbb[a] = ""; };
bbbno = 0; bbbchr = "";
for (a=0; a<=aaalen; a++) {
if ( aaa.charAt(a) == " " ) { bbb[bbbno] = bbbchr; bbbno += 1; bbbchr = "";
} else { bbbchr += aaa.charAt(a); };
};
for (a=0; a<=bbbno; a++) { trace( "*" + bbb[a] + "*" ) };
----------------------------------------------------------------------------
for (a=1; a<=22; a++) { // 텍스트 필드 글자속성
this["k"+(a)].textColor=0xff0000;
this["k"+(a)].border=true;
this["k"+(a)].borderColor=0xff0000;
this["k"+(a)].background=true;
this["k"+(a)].backgroundColor=0xffffff;
};
----------------------------------------------------------------------------
TextField.removeTextField(); // 텍스트 필드 삭제
----------------------------------------------------------------------------
createTextField ("instanceName", depth, x, y, width, height) // 텍스트 필드 생성
instanceName 새 텍스트 필드의 인스턴스 이름
depth 새 텍스트 필드의 깊이를 지정하는 양의 정수 (2 는 1를 screen over)
x 새 텍스트 필드의 x 좌표를 지정하는 정수
y 새 텍스트 필드의 y 좌표를 지정하는 정수
width 새 텍스트 필드의 넓이를 지정하는 양의 정수
height 새 텍스트 필드의 높이를 지정하는 양의 정수
instanceName.type = "dynamic"; // 텍스트 필드의 기본 속성 (dynamic 또는 input)
instanceName.autoSize = "false"; // (글자수에 맞게 테두리 크기 자동 조절 true false center right)
instanceName.border = false; // (테두리)
instanceName.borderColor = 0xff0000; // (테두리 색상)
instanceName.background = false; // (배경)
instanceName.backgroundColor=0xffffff; // (배경 색상)
instanceName.textColor = 0xff0000; // (글자 색상)
instanceName.multiline = false; // (한줄 또는 여러줄)
instanceName.selectable = true; // (텍스트 필드를 선택할 수 있는지 여부)
instanceName.maxChars = null; // (사용자가 입력할 수 있는 최대 문자 수) (null 이면 무한대)
instanceName.length = 0; // (글자 수)
instanceName._name = ""; // (인스턴스 이름)
instanceName.variable = ""; // (변수 이름)
instanceName.html = false; // (html 태그 사용 여부)
instanceName.htmlText = ""; // (html 태그)
instanceName.wordWrap = true; // (자동 줄바꿈 )
instanceName._x = 0; // (x 좌표)
instanceName._y = 0; // (y 좌표)
instanceName._width = 0; // (넓이)
instanceName._height = 0; // (높이)
instanceName._xscale = 100; // (넓이 조절 %)
instanceName._yscale = 100; // (높이 조절 %)
instanceName.restrict = ""; // (입력할 수 있는 문자 세트)
instanceName.embedFonts = false; // (장치 글꼴 사용 여부)
instanceName.password = false; // (****표시)
instanceName._visible = true; // (보임/안보임. false로 설정된 텍스트 필드는 사용할 수 없음)
instanceName.scroll = 0; // (현재 스크롤 수직 위치)
instanceName.hscroll = 0; // (현재 스크롤 수평 위치)
instanceName.maxscroll = 0; // (TextField.scroll의 최대값)
instanceName.maxhscroll = 0; // (TextField.hscroll의 최대값)
instanceName.text = ""; // (글자)

myformat = new TextFormat(); // 텍스트 필드의 기본 TextFormat 속성
myformat.align = "left"; // (단락의 정렬 )
myformat.blockIndent = 0; // (왼쪽 여백에서 블록 들여쓰기. 포인트 단위)
myformat.indent = 0; // (왼쪽 여백에서 단락 들여쓰기. 각 단락의 첫 줄에만 적용)
myformat.bold = false; // (텍스트가 굵은체로 표시되는지 여부)
myformat.bullet = false; // (텍스트가 불릿 목록에 있는지 여부 * 표시)
myformat.color = 0x000000; // (텍스트의 색상)
myformat.font = "Times New Roman"; // (텍스트의 글꼴)
myformat.italic = false; // (텍스트가 기울임체로 표시되는지 여부)
myformat.leading = 0; // (줄 사이의 행간 세로 간격)
myformat.leftMargin = 0; // (단락의 왼쪽 여백 포인트 단위)
myformat.rightMargin = 0; // (단락의 오른쪽 여백 포인트 단위)
myformat.tabStops = []; // (사용자 정의 탭 중지를 지정 // (empty array))
myformat.target = ""; // (브라우저에서 하이퍼링크가 표시되는 창)
myformat.size = 12; // (텍스트의 크기)
myformat.underline = false; // (텍스트에 밑줄이 그어졌는지 여부)
myformat.url = ""; // (텍스트가 링크되는 URL)

instanceName.text = "this is my test field \r aaa" + "bbb"; // 텍스트에 내용 넣기
instanceName.setTextFormat(myformat); // 텍스트 필드의 TextFormat 변경
----------------------------------------------------------------------------
instanceName.restrict = "A-Z 0-9"; // 대문자, 공백, 숫자만 입력할 수 있음
instanceName.restrict = "^a-z"; // 소문자를 제외한 모든 문자를 입력
instanceName.restrict = "A-Z^Q"; // 대문자 Q를 제외한 대문자만 입력
instanceName.restrict = "\\-" // 마이너스 부호 (-) 만 입력
----------------------------------------------------------------------------
aa.html = true; // html 태그 사용 (b)
aa.htmlText = "<b> this is bold text </b>";
----------------------------------------------------------------------------
aa.html = true; // html 태그 사용 (table)
aa.htmlText = "";
aa.htmlText += " <table id='ttt' border='1'> <tr> <td> 테이블의 텍스트1 </td> ";
aa.htmlText += " <td> 테이블의 텍스트2 </td> </tr> </table> ";
aa.htmlText += " <a href=' ' > 이동 하기 </a> ";
----------------------------------------------------------------------------
function Func(arg){ trace ("You clicked me! Argument was "+arg); };
aa.html = true; // html 태그 사용 (asfunction)
aa.htmlText = "<A HREF=\"asfunction:Func,Foo \"> Click </A>";
----------------------------------------------------------------------------
on (release) {TextField.hscroll += 1; } // 텍스트를 수평으로 스크롤
on (release) {TextField.scroll += 1; } // 텍스트를 수직으로 스크롤
x = TextField.maxscroll; // 총 줄수를 표시
----------------------------------------------------------------------------
TextField.onSetFocus = function(){ // 텍스트 입력 (텍스트필드 속성이 입력일때)
this.text=" input data "; // 마우스 클릭시 내용 자동 입력
};
----------------------------------------------------------------------------
// aaa 와 bbb 란 두개의 텍스트 필드를 만든후
aaa.text="1234567890"
Selection.setFocus("aaa"); // 텍스트 모든 문자 포커스. 문자 없으면 커서 깜박
Selection.setSelection(2,5); // (시작점, 끝점). 결과는 "345" 포커스
bbb.text = Selection.getBeginInde 

Posted by aspirinirony
AllAcc?ess2007. 5. 17. 13:49
<meta http-equiv="Page-Enter"content="revealTrans(Duration=5.0,Transition=23)">
Posted by aspirinirony
AllAcc?ess2007. 5. 17. 13:47

츨처 : http://blog.naver.com/k2heon/15184559


필자는 1997년 UML(Unified Modeling Language)의 탄생 때부터 지금까지 죽 지켜보고, 공부하며, 사용하고 있다. 6년을 거쳐오면서 UML은 매우 많은 사람들의 입에 오르내리면서 사용되고 적용되며 변화하고 있다. 사실 처음부터 UML이라는 이름을 얻은 것은 아니었다. 이 분야의 대가인 Grady Booch와 James Rumbaugh는 각각 독립적인 방법론자(methodologist)였다. 이 두 사람의 방법론은 당시 산업계의 쌍두마차였고, 어떤 계기가 되었는지는 모르지만 통합된 하나의 방법론을 만들고자 했었던 것으로 보였다. 그래서 초기에는 통합 방법론(Unified Method)라는 이름으로 그들의 프로젝트는 시작되었다. 그러다가 어느 시점에서 그들은 프로세스(Process) 부분은 배제시켰고, Unified Modeling Language라는 이름으로 바뀌면서 또 다시 이분야 저명인사인 Ivar Jacobson의 이름이 함께 등장하기 시작했다. 그 이후로 OMG에 표준화 과정을 거치면서 지금까지 발전하게 된 것이다.
UML은 시작적인 표현 언어로써 쉽게 접근할 수 있을 것이라는 예측에도 불구하고, 아직도 UML은 넘기에는 어려운 산이라는 인식이 많이 팽배해 있는 듯 하다. 아직 명확하지 못한 부분도 많이 있고 또한 명백히 정의되어 있지만 UML을 사용하는 사람들에게는 잘 전달되지 못한 부분들도 많다. 필자는 UML을 오랫동안 다루어온 경험을 통해서 UML의 본질을 파악할 수 있도록 하여 좀 더 많은 사용자가 쉽게 적용하고, 그 결과 훌륭한 결실을 맺을 수 있도록 하는 것이 이 글의 목적이다.

:: UML 제대로 이해하기 목차 ::

UML이 처음 등장할 때부터 많은 무성한 소문들이 퍼지기 시작했다. 어떤 이는 자신이 그리고 있는 그림이 UML인지도 모르는 사람부터, UML이 새로운 프로그래밍 언어라는 사람까지 다양했다. 그러나 그러한 오해들은 금새 풀리지만 아직도 많은 사람들이 가지고 있는 오해가 몇가지 있다. 이것이 UML을 제대로 이해하는데 걸리는 첫번째 걸림돌이라 생각이 된다.


UML은 방법론이다.

물론, UML이 탄생하게된 계기의 처음 시작은 통합된 방법론이었다. 그러나 현재까지 표준화되고 사용되고 있는 것은 방법론과는 완전하게 분리된 모델링 언어(Modeling Language)일 뿐이다. 아직 많은 사이트, 책 기타 논문이나 기사에서 “UML은 … 방법론이다.”이라는 정의가 흔히 등장한다. 초기의 몇몇 선구자들의 오해로 인하여 잘못 전달된 지식이 아직까지 영향을 미치고 있는 듯하다. 이러한 사례는 비단 UML외에도 너무나도 빈번히 일어나는 사건이다. 다시 한번 강조하지만 UML은 방법론(methodology)이 아닌 하나의 모델링 언어(modeling language)일 뿐이다.

그렇다면 여기서 흔히 나오는 질문이 바로 “방법론은 무엇이며 모델링 언어는 무엇이냐”일 것이다. 그러나 그 답변은 그리 쉽지만은 않다. “방법론”은 그 의미가 광범위하고 모호하며 철학적이기 때문이다. 비록 이 단어를 소프트웨어에 국한 시킨다고 하더라도 그것을 쉽게 정의하기란 매우 어렵다. 혹자는 “프로세스 + 표기법 = 방법론”이라는 등식을 쉽게 사용하지만 그것은 차후 또 다른 논란을 불러올 수 있기 때문에 조심스럽다. 우선 필자는 “소프트웨어를 개발하기 위한 총체적인 체계”라고 이야기하면서 여기에는 절차, 표기법, 규칙, 기법, 방식, 문화 등도 포함될 수 있다고 본다.

그리고 모델링 언어(modeling language)란 소프트웨어 모델을 표현하기 위한 언어라고 정의하는 것이 가장 무난하겠지만 가장 무성의한 답변이기도 한다. 이것을 이해하기 위해서는 소프트웨어 모델이 무엇인지를 먼저 이해해야 하고 더 근본적으로는 모델(model)을 이해해야 할 것이다. 모델에 관한 이야기는 중요하므로 뒤에서 다시 자세히 알아보도록 하고, 언어(language)라는 측면을 볼 때에는 대화의 수단이 된다는 것이 가장 중요할 것이다. 즉, UML은 대화의 수단이다. 사람과 사람과의 대화, 지금의 나와 몇 달 후의 나와의 대화, 사람과 컴퓨터와의 대화 등에서 사용될 수 있다. 모델링 언어는 결국 소프트웨어 개발을 위한 총체적인 체계의 한 부분일 수는 있으나 그 자체는 아니라는 점을 분명히 해둔다.

:: UML 제대로 이해하기 목차 ::


UML은 단순한 표기법이다.

또 다른 오해는 매우 심각하다. 이것은 거의 대부분의 사람들이 믿고 있기 때문이기도 하다. 이러한 오해는 오히려 UML이 시각적인 표현을 강조한다는 점에서 출발하고 있는 듯하다. 많은 교육 프로그램들이 아직, UML은 어떤 어떤 다이어그램으로 구성되어 있고, 클래스는 몇 개의 칸으로 구성된 네모로 표현되며 의존 관계는 점선 화살표로 그린다라는 식의 표기법 설명에 치중하고 있기 때문이다. 어떻게 보면 당연한 현상일 것이다. UML이 시각적인 언어이고 겉으로 드러나는 것은 눈으로 잘 보이는 기하학적인 형태이므로, 초심자들에게는 우선 그 그림 모양을 우선적으로 가르치는 것이 정상적인 순서일 수도 있다.

UML은 언어라고 했다. 언어를 단순히 구문(syntax)과 의미(semantics)로 구분하기에는 복잡 오묘하지만 우선은 그런 관점에서 바라보도록 하자. UML은 단순한 표기법이라고 이해하는 사람들은 지나치게 구문(syntax)에 의존한 학습을 했기 때문이다. 만약 그러한 사람들이 모여 UML로 커뮤니케이션을 한다면 UML로 작성된 소프트웨어 모델은 귀에 걸면 귀걸이, 코에 걸면 코걸이가 되는 아주 아주 모호한 것으로 전락하여 UML의 정상적인 능력을 발휘하지 못하게 할 것이다. 또한 UML의 그러한 표기법은 단순한 그림이 아닌 엄연히 구분 규칙이 존재하며 그에 따른 의미도 존재한다는 것을 염두에 두어야 할 것이다.

:: UML 제대로 이해하기 목차 ::



모델(Model)

소프트웨어 모델을 이해하는 것이 UML을 꿰뚫어보는 가장 빠른 길인지도 모른다. 더 근본적으로는 모델(model)을 이해하는 것이 관건인데, 이것은 어떻게 보면 아주 쉬운 것이지만 어렵게 보면 매우 철학적 고찰이 필요한 것이다. 조금은 건방진 정의일지 모르겠지만 ‘모델은 자연 세계의 현상 혹은 사람의 생각 등을 일정한 관점에서 단순화 시켜 체계적으로 표현한 것’이라고 할 수 있겠다. 여기서 강조하고 싶은 단어는 “단순”과 “체계적”이라는 단어이다. 어떤 것을 너무 정확하게 표현하고 싶은 욕심에 조금만 것 하나 놓치지 않고 모조리 표현했다면 그것은 모델이 아니고, 일정한 기준 없이 중구난방식으로 표현해 도저히 이해할 수 없다면 그것 또한 모델이 아니다.

우리 실생활에서는 “모델”이란 용어가 어디에 사용될까? 우선, “모델 하우스”라는 말이 있다. 실제 건축물을 짓기전 그것과 거의 동일한 모델 하우스를 지어서 입주자들이 완성될 건축물에 대한 예측을 할 수 있도록 도와주는 것이다. 모델 하우스는 말 그대로 입주자들에게 완성될 건축물에 대한 이해가 목적이므로 실제 내장재라든지, 상하수도 시설, 냉/온방 장치, 전기 안전장치 등, 기타 그러한 목적과는 별 관계가 없는 것들은 다 생략하게 될 것이다. 그리고 “프라모델”이라는 말이 있는데, 이것은 아이들이 가지고 노는 플라스틱 모델(plastic model)을 줄인 일본식 영어이다. 이것 역시 아이들이 좋아하는 대상물 즉 인기스타, 로봇, 캐릭터, 자동차, 전쟁 무기 등을 단순한 형태만을 본따서 만든 것이다. 만약 실제 전쟁 무기 장난감에 인간에 치명적인 해를 줄 수 있는 기능이 포함되어있을 필요는 없는 것이다. 아니, 그래서는 절대로 안되겠다.

:: UML 제대로 이해하기 목차 ::


소프트웨어 모델(Software Model)

소프트웨어 모델(software model)은 실제로 개발할 소프트웨어 시스템을 단순화하여 체계적으로 정의한 논리적 모델이다. 아마 소프트웨어가 눈에 보이고 손으로 만질 수 있는 것이라면 모델이라는 용어가 더 쉬웠을지도 모르지만 그렇지 못하기 때문에 이해하는데 있어서 좀 더 힘들어 보인다. 이러한 이유에서 소프트웨어 모델을 만들기 위해서는 플라스틱이나 나무, 강철 같은 물리적(physical) 재질이 아닌 수학이나 철학에서 논리적(logical) 원료를 가져올 수 밖에 없다. UML은 바로 수학이나 철학 등에서 적절한 원료를 가지고 사용자가 쉽게 소프트웨어 모델을 구축할 수 있도록 구문과 의미를 잘 정의해 놓은 언어라는 것이다.

:: UML 제대로 이해하기 목차 ::


소프트웨어 모델과 관점(Perspective)

하나의 소프트웨어 시스템에 대해서 단 하나의 모델이 존재해야 하는 것은 결코 아니다. 더군다나 소프트웨어와 같이 복잡한 놈에는 더더욱 곤란한 이야기이다. 간단히 원통 모양의 물체를 표현한다 하더라도 한쪽면만 봐서는 그것이 원통 모양인지를 알 수 없다. 정면을 보면 단순히 사각형의 모양이므로 원통인지, 사각 박스형태인지를 알 수 없다. 그리고 위측면만 보면 원 모양이므로 구(sphere) 형태인지 원통인지 알 수 없다. 이런 저런 다양한 관점에서 보아야 총체적으로 원통 모양인지를 추측할 수 있는 것이다.

소프트웨어는 바라 보는 관점은 많이 있을 수 있다. 그것은 경우에 따라 가장 접합한 것을 선택하면 되겠지만 통상적으로 소프트웨어 시스템에 관여하는 이해 당사자들의 관점을 수용하는 경우가 많다. 예를 들어, 최종 사용자의 경우에는 요구 모델(requirement model)을, 시스템 분석가에게는 분석 모델(analysis model), 프로그래머에게는 구현 모델(implementation), 시스템 테스터에게는 테스트 모델(test model) 등 다양하게 개발될 수 있다. 이렇듯 소프트웨어 모델에는 일정한 관점이 반영되게 되고, 필요에 의해 여러 가지의 관점이 필요하며 이에 따라 여러 개의 소프트웨어 모델이 개발되어야 할 수도 있다.

:: UML 제대로 이해하기 목차 ::

흔히 UML은 몇개의 다이어그램으로 구성되어 있다고들 말한다. 그리고 각각의 다이어그램은 어떻게 생겼으며 어떤 역할을 한다라는 설명한다. 물론, 맞는 말이기는 하지만 UML을 몇 개의 다이어그램적 구성만으로 바라보는 것보다는 다음의 몇가지 관점을 함께 이해하는 것이 좋겠다.


구문(Syntax)과 의미(Semantics)

우리는 Java, C++와 같은 고급 프로그래밍 언어에서는 구문과 의미를 대체로 잘 이해한다. 비록 BNF, EBNF와 같은 정형 구문(formal syntax)이나 Operational, Denotational, Axiomatic 등과 같은 정형 의미론(formal semantics)을 잘 모른다 하더라도 어떤 것이 구문이고 그 의미가 어떠하다는 직관을 가지고 있다. UML도 마찬가지로 구문과 의미가 구문되어 있으며 그 차이를 이해해야 한다. UML을 단순한 그림으로 이해하기 때문에 구문에 맞지 않는 그림이 매우 많고 또한 의미에 맞지 않는 표현으로 인하여 커뮤니케이션의 수단이라는 제 역할을 재대로 수행하지 못하는 경우가 많다.

예를 들어 Package들 사이에 연관(Association) 관계를 맺는 다든지 하는 것은 명백한 구문의 오류이다. OMG에서 제공하는 UML 명세(specification)에는 구문이 잘 정의되어 있으나, 그 내용이 다소 어려운 관계로 많은 사람들이 숙지하지 못하고 있을 뿐이다. 또한 많은 UML 도구들이 그러한 엄격한 구문에 의거하여 개발되지 못한 점도 큰 원인 중 하나이다. 다음의 그림 1은 UML 명세에 정의되어 있는 UML의 요약 구문의 일부를 보여준다. 구문 역시 UML 표기로 표현되어있다는 것은 참 재미있는 일이다. UML의 각 요소(element)를 보여주고 그것들 사이의 일반화(Generalization) 관계 및 연관 관계(Association) 그리고 속성(Attribute)등을 잘 보여주고 있다. 간단하게 Classifier 요소(Class, Interface, Component 등에 대한 추상 요소)는 여러 개(없거나 하나 이상)의 Feature를 포함하고 있다. Feature 요소는 Attribute, Operation, Method와 같은 요소의 추상 요소이다. 이런 구문 규칙이 있기 때문에 Class에 Attribute와 Operation을 포함한다는 것을 UML 표기법으로 표현할 수 있는 것이다.

UML의 의미는 특별한 정형 의미론을 도입하지는 않는다. UML 명세에는 단지 자연어(영어)로 그 의미를 설명하고 있고 몇 가지 규칙(well-formedness rules)을 OCL(Object Constraint Language)로 표현하고 있을 뿐이다. 그래서 UML은 모호한 언어이다. 사실 UML의 의미를 명확히 꿴다는 것은 매우 힘든 일이다. 마치, Java나 C++와 같은 언어의 의미를 모두 꿰지 못하지만 프로그램을 작성하는 데에는 큰 무리가 없는 것과 일맥 상통한다고 할 수 있다. 여기는 UML의 의미를 다 파악해야 한다는 것이 아니라 구문과 의미가 명백히 구분되어 있다는 것을 알고 그것의 필요한 경우, UML 명세를 통해서 하나 하나 숙지해 나가자는 것이다.

:: UML 제대로 이해하기 목차 ::

구조(Structure)와 행위(Behavior)

우리가 표현하고자 하는 소프트웨어 모델은 대체로 구조(structure)와 행위(behavior)로 나눌 수 있다. “클래스, 컴포넌트 등이 어떻게 소프트웨어를 구성하는가?”는 구조를 의미하는 것이고 “어떤 클래스의 인스턴스가 메시지를 받았을 때 어떻게 동작하는가?”는 행위를 의미하는 것이다. UML에는 여러 개의 다이어그램이 존재하는데 각 다이어그램을 구조적인 것과 행위적인 것으로 분류하면 그림 2와 같다.

여기서 재미있는 것은 구조적인 것에 해당하는 다이어그램들은 주로 소프트웨어를 구성하는 요소의 알갱이 크기(granularity)에 기인하여 구분된다는 것과 행위적인 것에 해당하는 다이어그램들은 행위의 종류(interaction, state transition, activity flow, …)에 기인하여 구분된다는 것이다. 이러한 개념을 갖고 구조와 행위를 잘 구분하여 그에 적합한 다이어그램을 선택하여 작성하여야 할 것이다.

:: UML 제대로 이해하기 목차 ::

UML의 삼분법(Trichotomy)

UML에는 크게 3개의 개념적 층위(layer)가 존재한다. 그것은 바로 클래스(Classifier, ‘분류자’로 용어를 사용할 수도 있으나 ‘클래스’라는 용어에 대부분 다 친숙하고 또 그렇게 이해하더라도 무방하므로 ‘클래스’라는 용어를 사용한다.), 역할(ClassifierRole), 그리고 인스턴스(Instance)이다.

우리는 대부분 클래스(Classifier)와 인스턴스(Instance)는 잘 구분한다. UML에서도 사람들은 이 두 가지는 잘 구분해서 쓰는 듯 하다. 그림 3에서와 같이 ‘Car’라는 클래스(Class)는 사각형에 굵은 글씨체로 이름을 표현하고, 그것의 인스턴스는 자신의 이름에 이어 ‘:’으로 그것의 클래스 이름을 구분한다. 그리고 밑줄을 그어 클래스가 아닌 인스턴스임을 나타낸다. 클래스는 주로 클래스 다이어그램에 나타나고 그것의 인스턴스는 시퀀스 혹은 콜라보래이션 다이어그램에 나타난다.

그러나 이 두 가지(Classifier와 Instance) 이외에 역할(ClassifierRole)이라는 개념 층위가 하나 더 존재한다. 간단한 예를 들어보자. ‘사람’이라는 클래스의 인스턴스 ‘김말복’씨는 회사에서 ‘팀장’을 맡고 있다. 집에가면 아이 둘 딸린 ‘가장’이고 자신이 취미로 몸담고 있는 밴드에서는 ‘드러머’를 맡고 있다. 분명 이 예에서 ‘김말복’씨는 ‘사람’의 인스턴스이지만 여러 개의 많은 역할을 해내고 있다. UML에서는 이러한 역할이라는 개념을 도입해서 사용할 수 있도록 허용하고 있다. 이로 인하여 최근에 나온 몇 가지 UML 도구에서는 Sequence Role Diagram, Collaboration Role Diagram 이라는 약간 다른 개념의 다이어그램 형태를 제공하고 있다(PLASTIC 2003, Rational XDE 등).

UML에서 역할(ClassifierRole)이 등장하게 된 배경은, 디자인 패턴(Design Pattern)이 많은 개발자들의 큰 반향을 일으키고 따라서 이것을 UML에 적절히 표현할 수 있는 개념적 베이스를 제공하기 위한 것으로 보여진다. 패턴은 대체로 객체들의 적절한 협동을 통해 특정한 문제를 해결하는 방법을 정리한 것인데, UML에서 패턴은 하나의 협동(Collaboration)으로 표현된다.


패턴은 어떤 목적(문제의 해결)을 이루기 위해 객체들이 어떻게 협동하는가에 초점이 맞추어져 있기 때문에 패턴에서 표현되는 각각은 클래스도 아니며 인스턴스도 아니다. 간단히 Visitor 패턴의 경우 방문을 하는 Visitor가 있고 방문을 당하는 Node가 있다. Visitor와 Node는 특정 클래스의 정의를 표현하고자 하는 것이 아니고 더군다나 인스턴스를 지칭하는 것도 아니다. 다만, 객체가 수행해야 할 역할(role)을 의미하는 것이다. 실제 프로그래밍에서도 Visitor와 Node를 직접 클래스로 정의하는 경우는 드물 것이다. 자신에 개발하는 애플리케이션의 어떤 클래스가 Visitor의 역할을 또 다른 클래스가 Node의 역할을 해야 하는 것이다. 즉, 패턴이라는 것은 역할이라는 개념적 층위에서 정의되어야 하는 것이다.


패턴은 UML에서 하나의 협동(Collaboration)으로 정의되고, 역할(ClassifierRole), 역할-연관(AssociationRole)과 같은 별도의 요소들로 모델링된다. 이것들은 그림 5에서 보듯이 Class와 Association 그리고 Object와 Link에 각각 대응된다. 연산에 대한 호출도 ClassifierRole 수준에서는 Message라는 요소에 대응하고 Instance 수준에서는 Stimulus로 대응된다. 이러한 UML의 개념적 층위를 이해하고 모델링을 한다면 더 명확한 소프트웨어 모델을 작성하는데 도움이 될 것이다.

:: UML 제대로 이해하기 목차 ::

모델(Model)과 다이어그램(Diagram)

초기의 웹(World-Wide-Web)은 HTML만으로 구성되었으나 최근에는 XML이 많이 사용되고 있다. HTML은 실제 정보와 그것을 표현하는 스타일이 뒤섞여 있어 불편함이 이만 저만이 아니었으나, XML이 등장하면서 실제 정보는 XML로 정의하고 그것을 표현하는 스타일은 CSS나 XSLT와 같은 것을 사용하고 있다. 즉 모델(model)과 뷰(view)를 구분한 것이다. 데이터베이스를 활용한 프로그램도 마찬가지로 실제 의미있는 정보는 데이터베이스 내에 존재하고 그것을 표현하는 것은 표, 그래프 등 다양한 방식으로 가능하며, 이들 역시 구분되어 있다.

UML도 이와 같이 의미있는 정보와 그것을 표현하는 것이 구분되어 있다는 것을 이해하는 사람이 그리 많이 있어보지는 않는다. 실제 소프트웨어 모델이라는 것은 논리적인 것으로써 눈에 보이는 것이 아니다. 다만 UML의 다양한 다이어그램을 통해 그것의 일부 단면을 시각적인 그림으로 보여주고 있을 뿐이다. 클래스(Class)라는 요소는 Name, IsAbstract, IsLeaf, IsRoot, IsActive 등의 속성을 가지고 있고 이에 대한 값들이 실제로 의미가 있는 것이고, 이것을 다이어그램에서는 네모 상자에, 이탤릭체(IsAbstract), 굵은 테두리선(IsActive)으로 나타내는 것 뿐이다. 비록 하나의 클래스(Class) 요소라 할지라도 여러 장의 다이어그램에 걸쳐 나타날 수도 있는 것이다.

UML 모델링 도구를 사용할 때 항상 유념해야 하는 부분은 다이어그램 몇장을 끄적거려 나타내는 것이 아니라 하나의 체계적인 소프트웨어 모델을 작성한다는 생각을 가지고 그것을 모두 시각적으로 표현해내기 위해, 다양한 관점에서 여러 개의 다이어그램들을 그려낸다라는 생각으로 작업에 임해야 한다.



램프의 요정 지니: “메타-소원은 들어줄 수 없어요.”

이 장의 제목이 무슨 말인가 하면 필자가 읽었던 “괴델-에셔-바흐”라는 책에 나오는 한 귀절이다. 이 귀절을 인용한 이유는 “메타(meta)”라는 용어의 의미를 어떻게 하면 잘 전달할 수 있을까 하는 생각에서이다. 그 책의 내용에 보면 대충 이런 부분이 있다. 램프의 요정 지니가 램프의 주인에게 나타나 “주인님 3가지 소원을 말하세요.”라고 말을 한다. 이때 램프의 주인은 “첫번째 소원은 나의 100가지 소원을 더 들어주는 것이다.”라고 말을 하면 지니는 “메타-소원은 들어줄 수 없어요.”라고 말한다. 여기서 메타-소원이라는 것은 소원에 관한 소원을 말하는 것이다. 이처럼 메타(meta)라는 용어는 어떤 개념적인 층위를 한 단계 올라선 것을 의미한다고 볼 수 있겠다. 그렇다면 꿈에 관한 꿈을 꿨다면 그것은 메타-꿈이고, 소설에 관한 소설을 썼다면 그것은 메타-소설일지도 모른다.

:: UML 제대로 이해하기 목차 ::


UML 메타모델과 MOF

메타-소원, 메타-꿈, 메타-소설이 존재한다면 모델에 관한 모델, 즉 메타-모델(meta-model)도 존재하는가? 물론 존재하고 더군다나 UML 명세 문서에서도 자주 등장하는 용어이다. 이러한 맥락에서 보면 메타-모델(metamodel)은 모델을 정의하기 위한 모델이라고 이해할 수 있다. 그렇다면 메타-모델을 정의하기 위한 모델은 메타-메타-모델(meta-meta-model)이 되고, 메타-메타-모델을 정의하기 위한 모델은 메타-메타-메타-모델이 될 것이다.

MOF(Meta-Object Facility)는 메타모델을 정의하기 위한 언어(language)와 메타데이터를 저장하는 리포지토리(repository)를 위한 프레임워크(framework)를 정의하는 OMG에서 제정한 표준이다. UML의 메타모델 뿐만 아니라 CWM(Common Warehouse Metamodel), MDA(Model Driven Architecture)에 사용되는 여러 메타모델도 MOF Model에 의거하여 정의되었다. 상세한 내용은 MOF 명세 문서를 참고하기 바란다.

사실 대부분의 사용자는 UML 메타모델을 이해하고 있는 경우는 드물고 또 반드시 알아야 할 필요는 없다. 그러나, UML 모델을 명확하게 작성한다거나, 재사용 가능한 UML 모델을 개발하여 그로부터 다양한 산출물을 자동으로 생성하고자 하는 고급 개발자라면 UML 메타모델을 이해하는 것이 필요하다.

:: UML 제대로 이해하기 목차 ::


비록 이 글에서는 소프트웨어 모델을 중심으로 다루고 있지만 사실 UML은 범용 모델링 언어이다. 즉, 다양한 분야에서 비록 소프트웨어가 아니더라도 얼마든지 UML은 사용될 수 있고 또 실제로 협소하나마 사용되고 있기도 하다. 이것은 UML의 범용성이라는 큰 장점이기도 한 반면에 특정 영역에서는 부족한 표현력 때문에 사용하기에 힘든점이 존재한다는 것은 도리어 단점이 되기도 한다. 그러나, UML은 확정성있는 언어이기 때문에 이를 확장하여 표현력을 더 높일 수도 있다. 이것을 UML의 확장 메커니즘(extension mechanism)이라고 한다.

스테레오 타입(Stereotype)과 확장 속성(Tagged value)

UML에서는 많은 모델링 요소들을 제공하고 있기는 하지만 사실 그것만으로는 다소 부족함을 느낀다. 예를 들어 클래스 모델링을 하는 경우 그것들을 좀 더 명확하게 구분하기 위해 GUI에 관계된 클래스는 별도의 표시를 해 두고 싶은 경우가 있다. 이런 경우 유용하게 사용될 수 있는게 바로 스테레오타입(stereotype)이다. 스테레오타입은 UML 요소를 좀 더 상세하게 분류할 수 있도록 도와준다. 위의 예에서와 마찬가지로 GUI에 관계된 클래스는 ‘<<GUI>>’라고 스테레오타입을 붙이거나, 연산 중에서 생성자에 해당하는 것에 대해서 ‘<<constructor>>’라고 스테레오타입을 붙일 수 있다.

확장 속성(tagged value)은 스테레오타입과 더불어 사용될 수 있는 또 다른 확장의 방법으로써 기본 UML에 제공하는 속성에 더 부가적으로 사용자가 정의한 속성을 부여하는 방법이다. 예를 들어, 속성(Attribute)을 표현했는데 이것이 직렬화(serialize)할 때 저장되지 않는 다는 정보를 표시하기 싶은 경우, UML에서는 속성(Attribute)에 그러한 용도로 사용되는 것이 없으므로 부가적인 어떤 정보를 표시해야 한다. 이런 경우 확장 속성(tagged value)를 속성(Attribute)에 부여하여 사용할 수 있다. 그러나, 대부분의 일반적인 경우 스테레오타입과 확장 속성은 함께 사용된다. 즉, 특정 스테레오타입이 연결된 경우 그에 따라 관계된 몇 가지의 확장 속성을 함께 사용할 수 있다. 예를 들어 ‘<<JavaAttribute>>’라는 스테레오타입을 부여한 경우 ‘Transient’, ‘IsFinal’, ‘IsStatic’ 등과 같은 확장 속성을 함께 사용할 수 있다. 물론, 그렇게 정의되어 있는 경우에 말이다.

:: UML 제대로 이해하기 목차 ::

UML 프로파일(Profile)

UML은 매우 일반적인 언어이기 때문에, 특정한 프로그래밍 언어(Java, C++, 등)의 개념을 표현하거나 혹은 특정한 애플리케이션 도메인(금융, 항공우주, 전자상거래, …)의 개념을 표현하기에는 부족함을 느끼게 된다. 이런 경우 앞서 설명한 스테레오타입과 확장 속성을 사용할 수 있는데, 이것을 체계적인 형태로 정의해서 하나의 패키지로 만든 것이 바로 UML 프로파일(Profile)이다. 예를 들어 UML Profile for Java라는 프로파일이 정의되었다면 Java 언어의 개념을 표현할 수 있도록 만든 것이 므로 ‘<<JavaClass>>’, ‘<<JavaOperation>>’, ‘<<JavaInterface>>’ 등의 스테레오타입과 그것에 관계된 몇가지 확장 속성(‘IsFinal’, ‘IsStatic’, ‘Transient’, ‘IsSynchronized’, …)이 포함되어 있을 수 있다. 이처럼 UML 프로파일은 특정한 플랫폼, 언어, 혹은 도메인 단위로 UML의 표현력을 확장 시켜줄 수 있는 매우 막강한 파워를 지닌다. 현재, OMG에서는 UML Profile for EDOC(Enterprise Distributed Object Computing), UML Profile for EAI(Enterprise Application Integration), UML Profile for CORBA 등을 표준으로 제정했거나 진행중이다.

UML Profile은 또한 MDA(Model Driven Architecture)의 핵심이기도 하다. 이제는 UML 도구를 사용할 때 사용자는 자신의 플래폼이나 도메인에 맞는 프로파일을 정의해서 사용하거나 혹은 이미 정의된 것을 가져와서 사용할 수 있게 되고, 이렇게 정확한 개념으로 표현된 모델은 코드 생성기에 의해서 소스 코드, 설정 파일 정의, 문서, IDL 정의 등 다양한 산출물을 자동으로 생성하게 될 것이다. 이것이 바로 MDA의 핵심 아이디어이기도 하다.

:: UML 제대로 이해하기 목차 ::


높은 추상화 수준을 유지하라.

이 조언을 따르지 않는다면 UML을 사용하는 근본적인 목적을 훼손하는 일이다. 아무리 Java로 구현될 프로젝트라 할지라도 모두 Java의 코딩에 들어갈 정보들을 100% UML 모델과 일치시킨다는 것은 정말 바보 같은 일이다. 그럴바에는 차라리 UML을 쓰지 않는 편이 낫다. 그것은 아무 의미없는 중복적인 작업이기 때문이다. 어떤 객체가 다른 객체를 포함할 때, 얼마나 포함하는 가(0..1, 1..*, 0..*), 어떻게 포함하는가(aggregation or composition), 순서는 고려되는가({ordered}, {unordered}), 변경이 가능한가(changeable, addOnly, frozen)과 같은 높은 수준의 개념을 사용해야 한다.

그러나 사실 이러한 사례를 특정 도구들이 부추기고 있기도 하다. 불완전한 라운드트립-공학(Round-trip engineering)의 지원을 통해 어쩔 수 없이 그렇게 사용자들이 유도되고 있고, 오히려 더 불편하게 하고 귀찮게 하고 있다. 현재의 라운드-트립 공학은 매우 불완전한 기술이다. UML과 프로그래밍 언어 사이의 추상화 갭을 인정하지 않고 무조건 동기화시켜 버리는 일종의 쇼에 불과하다. 사용자들이 이런 기능에 갑탄하고 또 비싼 비용을 지불하고 있지만 그 최종 결과는 참담할 뿐이다. 프로젝트가 진행될수록 동기화가 이루어지지 않는 부분이 크게 늘어나고 이를 위해서 개발자들은 더 많은 시간을 할애해서 귀찮은 작업을 해야 하고, 이렇게 했음에도 불구하고 또 다시 헝클어지는 모델과 코드를 보며 얼굴을 붉혀야 하는 일이 한 두번이 아닐 것이다. 자 이제 과욕은 버리고 높은 추상화 수준을 유지하면서 체계적으로 정의된 UML 모델을 개발하기를 바란다. 이것이 나중에 더 많은 잇점을 가져다 줄 거라는 것을 믿자. 그것이 정말 궁금해서 기다리지 못하겠다면 OMG에서 MDA(Model Driven Architecture)가 무엇인지 상세히 알아보기 바란다.

:: UML 제대로 이해하기 목차 ::


최대한 명확하게 표현하라.

소프트웨어 모델은 명확하게 표현되어야 가치가 생긴다. 명확(precise)하게 표현되어야 한다는 것과 구체적(detail)으로 표현한다는 것과는 하늘과 땅이다. 이것은 앞서 말한 높은 추상화를 유지해야 한다는 것과 일맥상통 한다고 할 수 있는데, 높은 개념의 수준에서 누가봐도 오해의 소지가 없을 정도로 명확해야 한다는 것이지 실제 구현의 수준까지 세세하게 작성하라는 것은 아니다. 건축물을 짓기전에 대충 흙으로 빚은 형태의 모델과 명확하게 100:1로 축소하여 정교하게 만들어진 모델의 효용성에 대한 차이는 더 이상 이야기하지 않아도 잘 이해할 것이라 생각된다. 소프트웨어 모델에서 이러한 것을 달성하기 위해서, 가능하다면 다음의 노력을 기울이면 좋겠다.

1. UML의 메타모델과 의미를 OMG의 명세 문서를 통해서 전반적인 형태를 이해한다.
2. 명확한 표현을 위해서 필요하다면 UML 프로파일을 정의해서 사용하라.
3. OCL(Object Constraint Language)은 명확한 표현을 위한 매우 훌륭한 도구이므로 잘 배워서 사용할 수 있다면 더욱 좋다.

위의 3가지만 모두 잘 해낼 수 있다면 훌륭한 소프트웨어 모델러가 될 수 있겠지만 그것은 그렇게 쉽지만은 않을 것이다. 그러나, 이것을 모두 한꺼번에 해내려 하지말고 프로젝트를 수행해 나가면서 조금씩 조금씩 발전시켜 나갈 수 있다면 그리 멀지 않은 시간에 해낼 수 있으리라 본다.

:: UML 제대로 이해하기 목차 ::


기업에서는 자산(Asset)화하라

최근에 UML을 화이트보드에 그려서 서로 대화하는 용도로만 사용하라고 권장하는 이들이 있다. 물론, 매우 의미있는 일이고 효과도 있을 것이다. 그러나, 그것은 UML의 한쪽면만을 강조한 것이다. UML은 분명 커뮤니케이션의 수준이기도 하지만 기업에서는 매우 가치가 높은 자산이 되기도 한다. 두번째 면은 비교적 최근에 정립되었으며 MDA라는 개발 접근법을 통해 그것이 입증되고 있기도 하다.

현재 UML을 사용하고 있는 대부분의 기업에서는 소프트웨어 모델이 자산화되고 있지 못하고 있다. 비싼 돈을 주고 도구를 도입하여 문서화하기 위한 그림을 그리는데 사용하는 것이 고작이다. 그리고 그렇게 그려진 다이어그램(이러게 만들어진 것을 소프트웨어 모델이라고 하기에는 문제가 많다)들은 아마도 다시 열려져서 활용되는 일은 없을 것이다. 이러한 방식은 시간 낭비, 돈 낭비, 인력 낭비이다. 좀 더 치밀한 계획을 세우고 소프트웨어 모델을 자산화를 위해 노력한다면 시간, 돈, 인력의 낭비가 아니라 획기적인 생산성과 품질의 향상을 가져올 수도 있는데도 안타까운 일이다.

UML로 작성된 소프트웨어 모델이 자산화되기 위해서는 높은 추상화 수준에서 명확하게 작성되어 야만 한다. 이렇게 작성된 모델은 마치 데이터베이스에 저장된 핵심적인 정보가 다양한 그래프와 표로 얼마든지 표현될 수 있는 것처럼, 다양한 소스 코드(IDL, Java, C++, …), 문서(HTML, PDF, RTF, …), 설정 파일(manifest, ini, registry, …), 보고서(클래스당 평균 연산 개수, 총 클래스 수, 패키지별 클래스 분포, …) 등을 얼마든지 자동으로 생성해낼 수가 있다. UML 모델의 자산화는 기업의 경쟁력을 한 수준 끌어올릴 수 있을만큼 의미있는 결과를 보여줄 것이다.

:: UML 제대로 이해하기 목차 ::


이 글에서는 UML에 대한 많은 오해들과 UML의 본질적인 구성과 숨겨진 가능성을 소개하였고 마지막으로는 몇가지 조언을 곁들였다. 여기서는 단순히 UML의 다이어그램이 어떻게 생겼다는 등의 내용을 다루지 않는다. 많은 사람들이 그런 그다지 중요하지 않은 부분에 많이 치중해 있다는 생각이 들어, 좀 더 UML 그 자체를 이해하고 이를 통해 100% 아니 200% 이상 활용하여 큰 결과를 얻을 수 있었으면 하는 바람에서 글을 쓰게 되었다. 그러나, 역시 몇장 되지 않는 글을 통해 그것들을 모두 전달하기에는 역부족이라는 생각과 좀 더 쉽게 전달하지 못하는 나의 부족함을 느끼게 된다. 아무쪼록 이 글을 통해서 독자들이 UML을 다시 바라보게 되는 계기가 되기를 기대해본다.

Posted by aspirinirony
AllAcc?ess2007. 5. 17. 13:02
내용 출처 : http://cafe.daum.net/learnenglish
◎만날 때 헤어질 때.-(만날 때,오랜만에 만날 때, 헤어질 때)



●●만날 때.

●Hi
->일상적인 인사말 입니다.
Hello보단 격식없는 표현으로 친한 사이에 주로 쓰입니다.

●Hello
->하루 종일 흔히 쓰는 인사말

●Good morning
->아침 인사죠?^^

●Good afternoon
->점심 때 쓰는 인사입니다.
특히 일할 때 많이 쓰이는 말이죠.

●Good evening
->저녁 때 쓰이는 인사입니다.

●How are you?
->잘 지냈니? 하고 안부를 묻는 인사말입니다.
안부 이외에 안녕하십니까? 하는 의미로도 아주 잘 쓰입니다.^^

♣보통 How are you? 하면 우리나라 사람들 중 많은 수가 형식적으로
Fine thank you 라는 대답이 나옵니다..
외국인이 How are you?라고 해서 긴장해서 무턱대고 fine 이라하는 것
보다는 I am tired. Not bad 등 자신의 상태를 정확하게 알려주세요.^^

●How do you do?
->첨 뵙겠습니다.^^
처음 만났을 때 쓰는 인사말입니다.^^

♣미국의 일부 지방에선 How do you do를 Howdy라고 하기도 한답니다.^^
사투리이고 잘 쓰이는 말은 아니지만 하나 알아두세요.

♣I've heard a lot about you.
->말씀 많이 들었습니다.^^

●What's up?
->How are you와 같은 의미 입니다.
별일 없어? 정도의 뜻으로 쓰이고 친한 친구들사이에서
많이 쓰이는 말입니다.

ex)Hey~ Chris, what'up?
->이봐 크리스, 잘 지내?
Nothing much.
->별일 없지.

●How's your family?
->가족들은 잘 지내?

●How's everything?
->잘 되가고 있어? 하고 일종은 안부인사입니다.
레스토랑에서 웨이터가 이 말을 하게 되면
"식사는 어떻습니까?"하는 의미가 된답니다.^^

ex)How's everything?
->잘 되가고 있어?
It's going pretty well.
->모든게 잘 되구 있어.
♣pretty는 ~이 귀엽다,예쁘다의 의미도 있지만
위와 같이 "매우"라는 강조의 의미를 지녀 사용되기도 합니다.^^

●How's business?
->일은 어때?

●How did it go today?
->직역하면 오늘은 어떻게 갔니?
즉, 오늘 하루 어땠어? 라는 의미로 주로 회의나 파티 등
뭔가 특별한 일, 행사가 있었을 때 씁니다.

ex)How did it go today?
->오늘 어땠어?
So-So.
->그저그렇지 뭐..

●Same as usual.
->마찬가지야..
잘 되고 있니? 오늘 어땠어? 하고 상대방이 물어볼 때
쓰는 대답으로 마찬가지야.. 하는 뜻을 갖고 있습니다.
비슷한 말로는
♣Another day, another dollar.
->여느 떄와 마찬가지야.

●Where are you headed?
->어디가니? 라는 물음입니다.
=Where are you going?
=where are you off to?

●What are you doing?
->뭐 하고 있어?

♣I was just thinking.
->그냥 뭐좀 생각 하고 있었어..
♣I was just daydreaming.
->좀 멍 하니 있었어.
♣I'm killing time.(=I'm hangin out.)
->시간 때우고 있었어.

●You've come just in time.
->제 시간에 왔구나.
(=You've come at the right moment)

●There you are!!
->여기에 있었구나!!
찾고 있던 상대방을 발견했을 때 쓰는 말입니다.
(=Gotcha!
(=Found you!)

●Is Matt around?
->멧 있어?
곧잘 쓰이는 말이니 잘 기억해 두시길...

●Have you seen Chris?
->크리스 봤어?
누군가를 찾을 때 다른 이에게 물어보는 말입니다.
회사나 학교에서 주로 쓰이는 표현입니다.

●I ran into him.
->그와 우연히 맞딱뜨렸어.
(=I bumped in to him
♣run into:우연히 만나다.


만날 때 헤어질 때 1부..
오늘 여기서 마치겠습니다.^^
비록 간단한 표현들이지만 일상생활에서 많이 써먹을 수
있도록 노력하세요.^^

그럼 저 프린켑스는 이만 물러 갑니다.^^
Posted by aspirinirony
web2.0[Cityzon]2007. 5. 17. 12:00


씨츄인지 그 어글리한 face를 들이밀며 모니터를 혀로 닦아내는데 잘 몰라 근데 재미있네..

사실 이파일은 flash로 만들었는데 클리너가 될지는 모르지만 아주 재미있네요..


Posted by aspirinirony