admin

MySQL의 기본 명령어 정리

 Mysql, 리눅스  Comments Off on MySQL의 기본 명령어 정리
Aug 312010
 

MySQL의 기본 명령어와 SQL문 정리. 내가 RDBMS에 완전 문외한이기 때문에 기본 SQL쿼리까지…
Redhat Linux 7.3, MySQL 3.23.58 에서 테스트함.
설치는 Redhat 기본 제공 RPM으로 했다.

데이터베이스 접속

$ mysql -u 사용자명 -p dbname

설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.

$ mysql -u root mysql

비밀번호 변경
MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다.
다음 세가지 방법으로 비밀번호를 변경 할 수 있다.

  • mysqladmin이용

    $ mysqladmin -u root password 새비밀번호

  • update문 이용

    $ mysql -u root mysql

    mysql> UPDATE user SET password=password(‘새비밀번호’) WHERE user=’root’;
    mysql> FLUSH PRIVILEGES;

  • Set Password 이용

    SET PASSWORD FOR root=password(‘새비밀번호’);

일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다.

사용자 추가/삭제

mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY ‘password’;

username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는
데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면

GRANT ALL PRIVILEGES ON dbname.* TO username@’%’ IDENTIFIED BY ‘password’;

위를 또한 번 실행한다. ‘%’에서 홑따옴표를 주의한다.
추가 : ‘%’를 호스트네임으로 지정해도 모든 호스트에서 접속할 수 없었다. 각 호스트별로 다 지정해야 했다.
아래 댓글에서 rukikuki님이 알려주셨습니다.
GRANT ALL PRIVILEGES ON testdb.* TO ‘username’@’%’ IDENTIFIED BY ‘password’ ;
처럼 ‘username’ 이런식으로 홑따옴표를 username 에도 붙여야 하더군요..

불필요한 사용자 삭제는

mysql> DLETE FROM user WHERE user=’username’;
mysql> FLUSH PRIVILEGES;

데이터베이스 생성/보기

  • 데이터베이스를 생성하고,

    mysql> CREATE DATABASE dbname;

  • 현재 존재하는 데이터베이스 목록을 보여준다.

    mysql> SHOW DATABASES;

  • 특정 데이타베이스를 사용하겠다고 선언한다.

    mysql> USE dbname;

  • 쓸모 없으면 과감히 삭제한다.

    mysql> DROP DATABASE [IF EXISTS] dbname;

    IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.

테이블 생성/보기

  • 테이블을 생성하고,

    mysql> CREATE TABLE tablename (
    column_name1 INT,
    column_name2 VARCHAR(15),
    column_name3 INT );

  • 현재 데이타베이스의 테이블 목록을 보고

    mysql> SHOW TABLES;

  • 테이블 구조를 살펴본다.

    mysql> EXPLAIN tablesname;
    혹은
    mysql> DESCRIBE tablename;

  • 이름을 잘못 지정했으면 이름을 변경할 수도 있다.

    mysql> RENAME TABLE tablename1 TO tablename2[, tablename3 TO tablename4];

  • 필요 없으면 삭제한다.

    mysql> DROP TABLE [IF EXISTS] tablename;

현재 상태 보기

mysql> status

————–
mysql Ver 11.18 Distrib 3.23.58, for pc-linux (i686)

Connection id: 26
Current database: study
Current user: study@localhost
Current pager: stdout
Using outfile: ”
Server version: 3.23.58
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: euc_kr
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 hours 9 min 59 sec

Threads: 1 Questions: 160 Slow queries: 0 Opens: 28 Flush tables: 1
Open tables: 1 Queries per second avg: 0.021
————–

INSERT

mysql> INSERT INTO tablename VALUES(값1, 값2, …);

혹은

mysql> INSERT INTO tablename (col1, col2, …) VALUES(값1, 값2, …);

SELECT

mysql> SELECT col1, col2, … FROM tablename;

컬럼명을 *로 하면 모든 컬럼 의미.

mysql> SELECT col1 AS ‘성명’, col2 AS ‘국어점수’ FROM grade;

컬럼의 이름을 바꿔서 출력.

mysql> SELECT * FROM tablename ORDER BY col1 DESC;
mysql> SELECT col1, korean + math english AS ‘총점’ FROM tablename ORDER BY ‘총점’ ASC;

DESC는 내림차순 ASC는 오름차순.

mysql> SELECT * FROM grade WHERE korean < 90;

조건줘서 SELECT.

mysql> SELECT * FROM grade LIMIT 10;

결과중 처음부터 10개만 가져오기

mysql> SELECT * FROM grade LIMIT 100, 10;

결과중 100번째부터 10개만 가져오기. 첫번째 레코드는 0번 부터 시작한다.

UPDATE

mysql> UPDATE tablename SET col1=새값 WEHER 조건

DELETE

mysql> DELETE FROM tablename WEHRE 조건

mysql에서 쿼리 결과 세로로 보기
-E 옵션을 줘서 실행한다.

$ mysql -E -u root -p mysql

mysql에서 발생한 오류나 경고 다시 보기

mysql> show errors;
mysql> show warnings;

 Posted by at 1:50 PM

Apache 환경설정 방법

 리눅스  Comments Off on Apache 환경설정 방법
Aug 312010
 

세심하게 정리해 준 원 저자에게 감사…

httpd.conf 설정

설정파일 경로

소스 컴파일 버전 : /usr/local/apache/conf/httpd.conf

RPM 설치 버전 : /etc/httpd/conf/httpd.conf

전체 환경 (Global Environment)

아파치 웹서버 프로세스의 전체적인(global) 부분에 영향을 미치는 부분입니다. 이 부분의 지시자들을 수정(변경)하시면 아파치 메인서버(Section 2)와 가상호스트(Section 3)에 설정된 모든 웹사이트에 영향을 미치게 됩니다.

ServerType standalone

서버의 구동방법으로는 standalone과 inetd방식이 있는데,  standalone 방식은 하나의 웹데몬(아파치서버)이 클라이언트의 접속을 모두 처리하는 방식으로 응답속도가 빠른 방법으로 주로 이방식을 사용합니다. inetd 방식은inetd라는 시스템의 /etc디렉토리 끝에 존재하는 inetd라는 슈퍼데몬이 클라이언트의 접속요구가 있을 때마다 웹서버를 구동하는 방식이다. 일반적으로 응답속도가 빠르고 효율적인 standalone으로 설정하여 사용합니다.

ServerRoot “/usr/local/apache/htdocs”

아파치서버의 홈디렉토리를 지정하며 절대경로로 지정합니다. 이후로 나오는 대부분의 패스들은 이 경로에 대한 상대경로로 지정이 됩니다. 예를 들어 환경설정파일, 에러로그 파일등의 상대경로의 기준이 되는 위치이다.

LockFile logs/accept.lock

아파치 컴파일 시 USE_FCNTL_SERIALIZED_ACCEPT나 USE_FLOCK_SERIALIZED_ACCEPT으로

컴파일 했을 때 사용되는 LockFile의 경로 지정시에 사용됩니다. 가급적 기본값으로

사용합니다.

PidFile /var/run/httpd.pid

PidFile 설정은 ServerType을 Standalone으로 설정했을때만 유효한 것으로 아파치 서버의 프로세스가 생성되어 있을 때 그 프로세서ID(PID)를 기록하는 파일을 지정합니다.  당연히 아파치서버가 재시작되거나 과부하로 인해PID가 바뀌게 될 경우에는 이 파일의 PID값도 바뀌게 됩니다. 즉 다시말해서 여기서 지정된 파일(httpd.pid)에 실행되고 있는 아파치 서버의 프로세스번호(PID)값이 기록됩니다고 하면 정답이다. ServerRoot를 기준으로한

상대경로로 지정됩니다.  절대경로로 지정하려면 “/”로 시작하는 절대경로를 적어주면 됩니다.

ResourceConfig conf/srm.conf

AccessConfig conf/access.conf

아파치 서버의 환경설정파일은 3개이며 httpd.conf, srm.conf, access.conf 가 그것입니다. 그러나 하나의 설정파일로 하는 것이 효율적이기 때문에 지금은 httpd.conf파일안에 3개의 파트(Section)로 나누어서 하나의 파일안에서 설정을 하고 있습니다. srm.conf와 access.conf파일의 내용은 현재 비어있는 상태이지만, 필요합니다면 이 파일 내에도 설정을 할 수 있습니다. 아파치 서버가 실행이 될 때는 httpd.conf, srm.conf, access.conf 순으로 언제나 이 3개의 파일을 모두 읽고 난뒤에 실행이 되기 때문이다. 만약 이 두 개의 파일을 서버가 무시하도록 하려면 다음과 같이 하거나 “”으로 붙여 두면 주석 처리되어 무시됩니다.

Timeout 300

클라이언트의 요청에 의해 서버와 연결이 되었을 때 클라이언트와 서버간에 아무런 메시지가 발생하지 않았을 때 오류로 처리될 시간을 초단위로 설정합니다. 초기값은 1200이며 보통은 300초로 지정을 합니다. 네트웍의 속도가 나쁠수록 수치값은 높게 설정하는 것이 좋다.

KeepAlive On

HTTP 1.0에서는 요청이 일어날 때마다 client와 Server간에 새로운 연결이 만들어 지는데 이 설정으로 인하여 하나의 연결에서 여러 요청이 가능하므로 요청을 처리하는 시간을 증진 시킨다. 이 기능을 끄려면 off로 합니다.

대형 site일 경우에는 이 기능을 끄기를 권장합니다. 이 기능을 Off를 시킬 경우에 system의 부하가 상당히 늘어 나는 것을 느낄 수는 있으나 Web상의 속도에서는 속도가 On일 경우보다 더욱 빠르다는 것을 체감할 수 있습니다. 즉 Web Server만을 돌린다면 Off로 하는 것을 권장하며 여러 서비스를 할 경우에는 On으로 하라는 의미이다. 참고로 이런 것을 체험할 정도의 대형 서비스란 하루 웹로그가 1G이상 쌓이는 경우를 의미 하며 왠만한 site에서는 이 부분에 대해서 신경을 쓰지 않아도 상관이 없다.

MaxKeepAliveRequests 100

접속된채로 특별한 요청이 없음에도 계속 연결을 유지시킬 수치를 지정합니다. 값이 너무 크면 하나의 client가 Server의 resource를 독점 할 수 있으므로 적당 하게 잡는 것이 좋다.

KeepAliveTimeout 15

아파치 서버는 같은 접속상태의 클라이언트에서 여기서 지정한 초만큼의 요청이 없었을 때 접속을 끊게 됩니다.

MinSpareServers 8

MaxSpareServers 20

아파치 웹서버는 성능향상과 빠른 응답속도를 위해 유휴서버(현재 서비스대기 중인 프로세스)를 만들게 되는데 이 유휴서버의 개수는 시스템의 상황에 따라 달라지게 됩니다. 유휴서버가 MinSpareServers의 개수(5) 보다 적게되면 추가로 생성을 하게 되며 MaxSpareServers의 개수(10)보다 많게 되면 죽이게 됩니다. 즉, 유휴서버의 개수를 적절히 조절하기 위한 것이라 생각하면 됩니다.

StartServers 10

httpd 서버를 처음 실행시킬때, 여분의 프로세스를 생성시킬 수치를 지정합니다. 반응 시간을 짧게 하기 위해 StartServers항목에서 말하는  만큼의 Server process를 이미 만들어 두는 것인데, 실제로  Service를 하고 있지 않을 경우에는 잠자고 있으므로 System에 부하를 주거나 하지는 않는다.

MaxClients 150

아파치웹서버에 접근할 수 있는 클라이언트의 최대갯수는 이 상한값으로 제한합니다. 여기서 지정한 개수이상의 클라이언트의 요청이 생긴다면 아파치는 응답하지 않고 이 요청을 무시합니다.  이를 제한하는 이유는 시스템의 자원을 아파치 웹서버가 무한정 차지하는 것을 방지하기 위한 것입니다.

MaxRequestsPerChild 100

아파치 웹서버의 자식프로세스들이 클라이언트의 요청 개수를 지정합니다. 만약 자식프로세스가 이 값만큼의 클라이언트요청을 받았다면 이 자식프로세스는 자동으로 죽게됩니다. 이 값이 0으로 설정이 됩니다면 자식프로세스가 자동으로 죽는일은 없을 것입니다. 그러나 0아닌 다른 값으로 설정함으로서 프로세스의 수를 적절히 조절하여 시스템의 부하조절과 자원낭비를 어느정도 방지 할 수 있습니다.

Listen 3000

Listen 12.34.56.78:80

시스템의 기본값 이외에 다른 IP Address와 포트에 대해서도 연결할 수 있도록 해 줍니다. 환경설정파일(httpd.conf) 맨뒤에 나오는 가상호스트(Virtual Host)부분에서 설정되는 가상호스트를 설정하기 위해 필요합니다.

BindAddress *

서버가 응답할 수 있는 IP Address를 설정하는 것입니다. 하나의 시스템에있는 아파치웹서버 하나로 여러 웹서버처럼 관리하는 웹호스팅서비스등에서 많이 이용하는 것으로 여러 IP Address를 인식할 수 있게 합니다. “*”으로 설정이 되었다면 모든  IP Address에 대해 응답할 수 있으며, IP Address를 지정합니다면 지정한 IP Address에 대해서만 응답할 수 있게 됩니다.  여러개의 IP Address를 ISP로부터 할당받아서 웹호스팅서비스를 하고자 합니다면 이부분에서 지정해 주면 됩니다.

이 설정파일의 맨 뒷부분에 나오는 <VirtualHost> ~ </VirtualHost>부분의 IP bind 가상호스트부분에서 아파치 웹서버가 응답할 수 있도록 하려면 여기서 IP Address를 지정해 줘야 합니다.

ExtendedStatus On

server-status로 아파치웹서버의 상태를 상태를 모니터링 할 때 “자세한상태정보”기능을 제공할 것인지(On) 아닌지(Off)를 설정하는 것입니다.

‘주(Main)’ 서버 설정

이 부분은 가상호스트에서 핸들링되지 않는 요구들에 응답하는 아파치 메인(기본, default)서버의 설정부분입니다. Section 2 에서 설정하는 항목들은 아파치의 주된 서버가 사용할 값들을 지정합니다. Section 3 에 설정하는 <VirtualHost>에 정의된 가상호스트들에서 지정하지 않는 것은 여기서 지정된 값이 기본값으로 적용됩니다.

또한 여기서 지정하는 값을 각 <VirtualHost>내에도 지정할 수 있으며 이경우엔 각 <VirtualHost>내에서 지정한 값이 우선적으로 적용됩니다. 즉, 이 섹션의 지시자들은 <VirtualHost>정의에 의해 서비스되지 않는 요구들에 대한 부분만 응답하는 아파치메인서버 설정값들을 설정합니다. 또한 중요한 것은 여기서 설정하는 값들은 이 파일의 뒷부분에서 설정하고 있는 <VirtualHost>내의 기본값을 제공하는 역할도 합니다는 것을 기억하시기 바랍니다. 그리고 Section 2 에서 설정하는 모든 지시자들은 Section 3 부분의 <VirtualHost>내에서도 별도로 사용될 수 있습니다. 만약 동일한 지시자가 Section 2와 Section3의 <VirtualHost>애에 모두 설정이 될 경우에는 Section 3 의 <VirtualHost>내의 설정이 적용됩니다는 점도 반드시 알아두셔야 합니다.

Port 80

아파치웹서버의 기본포트를 지정합니다. 특별하게 사용하는 것이 아니라면 80번으로 해둬야 합니다. 사용가능한 포트는 0 ~ 65535이며 1024이하의 포트번호는 시스템에서 특별하게 예약되어 있으므로 80번 이외의 다른 포트를 사용하려면 1024이상의 포트번호를 지정해서 사용해야 할 것입니다.

특별한 지정이 없다면 <VirtualHost>에 정의된 각각의 가상호스트들의 기본포트가 됩니다. 만약 <VirtualHost> 내에서 Port가 지정이 됩니다면 그 포트번호가 우선합니다.

(특별히 PORT를 따로 지정해 줄 필요가 있을 때는 따로 지정해 주며, 이때는 웹서버로 접근할 때 반드시 따로지정한 PORT번호로 접근해야 합니다. 예를들어 Port 1234로 지정했다면, 접근시 : http://www.domain.co.kr:1234 로 접속해야합니다. 단, 80번은 default이므로 Port번호를 입력하지 않아도 도메인만으로 그냥 접근할 수 있습니다. 예: http://www.domain.co.kr )

User nobody

Group nobody

아파치 웹데몬이 요청을 받았을 때 여기서 지정한 user와 group으로 응답을 하게됩니다. 이 설정은 ServerType이 Standalone방식이며, 아파치의 실행이 root권한으로 실행이 되었을 때 유효한 것입니다. 많은 웹서버관리자들이 nobody로 설정을 해 두고 있으며, 만약 시스템에 nobody user가 없다면 새로생성(useradd)을 해야 할 것입니다. 단, root로 설정하는 것은 절대로 있어서는 안되며 nobody이외의 다른 시스템사용자 id로 지정을 합니다면 정말 신중히 모든면(시스템 보안 및 자원사용등)에서 깊게 고려를 해봐야 합니다.

ServerAdmin admin@nextline.co.kr

여기서 지정하는 email address는 웹 문서 로딩 에러 등의 문제에서 클라이언트측으로 보내질 메일 주소 값 이다. 대부분 웹 서버관리자의 email address로 설정을 합니다.

ServerName www.nextline.co.kr

클라이언트에게 보여주는 호스트이름을 지정합니다.

www를 쓰지 않는 호스트에서 www를 쓰는 것처럼 보이게 할 수 있습니다.

예를 들어 bbs.nextline.co.kr을 www.nextline.co.kr로 지정해서 쓸 수 있습니다. 이곳에 IP Address를 적게 되면 클라이언트에는 Ip Address를 보여줍니다.

DocumentRoot “/usr/local/apache/htdocs”

아파치 웹서버의 웹문서가 있는 경로를 지정합니다.

예를 들어 “http://www.nextline.co.kr/index.html”의 초기 문서라면 이 초기문서의 절대 경로는 여기서 지정된 “/usr/local/apache/htdocs/index.html”이 됩니다.

경로의 맨 마지막에 “/”를 추가해서는 안됩니다. Alias를 사용하여 다른 위치를 지정할 수도 있습니다.

<Directory />

Options FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

Deny from env=no_access

</Directory>

<directory> tag에 의하여 각 directory마다 적절하게 permission을 걸 수가 있습니다.

“Deny from env=no_access” 설정에 대해서는 뒤에 다루기로 합니다.

<Directory “/usr/local/apache/htdocs”>

Options Indexes FollowSymLinks Includes

① Options

None

어떤 옵션도 이용할 수 없습니다.

All

지정한 directory에서 모든 명령을 이용할 수 있습니다.

Indexes

URL에 지정된 디렉토리에 (index.html 같은) 지정된 파일이 없을 경우 디렉토리의 파일 목록을 보여주는 옵션입니다.

Includes

서버측의 추가적인 정보를 제공할 수 있게 합니다.

IncludesNoExec

서버측의 추가적인 정보를 제공할 수 있게 하지만, 어떠한 실행 파일을 실행하는 것을 방지합니다.

FollowSymLinks

디렉토리상의 심볼릭 링크를 사용 가능하게 합니다.

ExecCGI

CGI 스크립트를 실행할 수 있게 합니다.

MultiViews

All 옵션이 설정되었을 때만 지정된 목록의 multiviews를 허용합니다.

② AllowOverride None

.htaccess파일은 서버의 각 디렉토리에 만들어서 각 디렉토리에 대한 접근을 제어하기 위한 것으로 디렉토리에 .htaccess파일이 있으면, 서버 전체에 작용하는 access.conf 보다 우선권을 가집니다. .htaccess파일에 대한 Override에 대한 옵션입니다.

None

.htaccess파일을 읽을 수 없게 합니다.

All

모든 지정에 대해 가능하게 합니다.

Options

규정된 디렉토리 형식을 콘트롤하는 지정의 사용을 허락합니다.

FileInfo

문서형식을 콘트롤하는 지정의 사용을 허용합니다.

AuthConfig

사용자 인증 지정의 사용을 허용합니다. 사용자 인증 변수를 사용합니다.

Limit

호스트 접근을 콘트롤하는 지정을 허용합니다.

Order allow,deny

Allow from all

Deny from env=no_access

Limit에 관련된 부분을 설정을 합니다.

③ Order

서버가 access control을 수행하는 순서를 나타낸다. 여기서는 allow기능을 먼저

수행하고, deny기능을 수행하라는 것입니다.

deny, allow

deny 지시자 부터 검사하고 allow 지시자를 검사 합니다.

allow, deny

allow 지시자 부터 검사하고 deny 지시자를 검사 합니다.

mutual-failure

allow목록에 없는 모든 host에게 접속을 거부 합니다.

allow from

나열되는 주소들에 대한 access control을 가능하게 합니다. 사용 가능한 주소는 도메인 네임, 호스트 이름 주소, 호스트 ip 주소, ip 주소의 앞부분 3바이트, 모든 주소에 해당하는 all 이 있습니다.

deny from

allow from과 반대되는 개념이며, 사용가능한 주소는 allow from과 같다.

Require

사용자, 그룹에 대한 접근을 통제할 수 있습니다.

사용방법 : require entity en1 en2 … enn

entity에 들어갈 수 있는 것은 user, group, valid-user의 세가지이다.

User

지정된 사용자들에게만 접근을 허용하는 것으로, 지정된 사용자에 대한 정보는 AuthUserFile에서 지정한 파일에 있습니다.

Group

지정된 그룹에게만 접근을 허용하는 것으로, 지정된 그룹에 대한 정보는

AuthGroupFile에서 지정한 파일에 있습니다.

valid-user

AuthUserFile에 있는 모든 사용자에 대해 접근을 허용합니다.

</Directory>

UserDir public_html

계정 사용자들의 home directory를 지정합니다.  보통 http://url/~계정 이런식으로 접속했을 때 계정에 이곳에 지정된 이름의 directory를 만들고 home directroy로 사용하면 됩니다. 보통 public_html 이나 htodcs, home 을 많이 쓴다. 다른 이름으로 해도

상관은 없다. 계정 사용자가 사용을 못하게 하려면 DISABLED 옵션을 주면 됩니다.

참고를 할것은 RedHat 계열에서는 user를 생성을 하면 user의 home directory는 700의 권한을 갖게 되므로 httpd.conf에서 아무리 설정을  해 줘도 forbidden error만 만나게 됩니다. 그러므로 계정에서 homepage를 운영하기 위해서는 꼭 chmod a+x ~accountname 명령을 실행을 해 줘야 합니다.

<Directory /*/public_html>

AllowOverride FileInfo AuthConfig Limit

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

<Limit GET POST OPTIONS PROPFIND>

Order allow,deny

Allow from all

</Limit>

<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>

Order deny,allow

Deny from all

</Limit>

</Directory>

UserDir 디렉토리에 대한 접근을 제어합니다.  다음은 사용자 홈   페이지에 대하여 읽기만 가능하도록 한 예제 설정 내용입니다.

위의 설정 중 “*” 사용에 관해서 언급을 할 것이 있습니다.

보통 “*”는 all의  의미로 많이 사용이 됩니다.

즉 위에서 /*/public_html 은 어떠한  경로에 있는 모든 public_html을 뜻합니다고 할수 있습니다. 하지만 이는  그렇게 호락호락하게 되지는 않는 듯 합니다.

필자의 경험에 의하면  같은 레벨의 깊이에 있는 public_html 만 적용이 되는듯 합니다.

즉  위의 설정대로라면 /home/public_html은 적용이 되지만 /home/nextline/publci_html 은 적용이 되지 않더란 말입니다.

DirectoryIndex index.html index.htm index.shtml index.php3 index.cgi

디렉토리만을 지정했을 경우에 그 디렉토리에서 찾게될 문서의 순서를 지정해 줍니다.

즉, 디렉토리 이름만을 지정하더라도 여기서 지정한 index.html을 찾아서 웹브라우즈에 보여줍니다. 여러개의 파일을 지정할 수 있으며, 이런 경우에는 순서대로 찾아서 보여줍니다. 예를 들어 “DirectoryIndex index.html index.htm”로 지정했다면 먼저 “index.html”을 찾아서 있다면 이 파일을 로딩하고, “index.html”이 없다면 “index.htm”을

찾아서 로딩해 줍니다.

AccessFileName .htaccess

디렉토리별로 접근 제어할 정보(ID, Password)를 담고 있는 파일을 지정합니다. 디렉토리별로 인증을 거쳐서 접근할 수 있는 설정을 하기 위한 것입니다. 예를 든다면 어떤 홈페이지의 전부나 혹은 일부에서 접근하려고 할 때 ID, Password를 묻는 창이 뜨면서 맞게 입력한 경우에만 접근 허용하는 것입니다.  보안상의 이유로 이 파일의 이름을 다른 이름으로 바꾸고 싶다면 “.htaccess” 대신에 다른 이름을 적어주면 됩니다.

<Files “^\.ht”>

Order allow,deny

Deny from all

</Files>

바로 위에서 설정한 파일(“.htaccess”)의 내용을 볼 수 없게 할 때 사용하는 옵션이다. 보안상의 이유로 이 옵션은 설정해 두는 것이 좋다. 만약 이 옵션을 주석 처리해 둔다면 “.htaccess”파일에 대한 보안은 누구도 장담할 수 없을 것입니다.

CacheNegotiatedDocs

이 설정은 Proxy Server를 거치는 사용자들을 위한 것입니다. Proxy  Server가 “교섭” 문서, 즉 CGI script의 출력이나 Server가 생성한  index page처럼 직접 수신되지 않는 문서를 cache 하도록 합니다. Default로 주석 처리 되어 있고 그냥 이대로 두면 됩니다.

UseCanonicalName On

웹서버의 mime type을 지정한 파일을 지정합니다. mime.types파일은 서버에 의해 리턴될 수 있는 파일명과 mime형식을 기술해 놓은 파일이다.

TypesConfig /etc/mime.types

웹서버의 mime type을 지정한 파일을 지정합니다. mime.types파일은 서버에 의해 리턴될 수 있는 파일명과 mime형식을 기술해 놓은 파일이다.

DefaultType text/plain

mime.types 파일에 정의 되어있지 않은 파일형식에 대한 요청을 받았을 때 알 수 없는 문서타입에 대하여 사용할 기본적인 mime 타입을 정해둔다.

<IfModule mod_mime_magic.c>

MIMEMagicFile conf/magic

</IfModule>

이것 역시 1.3.12에서 부터 새로 추가된 module이다. 사용을 하기  위해서는 DSO 설정에서 mod_mime_magic line의 주석을 해제해야 합니다.

HostnameLookups Off

웹서버의 로그(access_log)를 지정하는 Format에서 “DNS Lookup”으로 지정하였을 때, domain으로 남길 것인가, IP Address로 남길 것인가를 지정합니다. Default로 Off는 IP Address로 남기는 것이며, Domain으로 변경할 필요가 없으므로 on으로 설정한 것보다는 속도가 조금빠르다.on으로 하게 되면 IP address를 IP Domain으로 변환해야 하므로 속도가 조금 느릴 수 있습니다.

ErrorLog logs/error_log

아파치 웹서버의 에러로그 기록파일을 지정합니다.  참고할 사항은 맨 마지막에 설정하는 <VirtualHost>부분에서 각서버에 대한 에러파일을 지정해 두지 않으면 그에 대한 에러로그도 여기에 기록되며, 지정해 두게 되면 그에 해당하는 로그는 이 파일에 기록되지 않는다.  만약 ErrorLog를 남기고 싶지 않다면 /dev/null로 지정을 해 주면 됩니다.

예: ErrorLog /dev/null

LogLevel warn

바로위에서 설정한 에러로그 파일에 얼마나 자세하게 적을 것인지를 결정합니다. 다음에 해당하는 순서대로 중요도가 정해진다.

” debug → info → notice → warn → error → crit → alert → emerg ”

LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\”

\”%{User-Agent}i\”” combined

LogFormat “%h %l %u %t \”%r\” %>s %b” common

LogFormat “%{Referer}i -> %U” referer

LogFormat “%{User-agent}i” agent

바로 아래에서 사용할 CustomLog에서 사용할 몇가지 로그형식의 별명을 정한 곳이다.

웹서버의 관리자나 서버관리자는 이 부분을 특히 유심히 봐둬야 합니다. 웹서버의 로그를 어떤 식으로 남길 것인가를 결정하는 Format을 지정하는 곳이다. 원하는 정보를 지정해서 볼 수 있으므로, 관리자에게 필요한 Format으로 설정해야 하며, 또한 접속통계를 내기에 적당한 Format으로 설정해 둬야 합니다.

CustomLog logs/access_log common

위에서 정한 로그형식(여기선 common)대로 로그를 남기게 됩니다.

맨마지막에서 지정하는 <VirtualHost>부분에서도 아파치 1.3.9버전 부터는 CustomLog를 가상호스트별로 지정할수 있도록 CustomLog를 제공합니다. <VirtualHost>에서 CustomLog를 지정하지 않으면 여기서 지정한 형식대로 로그를 남기게 되며 <VirtualHost>부분에서 CustomLog를 지정했을 경우에는 여기서 지정한 로그형식은 무시됩니다.

CustomLog logs/referer_log referer

CustomLog logs/agent_log agent

위에서 지정한 4가지의 로그형식(combind, common, referer, agent)중에서 원하는 부분의 (주석행)을 제거하면 지정됩니다.

CustomLog logs/access_log combined

이 설정은 위의 CustomLog logs/referer_log referer,  CustomLog logs/agent_log agent 를 합쳐 놓은 것이라 생각하면 됩니다. 이 행의 주석을 풀어 주기 위해서는 위의 두행이 주석처리가 되어 있어야 합니다.

ServerSignature On

서버가 생성하는 문서(error documents, FTP directory listings,

mod_status and mod_info output etc., but not CGI generated documents)의

trailing footer line의 설정을 가능하게 합니다.

Alias /icons/ “/usr/local/apache/icons/”

<Directory “/usr/local/apache/icons”>

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

필요한 만큼의 디렉토리 별칭을 만들어 쓸 수 있습니다. 사용하는 형식은 다음과 같다.

Alias fakename(가상이름) realname(진짜이름)

ScriptAlias /cgi-bin/ “/usr/local/apache/cgi-bin/”

<Directory “/usr/local/apache/cgi-bin”>

AllowOverride None

Options ExecCGI

Order allow,deny

Allow from all

</Directory>

ScriptAlias는 서버스크립트를 포함합니다. ScriptAlias는 실제디렉토리 안에 들어있는 문서를 서버에 의해 응용프로그램으로 취급되어 실행되는 것을 제외하고는 근본적으로 Aliases와 같다.

IndexOptions FancyIndexing

IndexOPtions는 디렉토리목록을 표시할 때 사용할 옵션을 지정합니다. Standard는 표준적

인 디렉토리를 나타내며, FancyIndexing은 좀더 예쁜 디렉토리목록을 표시해 줍니다.

아래에서 지정하는 AddIcon으로 시작하는 설정은 바로위에서 설정한 디렉토리인덱싱 옵션

을 FancyIndexing으로 한 경우에 해당하며 디렉토리 목록을 표시할 때 각 파일 확장자에

따라서 어떤 아이콘을 선택하여 보여줄 것인지를 지정합니다.

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*

AddIconByType (IMG,/icons/image2.gif) image/*

AddIconByType (SND,/icons/sound2.gif) audio/*

AddIconByType (VID,/icons/movie.gif) video/*

IndexOptions에서 FancyIndexing이 지정되었을 때 이 지시자는 file마다 MIME type에 따라 어떤 icon을 사용 할지 정합니다.

AddIcon /icons/binary.gif .bin .exe

AddIcon /icons/binhex.gif .hqx

AddIcon /icons/tar.gif .tar

AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv

AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip

AddIcon /icons/a.gif .ps .ai .eps

AddIcon /icons/layout.gif .html .shtml .htm .pdf

AddIcon /icons/text.gif .txt

AddIcon /icons/c.gif .c

AddIcon /icons/p.gif .pl .py

AddIcon /icons/f.gif .for

AddIcon /icons/dvi.gif .dvi

AddIcon /icons/uuencoded.gif .uu

AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl

AddIcon /icons/tex.gif .tex

AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..

AddIcon /icons/hand.right.gif README

AddIcon /icons/folder.gif ^^DIRECTORY^^

AddIcon /icons/blank.gif ^^BLANKICON^^

Server가 file과 Directofy를 표시하는데 어떤 icon을 사용할 지 지정합니다.

DefaultIcon /icons/unknown.gif

여기서 지정한 확장가가 아닌 경우에 여기서 지정한 기본아이콘으로 보여줍니다.

AddDescription “GZIP compressed document” .gz

AddDescription “tar archive” .tar

AddDescription “GZIP compressed tar archive” .tgz

AddDescription은 서버가 생성한 인덱스의 파일 뒤에 간단한 설명을 표시할 때 사용합니다. 이 설정은 IndexOptions가 FancyIndexing으로 설정되었을때만 표시되며,설정형식은 다음과 같습니다.

형식 : AddDescription “표시할 설명” 파일확장자

AddDefaultCharset Off

AddDefaultCharset euc-kr

이 설정은 apache 1.3.12에 들어와서 Cross Site Scripting 보안 문제  패치를 하면서 기본 글꼴을 iso-8859-1 로 하는 현상이 발생 하므로  한글 사용을 위해서는 어쩌면 필요한 설정일지도 모른다. 일단 문제가  없으면 그냥 놔두는 것도 괜찮을지 모르겠지만 문제가 됩니다면 설정을 해보는 것도 괜찮을것 같다. 일단 필자의 테스트 로는 euc-kr로의

설정은 문제가 발생합니다.

ReadmeName README

HeaderName HEADER

디렉토리 목록을 보여줄 때 목록의 마지막 부분 뒤와 목록의 시작  전에 보여줄 내용을 담고 있는 파일을 지정합니다. 여기서는 목록의 뒤에 README, 목록의 처음에 HEADER를 보여주게 지정되어 있습니다.

IndexIgnore .??* *~ *   HEADER* README* RCS CVS *,v *,t

디렉토리를 출력할 때 무시할 파일들을 지정합니다.

AddEncoding x-compress Z

AddEncoding x-gzip gz

압축 코드에 대한 인코딩 정보를 지정합니다.

<IfModule mod_negotiation.c>

AddLanguage ko .ko

AddLanguage en .en

AddLanguage fr .fr

AddLanguage de .de

AddLanguage da .da

AddLanguage el .el

AddLanguage it .it

</IfModule>

Server가 다국 언어로 문서를 제공합니다면 이 지시자를 사용해 file  확장자를 언어를 지정 하는 약어에 대응시킨다. 언어의 약어는 보통  인터넷 국가 코드를 사용합니다. client가 home.html이라는 file을  요청하면 browser는 프랑스어 사용자라는 것을 전하고 server는  이 지시자를 찾아서 어떤 file 확장자가 프랑스어 문서에 사용되는지

알아본다. 프랑스어 사용자라면 home.html.fr을 받게 됩니다. 다만  home.html이라는 file이 존재 합니다면 home.html.fr을 받지 못하고 home.html을 받아 버리게 됩니다.

<IfModule mod_negotiation.c>

LanguagePriority ko en fr de

</IfModule>

site에 위에서 지정한 것과 같은 home.html.fr과 같은 문서가 있고  client가 언어를 선택하지 않고 home.html을 요청할때(home.html이  없을 경우) 서버가 보낼 문서를 지정합니다. 이 지시자는 여러 언어를 내침 차순으로 나열합니다.

AddHandler cgi-script .cgi .pl .sh

서버의 어떤 위치에 있던지 ‘.cgi’ 확장자를 가진 파일은  cgi-script로 인식하게 합니다. ‘.pl’, ‘.sh’ 등의 다른 확장자도  추가할 수 있습니다. 보안을 이유로 account user들에게 CGI 권한을  주지 않으려면 이행을 주석 처리해야 합니다. 반대로 account user  들에게 CGI권한을 주기 위해서는  이 행의 주석을 풀어 줘야 합니다.

AddType text/html .shtml

AddHandler server-parsed .shtml

AddHandler text/x-server-parsed-html .html .txt

Server Side Includes (SSI)를 사용할 때 필요합니다. SSI는 HTML파일  속에 어떤 실행 프로그램의 결과나 특정 파일을 포함할 수 있게 합니다.

shtml 확장자가 아닌 파일에서도 SSI를 사용할 수 있게 하려면 위에서와  같이 x-server-parsed-html mime type설정을 이용합니다.

MetaDir .web

MetaDir은 아파치가 찾을 메타정보파일들의 디렉토리 이름을 지정합니다. 이 파일들은 문

서를 전송할 때 포함되는 HTTP 헤더정보가 포함되어 있습니다.

MetaSuffix .meta

MetaSuffix는 메타정보를 포함하고 있는 접미어의 이름을 지정합니다.

ErrorDocument 400 /message/400error.html

ErrorDocument 401 /message/401error.html

ErrorDocument 403 /message/403error.html

ErrorDocument 404 /message/404error.html

ErrorDocument 405 /message/405error.html

ErrorDocument 500 /message/500error.html

ErrorDocument 501 /message/501error.html

또는 스크립트를 이용하여 변수를 전달 시킬 수 도 있습니다.

ErrorDocument 400 /message/error.php?ecode=400

ErrorDocument 401 /message/error.php?ecode=401

ErrorDocument 403 /message/error.php?ecode=403

ErrorDocument 404 /message/error.php?ecode=404

ErrorDocument 405 /message/error.php?ecode=405

ErrorDocument 500 /message/error.php?ecode=500

ErrorDocument 501 /message/error.php?ecode=501

서버에러에 대한 응답을 지정해 주는 부분이다. 각 에러 코드에  대한 응답을 cgi나 일반 텍스트로 만들어서 사용자에게 보여줄  수 있습니다. 어떤 서버에 접속하면 해당 URL이 없다는 등의 한글  메시지가 가능한 것도 이것을 이용하는 것입니다.

아래는 (2)번의 내부 redirects를 사용한 예이다. 나의 경험 상으 로는 외부 방향 전환을 이용했을때 CGI와 htaccess 인증시에 505  Internal Server error가 발생 했다. 왜 그런지 이유는 잘 모르겠다.  내부 방향 전환에는 전혀 이상이 없었다.

BrowserMatch “Mozilla/2” nokeepalive

BrowserMatch “MSIE 4\.0b2;” nokeepalive downgrade-1.0 \

force-response-1.0

다음 지시자는 보통의 HTTP 반응 방식을 수정합니다.

첫번째 것은 네스케이프 2.x 또는 그를 흉내내는 브라우져에  대하여 KeepAlive 기능을 쓰지 않도록 합니다.  이 브라우져들은 KeepAlive 구현에 문제점을 갖고 있기 때문이다.

두번째 것은 HTTP/1.1을 잘못 구현하였고 301 또는 302 (redirect) 반응에 대하여 KeepAlive를 제대로 지원하지 못하는 Micro$oft 인터넷 익스플로러 4.0b2를 위한 것입니다.

BrowserMatch “RealPlayer 4\.0” force-response-1.0

BrowserMatch “Java/1\.0” force-response-1.0

BrowserMatch “JDK/1\.0” force-response-1.0

다음은 기본적인 1.1 반응도 제대로 처리하지 못함으로써 HTTP/1.1 스펙을 위반하고 있는 브라우져에 대하여 HTTP/1.1 반응을 하지 않도록 합니다.

BrowserMatch “WebZIP” no_access

BrowserMatch “Teleport” no_access

BrowserMatch “NamoWebEditor” no_access

BrowserMatch “WebTrack-HTTPP” no_access

BrowserMatch “WebSymmetrix” no_access

BrowserMatch 지시자를 이용하여 User Agent별로 접근을 제어 하도록 합니다.

<IfModule mod_status.c>

<Location /server-status>

SetHandler server-status

Order deny,allow

Deny from all

Allow from localhost

Allow from all

AuthName “administrator Area”

Authtype Basic

AuthUserFile /home/.htpasswd

AuthGroupFile /dev/null

require valid-user

satisfy all

</Location>

</IfModule>

서버의 상태결과를 http://servename/server-status의 URL에 접근  하면 볼 수 있게 해주는 옵션이다. ‘allow from 서버 도메인네임’의  형식 으로 접근이 가능합니다.

하단의 주석 처리가 되어진 부분은 .htpasswd file에 기록되어 있는 User와 Password로 인증을 하여 보게 하는 설정의 예이다.  .htpasswd 인증을 위해서는 mod_auth.c 가 활성화되어 있어야 합니다. 그럼 여기서 살짝 꽁수를 써보도록 하겠다. 일정 ip address에서는 ip address check만하고 인증을 안하도록 하고 다른 ip address에서  는 인증을 하게 하는 방법을 설정해 보도록 하겠다.

<IfModule mod_status.c>

<Location /server-status>

SetHandler server-status

Order deny,allow

Deny from all

Allow from localhost

AuthName “administrator Area”

Authtype Basic

AuthUserFile /home/.htpasswd

AuthGroupFile /dev/null

require valid-user

satisfy any

</Location>

</IfModule>

원래의 설정과 위의 설정과의 차이를 보도록 하면, 일단 원래의 설정에서  주석 처리 되어 있는 부분이 모두 주석이 제거가 되어 있습니다. 그리고 제일  마지막 option인 satisfy의 값이 all에서 any가 되어 있습니다. 이것이 바로  키포인트이다. 즉 Allow from에 지정된 ip address나 domain name은 인증  을 안하고 바로 보여주며, 그 외의 주소들은 /home/.htpasswd 에 있는 유  저의 이름과 패스워드를 비교하여 인증을 해서 출력을 하게 됩니다. 이것은 아래의 server-info에도 적용이 가능합니다.

<IfModule mod_info.c>

<Location /server-info>

SetHandler server-info

Order deny,allow

Deny from all

Allow from localhost

Allow from all

AuthName “administrator Area”

Authtype Basic

AuthUserFile /home/.htpasswd

AuthGroupFile /dev/null

require valid-user

satisfy all

</Location>

</IfModule>

1.3.4 에서 부터 새로 추가된 module이다. 이 기능은  http://servername/server-info의 url로 접근을 했을 경우 apache  에서 실행이 가능한 module들의 목록 등 apache의 전반적인 정보를  보여줍니다.

<Location /cgi-bin/phf*>

Deny from all

ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi

</Location>

1.1 버전 이전의 오래 된 버그를 악용하려는 사람들이 있습니다는 보고를 받았다. 이 버그는 아파치 일부분으로 제공한 CGI 스크립트와 연관 있습니다. 이 부분의 주석 처리를 없애면 이 버그를 악용하는 공격이 있을 때 phf.apache.org 상의 기록 스크립트로 방향 전환시킬 수 있습니다. 또는 support/phf_abuse_log.cgi 스크립트를 사용하여 여러분 직접

기록할 수도 있습니다.

<IfModule mod_proxy.c>

ProxyRequests On

아파치 웹서버를 Proxy서버로 사용할 때 on을 해줘야 합니다.

즉 프락시 서버 지시자로서 프락시 서버를 on 시킵니다.

<Directory proxy:*>

Order deny,allow

Deny from all

Allow from .your_domain.com

</Directory>

ProxyVia On

HTTP/1.1 “Via:” 헤더를 처리할 것인지 여부를 결정합니다.

(“Full”은 서버 버전을 포함하고 “Block”은 나가는 모든 자료에서 Via: 헤더를 제거합니다.) Off | On | Full | Block 중 하나의 값을 지정합니다.

CacheRoot “/usr/local/apache/proxy”

CacheSize 5

CacheGcInterval 4

CacheMaxExpire 24

CacheLastModifiedFactor 0.1

CacheDefaultExpire 1

NoCache a_domain.com another_domain.edu joes.garage_sale.com

캐쉬 기능도 사용하기 위해서는 다음 행의 주석을 풀어줍니다

(CacheRoot가 없으면 캐쉬하지 않음)

</IfModule>

가상 호스트

아파치 가상호스트 설정부분입니다. 하나의 아파치 웹서버에서 여러 개의 도메인 또는 멀티도메인, 또는 서브도메인등으로 여러 개의 웹사이트를 운영하고자 하신다면 가상호스트 설정지시자를 이용하시면 됩니다. 대부분의 경우 여러 개의 IP주소를 사용할 필요없이 하나의 IP주소를 사용하여 여러 개의 웹사이트를 운영할 수 있기 때문에 이름기반의 가상호스트(name-based virtual host)를 사용합니다.

VirtualHost: 여러분의 리눅스 박스에 여러 개의 도메인/호스트 이름을 관리하고 싶다면 각각에 대하여 VirtualHost 컨테이너를 설정 합니다. 가상 호스트를 설정하기에 앞서 자세한 설명을 <URL:http://www.apache.org/docs/vhosts/>에 들러 읽어보기 바란다.

가상 호스트 설정 내용을 점검해보기 위해서는 아파치를 실행할 때 명령행 옵션으로 ‘-S’를 사용합니다.

NameVirtualHost 12.34.56.78:80

NameVirtualHost 12.34.56.78

이름 기반의 가상 호스트를 사용하려면 사용할 IP 주소 (최소 1 개, 그리고 포트 번호)를 정의해주어야 합니다.

<VirtualHost xxx.xxx.xxx.xxx>

ServerAdmin ask@nextline.co.kr

DocumentRoot /home/nextline/public_html

ServerName www.nextline.co.kr

ErrorLog /home/nextline/public_html/logs/error_log

CustomLog /home/nextline/public_html/logs/access_log common

</VirtualHost>

ServerAdmin은 해당서버의 관리자 전자우편이며,

DocumemtRoot는 해당서버의 홈디렉토리이며,

ServerName은 해당서버의 도메인이며,

ErrorLog는 해당서버의 에러파일 위치이며

CustomLog는 로그파일위치와 포맷을 지정한 것입니다.

<VirtualHost _default_:*>

</VirtualHost>

Default 가상호스트 설정으로 위에서 설정되지 않은 다른 모든 호스트에 대해서 응답을

하고자 할 경우 설정해 줍니다.

APACHE_환경설정.pdf

 Posted by at 12:57 PM

오늘의 트위터 2010-08-28

 트위터  Comments Off on 오늘의 트위터 2010-08-28
Aug 282010
 

전군에 박 하사가 몇 명이나 될까요? 물량 딸리겠네. ㅋㅋ RT @latteemiele: 박하사탕도 있잖아요. ^^RT @yangheesong: RT @iamnick1025 할머니손칼국수는.. RT @yangheesong: 앗, 존슨탕에 존슨이 들어있어요? 그럼 할머니뼈해장국에는? RT @bintzrous 예전보단 별로요 옛날엔 진짜 존슨 많이 넣어주던데 ㅠ

@Hurphist 일본이 엔고로 달러를 주체 할 수 없던 80년대말 엔을 풀기위해 전국적 토목공사를 벌여, 결국 은행파산,경기 장기침체를 불러 왔죠. 한국은 다른 이유로 땅에 수십조를 잘못 퍼붓다가 후손들 고생만 시킬까 염려.

GNU의 대세는 미국이 잡고 있다고 생각되는데 우리는 뭘 잡아야 하나? RT @soorea: 일본이 근대화 시기에 운과 기세를 잡았다면 정보화 시대엔 우리가 잡았다고 본다. 문제는 샘성같은 재벌들이 그 운과 기세를 스스로 날려버리고 있다는 것. 제발 그들의 기득권을 해체하는 신국민권력이 등장하길 바란다.

노무현이 당시 우리가 품었던 꿈을 대표하여 대신한 메신저였다는 것은 확실하다. 그의 역사적 롤에 대해 그가 직접 언급한 말들에서 스스로도 이것을 깨달았다는 것을 알 수 있다. 또 하나, 사람들이 그 꿈을 더 이상 꾸지 않게 되었을 때, 즉 집단지성이 작동하지 않게 되었을 때 그가 쓰러졌다는 것도 확실하다. 노무현은 결코 위대하지 않다. 그를 만들어낸 사람들이 위대했던 것이다. 그들은 지금 어데 있는가? ….. 귀환단계에서 영웅의 운명은, 그를 행동하게끔 했던 대중들이 어떻게 반응하느냐에 따라, 확 달라진다! 그들이 계속 꿈을 꾸면, 영웅은 시대정신을 구현한 인물로 우뚝 서겠지만, 사람들이 (영웅이 괴물을 물리치고 가져온 선물=진리, 그러나 대중들에겐 부담스럽고 낯선 그것을 받아들이기를 두려워하여) 더 이상 꿈꾸기를 포기하면… 그리하여 영웅이 그것을 혼자 감당하는 상황이 오면, 그는 곧 죽게 된다. – 초모룽마, 서프라이즈

나는 수필보다 시에 소질이 있나보네. ㅎㅎㅎ RT @Yongwha_Jung: 페이스북이 수필이라면 트윗은 시와 같다. 그래서 주구장창하기보다는 가끔해야 그 맛이 제대로다.

@Asadal99: 한날당 식당 풍경: 쥐 나오는 식당, 걸레같은 행주, 아무나 무는 개를 키우고 손님에겐 불친절하고 거짓말만 하는 점원과 썩고 더러운 재료를 사용하는 주방, 돈독들린 주인

@dalppong: 총리나 장관 자리에 앉을려는 사람들에 대한 청문회는 조사는 딱 한가지면 족하다. 교육부 주관으로 기억력에 대한 지능 검사만 하면 된다. 몇년 전에 만나거나 접한 사람과 사건을 기억하는지 못 하는지 물은 후, 모른다면 병원으로, 안다면 집으로.

@ChungMinCho 산사에 앉아 있어도 분주함이 있고 저자 거리에 서 있어도 고요함이 있습니다. 바퀴살이 쉴새 없어도 바퀴중심은 고요합니다. 분주한 일상이지만 내면에 그 고요함이 흐르기를…

@byeastlaw 김연아 때문에 수많은 글들이 올라온다. 그글 올릴 에너지로 청문회 좀 파헤쳐줌 안되나? 김연아일은 지들끼리 문제고 청문회는 우리모두의 미래가 걸린 일인데…

@free_being: 오서와 연아의 지난 역사와 현재를 이해하기 쉽게 정리해준 글이 있네요. 예상은 하고 있었지만… http://bit.ly/acIBRP

데탑 필요없다는 걸 보여주고 싶은 모양. RT @ryueyes11(Rumors) 애플에서 Mac(데스크탑) – iOS(아이패드, 아이폰) 전환이 가능한 하이브리드형 데탑개발에 나섰다는 소식입니다. 우려먹기의 대가 잡스의 상상력은 언제나 재밌군요 #tb_twitterhttp://bit.ly/bIYt6a

이쯤에서 다시 보는, 한비자가 말한 “나라가 망할 10가지 징조” 1.법(法)을 소홀히 하고 음모와 계략에만 힘쓰며 국내정치는 어지럽게 두면서 나라 밖 외세(外勢)만을 의지하다면 그 나라는 망할 것이다. 2.선비들이 논쟁만 즐기며 상인들은 나라밖에 재물을 쌓아두고 대신들은 개인적인 이권만을 취택하면 그 나라는 망할 것이다. 3. 군주가 누각이나 연못을 좋아하여 대형 토목공사를 일으켜 국고를 탕진(蕩盡)하면 그 나라는 망할 것이다. 4.간연(間然)하는 자의 벼슬 높고 낮은 것에 근거하여 의견(意見)을 듣고 여러 사람 말을 견주어 판단하지 않으며 듣기 좋은 말만하는 사람 의견만을 받아들여 참고(參考)를 삼으면 그 나라는 망할 것이다. 5.군주가 고집이 센 성격으로 간언은 듣지 않고 승부에 집착하여 제 멋대로 자신이 좋아하는 일만하면 그 나라는 망할 것이다. 6.다른 나라와의 동맹(同盟)만 믿고 이웃 적을 가볍게 생각하여 행동하면 그 나라는 망할 것이다. 7.나라 안의 인재(人才)는 쓰지 않고 나라 밖에서 온 사람을 등용(登用)하여 오랫동안 낮은 벼슬을 참고 봉사한 사람 위에 세우면 그 나라는 망할 것이다. 8. 군주가 대범하여 뉘우침이 없고 나라가 혼란해도 자신은 재능(才能)이 많다고 여기며 나라 안 상황에는 어두우면서 이웃적국을 경계하지 않아 밖으로 적국(敵國)의 힘을 빌려 백성들은 착취 하는데도 처벌하지 못하면 그 나라는 망할 것이다. 9.세력가의 천거(薦居)받은 사람은 등용되고, 나라에 공을 세운 지사(志士)는 내 쫒아 국가에 대한 공헌(公憲)은 무시되어 아는 사람만 등용되면 그 나라는 반드시 망할 것이다. 10. 나라의 창고는 텅 비어 빛 더미에 있는데 권세자의 창고는 가득차고 백성들은 가난한데 상공업에 종사하는 사람들은 서로 짜고 이득을 얻어 반역(反逆)도가 득세하여 권력을 잡으면 그 나라는 반드시 망할 것이다. 우리나라에 한비자 살고 있나요? -_-

매우 좋은 모델이군요. RT @inno_future ‘애드스토어’라는 개념 어떨지? 광고주들이 홍보하고 싶은 페이지 링크를 애드스토어에 등록시켜놓으면 블로거들이 그 중 하나를 골라 자신의 글 내부(배너 아님)에 링크를 소개하고, 독자가 그 링크를 클릭하면 블로거와 애드스토어가 수익을 나눠갖는 모델.

@maasiah: 신은 우리에게 성공을 요구하지 않습니다.신은 다만 우리가 노력하기를 바라고 있습니다.- 마더 테레사- 노력의 과정이 성공이겠지요

@sssswwwwhh 성공하는 사람의 특징은 미래를 그리워 하고, 실패하는 사람들은 과거를 그리워 한다.

@lovedweb “일본이 조선을 강제 점령한 지 100년” ‘친일’은 지금도 계속된다 – http://bit.ly/cBBHsS #Blogger_kr

@ChungMinCho: 내가 이해할 수 있는 사람 아래서는 성장하고, 내가 이해할 수 없는 사람 아래서는 성숙합니다. 성장과 성숙…모두 인내와 겸손의 열매입니다.

그러고 보니 한번도 전화기를 집에 두고 나다닌 적이 없네요. RT @hongsunkim @ShesMD: 스마트폰으로 변경한 분들의 라이프사이클의 변동사항: 아침에 핸드폰을 두고 오던사람도 스마트폰은 들고나온다.. 왜? 트위터나 날씨체크부터 하면서 나와서! 와이파이존을 찾아다닌다. 왜? 공짜

역사의 뒷편에는 정의와 진실을 주관하는 신이 계실 것이기 때문이다. — 지식의 정점에 있는 철학자가 아니라 이웃을 사랑하고 인류를 위해 몸 바쳐 노력한 사람이 되고 싶었다. — 나의 자서전은 미래 세상의 주인공들에게 보내는 마지막 인사이자 부디 행복하기를 바라는 기도이기도 하다. — 김대중 자서전 서문에서.

삼성, 대부분의 지분이 외국 자본에게 넘어가 있고 납품하는 중소기업을 쥐어짜 나오는 이익은 일부가 독점하는 구조. 투자의 대부분도 한국땅에 이루어지지 않고 삼성장학생으로 대표되는 한국 민주주의를 왜곡시키는 기업, 이 땅에 존재할 가치가 과연 있는 것일까? RT @nowandbe: 삼성의 언플…정말 언플만은 자제했으면 하네요. RT @6sungjin: 갤럭시S 스노우화이트 제품 출시 http://durl.me/2b7fh 아 썀쑝! 무슨 모든 뉴스에 사진 똑같고. 아주 갤럭시 흰색이 난리치는 것처럼 기사를 써놨네요.

오랫만에 지방에 오면 지방 좀 분해시키고 가야 한다.

이런 불균형을 빠르게 해소하기 위해서는 소통의 리더십이 필요한데… 불균형도 압축해소해 봅시다. RT @kwlee7 압축근대화로 인해 전근대와 근대,탈근대의 특징들이 공존하고 있는 한국사회.압축근대화로 경제성장은 이뤘지만 많은 불균형과 모순들이 제도와 관행,문화 가운데 산적해서 사회구성원들에게 고통을 주고 별로 행복하지 못하게 하고 있습니다.

 Posted by at 11:33 PM

워드프레스에서 게시판을 사용하는 방법

 워드프레스  Comments Off on 워드프레스에서 게시판을 사용하는 방법
Aug 272010
 

워드프레스는 매우 훌륭한 웹사이트를 손쉽게 만들 수 있게 해주지만 우리나라에서 홈페이지 제작에 널리 사용하는 게시판 형태의 기능을 제공하지는 않는다. 게시판 기능을 제공하기 위해 디자인된 forum 형태의 여러가지 플러그인들이 있는데 bbPress, WP-forum, Mingle forum 등의 플러그인들을 테스트해 보았지만 우리의 게시판 이용 문화와는 많이 동떨어져 보인다.

여러가지 궁리 끝에 워드프레스와 제로보드XE를 결합해서 사용하는 방법을 궁리하던 중 워드프레스에 Embed Iframe 이라는 플러그인을 설치하면 어떤 외부페이지든지 embeding 형태로 불러올 수 있다는 것을 알게 되었다. 이 홈페이지에서 게시판들은 제로보드 XpressEngine으로 운영되며 각 페이지에 iframe 형식으로 게시판을 불러온 것이다.

 Posted by at 2:57 PM

구글ㆍ애플 `폭탄선언`…통신 지각변동

 IT  Comments Off on 구글ㆍ애플 `폭탄선언`…통신 지각변동
Aug 272010
 

애플과 구글발 폭탄선언이 계속되고 있다. 글로벌 통신시장의 판도를 뒤바꿀 혁신적인 서비스를 잇따라 발표하고 있는 것이다. 이미 아이폰과 안드로이드를 통해 스마트폰 혁명을 일으키고 있는 이들은 고전적인 통신서비스업체들의 영역까지 깊숙이 파고들며 영향력을 확대하고 있다. 이에따라 세계 각국의 통신 및 방송업계는 보다 힘든 도전에 직면하게 됐다.

26일 외신과 관련업계에 따르면, 구글은 지메일(G-mail)을 이용한 인터넷 전화 서비스를 하겠다고 밝혔다. 애플 역시 아이폰4를 통해 와이파이 무료 영상전화인 `페이스타임’ 열풍을 불러일으킨 데 이어, 내달 1일 예정된 기자회견에서 이를 지원하는 아이팟터치 또는 인터넷망을 활용한 새로운 개념의 인터넷TV 서비스를 선보일 것으로 예상된다.

두 회사가 발표한 이들 서비스는 광범위하게 확보한 회원 및 이용자들을 기반으로 기존 인터넷망과 공중 무선망인 와이파이를 이용해 공짜 전화를 제공하는 것이 핵심이라는 점에서, 세계 기존 통신서비스업계에는 치명적인 타격이 될 전망된다.

우선, 구글이 이날 발표한 서비스는 G메일을 이용해 다른 사람의 전화번호로 직접 전화를 걸 수 있다. 그동안 G메일은 음성ㆍ영상 채팅을 제공해 왔으나, 컴퓨터에서 일반 전화와 같이 다이얼을 통해 상대방의 휴대폰 또는 구글 보이스 번호로 전화를 걸 수 있게 된 것이다. 구글은 `기즈모5’와 `글로벌 IP 솔루션스’ 등 인터넷전화(VoIP) 기업들을 잇따라 인수하며 통신서비스시장 진출을 모색해 오던 터라, 기존 스카이프 등 인터넷 전화 업체들이 긴장하고 있다. 미국에서 최초로 시작될 이 서비스를 이용하면 미국과 캐나다 통화는 무료이며, 영국 독일 프랑스 중국 일본 등은 분당 2센트로 저렴하다.

구글은 세계 최대의 인터넷 데이터베이스와 연결망, 가입자수를 갖추고 있는데, 이러한 인프라를 곧바로 통신 서비스로 전환할 수 있다는 점에서 스카이프 등 인터넷전화는 물론 이동통신, 국제전화 사업자들에게까지 큰 타격을 줄 것으로 예상된다. 특히 안드로이드폰은 물론 애플 아이폰 마저 구글 계정을 활용해야 스마트폰을 제대로 활용할 수 있는 상황으로 G메일 인터넷 전화는 통신서비스 시장에 큰 파괴력을 행사할 것으로 보인다. 기존 서비스의 가입자수로는 상대할 수가 없게 된 셈이다.

애플 역시 제품 기능 개선을 통해 또 다시 통신 사업자들을 위협하고 있다. 애플은 이미 아이폰4에 와이파이망을 이용해 무료통화가 가능한 `페이스타임’을 탑재해 파장을 불러일으키고 있다. 특히 애플은 내달 1일 예정된 깜짝 기자회견을 열겠다고 밝혀 이 기능을 탑재한 `아이팟터치’ 신제품을 출시하는 게 아니냐는 관측이 나오고 있다. 이 경우 이용자들은 통신요금에 대한 부담 없이 저렴한 가격의 기기 구입만으로 아이팟이나 아이폰사용자끼리 페이스타임을 이용할 수 있어 서비스 범위와 파장이 보다 확대될 것으로 예측된다.

또한 애플은 이날 인터넷과 연결돼 기존 아이튠스 콘텐츠를 그대로 이용할 수 있는 애플TV 서비스를 공개할 것이라는 예상도 나오고 있다. `아이TV(iTV, 가칭)’라는 이 스마트TV는 아이폰ㆍ아이패드와 동일한 iOS 운영체제를 이용해 아이튠스 활용은 물론, 팍스TV 등 다른 콘텐츠 제공업체와 제휴해 99센트만 내면 48시간 시청이 가능한 서비스를 공개할 것이라는 관측이다.

박지성기자 jspark@

< Copyrights ⓒ 디지털타임스 & dt.co.kr, 무단 전재 및 재배포 금지 >

 Posted by at 11:34 AM

TED를 TV에서 볼 수 있는 시대가 온답니다.

 IT, TED  Comments Off on TED를 TV에서 볼 수 있는 시대가 온답니다.
Aug 232010
 

from TED.com

제가 가끔 소개하는 세계 최고의 온라인 강연/세미나를 들을 수 있는 TED (Technology, Entertainment and Design) 가 일반인들을 위해 또 한 차례 진보를 한다는 소식입니다. 블로그를 통해서는 멋진 TED 강연들을 소개한 바 있는데, TED 의 감동을 느끼고 싶으신 분들은 아래 연관글들을 참고하시기 바랍니다.

연관글:
2010/03/29 – 소비자 중심의 사회, 소비자가 원하는 것은?
2010/03/22 – 창의력 죽이는 학교시스템 어떻게 개혁할까?
2010/02/13 – 빌 게이츠의 감동적인 TED 연설
2010/01/21 – 디자인 씽킹, 크게 생각하라!
2009/03/28 – Wii 리모트 컨트롤로 3D 가상현실을 구현하다.

전세계 최고의 강사들이 들려주는 이런 명강연들이 그동안 TED.com 을 통해 수백 개가 전세계의 언어로 많은 사람들의 봉사를 통해 자막을 달고 알려졌습니다. 우리나라에도 번역을 위해 힘을 쓰는 많은 자원봉사자들이 있고, 개인적으로도 2개의 강연을 리뷰하는 약간의 기부도 하였습니다.

2010년 5월, TED 를 드디어 TV 에서 접할 수 있는 Open TV 프로젝트가 소개 되었습니다. 수많은 TED 강연들을 전세계의 방송사들 중에서 파트너가 된 곳들이 가장 기본적인 가이드라인 (편집하지 않고, 중간에 광고를 넣지 않으며 강연을 잘라서 방영하지 않는 것 등) 만 지킨다면 공짜로 방송할 수 있습니다. 반드시 라이센스를 받아야 하지만, 라이센스를 받으면 강연 뿐만 아니라 해당 강연과 관련한 프로그램을 제작하는 것도 허용이 됩니다. 예를 들어서, 강연 전후에 국내 전문가들과의 토론 프로그램을 배치하거나, 연관된 제작 프로그램을 같이 방송할 수 있습니다.

현재 스웨덴의 교육방송 (Swedish Educational Broadcasting Company), 미국의 LinkTV, 아프리카의 KissTV, 파키스탄 GeoTV, 유럽의 European Broadcasting Union 과 같은 곳들이 TED 방송권을 라이센스를 받아서 파일럿 프로젝트를 진행하고 있습니다. 국내에서도 케이블이나 EBS 등에서 접촉을 통해 보다 많은 사람들이 TED 강연의 감동을 같이 나눌 수 있게 되었으면 좋겠습니다.

아래 방송 관계자 분들을 위해 링크를 소개합니다.

링크:
Information for Broadcasters: Open-Source TV

 Posted by at 2:29 PM

PHP보다 더 쉽고 ASP보다 더 강력한 이름 레이저(Razor)

 IT  Comments Off on PHP보다 더 쉽고 ASP보다 더 강력한 이름 레이저(Razor)
Aug 232010
 

2010/08/23 12:47
PHP보다 더 쉽고 ASP보다 더 강력한 이름 레이저(Razor)
SOFTWARE

PHP보다 더 쉽고 ASP보다 더 강력한 이름 레이저(Razor)
현지 시간으로 7월 2일 마이크로소프트사의 개발부문 부사장직을 맡고 있는 스캇구의 블로그에 재미있는 내용이 포스팅 되기 시작했다. 이름도 생소한 레이저(Razor)라는 웹 개발 기술에 관한 이야기였다.

이미 마이크로소프트사에서는 ASP, ASP.NET, ASP.NET MVC, ASP.NET AJAX 등 강력하고 폭 넓게 사용되는 웹 기술을 충분히 가지고 있는 상황에서 또 하나의 웹 기술이 추가로 발표된다는 사실만으로는 그렇게 관심을 끌만한 것은 아니었다. 그럼에도 불구하고 스캇구의 블로그에서 소개된 레이저에 대한 개발자들의 반응은 놀랄만큼 뜨거웠다.

레이저라고 새롭게 명명된 이 기술을 한 마디로 정리하자면 ‘엄청나게 간편해진 웹 기술의 새로운 표현계층’이라고 정의 할 수 있다. 새로운 표현계층이라고 어렵게 표현한 이유는 처음부터 끝까지 완전히 새롭게 다시 만들어 낸 기술이 아니기 때문이다. 레이저가 가지고 있는 가장 큰 강점은 쉬우면서 검증되고 안정된 강력한 플랫폼을 기반으로 둔 점이다.

PHP의 경우는 개발이 쉽고 간편하지만 모든 기능이 자체 엔진에 포함돼 있다. 따라서 기능을 개선하거나 추가 될 때는 엔진에 대한 직접적인 변화가 요구된다. 그래서 오늘날 같이 다양한 기능들을 모두 갖추기까지는 많은 시간이 필요했다. 하지만 레이저는 이미 충분한 기능들이 다 포함돼 있는 최신버전의 .NET Framework 4.0을 기반으로 하고 있기 때문에 완성도나 기능에 있어서 더 많은 장점을 보유할 수 있는 기반이 확보된 상황에서 시작한다.

<그림 1> 레이저의 구현 계층
레이저는 <그림 1>에서 보는 바와 같이 가장 하위에는 .NET Framework 4.0을 가지고 있고 그 위에 ASP.NET이 있다. 레이저는 가장 위에 구현돼 있다. ASP.NET Web pages라고 되어 있는 부분이 바로 레이저라고 이름 지어진 부분이다.

최상위 계층에 존재하고 있기 때문에 가볍게 사용할 수도 있지만 하위 계층인 ASP.NET 혹은 .NET Framework 상에 있는 모든 기능을 호출해서 완성도 높은 결과물을 낼 수도 있다. 과연 그렇다면 얼마나 간단하기 때문에 쉽다고 하는 것일까? 아래 <리스트 1>을 보면 기존에 볼 수 있는 ASP.NET에서 사용할 수 있는 스타일이다. <%%>을 로만 바꾸면 PHP 소스와도 크게 다르지 않다.

<리스트 1> ASP.NET 타입의 소스
하지만 <리스트 2>의 레이저 타입의 소스를 보면 갑자기 멍해진다. ‘정말 저렇게 해도 되는 거야?’라는 의구심이 들 정도다. 레이저에서는 @를 이용해서 소스의 시작을 알린다. 그래서 처음에는 의구심도 들고 사용 중 약간의 혼란이 있을지도 모르지만 손에 익으면 정말 빠르게 개발을 진행하고 있는 자신을 발견하게 될 것 같다.

<리스트 2> 레이저 스타일의 소스
레이저가 문법만 쉬워진 것은 아니다. 개발환경도 편리하게 바뀌었다. 레이저를 출시하면서 레이저를 가볍게 개발 할 수 있는 전용 개발도구도 함께 발표되었는데, 이름이 웹매트릭스(WebMatrix)로 지어졌다. 웹매트릭스는 홈페이지(http:// www.microsoft.com/web/webmatrix/)에서 웹상에서 바로 설치할 수 있는데 한 번의 설치로 웹서버, 데이터베이스 그리고 소스를 편집할 수 있는 에디터 등 필요한 요소를 일괄적으로 설치할 수 있다. 웹매트릭스와 함께 제공되는 환경은 다음과 같다.
– ASP.NET “Razor”
– InternetInformationServerExpress
– SQLServerCompactEdition

[ 출처 : 영욱닷컴 ]

 Posted by at 2:18 PM

WISA 2010 학회 참석

 새소식  Comments Off on WISA 2010 학회 참석
Aug 232010
 

우리나라 제주도에서 매년 8월 열리는 국제정보보호응용학회인 WISA2010에 운영위원으로 참석합니다.
http://www.wisa.or.kr/ 이 학회는 8.24-26간 라마다플라자제주 호텔에서 열리며 4편의 초청강연과 36편의 논문이 발표됩니다.

 Posted by at 1:28 PM

오늘의 트위터 2010-08-20

 트위터  Comments Off on 오늘의 트위터 2010-08-20
Aug 202010
 

[어떤 다짐] 집채만한 파도를 보고서 처음엔 누구나 몸을 떨었을 것이다. 다들 앞다퉈 꽁무니를 빼던 어느 순간, 그것과 마주해 물결 위에 올라탈 생각을 한 이가 있었을 것이다.(서핑의 탄생); 휘몰아치는 바람, 그 앞에서 모두 머리를 조아릴 때 돛을 펴고 나아갈 생각을 한 이도 있었을 것이다.(범선의 발명); 그런 이들이 문 연 길을 따라 인류는 난관 속에서도 한걸음씩 진보했을 것이다. 나 자신, 역경이 다가올 때 시련이 닥쳤을 때, 그때 그들을 떠올리기로 하자.

주변의 밥집들이 점점 우리 맛을 잃어간다. 탕 찌개 볶음 심지어 기본 밑반찬조차 정체불명일 때가 많다. 궂은 일은 하나둘 수입인력에게 넘겨주면서 홀서빙에 이어 주방까지 그들 담당이 된 결과인 듯. 육체노동이 외국이민자들 손에게 맡겨지는 것은 먹고살만한 나라들이 겪게 되는 일반적 현상이다. 지금 침체의 늪에서 헤어나지 못하고 있는 일본이 경제부흥에 대한 기대를 휴먼로봇에 거는 것도 이런 맥락이라고 한다. 부국들은 고령화에 따른 인력부족이 필연적이거니와 3D노동은 결국 인간계층사다리를 내려가다보면 로봇의 손에 떨어질 거란 계산. 그때가 되면 로봇은 자동차 휴대폰 PC와 같은 지위를 차지할 거란 전망에 근거한다. 그럴 경우 지금 로봇산업의 선두주자인 일본으로서는 40년전 메이드인저팬 자동차 돌풍 때와 같은 글로벌 시장 재패의 영화를 다시 누릴 수 있을 거라는 기대 속에서 절치부심하고 있다.

RT @kimjuha 상대를 “이해”하려면 Under.상대밑에 Stand.서야 한다고 배웠습니다.RT @Romi1052i: 이유는 요 ? RT @kimjuha: Understand 입니다^^ RT @punna_: @kimjuha 주하님이 가장 사랑하는 한 단어는요? ^^;

RT @iam1810: RT @hrmanceo: 첫인상이 좋은 사람들의 공통점은 1)차분하다. 2)상대방의 눈을 보고 천천히 말한다. 3)위트가 풍부하다. 4)손아랫사람에게도 예의가 바르다. 5)무엇인가를 배우려는 자세로 남의 이야기를 듣는다. 6)적극적이고 호기심이 강하다.

우리도 지금 이런 처지죠. RT @atmostbeautiful 조선시대 역관은 이땅 식자층의 한 상징처럼 읽힌다;국경너머를 오가며 대륙의 선진문물과 실용학문에 일찍 눈떴던;사실상의 교역중개상으로 시장과 국제무역의 논리를 꿰고 있었던;하지만 상전을 둔 중인신분으로 정치적 힘은 약했던;변방 한구석에 깨어있어 심란했던

RT @yynami @lukeinssaipan 체벌없이 아이들을 다루는 것이 힘들다는 건 변명이다. 체벌이 아닌 다른 방법을 생각해내는것이 선생의 책무다. 애들을 패서 훈육하는 건 아무나 다한다. 폭력에 굴하지 않는 인간이 몇이나 되겠는가?

RT @yangheesong @freesofe 그랬어 그래서 피곤한 거였군 @mojito0: @braindevelop: 우리나라는 일하는 시간이 세계 2위이며 노는 시간이 세계 3위인 잠을 정말 안자는 국가랍니다 이런여러분들이 자랑스럽습니다^^

이문열이 지난10년간 탄압당했다고하길래 검찰이나 경찰에 끌려간것도, 세무조사도 받은것도, 밥줄이 끊긴것도 아니고 이전정부와 철학이 틀리기때문에 중용만 안된것뿐인데 그걸 탄압이라고 하나요?

KBS 수신료를 물가연동 고려??? 국민들 월급이나 물가연동하고 이런 말을 해라.

선대의 역사를 접하다가 문득 왜 멸망했을까?하고 궁금했습니다. 그건 모두 정치 세력의 내부 분열이었더군요. 찬란했던 (고)조선, 강력했던 고구려, 해상대제국 백제, 안방호랑이 신라, 고려, 조선등 모두 지배권력들의 내부 분열이 주원인… 백성은 싸워 이길 수 있었는데 정치 지도자들이 헤쳐 버려서 멸망했다. 지금의 우리나라의 정치상황은 마치 선대의 역사를 더듬고있는 형국같다. 우리나라 정치지도자들이 똘똘 뭉쳐서 일본이나 이스라엘 처럼 강력한 나라로 만들어 주면 좋을텐데… 날이면 날마다 이전투구로 날밤을 세우고 있으니 한심하다.

RT @logstn 적절한표현이십니다!!! RT @namuori: 쇼 폰스토어가 사람들의 자발적인 DDoS 공격으로 KO되었군요. ㅎㅎ

김재철은 PD수첩 불방 결정 권한이 있는데 나는 왜 김재철 짜르는 권한이 없지? RT @jonghee1 PD수첩 최승호 PD “MBC 역사상 있을 수 없는 일” http://j.mp/c8RfAI 17일 MBC PD수첩 ‘4대강 수심 6m의 비밀’ 편이 김재철 사장의 방송 보류 결정으로 결방된 것에 대해 최승호 PD…

@invictus3207: 대한민국은 지금 상중입니다..언론의 자유가 죽었거든요..빈소는 mbc입니다…조의금은 촛불로 대신 받겠습니다..

태국에서 들은 코끼리의 인생. 똑똑한 놈은 서커스를 시키고, 중간쯤 되는 놈은 노동을 시키고, 머리나쁜 놈은 동물원에 보낸다. RT @hajinJ 야생을 살아가는 자들이 동물원 친구들과 대화를 해 보면 금방 누가 더 자존감을 가지고 사는지 알 수 있다. 동물원 생활을 해 본 자라면 잠시 그들의 안정을 부러워할지 몰라도 다시 동물원에 들어가 자유를 잃어버리는 것을 반기는 경우는 드물다.

RT @answerstat: “자살” 거꾸로 읽으면 “살자” 스트레스[stressed] 꺼꾸로 읽으면 디저트[desserts] 입니다. 관점의 차이죠 ^^ 당신은 지금 긍정적인 면을 보시나요 부정적인 면을 보시나요. 한순간의 관점이 당신의 미래를 바꿉니다.

@PeterKCM: 꿈을 팔로윙하라! 꿈이 나를 맞팔하리니…

@ChungMinCho: “사랑이 식었습니다.” 아닙니다. 사랑이 식은 것이 아닙니다. 바람처럼 부풀었다가 바람처럼 빠져나간 것은 사랑이 아니라 욕망입니다. 사랑은…영원히 꺼지지 않는 불입니다.

RT @hongsunkim: 확실히 140자에 집어넣는 언어는 한글/일본어가 최고라는 생각 (중국어는 잘 모르겠지만). 영어문장을 그냥 번역해도 확 줄어드니까. 앞으로 한일이 트위터 트래픽을 주도하지 않을까? ㅎㅎ

RT @androinews: RT @Seihakustyle 창조력은 대중과 다른 선택을 하는 것이다. 단지 반대되는 생각만으로도 내면의 창조성이 꿈틀거리는 것을 느낄수 있게 된다.

 Posted by at 1:41 PM

스마트폰 보안 문제 ‘현실로’

 IT, 아이폰, 정보보호  Comments Off on 스마트폰 보안 문제 ‘현실로’
Aug 172010
 

스마트폰 보안 문제 ‘현실로’

전 세계 스마트폰 보급률이 20%를 육박하는 가운데 `아이폰`과 안드로이드폰 등의 보안 문제가 현실화되고 있다.

독일 연방정보보안청은 4일(현지시각) “최신 애플 운용체계(OS) `iOS`를 탑재한 아이폰, 아이패드, 아이팟에서 일부 웹사이트나 PDF파일을 열면 해커가 비밀번호, e메일 등을 엿볼 수 있다”면서 “보안패치가 배포될 때까지 해당 기기에서 PDF 파일을 열지 말아야한다”고 밝혔다.

이번 경고는 `iOS 버전 3.1.2·4.0.1`을 사용하는 아이폰, `3.2·3.2.1`을 사용하는 아이패드, 그리고 `3.1.2·4.0`을 사용하는 아이팟터치에 해당된다. 아직 이런 보안 취약점을 파고든 공격 사례는 보고되지 않았다.

앞서 3일에는 시만텍 등 보안업체가 iOS의 취약점 때문에 애플 제품들이 해커 마음대로 조종되는 `노예`가 될 수 있다고 지적한 바 있다. 본지 3일자 12면 보도

보안 문제는 애플 제품에 국한되지 않는다.
안드로이드 OS에서도 `월페이퍼` 등 프로그램을 사용할 때 전화번호와 휴대폰 고유번호 등이 유출될 수 있는 것으로 알려졌다. 안드로이드 스마트폰을 판매하는 SK텔레콤은 공식 트위터를 통해 `애플리케이션 사용에 주의하라`는 공지를 띄우기도 했다.

스마트폰에서 이처럼 동시다발적으로 보안 위협이 제기된 적은 이번이 처음이다. 내년 말이면 미국 등 여러 국가에서 스마트폰이 일반 휴대폰보다 더 많이 판매될 것으로 예상되면서 문제가 더욱 심각해질 것으로 보인다.

스마트폰의 경우 OS를 설치하고 각종 애플리케이션을 내려받는 등 PC와 유사하게 이용하지만 PC에 비해 보안 위협에 더 취약하다. PC는 각종 보안 제품으로 해킹이나 피싱 등에 대비하고 있지만 스마트폰은 아직 보안 제품이 보편화되지 않았기 때문이다.

한편 애플 대변인은 “보도된 보안 이슈에 대해 알고 있고 이용자들의 소프트웨어를 업데이트할 방법을 이미 마련해놓고 있다”고 밝혔지만 정확한 배포 일자는 발표하지 않았다.

지혜기자 전자신문 gotit@etnews.co.kr

 Posted by at 12:22 PM