Search results for '공부도 하고/기본이 되는 것'

코스피 지수 ??

2008/10/28 09:03

우리나라 경제가 아주 심각한 수준에 이르렀다. 라는 말들이 많이 나오고 있다.
그 기준으로 코스피 지수에 대한 기사가 많이 나온다.
그런데.. 그 코스피 지수란 머지?

코스피 지수(KOrea composite Stock Price Index, 약어 :KOSPI)는 한국증권선물거래소의 유가증권시장에 상장된 회사들에 주식에 대한 총합인 시가총액의 기준시점과 비교시점을 비교하여 나타낸 지표다. 원래 명칭은 종합주가지수(綜合株價指數)였으나, 2005년 11월 1일부터 현재 이름으로 바뀌어 사용되고 있다.
현재 코스피는 1980년 1월 4일의 시가 총액을 기준으로 한다고 한다.
(KOSPI = 비교시점시가총액 / 기준시점시가총액 x 100)
작년에 2000을 찍었었는데.. 오늘은 964... 도대체 얼마나 나빠진거란거야.. ㅡㅡ;

'공부도 하고 > 기본이 되는 것' 카테고리의 다른 글

코스피 지수 ??  (2) 2008/10/28
참고문헌, 출처 표기법  (2) 2007/04/02
블루슈머 6 --- 나는 어디에 속하나  (6) 2007/01/27
도박 문제.. 최고의 선택은?  (2) 2006/09/27
에러 코드  (0) 2006/06/13
eth0 has different mac address than expected  (0) 2006/06/11

총명님 공부도 하고/기본이 되는 것 코스피, 코스피지수, 한국경제

  1. 아이고아이고 소리가 절로나네요 --;

  2. 아고아고~앜!!

참고문헌, 출처 표기법

2007/04/02 12:05
출처를 표기하는 여러가지 방법들...


'공부도 하고 > 기본이 되는 것' 카테고리의 다른 글

코스피 지수 ??  (2) 2008/10/28
참고문헌, 출처 표기법  (2) 2007/04/02
블루슈머 6 --- 나는 어디에 속하나  (6) 2007/01/27
도박 문제.. 최고의 선택은?  (2) 2006/09/27
에러 코드  (0) 2006/06/13
eth0 has different mac address than expected  (0) 2006/06/11

총명님 공부도 하고/기본이 되는 것 citiation, 출처표기법

  1. 오랜만의 포스팅이군.. ㅎㅎㅎ
    근데... 너무 심오한 이야기야.. ㅋㅋㅋ

  2. 돌아다니다 출처표기에 관한 야그들이 있어서
    함 찾아봤슴돠... APA나 Harvard 가 유명한듯하네요

블루슈머 6 --- 나는 어디에 속하나

2007/01/27 11:57
[ 블루슈머 ]
경쟁자가 없는 시장을 의미하는 블루오션(Blue Ocean)소비자(Consumer)의 합성어로 블루오션의 새로운 소비자

통계청(청장 김대유)이 최근 2~3년 사이 발표된 대한민국의 주요 사회 및 인구통계를 분석해 2007년 마케터들이 주목해야 할 6개의 소비자 그룹, 즉 ‘한국의 블루슈머 6'를 선정23일 발표


사용자 삽입 이미지


나는...이동족, 20대 아침사양족, 피곤한 직장인, 살찐 한국인... 으로..

블루슈머 4가지를 만족한다.. ㅎㅎ (아직 학생이므로.. 피곤한 학생^^)

나에게 가치있는 상품으로는.. PMP, 아침식사 대용 모닝세트, 요가, 무지방 우유.. 등..

소비할 것들이 많네요..

'공부도 하고 > 기본이 되는 것' 카테고리의 다른 글

코스피 지수 ??  (2) 2008/10/28
참고문헌, 출처 표기법  (2) 2007/04/02
블루슈머 6 --- 나는 어디에 속하나  (6) 2007/01/27
도박 문제.. 최고의 선택은?  (2) 2006/09/27
에러 코드  (0) 2006/06/13
eth0 has different mac address than expected  (0) 2006/06/11

총명님 공부도 하고/기본이 되는 것 블루슈머

  1. 엇그제 블루슈머 이야기 햇다고.. 그사이 찾아 본겨? ㅋㅋ

  2. 찾아본건 아니고.. 블로그들 보다보니 있길래..ㅎ

  3. 난 호신용충격기정도..호신술을 배우고 싶기도..

  4. 무서워하는 여성.. 오홋..
    호신술 배우면.. 내가 위험해 지겠군.. 조심조심;;;

  5. 난 해당되는게 하나도 없네..ㅡㅡ;

  6. 이런 상품가치 없는 자식 같으니...ㅋ

도박 문제.. 최고의 선택은?

2006/09/27 16:00
You are asked to play a game in which I hide a prize in one of three boxes (with equal probability for all three boxes) while you are out of the room. When you return, you have to guess which box hides the prize. Three are two stages to the game. First. you indicate one of the three boxes as your choice. As soon as you do that, I open the lid of one of the other two boxes and I will always open an empty box. I can do this because I know where the prize is hidden. At this point the prize must be in the box that you have chosen or to switch to the other unopened box. You win the prize if your final selection is the box containing the prize. What is your best strategy? Should you (a) stay with your original choice, (b) switch to the other box, or (c) do either because it does not matter ?

야바위 문제다. 컵에 동전을 넣고 마구 섞는다. (섞은 사람은 어디있는지 알고 있다)
손님이 배팅한다... 그러면 꾼이 선택되지 않은거에서 빈 컵을 뒤집는다.
그러면 손님이 찍은거하고, 남아있는컵, 뒤집힌 컵이 있다.
이상태에서 최선의 선택은?
(a) 처음 선택한것을 그대로 유지한다.
(b) 무조건 안열린 다른 컵을 선택한다.
(c) 바꾸던 말던 상관없다.

해답

시뮬레이션소스



 

총명님 공부도 하고/기본이 되는 것 도박, 시뮬레이션, 확률

  1. 뭐래니..저거이,,으~~ 잠도 덜깼는데 완전 몽롱,,ㅋ

    해피 추석~~~총명~~!^-^

  2. ㅎㅎㅎ 간단한 퀴즈 문제구만 멀 ^^
    해피 추석 하숑~

에러 코드

2006/06/13 01:14
 #define EPERM 1 /* Not super-user */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such process */
#define EINTR 4 /* Interrupted system call */
#define EIO 5 /* I/O error */
#define ENXIO 6 /* No such device or address */
#define E2BIG 7 /* Arg list too long */
#define ENOEXEC 8 /* Exec format error */
#define EBADF 9 /* Bad file number */
#define ECHILD 10 /* No children */
#define EAGAIN 11 /* No more processes */
#define ENOMEM 12 /* Not enough core */
#define EACCES 13 /* Permission denied */
#define EFAULT 14 /* Bad address */
#define ENOTBLK 15 /* Block device required */
#define EBUSY 16 /* Mount device busy */
#define EEXIST 17 /* File exists */
#define EXDEV 18 /* Cross-device link */
#define ENODEV 19 /* No such device */
#define ENOTDIR 20 /* Not a directory */
#define EISDIR 21 /* Is a directory */
#define EINVAL 22 /* Invalid argument */
#define ENFILE 23 /* Too many open files in system */
#define EMFILE 24 /* Too many open files */
#define ENOTTY 25 /* Not a typewriter */
#define ETXTBSY 26 /* Text file busy */
#define EFBIG 27 /* File too large */
#define ENOSPC 28 /* No space left on device */
#define ESPIPE 29 /* Illegal seek */
#define EROFS 30 /* Read only file system */
#define EMLINK 31 /* Too many links */
#define EPIPE 32 /* Broken pipe */
#define EDOM 33 /* Math arg out of domain of func */
#define ERANGE 34 /* Math result not representable */
#define ENOMSG 35 /* No message of desired type */
#define EIDRM 36 /* Identifier removed */
#define ECHRNG 37 /* Channel number out of range */
#define EL2NSYNC 38 /* Level 2 not synchronized */
#define EL3HLT 39 /* Level 3 halted */
#define EL3RST 40 /* Level 3 reset */
#define ELNRNG 41 /* Link number out of range */
#define EUNATCH 42 /* Protocol driver not attached */
#define ENOCSI 43 /* No CSI structure available */
#define EL2HLT 44 /* Level 2 halted */
#define EDEADLK 45 /* Deadlock condition */
#define ENOLCK 46 /* No record locks available */
#define EBADE 50 /* Invalid exchange */
#define EBADR 51 /* Invalid request descriptor */
#define EXFULL 52 /* Exchange full */
#define ENOANO 53 /* No anode */
#define EBADRQC 54 /* Invalid request code */
#define EBADSLT 55 /* Invalid slot */
#define EDEADLOCK 56 /* File locking deadlock error */
#define EBFONT 57 /* Bad font file fmt */
#define ENOSTR 60 /* Device not a stream */
#define ENODATA 61 /* No data (for no delay io) */
#define ETIME 62 /* Timer expired */
#define ENOSR 63 /* Out of streams resources */
#define ENONET 64 /* Machine is not on the network */
#define ENOPKG 65 /* Package not installed */
#define EREMOTE 66 /* The object is remote */
#define ENOLINK 67 /* The link has been severed */
#define EADV 68 /* Advertise error */
#define ESRMNT 69 /* Srmount error */
#define ECOMM 70 /* Communication error on send */
#define EPROTO 71 /* Protocol error */
#define EMULTIHOP 74 /* Multihop attempted */
#define ELBIN 75 /* Inode is remote (not really error) */
#define EDOTDOT 76 /* Cross mount point (not really error) */
#define EBADMSG 77 /* Trying to read unreadable message */
#define ENOTUNIQ 80 /* Given log. name not unique */
#define EBADFD 81 /* f.d. invalid for this operation */
#define EREMCHG 82 /* Remote address changed */
#define ELIBACC 83 /* Can't access a needed shared lib */
#define ELIBBAD 84 /* Accessing a corrupted shared lib */
#define ELIBSCN 85 /* .lib section in a.out corrupted */
#define ELIBMAX 86 /* Attempting to link in too many libs */
#define ELIBEXEC 87 /* Attempting to exec a shared library */
#define ENOSYS 88 /* Function not implemented */
#define ENMFILE 89 /* No more files */
#define ENOTEMPTY 90 /* Directory not empty */
#define ENAMETOOLONG 91 /* File or path name too long */
#define ELOOP 92 /* Too many symbolic links */
#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
#define EPFNOSUPPORT 96 /* Protocol family not supported */
#define ECONNRESET 104 /* Connection reset by peer */
#define ENOBUFS 105 /* No buffer space available */
#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */
#define EPROTOTYPE 107 /* Protocol wrong type for socket */
#define ENOTSOCK 108 /* Socket operation on non-socket */
#define ENOPROTOOPT 109 /* Protocol not available */
#define ESHUTDOWN 110 /* Can't send after socket shutdown */
#define ECONNREFUSED 111 /* Connection refused */
#define EADDRINUSE 112 /* Address already in use */
#define ECONNABORTED 113 /* Connection aborted */
#define ENETUNREACH 114 /* Network is unreachable */
#define ENETDOWN 115 /* Network interface is not configured */
#define ETIMEDOUT 116 /* Connection timed out */
#define EHOSTDOWN 117 /* Host is down */
#define EHOSTUNREACH 118 /* Host is unreachable */
#define EINPROGRESS 119 /* Connection already in progress */
#define EALREADY 120 /* Socket already connected */
#define EDESTADDRREQ 121 /* Destination address required */
#define EMSGSIZE 122 /* Message too long */
#define EPROTONOSUPPORT 123 /* Unknown protocol */
#define ESOCKTNOSUPPORT 124 /* Socket type not supported */
#define EADDRNOTAVAIL 125 /* Address not available */
#define ENETRESET 126
#define EISCONN 127 /* Socket is already connected */
#define ENOTCONN 128 /* Socket is not connected */
#define ETOOMANYREFS 129
#define EPROCLIM 130
#define EUSERS 131
#define EDQUOT 132
#define ESTALE 133
#define ENOTSUP 134 /* Not supported */
#define ENOMEDIUM 135 /* No medium (in tape drive) */
#define ENOSHARE 136 /* No such host or network path */
#define ECASECLASH 137 /* Filename exists with different case */

다양한 에러 코드가 있다...
살아가면서 발생하는 문제들을.. 이 코드들로 표현할 수 있을까.. 훗

총명님 공부도 하고/기본이 되는 것 에러코드

eth0 has different mac address than expected

2006/06/11 17:32

리눅스에서 부팅시
eth0 has different mac address than expected
이런 에러 메시지를 내고 네트워크가 활성화 되지 않을 경우 해결법..

루트로 로그인 후
/etc/sysconfig/network-scripts/ifcfg-eth0
이 파일을 열어서
HWADDR= (또는 MACADDR=)
의 뒷 부분에 적혀진 MAC 주소를 지워주고 네트워크를 다시 시작하면 된다.
%> /etc/init.d/network restart
또는
%> service network restart

총명님 공부도 하고/기본이 되는 것 네트워크, 리눅스, 오류

잘못된 영어 표현 (in Commercial)

2006/05/08 20:28

※ Have a good time. 
Just say "Have fun". Nobody says "Have a good time" in America.

but the followings are  ok~

Have a nice day.
Have a nice evening.
Have a good night.
Have a good day.


※ Are you gentle? 
You can say "Are you a gentleman?"

※ Bonus
E.T = Extra Terrestrial

총명님 공부도 하고/기본이 되는 것 Are you gentle?, Have a good time, 영어

Terminology Definition

2006/04/26 23:36
  • Operation System
    Supervising program that manages the resources of a computer for the benefint of the programs that run on that machine

  • Compiler
    A program that translates high-level language statements into assembly language statements

  • Assembler
    A program that translates a symbolic version of instructions into the binary version

  • Assembly language
    A symbolic representation of machine instructions

  • High-level programming language
    A portable language such as C, Fortran, or Java composed of words and algebraic notation that can be translated by a compiler into assembly language

  • Binary digit
    Also called a bit. One of the two numbers in base 2(0 or 1) that are the components of information

  • Instruction Set
    The vocabulary of commands understood by a given architecture

  • Stored-program concept
    The idea that instructions and data of many types can be stored in memory as numbers, leading to the stored program computer

  • Response time (Execution time)
    The total time required for the computer to complete a task, including disk accesses, memory accesses, I/O activities, operating system overhead, CPU execution time, and so on

  • CPU execution time (CPU time)
    The actual time the CPU spends computing for a specific task.

  • User CPU time
    The CPU time spent in a program itself

  • System CPU time
    The CPU time spent in the operating system performing tasks on behalf of the program

  • Clock cycle (tick/clock tick/clock period/clock/cycle)
    The time for one clock period, usually of the processor clock, which runs at a contant rate

  • Workload
    A set of programs run on a computer that is either the actual collection of applications run by a user or is constructed from real programs to approximate such a mix, A typical workload specifies both the programs as well as the relative frequencies

  • SPEC benchmark (System Performance Evaluation Cooperative)
    A set of standard CPU-intensive, integer and floating point benchmarks based on real programs

  • MIPS (Million Instructions Per Second)
    A measurement of program execution speed based on the number of millions of instructions. MIPS is computed as the instruction count divided by the product of the execution time and 10^6

  • Clocking methodology
    The approach used to determine when data is valid and stable relative to the clock

  • Edge-triggered clocking
    A clocking scheme in which all state changes occur on a clock edge

  • Sign-extend
    To increase the size of a data item by replicating the high-order sign bit of the orginal data item in the high-order bits of the larger, destination data item

  • Exeception (interrupt)
    An unscheduled event that disrupts program execution; used to detect overflow

  • Interrupt
    An exeception that comes from outside of the processor
    (Some architectures use the term interrupt for all execeptions)

  • Microprogrammed control
    A method of specifying control that uses microcode rather than a finite state representations

  • Hardwired control
    An implementation of finite state machine control typically using programmable logic arrays(PLAs) or collections of PLAs and random logic

  • Pipelining
    An implementation technique in which multiple instructions are overlapped in execution, much like to an assembly line

  • Hazard
    The next instruction cannot execute in the following clock cycle

  • Structural hazard
    An occurence in which a planned instruction cannot execute in the proper clock cycle because the hardware cannot support the combination of instructions that are set to execute in the given clock cycle

  • Data hazard (Pipeline data hazard)
    An occurrence in which a planned instruction cannot execute in the proper clock cycle because data that is needed to execute the instruction is not yet available

  • Forwarding (Bypassing)
    A method of resolving a data hazard by retrieving the missing data element from internal buffers rather than waiting for it to arrive from programmer-visible registers or memory

  • Load-use data hazard
    A specific form of data hazard in which the data requested by a load insturction ahs not yet become available when it is requested

  • Pipeline stall (Bubble)
    A stall initiated in order to resolve a hazard

  • Control hazard (Branch hazard)
    An occurence in which the proper instruction cannot execute in the proper clock cycle because the insturction that was fetched is not the one that is needed; that is, the flow of instruction addresses is not what the pipeline expected

  • Branch prediction
    A method of resolving a branch hazard that assumes a given outcome for the branch and proceeds from that assumption rather than waiting to ascertain the actual outcome

  • Instruction-level parallelism
    The parallelism among instructions

  • Multiple issue
    A scheme whereby multiple insturctions are lanched in 1 clock cycle

총명님 공부도 하고/기본이 되는 것 Terminology

리눅스에 하드 디스크 추가 장착

2006/03/23 16:45
XP와 달리 리눅스는 모든것이 자동으로 되지 않는다...
하드 디스크를 추가하는 것 또한 마찬가지
그러면 어떻게 하면 될까?

디스크 추가를 위해서 우선 현재 시스템의 상태를 확인해 봐야 한다..
어떤 명령이 있을까?
mount : 현재 마운트 되어 있는 파일 시스템을 보여준다
df : 디스크의 사용량을 보여준다 (-h 옵션 주면 Human이 보기좋게 MB, GB 단위로 보여준다)

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 9.2G 3.9G 4.9G 45% /
/dev/hda2 99M 13M 82M 13% /boot
none 125M 0 125M 0% /dev/shm
/dev/hdb 245M 245M 0 100% /media/cdrecorder

$ mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda2 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/hdb on /media/cdrecorder type iso9660 (ro,nosuid,nodev)

다음으로 컴퓨터를 끄고 하드디스크를 장착한후 부팅..
부팅이 완료된후 dmesg 명령을 통해 디스크가 어떤 장치에 연결 되었는가를 확인한다.
또는 /var/log/dmesg 파일을 열어서 확인하면 된다.

$ vi /var/log/dmesg
...
hda: max request size: 128KiB
hda: 20971520 sectors (10737 MB) w/32KiB Cache, CHS=20805/16/63, UDMA(33)
hda: cache flushes not supported
hda: hda1 hda2
hdb: max request size: 128KiB
hdb: 2097152 sectors (1073 MB) w/32KiB Cache, CHS=2080/16/63, UDMA(33)
hdb: cache flushes not supported
hdb: unknown partition table
...

새로운 디스크가 hdb 장치에 연결 되었음을 확인하고..
다음으로 할일은...
파티션을 생성하고 파일 시스템을 만들고 마운트 하면 된다...
파티션 생성은 fdisk 명령을 통해서
파일시스템은 mkfs.ext 또는 mkfs.ext2 또는 mkfs.ext3 로 하면되는데
나는 ext3 를 사용한다.

$ fdisk /dev/hdb     (/dev/hdb : 새로 추가된 디스크 장치)
m : 도움말 보기
n : 새로운 파티션 만들기


$ mkfs.ext3 /dev/hdb  
전체 디스크가 하나의 파티션이라고 경고뜨는데 그대로 실행..
파티션을 나눠서 했을경우 틀리게 나올꺼다..

이제 마운트만 하면 된다...
마운트를 하기 위해 마운트할 디렉토리를 만든다

$ mkdir /data

그리고 이 디렉토리에 마운트 한다

$ mount  -t   ext3   /dev/hdb    /data

이렇게만 해놓으면 부팅할때마다 마운트를 해줘야 한다..
부팅시 자동으로 마운트 하게 하려면..
/etc/fstab  을 수정하면 된다

이로써 하드 디스크 추가 완료~!

총명님 공부도 하고/기본이 되는 것 리눅스

  1. 와~짝짝짝

  2. 와우 멋지삼~
    형 요즘 한가?? 하신듯.. ㅋㅋㅋ~~~

  3. 바쁠수록 뻘짓의 기쁨이 크다... ㅡ,.ㅡ;;;

Ajax : 웹 어플리케이션의 새로운 접근

2006/02/28 12:46
 

현재 인터랙션 디자인 중 가장 매력적인 것은 웹 어플리케이션을 만드는 것이다. 어쨌든, 웹 말고 다른 곳에서 상호 작용하는 디자인을 본 적이 언제적 인지 모를 정도가 아닌가? (좋다 iPod는 제외해 주자) 무엇보다 놀라운, 혁신적인 새 프로젝트들이 진행 중이며 이를 소개한다.

이처럼 매력적임에도 웹 인터랙션 디자이너들은 데스크톱 소프트웨어를 만드는 우리의 동료들을 좀 부러워 할 수밖에 없다. 데스크톱 어플리케이션은 웹이 도저히 할 수 없을 것만 같은 풍부함과 응답성을 지니고 있기 때문이다. 웹의 빠른 확산을 가능하게 했던 예의 단순함은, 사용자들이 데스크톱 어플리케이션들로부터 얻었던 경험들을 웹으로 충족시켜 줄 수가 없었다.

그런 차이는 줄어들고 있다. Google Suggest를 보자.


< Google Suggest >

글자를 칠 때, 제안되는 단어들이 변경되는 순간을 유심히 살펴보자. 거의 즉시 이루어진다. Google Maps의 경우에도 줌 인을 하거나 지도를 여기저기로 이동시켜 보아도 거의 즉시 모든 것이 이루어진다. 기다리라는 페이지를 보여주거나 페이지 전체가 리로드되는 일은 없다.


< Google Maps - 진주만^^ >

Google Suggest Google Maps Ajax라고 불리는 것이 적용된, 웹 어플리케이션의 새로운 접근방식의 실 예다. Ajax Asynchronous Javascript + XML의 줄임 말이며 웹이 할 수 있는 가능성의 근본적인 변화를 말해주고 있다.
Ajax 정의하기
Ajax는 특정한 하나의 기술이 아니다. 몇 가지 각 영역에서 활약하던 기술들로 이루어져있으며, 강력한 새로운 방법들로 뭉쳤다. Ajax는 다음의 것들을 통합한다.
* XML CSS를 이용한 표준에 기반 프레젠테이션
* DOM(Document Object Model)을 이용한 동적인 디스플레이와 상호작용
* XML XSLT를 이용한 데이터 교체와 조작
* XMLHttpRequest를 이용한 비동기식 데이터 검색
* 모든것을 함께 묶어주는 Javascript
전통적인 웹 어플리케이션 모델은 이렇게 작동한다.: 대부분의 사용자의 인터페이스에서의 액션은 웹 서버로의 HTTP Request를 유발한다. 서버는 데이터 검색, 수 처리, 여러 레거시 시스템들과의 소통 같은 몇 가지 프로세스를 하게 되고, 클라이언트에게 HTML페이지를 돌려준다. 이는 하이퍼텍스트를 매개체로 한 웹의 기본적인 사용법을 채용한 모델이다. 그러나 하이퍼텍스트는 소프트웨어 어플리케이션을 충분히 만족시키기엔 부족했다.

< 전통적인 웹 어플리케이션 모델과 Ajax 모델과의 비교 >

이런 접근법은 많은 기술적인 감각을 만들어냈지만 사용자에게 만족할만한 결과를 주지는 못했다. 서버가 할 일을 하는 동안 유저는 무엇을 하는가? 그렇다. 기다려야만 한다. 그리고 작업의 모든 스텝마다 사용자는 기다린다.

당연하게도, 어플리케이션들을 모두 긁어 모으는 식으로 웹을 디자인한다면 유저들을 기다리게 만들지 않을 수 있었을 것이다. 인터페이스가 한번 로드 되고 나면, 왜 사용자는 어플리케이션이 서버에게 무언가를 필요로 하는 모든 시간마다 기다려야 하는가? 진짜, 도대체 사용자들은 왜 어플리케이션이 서버로 가는 것을 보아야 하는가?

Ajax는 어떻게 다른가

Ajax 어플리케이션은 사용자와 서버 사이의 중개자- Ajax 엔진 를 소개함으로써 웹에서의 소통의 본성인 가다 서는 반복행위를 제거한다. 응답을 더 낮춰주는 어플리케이션을 한층 더 두는 것 같으나 그 반대가 맞다.

세션이 시작될 때 웹 페이지를 로딩하는 것 대신, 브라우저는 Ajax엔진(Javascript로 코딩되고 항상 숨겨진 프레임 안에 집어넣어진)을 로드 한다. 이 엔진은 사용자가 접하는 인터페이스를 구성하는것과 유저를 위해 서버와 통신하는 것 모두를 책임진다. Ajax엔진은, 사용자가 서버와의 통신에 의존하지 않는, 비동기식으로 이루어지는 어플리케이션과 의사소통 할 수 있도록 한다. 그래서 사용자는 결코 빈 페이지나 모래시계 아이콘 같은 것들을 볼 수 없게 되고 서버가 무언가를 하는 동안 초조하게 기다리지 않아도 된다.


< 전통적인 웹 어플리케이션의 동기식 인터랙션 패턴(위)과 Ajax 어플리케이션의 비동기식 패턴과의 비교 >

일반적으로 HTTP request 만들어내곤 하는 모든 사용자의 액션은 대신 Ajax엔진을 호출하는 자바스크립트의 형태를 한다. 서버로 되돌아갈 것을 요구하지 않는 사용자의 액션에 대한 어떤 응답- 간단한 데이터 검증, 메모리에서의 데이터 수정, 네비게이션 같은 것들 까지도 - 엔진은 직접 다룬다. 엔진이 응답을 위해 서버로부터 무언가를 필요로 한다면- 프로세싱과 추가적인 인터페이스를 로딩하기 위해 혹은 새로운 데이터를 검색해오기 위해 데이터를 송신한다면 - 엔진은 비동기적이면서 XML 항상 사용하고, 사용자의 어플리케이션과의 인터랙션을 멈추지 않도록 해주는 그런 리퀘스트들을 만들어낸다.

누가 Ajax 사용하는가

Google Ajax 다가가기 위한 개발에 엄청난 투자를 하고 있다. Google 작년 이전에 소개해 모든 주된 품목들- Orkut, Gmail, Google Groups 최신 베타 버전, Google Suggest, Google Maps – Ajax 어플리케이션이다. ( Ajax 구현에 관한 많은 기술적인 너트와 볼트들을 얻고 싶다면 다음의 대단히 잘된 분석들- Gmail(http://johnvey.com/features/gmailapi/), Google Suggest (http://serversideguy.blogspot.com/2004/12/google-suggest-dissected.html), Google Maps (http://jgwebber.blogspot.com/2005/02/mapping-google.html)) - 보시라. 다른 것들도 선례를 따르고 있다. : Ajax 의존하고 있는 Flickr(http://www.flickr.com/) 사람들이 빠져버린 수많은 특징이라든지, 유사한 기술을 적용한 Amazon A9.com 검색 엔진 .

프로젝트들은 Ajax 기술적인 장점뿐만 아니라 세계의 어플리케이션들에도 유용하다는 것을 보여주고 있다. 이것은 연구실에서만 이루어지는 별개의 기술이 아니다. 그리고 Ajax 어플리케이션들은 정말 단순한 Google Suggest에서부터 복잡하고 정교한 Google Maps 이르기 까지 어떤 크기로도 있다.

Adaptive Path에서, 지난 동안 우리의 일을 Ajax 해오면서 Ajax 어플리케이션이 제공할 있는 풍부한 인터랙션과 응답성의 겨우 표면만을 긁어봤다는 것을 깨닫고 있는 중이다. Ajax 어플리케이션을 위한 중요한 발전이고 중요성은 성장해가고 있다. 그리고 기술을 어떻게 사용하는 아는 개발자들이 이미 매우 많기 때문에, Google 선도를 따르는 조직들이 더욱 많이 있기를 기대한다.

앞으로 나아가기

Ajax어플리케이션을 만드는데 있어서 가장 도전은 기술적인 것이 아니다. 이미 코어 Ajax 기술들은 성숙되어있고 안정되었으며 이해하기 쉽다. 그보다, 도전은 이러한 어플리케이션들의 디자이너들을 위한 것이다. 웹의 제한성 대한 우리가 생각하고 아는 것을 잊어버리도록 해주고, 넓게 상상할 있도록 하고 가능성의 범위를 풍부하게 하는 .

Link Site
http://cafe.naver.com/javalove.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1588
http://www.adaptivepath.com/publications/essays/archives/000385.php

'공부도 하고 > 기본이 되는 것' 카테고리의 다른 글

Terminology Definition  (0) 2006/04/26
리눅스에 하드 디스크 추가 장착  (3) 2006/03/23
Ajax : 웹 어플리케이션의 새로운 접근  (2) 2006/02/28
머큐리(Mercury) 메일 서버 관련 팁  (1) 2006/02/21
OpenGL 시작하기  (0) 2005/10/06
MFC Tip  (0) 2005/09/02

총명님 공부도 하고/기본이 되는 것 ajax, 웹프로그래밍

  1. Blog Icon

    비밀댓글 입니다

  2. 퍼갑니다^^