2009년 9월 15일 화요일

Mac에서 ogg -> mp3 로 변환

Mac OS X 에서 작성한 스크립트이지만, 리눅스에서도 작동할 것이라고 믿습니다. bash 쉘을 사용했고 vorbis-tools 와 lame 은 오픈소스 프로젝트이므로-_-a

먼저, vorbis-toolslame 을 설치합니다.

sudo port install vorbis-tools lame 

ogg 파일을 wav 로 변환한 다음 변환된 wav 파일을 다시 mp3 형식으로 변환하는 방식입니다.

oggdec test.ogg lame -h --vbr-new test.ogg 

고정 bitrate 를 사용하고 싶으면 -b 옵션을 사용하면 됩니다. 자세한건 lame --help 를 참조하십시오. 한꺼번에 여러 파일을 처리하기 위해 간단한 쉘 스크립트를 만들어줍니다.

#/bin/bash  for file in *.ogg; do
     oggdec $file
     file=$(basename $file .ogg)
     lame -h --vbr-new -V 2 "${file}.wav" "${file}.mp3"
     rm "${file}.wav"
 done 

가변 bitrate 의 품질을 지정하기 위해 -V 2 옵션을 사용합니다. 0이 가장 높은 품질, 9가 가장 낮은 품질입니다.

ubuntu에서 sar를 사용하기.

Ubuntu에서 기본적으로 SAR를 제공하지 않는다.
그래서 설정하는 방법을 정리 해보았다.
먼저 설치를 해야 하는데.
$sudo apt-get install sysstat
이렇게 하면 한참 시간이 걸리면서 설치가 완료가 된다.

이제 설정 부분이다.
변경을 해야하는 파일은 /etc/init.d/sysstat, /etc/cron.d/sysstat, /etc/cron.daily/sysstat, /etc/default/sysstat 이다.
ENABLE="false" --> ENABLE="true"
라고 모두 변경한다.

$sudo /etc/init.d/sysstat start
이러면 서비스가 가동된다.

2009년 9월 2일 수요일

FreeBSD 공유라이브러리와 리눅스 호환

그 동안 정리가 되지 않았는데, 이제 다시 시작을 해보자구.

FreeBSD의 바이러리 형식은 aout, ELF가 존재함
aout : 이전 버전에서 사용하는 것으로 요즘에는 사용도가 낮아짐
-->/etc/rc.conf에서 ldconfig_paths_aout로 설정 가능
ELF : Executable and Linking Format
-->/etc/rc.conf에서 ld_config_paths
현재 사용하는 라이러리 목록을 알기 위해서는
sanjose# ldconfig -r
/var/run/ld-elf.so.hints:
search directories: /lib:/usr/lib:/usr/lib/compat:/usr/local/lib
0:-lc.7 => /lib/libc.so.7
1:-lcrypt.4 => /lib/libcrypt.so.4
2:-lkvm.4 => /lib/libkvm.so.4
3:-lm.5 => /lib/libm.so.5
4:-lmd.4 => /lib/libmd.so.4
5:-lncurses.7 => /lib/libncurses.so.7
6:-lncursesw.7 => /lib/libncursesw.so.7
...

내 프로그램이 필요한 라이브러리 확인 방법
sanjose# ldd /usr/local/bin/ltrace
/usr/local/bin/ltrace:
libelf.so.0 => /usr/local/lib/libelf.so.0 (0x2808b000)
libc.so.7 => /lib/libc.so.7 (0x2809f000)
libintl.so.8 => /usr/local/lib/libintl.so.8 (0x281a1000)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x281aa000)

다른 운영체제 응용프로그램 사용법
1) Recompiliation : 일반적인 방법 단 소스코드 필요함 --> port를 이용
2)Emulation : /usr/ports/emulators 아래의 것을 사용함, 오버헤드 발생함
3)ABI(Application Binary Interface) Implementation : 커널의 일부분으로 응용프로그램과의 통신을 담당, 프로그램 입장에서는 ABI는 운영체제라고 할 수 있음.

관련 명령어
sanjose# ldd /usr/local/bin/ltrace
/usr/local/bin/ltrace:
libelf.so.0 => /usr/local/lib/libelf.so.0 (0x2808b000)
libc.so.7 => /lib/libc.so.7 (0x2809f000)
libintl.so.8 => /usr/local/lib/libintl.so.8 (0x281a1000)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x281aa000)
<-- 필요한 라이브러리

sanjose# kldstat <- 현재 가동중인 커널 모듈
Id Refs Address Size Name
1 14 0xc0400000 6f7c94 kernel
2 1 0xc0af8000 85bc linprocfs.ko
3 3 0xc0b01000 287f0 linux.ko
4 1 0xc0b2a000 3074 linsysfs.ko
5 1 0xc0b2e000 6a45c acpi.ko

sanjose# brandelf /bin/sh <-어떤 O/S 공유라이브러리 사용하는지 확인
File '/bin/sh' is of brand 'FreeBSD' (9).

sanjose# brandelf /usr/compat/linux/bin/dd
File '/usr/compat/linux/bin/dd' is of brand 'Linux' (3).

2009년 8월 10일 월요일

I am not stupid!!!

항상 새로운 것을 배울려고 하면, 평균 이상의 이해력(영문이면 영어 해독)이 필요 할때 그 언덕 아니 산을 넘지 못하면 우리는 항상 "아! 이것은 나에게 맞지 않아, 너무 어려워... 아 난 바보인 가봐!"
하지만 잠시만 생각을 멈추고 생각 해보자. "아 난 그 어렵다는 물리학과를 졸업 했어, 그래 난 바노는 아니야!" 이런 생각을 하자. 참 그리고 새로운 것을 배우기 위해서 다음과 같은 방법은 어떻까?
1. 10시간 이상의 잠. : 충분한 휴식을 통한 새로운 것을 위한 뇌의 공간 만들기
2. 나 자신에 대한 생각을 하지 않기 : 모두에 말했던 것.

그래 나도 해보자구...

2009년 8월 3일 월요일

Bad Samaritans

얼마전에 국방부 금지 서적으로 세간에 유명해졌던 장하준 교수의 "니쁜 사마리아인들"이라는 책은 교보에서 구입하여 읽기 시작했다.
POSDATA에 다니면서 읽었던 렉서스와 올리브 나무라는 책에서 얻은 지식과 상반되는 내용이 적혀 있는 이 책을 읽으면서 역시 하나의 사건에는 여러가지 시각이 있고 그 시각들은 모두 같이 장,단점을 가지고 있다는 것을 다시 한번더 알게 해준 책이다.
다 읽으면 정리를 함 해보아야 겠다.

2009년 7월 31일 금요일

Kernel configuration in FreeBSD 7.2

Kernel은 모든 시스템에서 가장 중요한 구성 요소이다.

H/W와 S/W의 인터페이스로서 성능 튜닝시 가장 중요한 부분이다.

FreeBSD 7.2에서 커널을 투닝하는 방법에 대해서 정리를 해볼려고 한다.

참고로 사용한 컴퓨터의 사양은 Pentium4 2.4GHz, 1G memory이다.


먼저 지금 커널에 대해서 알기위해서 sysctl MIB정보를 수집했다.

sanjose# sysctl -A > sysctl.out <-- 수집하는 방법

sysctl MIB는 다음과 같은 하부 구조로 이루어져 있다.

kerm : 핵심 커널 기능

vm : 가상 메모리

vfs : 파일 시스템

net : 네트워크킹

그외...

sanjose# less sysctl.out

kern.ostype: FreeBSD

kern.osrelease: 7.2-RELEASE

kern.osrevision: 199506

kern.version: FreeBSD 7.2-RELEASE #0: Fri May 1 08:49:13 UTC 2009

root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC

...

kern.bootfile: /boot/kernel/kernel <- 이전에는 /kernel이라는 곳에서 존재함.

...

sanjose# sysctl kern <-커널 부분만...

kern.ostype: FreeBSD

kern.osrelease: 7.2-RELEASE

kern.osrevision: 199506

kern.version: FreeBSD 7.2-RELEASE #0: Fri May 1 08:49:13 UTC 2009

root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC


kern.maxvnodes: 69676

kern.maxproc: 6164

kern.maxfiles: 12328

...

sanjose# sysctl kern.securelevel <- 만약 정확한 MIB값을 알고 있다면 바로 사용을 하면 된다.

kern.securelevel: -1

sanjose# sysctl vfs.usermount

vfs.usermount: 0

sanjose# sysctl vfs.usermount=1

vfs.usermount: 0 -> 1

sanjose# vi /etc/sysctl.conf


# $FreeBSD: src/etc/sysctl.conf,v 1.8.32.1 2009/04/15 03:14:26 kensmith Exp $

#

# This file is read when going to multi-user and its contents piped thru

# ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details.

#


# Uncomment this to prevent users from seeing information about processes that

# are being run under another UID.

#security.bsd.see_other_uids=0

vfs.usermount=1

~

~

/etc/sysctl.conf: 11 lines, 394 characters.


sanjose# cat /boot/loader.conf <- 최고 우선순위를 가짐.

sanjose# cat /boot/defaults/loader.conf <-- default 기본

sanjose# vi /boot/loader.conf <- 리눅스 부분 수정.


# Linux procfs,sysfs support

linprocfs_load="YES"

linsysfs_load="YES"

/boot/loader.conf: 6 lines, 106 characters.


sanjose# kldstat <- kernel이 올라온 상태 확인

Id Refs Address Size Name

1 7 0xc0400000 9fab28 kernel

2 1 0xc0dfb000 6a45c acpi.ko

3 1 0xc4470000 22000 linux.ko

sanjose# kldstat -v <- 세부적으로 보기

Id Refs Address Size Name

1 7 0xc0400000 9fab28 kernel

Contains modules:

Id Name

335 shmat

334 shmctl

333 shmdt

...

2 1 0xc0dfb000 6a45c acpi.ko

Contains modules:

Id Name

19 cpu/acpi_throttle

18 acpi/acpi_smbat

17 cpu/acpi_perf

3 1 0xc4470000 22000 linux.ko

Contains modules:

Id Name

443 linuxaout

442 linuxelf

sanjose# kldload /boot/kernel/warp_saver.ko

sanjose# kldstat

Id Refs Address Size Name

1 9 0xc0400000 9fab28 kernel

2 1 0xc0dfb000 6a45c acpi.ko

3 1 0xc4470000 22000 linux.ko

4 1 0xc76be000 2000 warp_saver.ko

지금까지 커널의 상태 및 부분적인 튜닝을 하였다. 하지만 완벽한 튜닝, 자신만의 커널을 가지기 위해서는 아래와 같은 작업을 통해서 자신만의 커널을 만들어야 한다.

sanjose# cd /sys <-- kernel source가 시스템에 있는지 확인.

sanjose# ls

Makefile cddl dev i4b net netipsec nfs4client pccard sun4v

amd64 compat fs ia64 net80211 netipx nfsclient pci sys

arm conf gdb isa netatalk netnatm nfsserver powerpc tools

boot contrib geom kern netgraph netncp nlm rpc ufs

bsm crypto gnu libkern netinet netsmb opencrypto security vm

cam ddb i386 modules netinet6 nfs pc98 sparc64 xdr


sanjose# cp GENERIC FILESERVERr <-기존 커널 설정 파일을 이용하여 사용함.

sanjose# vi FIRESERVER

sanjose# config ./FILESERVER <-- 수정한 파일의 에러 체크

Kernel build directory is ../compile/./FILESERVER

Don't forget to do ``make cleandepend && make depend''

sanjose# cd ../compile/FILESERVER/

sanjose# make depend && make all install


이렇게 하고 리부팅을 하면 된다.


제발 한번만에 되기를....


2009년 7월 30일 목요일

Virtual I/O Xsigo

요즘의 IT의 화두는 Cloud Computing이다.
다양한 구성요소가 필요한 Cloud Computing에서 가장 중요한 것은 바로 가상화 기술이 아닐까?

서버 가상화로 대표되는 가상화 세상에서 Data의 통로 즉 I/O에 대한 가상화를 Appliance로 지원하는 최초의 솔루션인 Xsigo에 대한 내용에 대한 비디오 자료입니다.
한번 보세요.

Makeup & Restore in FreeBSD

리눅스 클러스터를 하면서 백업과 복구에 대해서 그렇게 신경을 쓰지 않았지만 이제 FreeBSD 서버를 구축을 하면서 신경을 쓰기로 했다.
오늘한 일들은 기본적인 시스템 백업, Revision Control이다.
1. Backup
1) Tar : tape archiver 의 약자, 파일,디렉토리 단위로 백업 및 복구
=> 대부분의 O/S에서 사용 가능, 이기종간 데이터 교류 가능.
-option
-c : 새로운 파일을 압축할때 사용
-v : 상세 정보 표시
-t : 백업 파일 내의 모든 파일을 열기
-x : 백업 파일로 부터 파일을 추출
-y : bzip을 이용한 압축시 ( 효율 최고, CPU 부하)
-z : gunzip를 이용한 압축시 (효율 중간)
-Z : compress를 이용항 압축시 (효율 최저)
-f : backup할 위치 선정
ex) tar -cvf home.tgz /home
tar -xvf home.tgz /mnt/
2)Dump & Restore : filesystem, partition 별로 백업 및 복구
- Option
-f : backup 할 위치 선정
-a : 테이프의 공간 확인, 파일로 백업시에는 꼭 사용...
ex)dump -a -f sanjose_home /home
newfs /dev/ad1s1g
mount /dev/ad1s1g /mnt
cd /mnt
restore -rf /root/sanjose_home

2. Revision Control
기본적인 리비전 관리 툴인 RCS를 사용하기로 했다.
<= 마치 책을 대여하기 위해서 도서관을 사용하는 것과 동일, 여기서 파일은 책, RCS는 도서관 사서.
- Command
ci : check-in <= 책을 반남 즉 데이터 수정후 파일 반납
co : check-out <= 책을 대여, 즉 파일에 대한 수정 권한 획득
rlog : file에 변경 이력을 보여줌
rcsdiff : 버전별 차이점 보여줌
Ex)
sanjose# ci /root/test.txt <- RCS로 관리할 파일 선정
/root/test.txt,v <-- /root/test.txt
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> This file is for the RCS test
>> .
initial revision: 1.1
done
sanjose# co -l test.txt <- 파일 수정을 하기 위해서 파일 대여
test.txt,v --> test.txt
revision 1.1 (locked)
done
sanjose# vi test.txt <- 파일 수정
anjose# ci -u test.txt <- 파일 수정 후 파일 반납.
test.txt,v <-- test.txt
new revision: 1.2; previous revision: 1.1
enter log message, terminated with single '.' or end of file:
>> add my hope
>> .
done
sanjose# cat test.txt
1. My hope
HPC, Virtualization
Making my sweet home
sanjose# co -r1.1 test.txt <- 이전 버전으로 변경
test.txt,v --> test.txt
revision 1.1
done
sanjose# cat test.txt
1. My hope
HPC, Virtualization
sanjose# rlog test.txt <- log 변경 이력

RCS file: test.txt,v
Working file: test.txt
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
This file is for the RCS test
----------------------------
revision 1.2
date: 2009/07/30 03:13:16; author: root; state: Exp; lines: +1 -0
add my hope
----------------------------
revision 1.1
date: 2009/07/30 03:10:45; author: root; state: Exp;
Initial revision
----------------------------
=============================================================================
sanjose# rcsdiff -r1.1 -r1.2 test.txt <- version 별 변경 내용
===================================================================
RCS file: test.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -r1.1 -r1.2
2a3
> Making my sweet home

FreeBSD 7.2 Server install

사무실을 이사하고 다시 시스템 구축을 시작했다.
먼저 FreeBSD 서버 구축을 시작했던 용도는 일단 테스트 서버이고 오늘 upgrade,samba 관련 설정을 하였다.

Post-Install

1) ports upgrade

cd /usr/ports/net/cvsup

make install

cp /usr/share/examples/cvsup/ports-supfile /root/.

vi ports-supfile

<= CHANGE_ 부분을 가까운 서버로 변경 : cvsup.kr.FreeBSD.org

cvsup -g -L 2 /root/ports-supfile

2) lsof,ltrace, strace 설치

cd /usr/ports/sysutils/lsof ; make install

cd /usr/ports/sysutils/ltrace ; make install

cd /usr/ports/devel/strace ; make install

4)/proc mount

vi /etc/fstab

# Device Mountpoint FStype Options Dump Pass#

/dev/ad0s1b none swap sw 0 0

/dev/ad0s1a / ufs rw 1 1

/dev/ad0s1e /home ufs rw 2 2

/dev/ad0s1f /usr ufs rw 2 2

/dev/ad0s1d /var ufs rw 2 2

/dev/acd0 /cdrom cd9660 ro,noauto 0 0

proc /proc procfs rw 0 0


3) samba 설정

cd /usr/ports/net/samba3/

make install

cp -p /usr/ports/net/samba3/work/samba-3.0.35/examples/smb.conf.default /usr/local/etc/smb.conf

vi /usr/local/etc/smb.conf

workgroup = MYGROUP

=> workgroup = SPKOREA

log file = /usr/local/samba/var/log.%m

=>log file = /usr/local/samba/var/log-%m.log

comment = Home Directories

=> comment = Home Directories for %u on %h

path=/home/%u/Docs

valid users = %S

;[public]

< ; comment = Public Stuff

< ; path = /home/samba

< ; public = yes

< ; writable = yes

< ; printable = no

< ; write list = @staff

---

> [public]

> comment = %h Shared Public Directory

> path = /home/samba/public

> force directory mode = 0777

> force create mode = 0777

> force group = nobody

> force user = nobody

> public = yes

> writable = yes

> printable = no

> write list = @staff

Samba user 생성

smbpasswd -a hiboss1

vi /etc/rc.conf

samba_enable="YES"

reboot


일단 다시 또 확인 해보자.

2009년 6월 4일 목요일

Stop & Think 2

오늘도 이시형 교수의 책에서 정리한 내용이다.

공부 테크니션의 여덟가지 필살기.
1. 몸과 마음을 준비하는 집중 : 1분간의 명상
2. 초고도 집중력을 기르는 일점 집중의 비법 : 버리자, 집중 대상의 단순 명쾌, 전체를 개관, 감당할 부하
3. 생각과 감정을 깔끔하게 정리하는 순간 전환의 비법 : Compartment 방법
4. 하루를 48시간처럼 쓰는 시간 창출의 비법 : 아침 일찍 일어나자. 정확한 목표
5. 긴장과 이완을 적절히 조화시키는 휴식의 비법 : 일찍자자. 낮잠.
6. 필요한 정보람 골라 담는 정보 습득의 기술 : 대충 읽기, 밑줄 그으면 읽기, 저자와 토론하며 읽기, 메모하며 읽기, 다시 읽기
7. 잊거나 깜빡하지 않게 하는 정보 기억의 기술 : 온몸을 동원,기억과 감정을 연계, 의지를 도구로 활용, 먹으며 기억,'끊어 가기'로 기억,전체 맥락을 이해, 세단계 복습 ( 바로, 1일, 1주, 1개월)
8. 필요할 때마다 쏙쏙 꺼내쓰는 정보 활용의 기술 : 기억의 그루핑,디테일은 나중에,필요없는 정보는 삭제

2009년 6월 3일 수요일

Stop & Think

다시 읽고 있는 책이 있어서 글을 적는다.

이시형 박사의 "공부하는 독종이 살아남는다 - Stop & Think"에서 공부하는 방법에 대한 내용이 있다. 그 중에서 뇌를 잘 사용하는 방법에 대해서 정리가 되어 있다.

1. 눈에 보이는 가까운 목표.
2. 한번에 한가지 씩
3. 1시간 안에 끝내자.
4. Time Pressure
5. 생각나면 바로 시작
6. 자주 단련
7. 1시간이 길면 30분 후 5분 휴식
8.바로 본론으로.

2009년 4월 21일 화요일

나에게 도움을 주는 책들.

다시 책을 잡아서 보고 있다. 별일도 아닌 것으로 화를 내면서 시간을 보내는 것이 너무 아쉬어서 시작을 했다.

오늘 드디어 피터 드러커 미공개 강의 노트를 다시 완독을 했다. 처음 보았을때도 나에게 많은 감동을 주었지만 이번에도 역시 그렇다. 다음에 또 완독을 해서 정말 나의 생활에 드러커의 생활태도를 넣어야 겠다.

그리고 다시 카네기 인간관계라는 책을 읽기로 했다. 정말 일을 하다보면 아니 인생을 살다보면 사람과의 관계를 통해서 발생하는 스트레스가 엄청나다 또한 자신의 목표를 완수하기 위해서는 사람과의 관계가 필요하다. 그래서 이 책을 다시 잡게 되었다.

그럼 간단하게 정리를 해보자.
1. A class with Drucker
자기 개발 : 내가 무엇을 하고 싶은지 목적을 정하고 그에 따라 행동을 with 전략
10가지 전략 원칙
- 명확한 목표에 전력
- 주도권을 잡고 유지
-경제적인 자원활용 -> 자원읠 집중
-전략적 태도 유지
-예기치 못한 일을 행하라
-단순함을 유지하라.
-다양한 대안을 동시에 준비
-목표에 이르는 간접경로를 택하라
-시기와 순서를 준수
-고삐를 늦추기 마라.
==> 3회 완독시에 다시 한번더 책터당 정리를 해야 겠다.

2. 카네기 인간관계
성공적인 안간관계
1)우호적인 사람이 되자
2)열렬한 협력을 얻어래라.
3)리더가 되라
4)감동-커뮤니케이션 능력이 뛰어난 사람이 되라.
==> 계속 읽어가면서 정리를 하도록 하겠다.

그럼 오늘도 하이팅

2009년 2월 9일 월요일

카네기 인간관계론

저번주에는 카네기의 인간관계론이라는 책을 읽었다.
각각의 주제를 보면 가끔식 아버지가 이야기 하시던 것이지만 이렇게 하나의 책으로 보다보니 더 이해하기가 쉬운 것 같았다.

책을 정리 해보면 다음과 같다.
1.인간 관계의 기본 3원칙
1)꿀을 얻으려면 벌통을 걷어차지 말라.
==> Don't criticize, condemn or complain. ( 이해,관용)
2)칭찬은 무쇠를 녹인다.
==> Give honest, sincere appreciation : 스스로 그 일을 원하도록 하는 것.(중요한 사람이라는 생각을 줌)
3)상대방의 입장에서 사물을 보라.
==> Arouse in the other person an eager want : 세상 사람들 모두 자기가 원하는 것에만 관심을 가짐 ( 자기 표현 욕구 : 중요한 인간의 욕망)

--> 사실 이것은 역지사지라고 말하면 될 것 같다. 남을 생각할 수 있다는 것은 타인의 모습을 자신의 랜즈가 아닌 타인의 랜즈로 볼수 있어야 하고 그것을 통해서 상대방의 생각,욕구를 이해 하면 타인과의 만남에서 문제가 없다는 것이다.

그럼 정말 나의 35년간의 삶은 어떠했는가? 라는 생각이 든다. 항상 토의,토론,회의에서 상대방에게 이길려고만 했는데... 이것이 정말 나에게 좋은 결과를 주었는가? 그럼 어떻게 하면 내가 바라는 결과를 얻을 수 있을까? 라는 생각이 든다. 그런데 중요한 것은 이런 것은 남에 대한 동점심, 그리고 나의 진심이 있지 않으면 불연속적인 성공밖에 되지 않을 것이다.

정리 해보면 진심,동정심을 기반으로 한 易址思之의 생각으로 살아가자.

Object-C

Programming in objective-C 라는 책을 보면서 객체 지향형의 C에 대해서 공부를 하고 있다.
지금까지 기존 C와의 차이점은 단순하게 #include --> #import 그리고 맛보기로 본 간단한 object,instance,class이다.
오늘 루프에 대한 공부를 했고 내일은 판단문에 대한 공부를 할려고 한다. 사실 이부분은 기존 C와 별차이가 없는 것 같아서 지나갈려고 했는데 복습의 의미로 보고 있다.
역시나 난 공부를 하는 것이 역시나 잼나는 것 같다.
그런데 공부하는 것은 좋은데 성과는???

이것이 나의 최대 고민이다.

2009년 2월 6일 금요일

XML ?

1. XML 등장 배경
우리는 인터넷을 접하면서 html(HyperText Markup Language)을 알게 되었다. 이 html은 문서의 외양만을 제어하는 데는 유용하게 사용되어, 쉽게 홈페이지를 만들고 볼 수 있다는 편리함으로 인해 웹의 발전에 크게 기여하였으며, 현재까지도 웹문서를 제작하는 언어로 넌리 사용되었다.
그러나, 제한된 태그로만 구성되어, 원래 정의되어 있는 태그 외에는 사용이 불가능하고, 단일 링크만을 제공하기 때문에 문서들 사이의 다양한 관계를 지원하지 못하여 문서를 검색하기가 쉽지 않거나, 표현 형식의 변환이 어렵다는 등의 한계를 드러내고 있다.
즉, 대중화에는 성공을 하였지만, 네트윅 환경과 정보의 표현이라는 두 가지에만 충실하여 실제로 담겨진 정보의 의미를 다루는데 취약한 언어가 되었다. 즉 HTML은 정보를 잘 보여지게만 하는 언어라고 할 수 있다.
이런 html의 문제점을 해결 하기 위해서 기존에는 CSS(Cascading Style Sheets), html DOM(Document Object Model), Dhtml(Dynamic html) 등 추가 기술이 등장하였으나 근본적인 문제점을 해결하지 못했다.
또한 html은 단순하게 정보를 보여주는 것만 지원하기 떄문에 정보의 교환,검색,처리에 필요한 방법이 필요했다. 따라서 하드웨어,소프트웨어 종류에 상관없이 정보 교환,검색,처리를 지원하는 표준으로 SGML(Standard Generalized Markup Language)이 사용되었다. 하지만 SGML은 지나치게 복잡해서 전체를 지원하는 소프트웨어 개발이 용이하지 않고, 복잡하였습니다.
이런 html, SGML의 각각의 장점과 단점을 보안해서 1996년 W3C(World Wide Web Consortium)의 후원으로 형성된 xml Working Group에 의해 개발된 eXtensible Markup Language인 XML이다.

- HTML : 웹페이지에서 보여주어야 할 데이터,정보를 보기 좋게 디자인하는 마크업 언어, 확장 불가능, 데이터 전달 불가능
- SGML : 이기종간의 데이터 전송,검색,처리를 위한 마크업 언어, 복잡하고 사용되어 지는 도구의 많은 비용
==> 이런 문제의 해결 방안 : XML

2. XML 이란?
XML은 정보 자체의 교환,검색,처리를 목적으로 하였기 때문에 손쉽게 수정이 가능한 텍스트 포맷으로 되어 있고 문서를 구조적으로 정의하고, 자유롭게 태그를 정의 할 수 있는 장점으로 가지고 있다.
XML은 기본적으로 데이터를 저장하는 .xml의 파일을 기본으로 하여 정보의 형식을 정의하는 DTD, DTD의 단점을 보안한 Schema, 마지막으로 XML을 이용하여 Display를 위한 XSL로 이루어져 있다.

3.XML 응용 분야
XML은 HTML,SGML의 약점을 보강하여, 웹에서 자유롭게 문서를 유통 할 수 있도록 제안된 표준이다. 이런 특징을 가지고 있는 XML은 EDI,B2B 등에서 플랫폼에 관계없이 문서를 주고 받을 수 있는 장점 때문에 여러 응용 분야로 연구되어 차세대 웹문서의 표준이다.
TCP/IP를 기반으로 한 네트워크 기술의 발달로 HTTP 기술이 나와서 웹 페이지 제작이 되었고, 이제는 XML 기반의 웹서비스로 기술 및 환경이 발전을 하고 있다.

실 예 :
OFX(Open Financial Exchange) : 재정정보 교환하기
CML(Chemical Makeup Language) : 화학식 표기
MathML : 수학 표기
BiblioML : 도서관리
WML (Wireless Makeup Language) : 무선통신
XML Court Interface (Electronic Business XML) : 법원 문서관리
ebXML : 전자 상거래
WODF (Weather Observation Definition Format) : 기상관측
cXML (Commerce XML) : 전자상거래
OTP (Open Trading Protocol) : 무역
XML-F (XML For Fax) : 팩스
VoXML (Voice XML) : 음성인식기술 개발 서비스
MusicXML(Music MakeUP Language) : 음악악보

2009년 2월 5일 목요일

새롭게 시작하는 하루

다시 이전처럼 아침형 인간이 되기 위해서 새벽 5시에 일어났다.
간단하게 카네기 인간관계론을 보고 버스를 탈려고 집을 나섰는데.
어제의 여파인지 버스가 바로 지나갔다.

ㅜ.ㅜ

하지만 1005-1을 타고 강남역에 내려서 회사까지 걸어서 출근을 했다.

그 시간에 많은 사람들이 학원을 나가고 회사에 출근을 하는 것을 보고 더 열심히 살아야 겠다는 생각이 들었다.

오늘도 하이팅!

2009년 2월 4일 수요일

운수 더러운 날

아침에 마누라랑 한판하고 나왔다.
뭐 어떻게 보면 단순한 일이지만... 역시나 이놈의 자존심과 욱하는 성격때문에 벌어진 것이지만.

그리고 출근을 해서 사장 프린터 설정을 하다가 802.1X 인증때문에 쇼를 하다가 다행이 사장님 오시기 전에 설정을 했다.

그런데 이것은 무슨 징조인지... Entoruage가 작동이 되지 않는다고 쇼를 벌리는구만. ㅜ.ㅜ

내가 손도 되지 않은 것인데... 미치겠다...

아이구 이제 귀가를 할려고 버스를 기다리다가 교통상황이 좋지 않은 것 같아서 지하철을 타기 위해서 걸어가는데... 허걱 버스가 오내... 이런 이런

내일은 이러면 ... 않되요! 내일은 꼭 꼭 운수좋은 날!
이번주는 영 날이 좋지 못한 모양이다.

조심해야하는 날이 아니라 조심해야 하는 주인 것 같다. 제발 한달로 연장되지는 않기를.

2009년 1월 14일 수요일

요즘 읽는 책

피터 드러커 미공개 강의노트 <월리엄 코헨지음>
세계적으로 유명한 경영에 대가인 드러커의 제자인 코헨의 책으로 여러가지 경영뿐만 아니라 인생에서 많은 도움을 주는 책을 읽고 있다.
이전에 드러커의 책을 보기는 했지만 이 책은 드러커의 생각을 기존 책보다 쉽게 풀이한 것 같아서 나에게는 좋은 책이다.

여러가지 좋은 명언들 중에서 이런 글들이 생각이 난다.

모든 사람이 옳다고 해서 그것이 맞는 것은 아니다.
출처를 파악하라.
두가지이상 분야에 전문가가 되어라.

아직 다 읽지는 못했지만 계속해서 드러커 책을 봐야하는 이유는 확실한 것 같다.

2009년 1월 12일 월요일

Programming in Object-C

군대에 있을때 한 고참이 너 C좀 한다고 했지라고 하면서 혹시 Object-C라는 것은 아냐? 라는 말을 들었는데.
이제야 이놈에 대해서 공부를 하기 시작했다.

아직은 C랑 별차이를 모르겠다. 뭐 처음부분에서 C에서는 #include라는 것이 #import라는 것으로 변경된 것 말고는.

하지만 이제부터 Class에 대해서 공부가 시작되면 달라지겠지.

그럼 하이팅!

2009년 1월 9일 금요일

Mac에서 시작하는 프로그래밍.

드디어 아마존에서 주문한 Mac관련 책이 도착을 했다.

Programming in Object-C by Stephen G.Kochan
Xcode 3 by Anderson
Cocoa Programming for MAC OS X by Hillegass

처음에는 Cocoa부터 보기 시작을 했는데 처음으로 GUI가 되는 프로그램을 만들었지만 아직 Object에 대한 개념 및 Object-C에 대해서 알지 못해서 Object-C부터 보기로 했다.

컴파일을 하는 것은 Unix환경이난 별 차이가 없는데 만약에 Xcode를 사용한다면 꼭 .NET과 같은 것 처럼 개발환경을 제공해주는 것 같다.

재미있는 것 같다. 계속 해야지.

그럼 또.

2009년 1월 8일 목요일

2009년 사업계획 회의

신년마다 항상하는 사업계획에 대한 미팅을 가졌다.

일년 동안 어떻게 사업을 해야하는 가라는 정말 중요한 회의다. 이전까지는 그냥 단순하게 목표, 목표실현 가능성에 대한 이야기를 듣고
열심히 해야지는 라는 생각을 했는데, 작년의 여파로 지금은 더 효율적인 계획이 없을까? 라는 것이 가장 큰 이슈였다.

다음 주에 다시 하기로 했는데.
좋은 해결책이 나와야 할 것 같다.

하루의 시작을 수영과 함께

2009년이 되면서 아침마다 수영을 하고 있다.
새벽 5시 40분에 일어나는 것이 쉽지는 않지만, 나 자산의 건강을 위해서 일어나고 있다.

나의 몸무게가 정상보다는 상당히 많이 나가다보니 꼭 운동을 해야할 것 같아서 마음을 다 잡고 시작을 했다.
오늘이 4일째인데 어제보다는 더 힘이 드는 것 같다.

역시 갑자기 운동을 하다보니 그런가?

어제까지만 해도 작심 3일이라는 말을 듣기 싫어서 일어났는데 오늘은 그것이 아니라 몸이 힘이든다.

하지만 오늘도 수영을 하고 출근을 했다.
이런 마음으로 오늘도 열심히!

2009년 1월 7일 수요일

2009년 1월 7일

다시 블로그에 들어와서 이렇게 글을 적고 있다.
이번주에 목표를 했던 종이 위의 기적쓰면 이루어진다라는 책을 완독했다.

내가 하고 싶은 것이 있으면 그것을 글로 적고 또 그것을 이루도록 하자.
그것이 이 책에서 말하고 싶은 내용이다.

나도 그렇게 하자.

이번 달의 목표.
1. 독서 : 종이 위의 기적쓰면 이루어진다. 드러커 강의, 7가지 습관
2. 컴퓨터 : XML 1회 완독 및 2회, MacOS X 1회 완독, Windows2K3 일정, Cocoba 일정, Object-C
3. 영어 : 영어순해, 매일 신문.
4. 운동 : 수영. ( 몸무게 -3 Kg)
5. 가계부 작성 : 매일 저녁 네에버 가계부 작성
자 한번 해보자.

그래 내일도 보자

2009년 나의 목표

2009년에 내가 꼭 달성 할 목표들.
1. 기술사가 되자. : 당당한 기술사의 길로. --> 문제 발생
2. 몸짱 : 1년동안 수영을.
3. 책 : 50권 이상 읽자. ( 영어,컴퓨터,자기개발,경영)

꼭 달성하자.!!! 아니 달성한다.

오늘 나의 목표

12월달에 시간관리 세미나를 들었었다.
거기서 추천하던 책 중에서 모든 것은 기록하는 것이 바로 목표 달성에 좋다라는 내용을 가진 책이 있었다.
그것을 읽으면서 정말 마음속에서만 가지고 있는 나의 목표를 하나씩 하나씩 적어 볼려고 한다.

나의 인생 목표
1. 직장 : 항상 남을 도울 수 있는 최고의 HPC, 가상화 엔지니어
2. 집 : 가족 구성원의 행복을 위해서
3. 취미 : 기타, 스쿠버 다이빙.

단순하지만 이것을 얻기 위해서 매일 마다 하나씩 세부적인 일정을 적어보자.

그럼 오늘도 하이팅!