이번에 나의 Intel Macbook 에다 산지 거의 2년이 다되어가는 마당에 이제서야 개발환경을 구축해보았다. 다 남의 자료 링크를 한 것이지만ㅋㅋㅋ 나름 정리를 해보았으니 필요한 사람들이 있음 참고하기 바란다.


1. APM 설치

MacOS 가 FreeBSD 기반이므로 당연히 APM 설치 된다. 소스설치도 되고 MacPorts 패키지 설치도 가능하다. 뿐만아니라 WinAPM 처럼 어플리케이션으로도 구동이 가능한데, 본인은 마지막 방법으로 설치를 했다. 뭐 실제 서비스를 돌릴 것도 아니고 개발만 할건데 여러모로 어플리케이션이 좋다고 본다.

아래 링크에서 MAMP 를 다운 받아 설치 하면 끝. 이때 MAMP 와 MAMP pro 가 있는데, pro 는 상용버젼이니 그냥 MAMP 를 설치하면 되겠다.
http://mamp.info/en/download.html

자세한 인스톨 안내는 아래 링크에...
http://niceview.egloos.com/2565550


2. Xcode 설치

MacOS 에는 기본적으로 gcc 와 같은 컴파일러가 설치되어 있지 않다. 따라서 MacPorts 를 설치하려고 해도 소스컴파일이 되지 않으므로 필수적으로 Xcode 는 설치를 해야한다. 물론 다 설치 할 필요는 없고 필요한 부분만 골라서 설치를 해도 된다. Xcode 는 apple 사이트에서 다운을 받으면 되는데 자세한 내용은 아래 링크를 참고하기 바란다.

Xcode 는 3.0 은 10.5.x Leopard 전용이니 10.4.x Tiger 나 이전 버전 사용자는 2.5 를 받으면 되겠다.

http://wiki.bawi.org/index.php/Mac%EC%97%90%EC%84%9C_Rails_%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD_%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0


3. MacPorts 설치

아래는 Ports(Redhat 의 rpm 과 같은 패키지 관리툴 이다.)의 맥 버젼 격인 MacPorts 의 설치 방법이다. 영문이긴 하나 이해하는 데에 어려움은 없을 듯. (구버젼은 MacPorts 가 아니라 DarwinPorts 라고 불리웠던 듯 하다.)
http://trac.macosforge.org/projects/macports/wiki/InstallingMacPorts


4. ETC

그외 Eclipse 와 같은 IDE 가 필요하겠지만 설치 방법은 Mac 이라고 특별할 것이 없으므로 pass 한다. 다만 유용한 프로그램인 듯 싶으니 Eclipse 와 iterm 정도는 쓰는 것이 좋을 듯 하다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/192

댓글을 달아 주세요

까먹기 쉬운 MySQL 활용 팁을 한가지 소개한다.

가끔 DB 의 내용을 txt 파일이나 csv 로 변환하여 엑셀등의 프로그램으로 읽어야 하는 경우가 있다. 이 때마다 (워낙에 자주 있는 일이 아니라 그렇겠지만) 매번 까먹어서 다시 책이나 인터넷을 뒤적거리곤 하는데, 그래서 한번 정리해봤다. 나 같은 사람들이 분명 또 있을터, 그런 사람들에게도 도움이 되었음 한다.

SELECT col1, col1, col3 INTO OUTFILE "~/outfile.csv" FIELDS TERMINATED BY ',' FROM mem_main;

  • INTO OUTFILE "file name" : select 의 결과를 저장할 파일을 지정함
  • 파일의 경로를 명시하지 않을 경우 default 로 mysql 설치 디렉토리에 저장된다.
  • FIELDS TERMINATED BY '구분자': 각 columns 을 구분할 구분자를 지정함 (*.csv 로 저장하여 엑셀에서 파일을 읽기를 원한다면 공백 또는 , 로 지정해야 함)

이상으로 간단하지만 아주아주 유용한 팁을 알아보았다. ^^

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/187

  1. Subject: Mysql select 결과를 파일로 저장하기.

    Tracked from Joo's 2nd Blog 2008/04/14 16:23  삭제

    MYSQL::SELECT 쿼리 결과를 파일로 저장하기 SELECT cols INTO OUTFILE "~/file" FIELDS TERMINATED BY ',' FROM table ; into outfile 을 쓰면 됩니다. 좋은 정보를 주셔서 감사..

댓글을 달아 주세요

일전에 소개한 바 있는 그리스몽키 스크립트를 이용하여, 특정 사이트의 로그인을 자동으로 해주는 초간단 스크립트를 만들어 보았다. 사실 다 만들고 나니까 초간단이지 어리버리 하다보니 만드는데 10시간은 족히 걸린 듯 하다.

만들면서 힘들었던 점, 느낀 점이라면,

  1. 생경한 DOM control 이 힘들었고,
  2. 참 공부를 많이 해야겠구나 란 생각과
  3. 드디어 해냈구나 라는 성취감?? ㅋㅋ 이 들었다.
  4. Tistory 에도 테터툴즈나 다른 설치형 블로그처럼 소스코드 하이라이팅 플러그인이 있었음 좋겠다. 아님 설치라도 가능하게 해주던지.. ㅡ.ㅡ 소스코드 올릴때 마다 색깔 입히기 너무 힘들어 ㅠ.ㅠ
아래 초간단 소스코드와 함께 설명을 참고하기 바란다.


Source Code
1  // ==UserScript==
2  // @name        Login Auto Manager
3  // @namespace   http://goora.net
4  // @description Manage Login Automatically
5  // @include     http://somewhere.com/login/*
6 // ==/UserScript== 7 8 var id = "Your ID"; 9 var pwd = "Your Password"; 10 11 var form = document.getElementsByTagName("form")[0]; 12 var input = document.getElementsByTagName("input"); 13 eval("input[0].value='" + id + "'"); 14 var form_pwd = document.getElementById("pass_word"); 15 eval("input[1].value='" + pwd + "'"); 16 17 form.submit();


Concepts

컨셉은 간단하다.
  • 자동 로그인을 원하는 페이지의 DOM 구성이 하나의 form 또는 로그인 관련 폼이 가장 첫번째 form element 이고, (11번 라인)
  • 그 form 의 첫번째 input 태그가 id, 두번째가 password 일 경우를 가정했을 때, (13, 15 번 라인)
  • http://somewhere.com/login 이라는 페이지에 있는 각각 id, pass_word 란 name 을 갖는 input 태그의 value 에 (12, 14 번 라인)
  • 각각 id 와 pwd 변수에 담아 놓은 "Your ID", "Your Password" 를 대입하고 (13, 15 번 라인)
  • 이상의 input 태그들이 들어있는 form 을 submit 하는 것이다. (17 번 라인)
만약, DOM 의 구성이 이와 다르다면, 적절히 그 순서를 11, 13, 15 번 라인에서 "[순서]" 와 같이 수정해 주면 잘 작동할 것이다.


Details

이상의 Concepts 을 구현하기 위하여 처음에는 "document.formname.submit();" 과 같이 단순하게 시도를 해봤지만 역시나 실패했다. 그래서 그리스 몽키의 메뉴얼인 "Dive into Greasemonkey" 를 찾아보니 form submit 과 관련된 아래와 같은 내용이 있었다. (친절히 번역도 한번 해봤다.. ㅋㅋㅋ)

A submit event fires when a user submits a form in the usual way, i.e. by clicking the form's Submit button or hitting ENTER within a form. However, the submit event does not fire when the form is submitted via a script calling aForm.submit(). Therefore you need to do two things to capture a form submission: add an event listener to capture to submit event, and modify the prototype of the HTMLFormElement class to redirect the submit() method to your custom function.

예컨대, form 의 submit 버튼을 클릭한다거나, 커서를 폼에 둔채로 엔터를 치거나 할 때와 같이, 유저가 일반적으로 폼을 서밋할때 submit 이벤트가 발생한다. 하지만, "aForm.submit()" 과 같이 스크립트를 통해 form 을 submit 하려고 하면 submit 이벤트는 발생하지 않는다. 따라서 form submit 을 위해서는
  • submit 이벤트를 캡쳐하기 위해 "Event Listener" 를 추가해야하며,
  • 또한 submit() 메소드를 우리가 form submit 을 위해 만든 함수로 redirect 시키기 위해 "HTMLFormElement 클래스" 의 "Prototype" 을 수정해야하는 두가지 추가 작업이 필요하다.
- Dive into GreaseMonkey Online Manual 中 (자세히 보기)

문제는, 여기 나와있는 소스만 갖고는 해결이 안된다는 거.. ㅡ.ㅡ. 그래서 덕분에 삽질만 하게 됐었다는 거.. 그래도 소득은 있었다. DOM 객체를 이용할 경우 이러한 예외 상황이 있을 수 있다는 것을 알게 된 거지..


References

그리스몽키 메뉴얼 페이지 : http://diveintogreasemonkey.org/toc/
자바스크립트 메뉴얼 및 예제 : http://koxo.com/lang/js/index.html

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/116

댓글을 달아 주세요

열심히 소스를 찾아봤는데 잘 없더라.. 특히 한글자료는 그래서 구글링의 결과로 구한 소스를 약간 수정해서 올리니 참고하기 바람. 아.. 그리고 사용전 아래 주의 사항을 꼭!! 읽어보기 바람.


주의 사항

  1. 참고로, 이메일 전송시 recieved from 헤더에 사용되는 order 에 따라 만들었으니 date type 의 정렬 순서는 알아서 조절해야 함.
  2. use POSIX;
  3. 마지막으로 이거 unix_timestamp 를 date type 으로 바꿔주는 거 아니다. 그 반대다. 그거는 localtime 이나 ctime, time 등 함수를 참고할 것.


Source Code

 1 #!/usr/local/bin/perl -w
 2
 3 use strict;
 4 use POSIX;
 5
 6 # Wed, 23 May 2007 10:24:48 GMT
 7 # Wed, 23 May 2007 05:29:10 +0900
 8 # 23 May 2007 00:02:28 -0000
 9 # Tue, 22 May 2007 21:47:39 +0200 (CEST)
10 my $inputDate = "Wed, 23 May 2007 10:24:48 GMT";
11 my @wdays = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
12 my @months = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
13
14 my ($wday, $date, $month, $year, $time, $zone) = split(/\s/, $inputDate);
15 my ($hour, $min, $sec) = split(/\:/, $time);
16 $year = $year - 1900;
17 $wday =~ s/,//g;
18
19 for (my $i = 0; $i <= $#wdays; $i++) {
20     if ($wday eq $wdays[$i]) {
21         $wday = $i;
22         last;
23     }
24 }
25 for (my $i = 0; $i <= $#months; $i++) {
26     if ($month eq $months[$i]) {
27         $month = $i;
28         last;
29     }
30 }
31
32 print "Timpstamp : " . POSIX::mktime($sec, $min, $hour, $date, $month, $year, $wday, 0, -1) . "\n";
33
print "Present Timestamp : " . time();
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/105

댓글을 달아 주세요



추억의 게시판들...

인터넷에 대해 조금 안다면, 홈페이지란 것을 한번 해봤던 사람이라면(싸이 미니홈피 이런거 말고 ㅡ.ㅡ) 누구나 알만한 프로그램이 있다. 바로 "제로보드" 인데, 얼마전 이 제로보드의 개발자로 유명한 제로님이 네이버로 M&A 된 첫눈의 직원이며, 네이버의 지원하에 제로보드를 오픈소스 프로젝트로 활성화 시킨다는 발표가 있어 블로고스피어는 물론 인터넷이 들썩들썩 했던 적이 있다.

오늘 소개하려는 프로그램은 "유니콘" 이라는 오픈소스 BBS 프로그램으로, "제로보드"의 자바버젼이라고 하면 알맞을 듯 하다. 과거 90년대 후반 2000년대 초반에 너나할 것 없이 하나씩은 갖고 있던 홈페이지에서 자신의 사이트 방문객들과 의사소통을 위한 가장 첫번째 수단이었던 것이 바로 이 게시판이었다. 하지만 많은 사람들은 그 게시판을 만들 줄 몰랐었고 돈을 받고 게시판을 임대해주는 사업이 있을 정도였으니.. 그 때 꽁짜로 누구나 쓸수 있도록 오픈된 제로보드의 위상이란 참으로 대단했다.

asp 기반의 Taeyo 보드(태요는 책의 저자 및 아직도 ASP Reference 사이트로 유명하다). perl 기반의 슈퍼보드, happy cgi 였나? 뭐 그런 것들도 있었고, 당시 asp 를 하면서 php3 를 조금 다룰 줄 아는 햇병아리 대학생이었던 본인도 수년뒤 사회인 신분으로 처음 받았던 월급보다도 더 많은 돈을 아르바이트로 벌정도였으니 알만하지? ㅋㅋㅋ 그때가 참말로 좋았었는데... ^^

한때는 PHP School 등의 개발자 커뮤니티에 자신이 만든 이런 게시판류의 프로그램 소스를 올려놓고 자신의 프로그램 실력을 과시하기도 하고 했었다. 답변처리 알고리즘이니 대용량 게시판 구조니하는 기본적인 내용부터 각종 Javascript/css 실력 자랑 등... 아마 이런 것들이 기초가 되어 지금의 모든 웹서비스들이 만들어지지 않았나 싶다.

암튼 요즘의 미니홈피, Blog 등에 밀려 네티즌들의 관심밖으로 밀려난 게시판의 위상을 생각하면, 그리 대단한 프로그램도 아니겠다 싶지만, 여전히 게시판 개발에 대한 수요도 있고 게시판은 적어도 지금까지는 그 어떤 웹툴보다 유용한 프로그램이 아닌가 한다.


유니콘의 장, 단점

잠깐 옛날 이야기하느라 옆길로 샜는데(-.-), 이번에 다음 카페 "Jakarta Lucene Search Engine" 에서 진행하는 오픈소스 매쉬업 프로젝트에 참여하여 웹부분 개발을 담당하게 되었는데, (Lucene 은 자카르타 프로젝트의 메인 프로젝트 중 하나로 오픈소스 검색엔진이다) 하필이면 내가 한번도 제대로 해본 적이 없는 Java 기반이지 뭐냐. 그래서 고민고민하던 중 프로젝트 리더인 Breeze 님께서 추천해주셔서 이놈을 기본으로 지금 작업 진행중이다. (넘 어영부영해서 Breeze 님께 죄송^^)

장점은,
  • 역시, 공짜라는 것이지
  • 그리고 제로보드와 마찬가지로 답변형 다중게시판이고
  • 막강한 기능들과 자유로운 스킨 설정
  • OS 는 물론 Oracle, MySQL 등 DBMS 도 가리지 않는 범용성
  • 추가로 제로보드에는 없는 태그, 통계기능 및 백업, 루씬을 이용한 검색기능까지

있다는 점이라 하겠다.

단점은,

  • 자바, Jsp 를 모르면 초반에 해맬 수 있다는 점
  • 최근 웹호스팅의 대세인 APM(Apache, PHP, MySQL) 과는 달리 Jsp 웹호스팅은 찾기도 어려울 뿐더러 이것저것 복잡하다는 점
  • 제로보드 만큼 다양한 reference 나 support 를 기대할 수 없다는 점

정도라 하겠다.


맺음말

아직 본격적으로 사용을 안해봐서 (단지 설치하고 메뉴만 한번 훑어본 정도임) 더 이상 자세히는 소개를 못하겠다. 하지만, 일단 Java, jsp 에 약간의 지식이 있는 사람(Tomcat 등의 WAS 를 한번 다루어보았다거나 jsp 로 hellow world 를 찍어본 정도의 경험)이라면, 설치/사용에는 문제 없을 듯 하다.

이제 이놈의 소스를 분석해서 트랙백이란 기능을 달아야 하는데, 흠흠 과연.. 우찌될랑가
암튼 부지런하고 바람직한 생각을 가지신 은둔의 고수들이 참으로 많구나 싶어서 흐뭇하고 고맙네... ^^

- p.s : 참.. 지금 진행중인 프로젝트는 아직 걸음마 수준이라 (몇 걸음은 뗀듯 함ㅋㅋ) 공개할 만한게 없어서 지금은 그냥 말만하고 조만간 어느정도 틀이 갖추어지면 이곳을 통해 소개를 한번 하도록 하겠다. (넘 기대는 마시라~~^^)

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/91

댓글을 달아 주세요

  1. BlogIcon +Breeze+ 2007/05/29 15:29  댓글주소  수정/삭제  댓글쓰기

    ㅎㅎ. 기대할꼐여~

MySQL 은 Web Programming 을 하는 사람이라면, 누구나 엄청 많이 쓸 것이다. 하다보면 정말 귀찮지만 install 부터 직접해야할 때가 허다하다. (지난 주말과 오늘의 내가 그렇다. ㅡ.ㅡ)

나는 별로 기억력이 좋지 못해서, 항상 일을 하다보면 엄청 간단하고 쉬운 것들을 깜빡깜빡해서 매번 삽질을 되풀이하곤 하는데, 아래 내용은 MySQL 을 설치 후 보안 등 기타등등의 이유로 인해, 반드시 해줘야 하는 일종의 초기화 query 들인데, 역시나 매번 헷갈려 하는 부분이라서 앞으로는 버벅대지 않으려고 한번 정리해봤다. 혹시 나같은 사람들이 있다면, 도움이 됐음 좋겠다.


1. Test Table 데이터 및 Account 삭제, root 패스워드 변경

DROP DATABASE IF EXISTS test;
USE mysql;
DELETE FROM db WHERE db LIKE 'test%';
DELETE FROM user WHERE host = '%';
DELETE FROM user WHERE User = '';
UPDATE user SET Password = PASSWORD('패스워드') WHERE User = 'root';
FLUSH PRIVILEGES;


2. Database, User(select 전용, insert/update/delete 전용) 추가

CREATE DATABASE 디비명;
GRANT select ON 디비명.* TO 셀렉트용아이디@"호트스명" IDENTIFIED BY "패스워드"
;
GRANT insert,update,delete ON 디비명.* TO 업데이트/인서트용아이디@"호스트명" IDENTIFIED BY "패스워드"
;
FLUSH PRIVILEGES;


3. Schema 수정 using ALTER

ALTER TABLE 테이블명 ADD 추가할 내용(컬럼, 키, 인덱스 등)
Ex) ALTER TABLE table1 ADD column1 CHAR(5) AFTER column2
;

ALTER TABLE 테이블명 MODIFY 수정할 내용;
Ex1) ALTER TABLE table1 MODIFY (column1 INT(8) NULL);
Ex2) ALTER TABLE table1 RENAME AS table2;
Ex3) ALTER TABLE table2 CHANGE old old TINYINT NOT NULL, CHANGE old new CHAR(20);

ALTER TABLE 테이블명 DROP PRIMARYKEY;
ALTER TABLE 테이블명 DROP COLUMN 지울 컬럼명;
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/79

  1. Subject: 현우씨 정리해둔건 좀 더 디테일 하네요 :)..

    Tracked from AlthWOrld 2007/05/10 11:50  삭제

    현우씨 정리해둔건 좀 더 디테일 하네요 :) 제가 정리한건 참고할 수준은 아님 :D

댓글을 달아 주세요

2007년 5월 2일 있었던 "레드햇 솔루션 세미나"에 다녀온 후기를 다음과 같이 공유합니다. 많은 내용이 있었지만 최대한 간략하게 정리하였습니다. 혹시 참석하신 분들 중에서 모자란 점이 있다고 생각이 되시면 보충하여 주시기 바랍니다.

사용자 삽입 이미지


1. 세미나 정보


2. 내용요약 (Track1)

1) keynote speech (레드헷코리아 박준규 대표 대행)

  • 지난 3년간 redhat 이 가장 영향력있는 오픈소스 벤더로 선정되었음
  • 앞으로 아래와 같이 서비스를 확대하겠다 함
    • Open source architecture
      1. solution set 과 service 를 제공(GFS 파일시스템, Jboss 등 각종 미들웨어)
      2. 이를 위해 몇몇 업체를 인수합병하였다고 함.
    • 고객서비스
      1. 설치/사용/설정/분석/버그픽스 등의 서비스 제공(공식 rpm 외 타 rpm 사용, 소스코드 수정등의 경우는 제외)
      2. 지식공우 및 협업 지원 : 레드헷 리눅스 시스템 장애가 발생했을때 os 의 문제가 아니더라도 하드웨어 벤더나 어플리케이션 벤더들과 협업하여 장애조치를 지원하겠다
    • 파트너사 지원
      1. channel business 로 전환
      2. redhat exchange :
        - 그간 통계로 보아 지금까지도 그랬고 앞으로도 오픈소스로 돈벌 업체는 os개발업체(레드헷)이 아니라 시스템 아키텍쳐와 소프트웨어 개발사들이다
        - 이러한 업체들(mysql, postgreSQL(EnterpriseDB), sugarcrm, alfresco, pentaho, zimbra 등)과 협업을 위해 redhat exchange 를 만들었다.

2) Open Source Virtualization Solution (레드헷코리아 양승도 과장)

  • vm ware 와 같이 여러 os 를 하나의 시스템에서 운영하는 것을 가상화라고 함.
  • http://www.openvirtualization.com
  • live migration 이란 기능을 통해, 유사시 해당 가상화 os 를 자유자재로 다른 위치로 물리적 이동을 할 수 있음. (downtime 거의 없음)
  • 자원활용 및 장애처리 등에 유리 (가령 구버전 리눅스 os 를 사용하고 있는 업체에서는 64bit 머신을 사용할 수 없어서 어쩔수 없이 상위 os 로 포팅을 해야하지만 가상화를 이용하면 간단하다.)
  • 개발장비와 실제장비를 따로 두지 않고 하나의 머신에 둘 수 있어 개발, 운영간의 sync 관리가 간단하다.

3) GFS(Global File System) (레드헷코리아 양승도 과장)

  • 구굴의 GFS(Google File System)과 이름도 비슷하지만 목적이나 기타 모든 점이 유사함
  • 클러스터링 파일 시스템
  • 물리적/논리적으로 다른 파티션들을 하나의 파티션으로 인식가능 (최대 한계는 이론적으로 16EB(엑사바이트) 까지 인식가능하지만, 실제도입 사례는 최대 140TB(테라바이트)까지 있었음)
  • nfs 와 다른점 : nfs 는 meta data 와 data 를 한곳에서 access 하지만 gfs 는 meta data 를 share 함. --> 이로인한 장점 : nfs 는 meta data server 에 장애가 생기면 모든 서버에 영향이 있으나 GFS 는 해당서버만 교체하면 됨.
  • GFS 와 가상화를 같이 사용할 경우 해당 문제된 서버를 live migration 으로 control 가능하므로 장애에 유연한 대처가 가능함.
  • 적용사례 : 하나TV (실제 GFS 와 가상화 live migration 을 이용 장애조치를 성공적으로 한 사례가 있다고 함)
  • 키포인트 : open source, posix standard compliant, cluster file system

4) 테라스 메일 솔루션 (테라스 대표이사 어진선 대표)

  • 테라스? : 국내 메시징 관련 업체들 중 1위 업체(야후, 다음을 제외한 거의 대부분 포탈이 이 회사 솔루션을 사용할 정도)
  • 테라스 솔루션이 sun solaris 기반에서 rhel 기반으로 포팅되었음
  • 메세징 시스템에서 file system이 가장 중요한 factor
  • 지금은 가격대비 성능, 파일시스템, 운영상의 친숙성, roi 등 시장상황이 많이 바뀌어서 rhel 기반으로 많이 이동하고 있는 실정임
  • TIMS(테라스 MTA) :
    • 이메일 시장의 변화
    • 용량의 변화 (많은 메세지들을 안지우고 모두 저장하기를 원한다. 과거: 20메가 현재:2기가 이상)
    • 구글의 GFS 기반, 메일 메세징 기업에서 가장 큰 화두는 클러스터링 파일 시스템이다. -> 테라스도 독자 개발 시도 했으나 실패, 현재는 레드헷의 GFS가 가장 유력한 대안이다.
    • 국내 유일의 자체 제작 mta 솔루션
  • Mail Watcher(antispam solution)
    • spam issue : cpu 자원을 어떻게 활용할 것인가?
    • sun 이 시스템을 사실상 지원을 안하기때문에 하드웨어는 더이상 sun 을 쓸 수 없다
    • 안티스팸 - 스팸량은 1년에 200% 배율로 증가한다.
    • archive solution(스팸, 수신후 2개월이상 지난 메세지를 저정)
    • 이미지 스팸 차단 기능 추가예정
  • 상용 솔루션들의 특징
    • rdbms 는 거의 사용안한다. (i/o 문제때문)
    • msg 를 msg 단위로 따로 저장 (100kb/msg) 1년에 평균 5배 정도 커진다. --> 엄청난 부담
    • 파일 시스템 크기가 커지면 커질수록 퍼포먼스는 떨어진다.
    • 자체 테스트 결과 ext3 > jfs2 > jfs > ufs 순
    • 메세징 시스템은 기본적으로 file lock 을 사용하는데 nfs 에서는 프로토콜상의 문제로 오류가 많다.
    • gfs 와 같은 sharing file system 이 가지는 문제도 역시 locking 문제 인데 아직 완벽한 검증은 하지 못했다. (시작하는 단계) --> Gmail 의 사례를 볼때 google 의 기술력을 다시금 감탄케 하는 대목
  • 국내 솔루션들이 표준을 안지키므로 그 것들을 커버하기 위해 많은 리소스를 낭비하고 있다. (절대 공감)
  • Gmail 의 장점, GFS 기반의 안정된 파일시스템과 첨부파일까지 검색되는 검색기능
  • 안철수는 초기개발당시 쓰레드기반이 아니어서 부득이 외산 솔루션을 사용
  • 메일 기술이야말로 수많은 기술들의 집약체이고 끊임없는 발전과 노력을 해야하는 분야라고 생각한다.

5) Jboss SOA 솔루션 (다우기술 이강일 팀장)

솔직히 잘 모르는 분야라 제대로 정리가 안되었음.
  • SOA : 느슨히 결합된 서비스들을 이용하여 어플리케이션을 구성하는 분산 시스템을 위한 개념
  • Jboss 는 soa 구현을 위한 middle ware solution 이며 open source
  • 지금까지 국내에 공식 지원이 없었으나 현재 공식 지원개시
  • SOA 사례
    • portal 화 (여러가지 정보와 resource 들을 하나의 presentation layer로 통합)
    • 금융권 : ??
    • 보험사 : 다양한 어플리케이션들을 신속하게 하나로 통합하느냐(이기종 플랫폼들간의 통합)
    • 미디어 : 중복성, 민감성, 경쟁성 / 빠른 변화가 필요
  • jboss 는 멀티 플랫폼 지원 : 자바 기반이므로 가능함
  • 아파치 톸캣은 프리웨어이지만 만약에 전문가 지원이 필요할 경우 유료인데, 이 부분을 jboss 에서 지원한다.(유료)
  • http://www.jboss.com

3. 기타등등 및 다녀온 소감

  • register 페이지의 "naver.com, hanmail.com 은 메일 수신이 되지 않으니 다른 메일 주소를 기재해 주시기 바랍니다" 라는 보이콧(boycott) 멘트가 상당히 거북하였음. (보이콧 마케팅 관련글)
  • 수차례 사전등록자의 참석여부를 확인하더니 정작 현장에서는 사전등록, 현장등록 구분없이 40여분을 줄을 서게 함. (도데체 왜??)
  • 모든 참가자들의 노트북에는 "페도라코어" 가 깔려있었고 "Gnome" 을 사용하며, 모든 슬라이드 역시 "Open office" 를 사용함.
  • 예정보다 30~40분 늦게 시작하더니 급기야 휴식시간도 없이 3시간도 넘게 한섹션을 진행함,
    • 정작 그렇게 한 본인은 자신이 일주일간 준비한 내용이 얼마나 많은데 다 보여주지 못한다며 한탄함. (정진호 과장님의 프리젠테이션 기술관련 충고를 보여주고 싶은 마음이 간절했음 ㅡ.ㅡ)
    • 덕분에 정작 듣고 싶었던 다음 섹션인 "테라스 메일 솔루션" 부분은 초고속으로 질문시간도 없이 지나가 버려서 무지 화났음.
  • 처음으로 행운권에 당첨되어 "보쉬 전동 드라이버 세트"를 받음 ^____^
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/74

댓글을 달아 주세요

  1. BlogIcon 정진호 2007/05/03 18:50  댓글주소  수정/삭제  댓글쓰기

    와~ 보쉬 전동 드라이버 세트! 당첨 축하!
    요약 잘 하셨네요.
    덕분에 잘 이해 했습니다.

  2. BlogIcon ALTH 2007/05/03 19:27  댓글주소  수정/삭제  댓글쓰기

    오~ GFS 좋네요. 개발머신에 레드햇 설치하면 GFS로 묶어볼 수 있으려나? ^^
    Virtualization Solution. CentOS 설치하고 VMWare(Free)버전 설치해서 돌려보고 있는데. 메모리만 좀 크면 정말 잘 돌아갈듯. (현우씨 노트북 부러워요~ ㅋㅋ)

    후기 잘 봤습니다~

    • BlogIcon 왕구라 2007/05/03 19:56  댓글주소  수정/삭제

      네 CentOS 도 RHEL 기반이니까 GFS update 나오면 설치 가능할 겁니다. 레드헷에서는 그 업데이트를 RHEL4.5 라고 지칭하더라구요..

      아마 RHEL5 나오면 CentOS 도 당연히 GFS 포함된 버젼이 나오겠죠?

  3. BlogIcon Breeze 2007/05/04 11:39  댓글주소  수정/삭제  댓글쓰기

    저도 가보고 싶었는데 이래저래 정신이 없어서 못갔네요.
    덕분에 요약해서 잘 봤습니다. ^^

  4. 2007/05/04 12:18  댓글주소  수정/삭제  댓글쓰기

    비밀댓글 입니다

  5. BlogIcon 좋은진호 2007/05/07 00:46  댓글주소  수정/삭제  댓글쓰기

    좀 늦게 참석을 했는데, 일찍 오신 분은 줄서는 고생까지 하셨나보군요.
    글 잘 읽었습니다.
    GFS, Xen이나 작년 작년 6월 행사( http://coffeenix.net/bbs/viewtopic.php?t=1282 ) 나 그 이후의 롯데호텔에서 했던 레드햇 행사 때도 줄기차게 들어서 그다지 새로운건 못 느꼈습니다.
    처음 듣는 분은 괜찮겠지만 여러번 듣는 분이었다면 그다지. ^^

    • BlogIcon 왕구라 2007/05/07 06:35  댓글주소  수정/삭제

      네, 전 처음 간 세미나라 몇가지 흥미로운 점이 있었답니다. 그리고 메일 엔지니어다보니 테라스 쪽 섹션에 관심이 많았었지요.. 암튼 반갑구요 님 블로그에도 들를께요. ^^

1. 그리스몽키란?

파이어폭스(Firefox) 일명 불여우의 확장팩(Extension)으로 기존 브라우저의 한계를 극복할 수 있는 다양한 기능을 자바스크립트를 이용하여 구현할 수 있으며, 다른 사람들이 만들어 놓은 스크립트를 웹사이트를 통해 공유할 수도 있다. 참고로 IEToy 라는 MS 인터넷 익스플로러에서도 그리스몽키를 사용할 수 있도록 해주는 플러그인이 있는데, 애석하게도 FF 와 호환은 대부분 되지 않으니 그저 참고하기 바란다. (나도 자세히는 모르지만 대충 훑어보니 ie7.0 도 지원하는 듯 함)


2. 메뉴얼 및 사용방법

사용방법은 별로 특별할 것이 없다. 아래 링크사이트 중 홈페이지로 가서 안내에 따라 다운로드 받고 설치하면 끝이다. 메뉴얼은 웹에서 볼 수도 있고 PDF 형식 또는 HTML 형식으로 다운로드하여 볼 수도 있다.(메뉴얼 제목이 아주 재미있다 "Dive into Greasemonkey" ^^)

1) 새로운 스크립트를 추가할때 즉, 이미 만들어진 다른 사람들이 올려놓은 스크립트를 설치하고 싶을때는 해당 홈페이지에서 적절한 스크립트를 검색한 다음 설치하면 된다. (클릭만으로 간단하게 설치 된다.)

그냥 한번 해보면 신기하고 재미있으니 http://userscripts.org/ 에서 "네이버" 로 검색한 후 네이버에서 광고들을 싹 없애주는 스크립트를 받아서 한번 설치 해보라. 신기할 따름이다. ^^

2) 유저 스크립트 즉, 자신이 만든 스크립트를 설치 하고자할때는(나는 방법을 몰라서 좀 해맸었따. ㅋ) 그냥 만들어진 *.user.js 파일을 마우스를 이용해 FF 의 창에다가 Drag & Drop 하면 끝.


3. 유저 스크립트 제작하기

역시 홈페이지에 있는 메뉴얼을 보고 간단하게 따라하며 된다. 모든 language 의 처음 시작은 "Hello World" 부터. 메뉴얼에 있는 첫번째 예제 "Hello World" 를 한번 따라해보라. 아주아주 간단하니 꼭 한번 해보시길. 메뉴얼이나 그리스몽키 홈페이지에 이미 많은 레퍼런스가 잇으므로 기초적인 설명은 자세히 하지 않겠다. 다만, 몇가지 주의사항만 아래에 쓴다.

  1. 반드시 파일은 저장시 *.user.js 라는 확장명으로 저장
  2. 설치는 만들어진 파일을 FF 에다가 마우스로 Drag & Drop 으로 던지면 끝
  3. 파일내 @로 시작하는 주석을 성실히 작성할 것 특히 include 와 exclude, include 는 해당 스크립트를 사용할 페이지의 url 을 말하고, exclude 는 사용하지 않을 페이지의 url 을 말하며, * 를 이용한 batch 기능도 가능하다.

4. 그리스몽키로 크로스도메인(Cross Domain) 침범하기

그럼 나름대로 노하우라고 생각이 되는 Cross Domain 영역을 설명하겠다. 일반적으로 사용하는 모든 브라우저들에서 기본적으로 Cross Domain 즉 현재 보고 잇는 페이지의 도메인과 다른 도메인 영역의 페이지의 object 를 사용하는 일은 차단되어 있다. 이유는 당연히 보안때문이다. 그래서 현존하는 어떤 기술을 쓰더라도 자신