블로그 이미지
초딩입맛제주아재
하고 싶은 것만 하며 살고 싶다

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
2007. 3. 6. 00:19 도서
사용자 삽입 이미지


디자인패턴은 선택이라기 보다는 필수에 가깝다고 말하고 싶다.
아직 DP에 대해서 깊이 알 지는 못하지만 한장 한장 책을 넘길 수록 머릿속의 까만부분이
환하게 열리는 느낌이다.
우리는 알게 모르게 디자인패턴을 쓰고 있다.
다만 그것이 디자인패턴이라는것을 모르고 있을뿐.
당신이 디자인패턴을 모른채 이미 수많은 어플리캐이션을 개발해왔다면
아마 그중에 상당수는 당신도 모르는사이 디자인패턴중 어느 것이라도 사용되었을 것이다.
당신이 아직 디자인패턴을 모른다면 당신은 행운아다.
남들이 멀리 돌아가던길을 지름길로 빠르게 갈 수 있는 기회가 주어졌으니까...

'도서' 카테고리의 다른 글

CSS 마스터 전략  (0) 2007.08.07
Ajax in Action  (0) 2007.08.07
Head First Java: 뇌 회로를 자극하는 자바 학습법(개정판)  (0) 2006.11.13
소설 '이휘소' - 공석하 저  (0) 2006.07.29
posted by 초딩입맛제주아재
2007. 3. 5. 19:47 Programing/아뜰리에
리눅스 명령어중 du는 디스크 사용량을 알려준다.
그런데 du만으로는 뭔가 부족하다.
50메가 이상 사용중인 디렉토리 목록을 보고 싶은데 help를 봐도 내가 원하는 옵션은 없는것 같다.
혹, 나만 모르고 있는 방법이 있을지도 모르겠다.
리눅스가 워낙 막강하니...

그래서 만들었다.
du를 활용해서 내가 원하는 50메가 이상 사용중인 디렉토리를 볼 수 있는 '커스터마이징 du'!!

#!/usr/local/php/bin/php -q
<?php
/**
* filename : mydu(.php)
* author   : asrada2001@hotmail.com
* date     : 2007-03-05
* desc     : 디스크 사용량(du)체크
*
* 사용법 *
*
* chmod로 실행권한(755)을 주면 프롬프트에서 mydu를 타이핑 하는 것으로 실행이 된다.
*
* ~root]# mydu [opt]
* [opt]: 옵션=값
*
* 옵션
* su : 인자 값으로 받은 사이즈보다 큰 결과만 출력
* sd : 인자 값으로 받은 사이즈보다 작은 결과만 출력
* md : max depth
**/

function get_num($val){
 
$temp = '';
  for(
$i=0,$max=strlen($val); $i<$max; $i++){
     
$txt = substr($val,$i,1);
      if(
is_numeric($txt) == true){
         
$temp .= $txt;
      }else if(
$txt == '.' && $temp != ''){
         
$temp .= $txt;
      }
  }
  return
$temp;
}

function
to_kb($val){
 
$num = get_num($val);
 
$unit = strtoupper(substr($val,-1));
  switch(
$unit){
      case(
'M'):
          return
$num * 1024;
      break;
      case(
'G'):
          return
$num * 1024 * 1024;
      break;
      case(
'K'):
          return
$num;
      break;
  }
}

function
print_help(){
  echo
"\n\t[Options]\n"
     
."\tsu=size : size 보다 큰 결과만 출력합니다.\n"
     
."\tsd=size : size 보다 작은 결과만 출력합니다.\n"
     
."\tmd=depth : 출력할 하위 디렉토리 단계를 설정합니다.\n\n"
     
."\t\t예)mydu sd=10M md=4\n\n";
}

$opt = '';

if(
sizeof($argv) > 1){
  for(
$i=1,$max=sizeof($argv); $i<$max; $i++){
     
$tmp_opt = explode('=',$argv[$i]);
     
$tmp_name = $tmp_opt[0];
     
$tmp_value = $tmp_opt[1];
      switch(
$tmp_name){
          case(
'md'):
             
$opt .= ' --max-depth='.$tmp_value;
          break;
          case(
'su'):
             
$size_up = to_kb($tmp_value);
          break;
          case(
'sd'):
             
$size_down = to_kb($tmp_value);
          break;
          case(
'/?'):
             
print_help();
              exit;
          break;
          default:
              echo
"\n[".$tmp_name."] is invalid option...\n";
             
print_help();
              exit;
          break;
      }
  }
}

$command = 'du -h'.$opt;
exec($command,$result);

foreach(
$result as $data){
 
$data_size = substr($data,0,strpos($data,"\t"));

  if(
$size_up != ''){
      if(
$size_up <= to_kb($data_size)){
          echo
$data."\n";
      }
  }else if(
$size_down != ''){
      if(
$size_down >= to_kb($data_size)){
          echo
$data."\n";
      }
  }else{
      echo
$data."\n";
  }
}
?>




php, 역시 속도가 문제다.
C를 잘한다면 du소스를 직접 수정해서 컴파일하겠건만...-_-;;
늘 그렇듯 리팩토링의 여지는 남겨둔다...(귀차니sm)

'Programing > 아뜰리에' 카테고리의 다른 글

Drag가 가능한 메모보드  (26) 2007.01.26
파일 확장자 바꾸는 스크립트  (1) 2006.12.12
XmlHttpRequest를 사용한 일정관리  (0) 2006.11.10
자동 로그 뷰어  (0) 2006.08.21
posted by 초딩입맛제주아재
2007. 2. 25. 22:02 날개를달자

어제에 이어 오늘은 다음과 NHN이 공동 주관하는 '2007 대한민국 매쉬업 경진대회'의 일환으로 열린 '매쉬업 캠프 2007'에 다녀왔다.
주말을 모두 세미나로 보냈더니 주말같이 느껴지진 않았지만 그래도 많은 수확이 있어 뜻깊은 시간이었다.

시간 주제 강사
~09:50 등 록
10:00~10:10 환영 및 진행 안내 신수완 윤석찬
10:10~10:40 Daum API 소개 I- 인증, 검색 백주성 이희권
10:40~11:10 Daum API 소개 II- 블로그, 디앤샵, 여행 주원기 김해영
김태용
11:10~11:20 휴 식
11:20~11:50 Naver API 소개 I- 검색, 데스크탑 현동석 김홍준
11:50~12:30 Naver API 소개 II- 지도 박선문
12:30~14:00 점심 및 멘토와의 만남
14:00~14:30 10대 과제 설명 -
14:30~17:00 프로젝트 진행 (프로젝트룸)
17:00~17:50 프로젝트 리뷰 (전체 모임)
17:50~18:20 시상 및 경품 추첨
  • 멘토: 박상길 김경준 권순국 장정환 손승현 김선호


국내 IT업계의 선두주자이자 라이벌관계인 다음과 NHN이 손을 잡고 주최한 행사라서
시작부터 큰 관심을 받아왔으나 예상외로 참가자가 적어서 주최측도 적잖히 당황한 기색이었다.
100명 예상에 63명 참가라니....
추가 등록까지 받을 정도로 관심이 뜨거웠던 행사에 어찌하여 미달이라는 사태가 발생했는지
나로서는 알 길이 없지만 오후시간에 머물렀던 협소한 프로젝트룸을 생각하면 차라리 잘된일이었던 것인지도 모르겠다.

캠퍼스 깊숙한곳에 위치해 있어 한참을 찾아 헤맨끝에(연대 캠퍼스를 처음 방문한터인지라...) 닿을 수 있었던 연세대 상남경영원을 행사장소로 정한것은 다소 불만스러웠으나 행사 스텝(다음과 NHN의 개발자)분들이 친절하게 대해주신 덕에 사소한 불만은 잊기로했다.
휴식시간에 참가자들이 이용하도록 배려해준 음료와 다과(종류가 다양했다)들은 비워지는 즉각 새것으로 채워졌고 출장뷔페로 제공된 점심식사도 나름대로 신경을 많이 쓴듯했다.

오전 시간은 다음과 네이버의 OpenAPI 에 대한 소개와 샘플 시연이 있었고 오후에는 주최측에서 준비한 6개의 과제별로 지원자들을 따로 소규모 회의실(정말 소규모였다...)로 배치하여 주어진 과제를 코딩하는 프로젝트시간이었다. 이때 노트북을 지참했던 참가자들은 스스로 코딩을 할 수 있었지만 그렇지 못한 참가자들은 그저 남들 코딩하는걸 구경하거나 다른 참가자의 작업에 조언을 해주거나 하면서 말 그대로 참가에 의의를 둘 수 밖에 없었다.
이점 역시 아쉬웠던 부분중 하나였지만 비용이 많이 드는 부분이니만큼 이해할 수 밖에..
(그래도 굳이 불평을 토로 하자면...돈 많은 회사들 아닌가 -_-;;)

프로젝트진행이 끝나고 각 팀(과제로 나뉘어진)의 산출물을 간단하게 시연하는 시간이 있었는데 몇몇 작품들은 정말 뛰어난 상업성과 퀄리티, 독창적인 아이디어를 뿜어냈다. 역시 세상은 넓고 인재는 많다. 우물을 나와바야 넓은 세상을 볼 수 있지 않겠는가...

행사의 마지막은 경품추첨....
이 시간을 기다린것은 아니고 워낙에 이런쪽으로는 복이 없는지라 기대도 안했지만, 역시나 건진것이 없었다.
iPod을 받았으면 아내에게 좋은 선물이 됐을텐데 아쉽다 ㅜ.ㅜ
USB메모리라도....
Xbox 360을 힘겹게 받아 들던 여자분이 어찌나 부럽던지...
일찍자고 돼지꿈을 꿨어야 했다....

이틀에 걸친 세미나로 휴일임에도 불구하고 꿀맛같은 늦잠을 빼앗겨 피곤하긴 했지만 나의 시야를 한단계 넓혀준 좋은 계기가 됐다. 그리고 또 한번 생각한다.

개발자가 되길 잘했다고....
꿈을 이루어 행복하다고....

I'm so happy~~
posted by 초딩입맛제주아재
2007. 2. 24. 21:31 Programing/Java
일시 : 2007.2.24
장소 : 코엑스 그랜드볼룸
시간 내용
10:00
~
11:00
접수 및 입장
11:00
~
11:20
개회사 (옥상훈 JCO 회장) & VIP 동영상
11:20
~
12:20
기조연설 #1 (Matt Thompson / Sun Microsystems)
기조연설 #2 (Dr. Akmal B. Chaudhri / IBM)
12:20
~
12:40
2006 대한민국 소프트웨어 공모대전 (제6회 JCO 자바 소프트웨어 공모전) 시상식
12:40
~
13:00
쉬는 시간 및 트랙 준비, 이동 시간
웹2.0 자바의 향기 개발생산성향상 엔터프라이즈컴퓨팅 소통과 집중
13:00
~
14:00
개발자와
크리에이티브
커먼즈라이선스
(윤종수 판사님)
Java U-City
Middleware Platform
(강신동님)
실용적 프로젝트
관리 방법
(김평철님)
Java EE 5.0 and
Glassfish
(김원석님)
토론 트랙
14:00
~
14:10
쉬는 시간 및 트랙 준비, 이동 시간
14:10
~
15:10
Daum의 자바 개발 로드맵과
개방형 플랫폼 전략
(윤석찬, 박상길 / 다음커뮤니케이션)
Ajax Frameworks for Java Platform
(신상철 박사님 / Sun)
대형시스템의
안정성에 기반한
기업용 자바
애플리케이션 개발
(Christian Strauer / IBM)
TmaxSoft가
바라보는
엔터프라이즈
컴퓨팅의 미래
(최종일 / TmaxSoft)
 
15:10
~
15:20
쉬는 시간 및 트랙 준비, 이동 시간
15:20
~
16:20
Practical Web Tools 활용
(허광남님)
Open Source 와
우리의 과제
(김승권님, 김범준님)
POJO 프로그래밍
(최범균님)
What is SOA?
How to SOA?
(조대협님)
토론트랙
16:30
~
16:40
쉬는 시간 및 트랙 준비, 이동 시간
16:40
~
17:40
What is Web 2.0
(박지강님)
Apache MINA를
이용한 고성능
자바 네트워크
어플리케이션 개발
(이희승님)
Spring 2.0
(이일민님, 안영회님)
SCA 프랙티스
(임철홍님)
토론세션
17:40
~
17:55
쉬는 시간 및 폐회 준비 시간
17:55
~
18:30
경품 추첨 및 이벤트, 폐회사
* 자바인의 밤

자바컨퍼런스에 다녀왔다.
입장시간을 10분가량 넘겨서 도착을 해서 걱정을 했는데 다행히 입장을 금지하지는 않았다.
처음 가보는 행사라 사뭇 긴장을 했는데 괜한 기우였다.
선물도 한 가득 받고(이것이 목적은 아니었다 -_-;;) 기대에는 못미쳤으나 나름 유익한 정보들을 얻을 수 있었다.
동일한 시간에 총 5개의 트랙(회의실)에서 각기 다른 주제로 강연이 이루어졌는데
내가 분신술이 가능한것도 아니고 가장 관심있는 분야인 WEB 2.0에 대한 강연만 줄곧 들었는데
내용이 기대에 못미쳐 아쉬웠다.
POJO프로그래밍과 Spring 2.0을 들을걸...-_-;;
카메라를 가져가지 않았던것도 한이.....


p.s

달룟님과 시즈하님을 만났다..

선물목록
1.구글로고가 새겨진 스텐레스 머그잔
2.구글로고가 새겨진 흰색 면티
3.SUN 로고가 새겨진 USB hub
4.Borland로고가 새겨진 자석 클립
5.IBM로고가 새겨진 스프링 메모장
6.볼펜 2자루

'Programing > Java' 카테고리의 다른 글

2007 JavaOne Warp-Up 세미나 후기  (0) 2007.09.08
JavaOne2007 Wrap-up 세미나  (0) 2007.09.03
윈도우 Java환경 설정  (0) 2006.12.23
에디트플러스 자바 컴파일/실행 설정  (0) 2006.10.16
SWT 연습 - FileTreeContentProvider  (0) 2006.10.13
posted by 초딩입맛제주아재
2007. 2. 24. 00:41 Programing/Ruby

Ruby를 Rails위에 올려 웹 어플리케이션 구축 환경을 만들어보자.
몇가지 간단한 작업을 거치면 PC에 Ruby on Rails 환경이 만들어진다.


1.Ruby 설치
http://www.ruby-lang.org/ko/downloads/ 에서 Ruby를 다운로드 한다.
여기서는 윈도우용 Ruby를 기준으로 진행한다.
원 클릭 인스톨러를 다운로드 하면 된다.
다운로드 받은 파일을 실행하고 기본 설정으로 설치를 한다.


2.Rails 잼 설치
실행 -> CMD -> gem install rails --include-dependencies
--include-dependencies 옵션은 rails설치에 필요한 파일들을 자동으로 설치해준다.


3.Rails Framework 설치
gem 설치가 끝나면 Rails Framework을 설치한다.
원하는 폴더로 이동한 후
rails (생성할폴더명)실행


4.웹서버 구동
rails framework를 설치한 폴더로 이동후
ruby script/server 를 실행하면 웹서버가 시작된다.


웹서버의 기본 접속 포트는 3000번이다.

브라우져를 열고 주소창에 http://localhost:3000을 입력 하면 초기화면을 볼 수 있다.

사용자 삽입 이미지

posted by 초딩입맛제주아재
2007. 2. 22. 16:53 Programing
출처: http://blog.naver.com/tb/hunhak/4274412




--------------------------------------------------------------------------  
  포인터에 관한 주저리 ....
--------------------------------------------------------------------------


1. 도대체 포인터를 왜 쓰는데..??? 힘들게 시리...


보통 C / c++ 에서는 포인터라는 개념을 많이 쓰고 있다.

그렇담 포인터란 뭘까?

나는  말하길 특정 주소에 들어 있는 데이타 값이라고 생각한다.

사용법은 이렇다.

먼저, 포인터 변수를 선언하고.

int *p ;

특정 주소를 대입한다.

p = &a;

이렇게 하면 *p 는 a 와 같다.

편의상 int *p = &a;  이렇게 표현하기도 한다.

그럼 왜! 포인터를 사용할까?  난 항상 세상 모든 현상에 대해서 왜!!! 라는 질문을

하곤 한다.

참고로 내 대학 평점은 c+ 이다.

'이 자식 공부 드럽게 안했구나.' 라고 생각하는 사람도 분명 있을 것이다.

하지만, 나는 대학시절 내가 "왜!!!" 공부를 해야 되는지 몰랐다. 그래서 안했다.

암튼 헛소리 그만하고 왜!! 포인터를 사용해야 되는지 알아보자..

#include<stdio.h>

void swap(int, int);

int main()
{
       int a = 10, b = 20;

       swap(a , b);

       printf("\n a , b = %d, %d \n", a , b );
}

void swap(int a, int b)
{
       int t;

       t = a;
       a = b;
       b = t;
}

다음을 컴파일하고 실행시켜 보니까, a 와 b 값이 서로 바뀌지 않고 a = 10, b = 20

이 출력되었다. 그이유는 main 함수에서 선언된 a ,b 값과 swap 함수에서 선언된 a, b 의 값은

데이타는 같지만 서로 다른 메모리 영역을 차지하고 있기 때문에 한마디로 엉뚱한 값을 변경한

결과가 되는 것이다.

물론 글로벌 변수를 사용하면 되겠지만, 글로벌 변수를 남용하면 프로그램상의 심각한 버그를 만들어

낼수도 있다.

그러므로 swap 함수의 인자값으로 해당 변수의 값이 아닌 주소를 넘겨 보면, 같은 주소에 있는 값을

변경 할수가 있을 것이다.

#include<stdio.h>

void swap(int *, int *);

int main()
{
       int a = 10, b = 20;

       swap(&a , &b);

       printf("\n a , b = %d, %d \n", a , b );
}

void swap(int *a, int *b)
{
       int t;

       t = *a;
       *a = *b;
       *b = t;
}

위의 소스를 컴파일 해보면 만족할 만한 결과를 얻을 수 있을 것이다.


2. 그럼 함수 포인터는 뭐냐 ???


함수 포인터란, 일반 포인터 변수와 마찬가지로 포인터 변수가 함수의 주소 부분을 가르키는 것을 말하고

함수를 다른 함수의 매개 변수로 사용할때 이용된다.

여기까진 설명이 됐지만 그렇담, 왜 !!!!!!!! 함수 포인터를 사용해야 되는 가에 대해서는 언급되어 있지

않다. 

음 ~ .... 함수가  변수처럼 다름 함수의 인자로 사용된다면, 변수는 말그대로 변하는 수이므로 함수도

변수처럼 변하는 함수를 매개변수로 사용하는 경우에 이용하면 되겠군....

예제를 준비했다.

bubble 정렬 함수가 있다고 하자, 이 함수는 문자열도 정렬해주고 숫자도 정렬해준다고 치자.

그럼 문자를 정렬해주는 함수 bubble_char(), 숫자를 정렬해 주는 함수 bubble_num() 두개를 만들어야

되는군... 약간 귀찮군. 그럼 만약에 정수 정렬 함수, 실수 정렬 함수 등 더 많은 함수들이 필요하다면,

bubble_int();
bubble_float();
...
..
.

이런식의 함수가 많이 필요할 것이다.

여기서 함수 포인터를 사용해 보도록 하자. bubble 함수 하나만 만들고, 각각의 문자열의 크기 비교

숫자 크기 비교 하는 함수를 만들어서 0 또는 1 만 반환하게 한다음 정렬은 bubble 함수에게 시키자.

그럼 훨씬 소스가 간결해 질것이다. 

아래 소스는 발췌한 것임을 알림....


#include <stdio.h>
#include <string.h>

#define MAX_BUF 256

long arr[10] = { 3,6,1,2,3,8,4,1,7,2};
char arr2[5][20] = {  "Mickey Mouse",
                     "Donald Duck",
                     "Minnie Mouse",
                     "Goofy",
                     "Ted Jensen" };

void bubble(void *p, int width, int N,
           int(*fptr)(const void *, const void *));
int compare_string(const void *m, const void *n);
int compare_long(const void *m, const void *n);

int main(void)
{
   int i;
   puts("\nBefore Sorting:\n");

   for (i = 0; i < 10; i++)               /* show the long ints */
   {
       printf("%ld ",arr[i]);
   }
   puts("\n");

   for (i = 0; i < 5; i++)                  /* show the strings */
   {
       printf("%s\n", arr2[i]);
   }
   bubble(arr, 4, 10, compare_long);          /* sort the longs */
   bubble(arr2, 20, 5, compare_string);     /* sort the strings */
   puts("\n\nAfter Sorting:\n");

   for (i = 0; i < 10; i++)             /* show the sorted longs */
   {
       printf("%d ",arr[i]);
   }
   puts("\n");

   for (i = 0; i < 5; i++)            /* show the sorted strings */
   {
       printf("%s\n", arr2[i]);
   }
   return 0;
}

void bubble(void *p, int width, int N,
           int(*fptr)(const void *, const void *))
{
   int i, j, k;
   unsigned char buf[MAX_BUF];
   unsigned char *bp = p;

   for (i = N-1; i >= 0; i--)
   {
       for (j = 1; j <= i; j++)
       {
           k = fptr((void *)(bp + width*(j-1)), (void *)(bp +
j*width));
           if (k > 0)
           {
               memcpy(buf, bp + width*(j-1), width);
               memcpy(bp + width*(j-1), bp + j*width , width);
               memcpy(bp + j*width, buf, width);
           }
       }
   }
}

int compare_string(const void *m, const void *n)
{
   char *m1 = (char *)m;
   char *n1 = (char *)n;
   return (strcmp(m1,n1));
}

int compare_long(const void *m, const void *n)
{
   long *m1, *n1;
   m1 = (long *)m;
   n1 = (long *)n;
   return (*m1 > *n1);
}



3. 그럼 이차원 포인터는 뭐냐 ???


아래와 같은 배열이 있다고 치자...

1, 2, 3, 4
5, 6, 7, 8

a[0][0] = 1;
a[0][1] = 2;
a[0][2] = 3;
a[0][3] = 4;
a[1][0] = 5;
a[1][1] = 6;
a[1][2] = 7;
a[1][3] = 8;

이것을 하나의 배열로 저장하면 위와 같은 이차원 배열이 된다.

그럼 포인터로 위 배열 요소들을 접근해 보자.

a 의 주소는 &a 이고 니깐. *a 라고 하면 뭐가 나올까?

그럼 a 의 주소값인 a[0] 의 값으로써 이상한 메모리 번지가 나올 것이다.

1 항목을 가져 올려면 어떻게 해야 되지?

1 은 a[0][0] 값이다. 이것은 주소 a[0] 에 있는 값이된다.

*a[0] 는 주소 a[0] 에 있는 값이므로 1 이되고, **a 라고 표시할 수도 있다.

그리고 만약 5 에 접근하기 위해서는 *(a+1)[0] , **(a+1) 이라고 쓰면 된다.

posted by 초딩입맛제주아재
2007. 2. 15. 15:36 Programing/HTML/JavaScript/CSS
<STYLE type=text/css>
#mydiv {
   position:absolute;
   top: 50%;
   left: 50%;
   width: 200px;
   height: 100px;
   margin-top: -50px; /*set to a negative number 1/2 of your height*/
   margin-left: -100px; /*set to a negative number 1/2 of your width*/
   border: 1px solid #ccc;
   background-color: #f3f3f3;
}

</STYLE>

<DIV id=mydiv>
       **************
</DIV>

'Programing > HTML/JavaScript/CSS' 카테고리의 다른 글

Array.remove()  (3) 2007.03.28
AJAX 실전 #1 - XMLHttpRequest  (0) 2007.03.14
[HTML] LABEL과 사용자 중심의 프로그래밍-UI  (3) 2007.01.05
[HTML] FIELDSET과 LEGEND  (0) 2007.01.05
[CSS] onMouseOver,onMouseOut은 그만!!  (17) 2007.01.03
posted by 초딩입맛제주아재
2007. 2. 14. 10:42 카테고리 없음


마이너리티 리포트의 구현이다...
저런건 어찌 만들었을까...
동영상 보면서 알고리듬 생각만 난다...
posted by 초딩입맛제주아재
2007. 2. 13. 16:27 날개를달자
출처 : http://sarangnamu.net/index.html?nPage=21&nTotal=224



프로그래머를 위한 잠언(aphorism)

다음은 세상의 지혜, 발라사르 그라시안 지음, 이동진 옮김을 참고하여 프로그래머에 맞추어 재구성한 것입니다. 필자가 추가한 것도 있고 패러프래이즈 한 것도 있습니다. 세상의 지혜 책에는 300가지의 지혜가 있고 해설도 잘 되어 있으므로 프로그래머 여러분들께서 구입해서 한 번쯤 꼭 읽어보시기 바랍니다. 책 가격을 하는 좀처럼 드문 책임에 틀림없다고 생각합니다. 존칭은 편의상 생략합니다. 너그러운 양해를 구합니다.

1. 컴퓨터 프로그래머는 최고의 직업임을 알라.
2. 컴퓨터 프로그래머는 노가다 직업임을 인정하라.
3. 프로그래밍의 성공 열쇠는 자신감이다.
4. 산은 넘어봐야 안다.
5. 산을 넘지 않고 넘어봐야 안다는 말하는 사람들을 가까이 하지 마라.
6. 언제나 진실되게 행동하라.
7. 프로그래밍은 진실의 반영이다.
8. 프로그래밍은 고도의 논리적 사유를 요구한다.
9. 개발툴은 기술적이기보다는 기능적이다.
10. 완전한 프로그램을 만드는 것만큼 자신을 완전하게 만들어라.
11. 컴퓨터를 이해하고 프로그램 구조를 이해하는 것만큼 자신을 알고 이해하라.
12. 팀웍을 위해서 일하라.
13. 팀웍의 활성화를 위해서는 스터디 모임이 효과적이다.
14. 팀 내에서 나서는 사람이 되기보다는 없어서는 안될 사람이 되어라.
15. 프로그래밍 지식이 실체화되려면 용기가 있어야 한다.
16. 소프트웨어 기술과 소질을 잘 살려서 최대한 도로 자신의 능력을 완숙한 경지로 향상시켜라.
17. 팀원들이 당신을 존중하고 신뢰하도록 만들라.
18. 팀장에게 반항하거나 그를 능가하려고 하지 말라.
19. 팀 내에서의 불만을 자기 것으로만 생각하지도 말고 퍼뜨리지 말라.
20. 프로그램 개발 시 발생하는 고통은 누구에게나 있는 것이다.
21. 가능한 한 자신의 결점을 노출시키지 말라.
22. 항상 배우도록 하고 자신에게 멘토가 되어줄 사람을 찾아라.
23. 동료 팀원들을 스승으로 삼아라.
24. 재능은 누구에게나 주어지지만 그 재능이 숙련적인 기술로 발전하기 위해서는 노력이 필요하다.
25. 프로그램 완성을 위해서는 WHY 보다는 HOW가 더 중요하다.
26. 버그를 한 번에 잡으려고 하지마라. 긴장을 갖고 있으되 한편으로는 여유로움을 간직하라.
27. 프로그래밍이란 지성과 감성 그리고 용기와 박력의 결합이다.
28. 자신의 주변에 우수한 인재들이 모이도록 자신을 향상시켜라.
29. 프로그램 개발은 풍부한 기술지식과 풍요로운 마음가짐을 요구한다.
30. 팀 내에서 그리고 회사 내에서 그리고 어디에서든 적을 만들지 말라.
31. 적을 만들지 않기 위해서는 항상 자신을 새롭게 하라.
32. 근면은 프로그래머가 프로그래밍을 하는데 있어서 근간을 이룬다.
33. 자신이 작성한 프로그램에 자부심을 갖되 대단한 기대는 갖지 말라.
34. 직장에서 퇴출될 수 없는 자신만의 노하우를 가져라.
35. 운이 안 좋아도 배움을 늦추지 말라. 운이 안 좋을때 배우는 것이 더 많을 수 있다.
36. 장황한 지식이 아닌 실질적인 지식을 갖추어라.
37. 소프트웨어 기술 지식을 적시 적소에 사용하는 방법을 배워라.
38. 프로그래머는 소프트웨어 개발을 위한 마법사임을 깨달아라.
39. 자신의 결점을 숨기려고 하지 말고 결점을 고치려 하되 안 되면 무시하라. 가능한 한 떳떳하고 당당하게 살아가라.
40. 팀 내에서 다른 팀원의 결함을 찾아내려고 하지 마라.
41. 프로그램 개발에서부터 팀웍에 이르기까지 매사에 긍정적으로 생각하고 행동하라.
42. 사유와 상상은 다르다. 상상할 때와 사유할 때를 구별하라.
43. 팀 내의 전체적인 분위기를 읽을 줄 알아라. 회사가 돌아가는 분위기를 인식하라.
44. 경쟁 프로그래머가 있을 경우 그를 존중하고 그로부터 배우려고 노력하라.
45. 교만하고 자만해 있는 사람이 팀원으로 있다면 자신의 마음에 그러한 요인이나 인자가 없는지 잘 내면을 살펴라.
46. 소프트웨어 프로그래머의 실력은 소프트웨어가 얼마나 성능이 좋은가에 판가름난다.
47. 누구나 할 수 있는 프로그래밍 기술도 갖추되 자신만의 프로그래밍 기술도 갖추어라.
48. 프로그래밍에 대한 자신의 주관을 져버리지 말라. 자신의 철학을 지켜라.
49. 팀원으로부터 인기를 얻으려고 하지 말라.
50. 프로그램 상에 존재할 수 있는 미심쩍은 오류나 버그에 대해서는 즉각 조치를 취하라.
51. 운이 좋은 프로그래머와 실력이 좋은 프로그래머들을 주변에 많이 두어라.
52. 위기에 처했을 때는 마음으로 자신이 선망하는 고수들에게 기도하라.
53. 자신의 기술지식을 팀원에게 베풀거나 그들과 공유하라.
54. 자신의 능력을 20%~30%는 숨겨라.
55. 팀원이나 팀장의 요청을 무조건 받아들이려고 하지 말라. 거절할 줄도 알라.
56. 자신의 기술지식이나 기술소질에 있어서 가장 뛰어난 부분을 더욱 발전시켜라. 자신의 장점을 최대한 발전시켜라.
57. 프로그램의 구조와 설계 전반에 관하여 조용하고 맑은 정신으로 깊이 사유하는 시간을 가져라.
58. 구루나 마스터가 되기 전까지는 프로그래밍을 짜기 전에 3번 생각하고 한 줄의 코드를 작성하는 습관을 가져라.
59. 짠 코드를 다시 고치거나 지우는 것을 아깝게 생각하지 말라.
60. 프로그램이 완전히 완성되기에는 시간이 필요함을 알라. 모든 사사물물은 완성하는 데에는 시간이 요구된다.
61. 자신을 비난하는 자가 3번을 비난하면 두 번은 침묵으로 무시하나 한 번쯤은 진실한 말로 그렇지 않음을 이야기하라.
62. 운이 좋다고 느껴질 때 열심히 일하고 많은 것을 배워라.
63. 팀원들이 자신을 좋아하도록 해라. 팀원에게 친절하고 베풀어라.
64. 모자란 실력에 대해 자신이 실력 있다고 뻥 튀겨 부풀리지 말라.
65. 자신의 능력을 지나치게 믿지 말라.
66. 팀의 흐름을 따르라.
67. 행운이 자신에게 언제 찾아오는지 명리학자에게 자문을 구하라. 그러나 행운보다 노력과 배움이 더 중요함을 인지하라.
68. 원대한 포부와 야망 그리고 비전을 가진 사람이 어떻게 그것을 현실화시키는지를 알라.
69. 프로그래밍 기술지식이 풍부한 사람을 사귀라.
70. 교묘한 프로그래밍 기술 노하우(TIP)를 많이 습득하라.
71. 프로그램의 제어 흐름과 데이터 흐름을 잘 관찰하라.
72. 자신이 작성한 프로그램은 자신의 분신임을 깨달아라.
73. 프로그래밍을 통해서 일상생활에 대한 자신의 논리적 판단력을 증진시켜라.
74. 팀원을 미워하지 말고 자신을 사랑할 줄 알라. 애증을 버려라.
75. 팀 내에서 나서서 무엇을 하려고 하지 말라. 시키지 않은 일을 하지 말라.
76. 팀 내에서 알 수 없는 신비감과 심오함으로 자신을 포장하라.
77. 팀 내에서 자신과 타인의 자존심에 상처를 주지 않도록 주의하라.
78. 논쟁을 삼가되 논쟁을 하게 되면 서로를 존중하는 기반 하에서 논쟁을 하라.
79. 인생은 선택의 연속이다. 올바른 선택을 하라. 그러나 틀린 선택을 해도 후회하지는 마라.
80. 팀 내에서 누군가 자신을 비난해도 당황하거나 화를 내지 마라. 너그러운 마음으로 사태를 분석하고 진지하고 진솔하게 사실을 이야기 하라.
81. 프로그래밍은 빨리 한다고 능사가 아니다. 시간이 해결해 줄 수 있음도 인정할 줄 알라.
82. 진지함과 즐거움을 동시에 갖고 프로그래밍을 하라.
83. 팀 내에서 싸움은 가급적 피해 되 싸움에서 이기되 패배를 통해서 배우는 자세도 길러라.
84. 싸움은 배짱으로 하는 것이지 머리로 하는 것이 아니다. 머리를 텅비우고 배에 힘을 주어라.
85. 팀 내에서 자신을 나약하게 생각하거나 무시하는 사람에게는 자신이 힘이 있고 위엄이 있음을 보여주라.
86. 싸워서 질 경우 참고 견디는 인내의 마음을 길러라.
87. 프로그래밍할때는 항상 주의를 기울여서 실수와 오류가 프로그램 상에 들어가지 않도록 노력하라.
88. 항상 깨어있는 의식 상태로 프로그래밍을 하라.
89. 항상 버그가 언제 어디서든지 발생할 수 있음을 인식하고 있으라.
90. 팀웍을 원활하게 유지하려면 주변의 사람들의 수준과 자신의 수준을 일치시키도록 하라. 나서지도 말고 주눅들지도 말라.
91. 프로그램의 완성도는 바둑처럼 끝내기를 잘하는데 있다.
92. 프로그래밍을 통해서 지식과 지혜를 길러라.
93. 어려운 문제를 해결해 낼 수 있는 실력을 길러라. 소프트웨어 업계에서 장인이라고 호칭되려면 남들이 해결하지 못하는 프로그램 문제를 고칠 수 있어야 한다.
94. 어려운 문제가 발생할 경우 자신이 해결해야만 한다면 그 문제를 우회할 수 있는 길을 모색하라.
95. 자신의 능력을 100%활용해도 안 되면 휴먼 네트워크를 활용하라.
96. 팀 내의 팀원들에게 좋지 못한 소식은 전하지도 말고 들으려고 하지도 말라.
97. 프로그래밍은 판단력을 기르는데 매우 요긴한 도구이다.
98. 소프트웨어 개발은 결과로서 평가 받는다. 결과가 좋으면 과정도 좋은 것이다.
99. 자신만 잘하려고 하지 말고 팀 내의 팀원들이 판단을 잘하도록 도와주라.
100. 프로그램 개발 시에 모든 것을 혼자 다하려고 하지마라. 팀원들과 함께 일하라. 물론 부당한 요구는 거절할 줄 알아라.
posted by 초딩입맛제주아재
2007. 2. 13. 13:18 음악



I'm gonna believe in your eyes
당신의 눈빛을 믿을게요
So please don't say "love is blind"
그러니 제발 "사랑은 어리석은 것"이라고 말하지 말아요
I wanna be reading your mind
당신의 마음을 읽고 싶어요
In secret communication
비밀스런 방법으로

Do you like toffee and lemonade?
타피(과자의 종류)와 레모네이드를 좋아하세요?
It tends to taste so good hand-made
직접 만들면 정말 맛있답니다
Where are the smiles of yesterday?
어제의 미소는 어디로 갔나요?
Our childhood conversation?
우리의 순수한 대화는요?
*
Please kiss kiss
부디 키스를 키스를
Will anybody kiss me please?
누구든 제발 내게 키스해 주실래요?
Please please kiss kiss
부디 키스를 키스를
Give me strawberry kisses please
달콤한 딸기향 키스를 해주세요


I'm gonna become sunshine
나는 햇살이 되겠어요
And kiss everything in sight
그리고 보이는 모든 것에 키스를 할거예요
You could be a star in the night
당신은 밤하늘의 별이 되세요
Just use your imagination
상상해 보세요

I'm only holding back the rain
난 내 안의 비를 숨기고 있을 뿐이에요
So many raindrops and so many pains
너무 많은 빗방울과 너무 많은 아픔들
I wanna find my train someday
언젠간 나의 기차를 찾고 싶어요
As seasons go past the station
그 역으로 수많은 날들이 지나겠지요


오늘 무려 1시간을 이 노래를 찾아 해멨다.
아침에 전입신고를 하려고 들렀던 동사무소에서 라디오를 통해 이 노래를 들었다.
예전에 몇 번 인가 들었던 노래였는데 그때는 노래 참 좋구나,,라고 생각만 했을뿐이었는데
오늘은 꼭 이노래를 구해서 들어야 겠다는 생각이 든건 왜였을까...
생각나는 구절은 kiss kiss뿐, 다짜고짜 검색창에 kiss kiss 를 써 넣고 결과를 기다렸으나
내가 찾는것과는 다른 노래들만 찾아준다. -_-;
검색엔진은 못 미더워서 다음 단계로 돌입.

시간으로 볼때 '황정민의 FM대행진' 이었을거라 짐작하고 KBS 라디오 사이트를 뒤졌다.
덕분에 쓸데없이 '콩'이란것도 설치하고 KBS라디오 게시판을 두루두루 돌아보게됐다.
결국 이 노래는 그 다음 프로인 '유열의 음악앨범'에서 찾을 수 있었다.
휴...소비한 시간이 아깝긴 하지만 찾았으니 다행이다.

아내에게 피아노치며 불러 주고 싶은 노래다...
철없을때 만나서 지금껏 나 하나만 바라보며 내 곁에 있어준 소중한 사람.
세상 무엇과도 바꿀 수 없는 그 사람에게 오늘은 사랑한다는 말을 꼭 해야겠다....


posted by 초딩입맛제주아재