두번 반복된다면 함수로 만들어라.
맹 선생님 왈.

코드상에 2번만 반복되면 함수로 만들어라.!!

이 이야기는 코딩에서만 말하셨던게 아니다.
DB 도 포함되며 모든 설계에 적용할 수 있는 부분이다.

2번만 반복되는 부분을 함수로 만든다라는 건 어떻게 보면 서브 루틴으로 분기하는 것으로만 볼 수도 있지만.
객체지향적의 재사용성을 생각하면 상속,다형성 을 사용해야 하는거고
DB 측면에서 보면 관계형 DB 가 되는것이다.

항상 명심!!


by 베이스맨 | 2009/09/24 09:58 | 맹쌤왈 | 트랙백 | 덧글(0)
IDE(Integrated Development Environment)
맹선생님 왈.
모든 개발은 최대한 자동화 시켜라.
그리고 IDE 에게 맡겨라.

linux 개발자라면 console, vim 에서 개발을 해야지... 라는 구시대적 사고는 버려야 한다.
물론 지금도 unix/linux쪽 은행권, 증권사의 SI 개발자들...솔루션 개발자들... 
거의 대부분이 검은화면에서 열심히 키보드를 치며 코딩을 하고 있다.

unix/linux 개발자라면 한 번쯤은 아래와 같은 경험을 해보았을 것이다.

-. gdb의 사용이 불편했다.(가시적이지 않음)
    결국 printf 를 사용하게 되었다.
-. window 개발자의 black point 가 부러움
-. console 을 사용하게 되므로 과도한 손가락 관절 사용.

이러한 문제를 IDE가 해결해 준다.
이제는 unix/linux 개발자들도 console 화면에서 개발을 버려야 할 때이다.

앞으로 eclipse가 unix/linux 에서 얼마나 편안한 개발환경을 제공하는지 소개할 것이다.

참조 (각언어별 IDE 소개)

by 베이스맨 | 2009/09/22 23:54 | 트랙백 | 덧글(0)
c++ 기초플러스 02장
-. main 함수 구조 소개
int main()
{
}

-. 인터페이스 역할을 하는 함수 머리
   함수는 다른 함수에 의해 호출 되며 함수 머리는 호출 함수와 피호출 함수의 인터페이스를 나타낸다.
   main 은 컴파일러가 프로그램에 추가하는 시동코드에 의해 호출
   main 끝에 return 을 두어야 한다.(권고 ANSI/ISO  표준)

-. 주석 //
   C 스타일의 주석은 /**/ 이나 c99 에서 // 가 추가됨.

 -. c++ 전처리기와 iostream
   c++ 도 전처리기를 사용한다. 컴파일을 하기 전에 원시 파일에 대해 미리 어떤 처리를 수행
   어떤 작업을 할까?? -> 템플릿 코드 생성?, inline 코드, define 코드.
   include -> 전처리 지시자
   iostream.h 구식 컴파일러...iostream 최신
   iostream 왜 사용해야 하는가?? 프로그램과 바깥 세상이 정보를 주고 받기 위해.

-. namespace
   여러 개발 업체들의 제공 코드를 사용할 수 있다.
   using namespace std; 게으른 것으로 간주.
   using std::cout; 최신 방식이라고 한다..

-. cout << 
   << 에 대해 연산자 오버로딩을 한것이다.

-. endl vs \n
   사람에 따라 선호도 틀림. 편한걸 써라. 

-. c++ 명령문
   c++ 프로그램은 함수의 집함. 함수는 명령문들의 집함.
   명령문(선언 명령문, 대입 명령문)

-. 선언 명령문
   정확한 저장 공간 크기와 위치를 알아야 한다.
   정보 저장에 있어서 가장 쉬운 기억공간 형태 제공

-. c++ 스타일
   변수를 처음 사용하는 곳 가장 가까이 선언하라.effective cpp 에서 나옴.
   물론 변수를 한꺼번에 보지 못하는 단점이 있지만..ㅎㅎ 

-. 대입 명령문
   오른쪽에서 왼쪽

-. cout 출력 결합
   cout << "asdf" 
        << num
        << endl;
   c++ 는 캐리지 리턴과 빈칸을 바꾸어 사용하는것을 허용..뜨아.

-. 클래스 맛보기
   클래스는 사용자가 정의하는 데이터 형
   표현할 수있는 데이터의 정보와 수행할 수있는 동작 서술.
   객체는 클레스에 서술된데이터 형식에 따라 실제로 생성되는 구체물

-. 함수
   함수를 사용하기 전에 전달인자와 리턴 값의 종류를 알고 있어야 한다.
   함수 원형으로 정보 전달.
   원형은 함수의 인터페이스만 알려 주는것
   double side = sqrt(area); 함수 return 값으로 초기화 가능

-. 요약 
   c++ 은 함수라고 부르는 하나 또는 그 이상모듈로 이루어지며
   main() 함수부터 시작 반드시 하나는 있어야 함.
   선언 명령문: 함수에서 사용되는 변수의 이름과 데이터형 선언
   대입 명령문: 대입 연산자를 사용하여 변수에 값을 대입
   메시지 명령문: 개체에 메시지를 전달 활동 시작
   함수 호출: 함수 동작
   함수 원형: 인자개수, 데이터형, 리턴형 선언

-. 연습문제
   -. c++ 프로그램을 구성하는 모듈은? 
   -. #include <iostream> 전처리기 지시자가 하는 역할?
   -. using namespace std; 역할은?
   -. 문자열 출력호 새 행을 시작하려면?
   -. 정수형 변수를 선언하려면 어떤 명령문을 사용해야 하는가?
   -. 32를 대입하려면 어떤 명령문을 사용?
   -. 키보드로부터 입력받아 대입하려면 어떤 명령문 사용 해야 하는가?
   -. "We have X varieties of cheese" X 자리에 값을 출력하려면 어떤 명령문 사용?
   -. int froop(double t); 를 보고 알수 있는건?
   -. return 키워드가 필요 없을때 는 언제인가?


 

by 베이스맨 | 2009/09/22 23:17 | 트랙백 | 덧글(0)
클래스란 public 메쏘드로 설명할 수 있다.
너같은 입문자는 오직 한가지만 기억하면 된다.

클래스란 public 메쏘드로 설명할 수 있어

그이상도 이하도 아냐
그것만 명심하면 하나의 클래스를 어떻게 짜야하는지를 명확히 이해할 수 있어

그리고 또한가지 c하던애들에게 항상 얘기하는거지만
어짜피 그전엔 구조체포인터를 함수에 열라넘기며 쓰고 있었단말이지
그 습관을 그대로 oop에 가져오면 안된당

클래스는 말야 동사야
구조체는 명사지

클래스는 행위야 즉 메서드가 클래스를 정의해
따라서 클래스를 만들어내는 기준은 언제나 어떤 일을 처리해주기 위해서라는거야

student라는 구조체는 학생의 데이터를 저장하기 위해 만들어
하지만 student라는 클래스는 처음부터 그것에 관심이 없어
직 학생클래스가 왜 필요한가를 판단하는건 그 인스턴스의 무슨 메소드를 호출하려는건데만 중요한거지
데이터는 부가적인 문제야 내부적으로는 전역변수랑 조립했을수도 생성했을수도 서버에게 받아왔을수도 있어
관심없다는거지 

한마디로 데이터 그건 지 알아서 할일이고 호스트측에서 보는 학생클래스는 오직 동작인거

라서 행위를 정의하는데 총력을 기울여



by 베이스맨 | 2009/09/22 22:08 | 트랙백 | 덧글(0)
니 이야기 하지마라!
KRX 차세대 프로젝트를 진행하면서 굳모닝 신한증권에 추천 해 주겠다는 분이 있었다.
이 주제를 가지고 맹선생님과 대화 내용이다.

음 이제 회사생활몇년했으니 중요한걸 알려줄께
세상에서 니 인생에 영향을 끼칠만한 사람은 몇명 못만나
그리고 그 사람들이 너의 인생의 중요한 전환점을 만들어주곤하지
근데 남인 너에게 그런 기회를 제공하는 수고를 하는 이유는 뭘까
예를 들면 그분..  분은 왜 너에게 그런 제안을 하신걸까?
자식도 아니고 조카도 아니고 후배도 아닌

명진 왈 : 자기 일 편하려고???

그건 그렇지 않아
완전히 착각하는거지
그러니 항상 그점을 정확하게 인지하고 행동에 반영해야해.
사람은 말야, 남에게 인간적인 감동을 줘야
말하자면, 이 프로젝트가 잘못되었지만 명진씨에게는 고맙지. 나중에 다른일로 봅시다
이런게 더 중요해 명진이란 녀석이 개발은 잘하지...이런거 말고
그리고 그정도로는 사람의 마음을 능동적으로 움직일 수 없지
예를 들면 명진이..그넘 썩 괜찮아..
머 이런게 필요해
그럼 반대로..
니가 식당에 들어가서 마음이 움직이는 감동을 받으려면 
상대가 얼마나 정성스레 대접을 해야 감동했다라고 표현할거야..
그걸 니가 해야하는거야 클라이언트든 누구든

니가 나에게 연락하는 이유는 내가 널 그렇게 대했기 때문이야
똑같이 조카도, 자식도, 후배도 아닌 사람에게
난 그걸 좀 더 일찍 배웠으면 더 좋았겠다 싶을때가 있지 ^^
내가 중소기업에서 인터파크에서 SK에서 LG에서 옮겨다닐때
전부다 날 끌어주신 팀장, 부장, 이사님들이 계셨고
그게 다 나랑 뭔가 인연이 있었을때
그사람들이 나를 이쁘게 봐주셨기 때문이지
물론 언제나 얘기하지만 압도적이고 확실한 실력을 갖고 있는건 그냥 전재조건이야 ^^
당연히 잘해줘서 자기가 피해를 안볼것같아야하는데 그건 아주 기본적인 사회인의 예의지 ^^
그것 때문에 움직이는게 아니라는거야..
그것도 안되면 끼어들면 민폐라는거지
실력은 걍 기본으로 잘한다는걸 다 깔고 ^^
거기에 상대에게 감동을 줄만큼, 마음을 진심으로 줄 수 있는 진지하고 성실하고 무엇보다 남의 입장에서 뭔가 들어주고 해주려는 자세와 센스

사람들이 젤 좋아하는게 먼지 아남..??
돈인줄알지만 사실은..
자기를 알아주고 자기 생각대로 해주는거야
그럴려면 본인스스로를 버리고 남을 유심히 관찰하고 그 입장에서 해줘야하는거지
상대방이 그거야 그거..어쩜 그렇게 잘아냐..이런 반응이 나와야하는데
음..뭐 되었다 굴러가면 되었지
이런반응을 얻으면 일은 성공해도
사람에겐 실패한거지
개별 프로젝트따위는 니가 성공한게 머 대단하다고 ^^;
짜피 고만고만 하구만
사람에게 임프레션을 남기는게 진정한 의미의 캐리어야
니 이력서에 뭐라적던 그딴걸로는 결국
공채시스템으로만 옮겨다닐 수 있고
사람에게 받는 초과적인 이윤이 안생겨
사람이 해줘야만 사람이 사는 사회에서 훨씬 큰 뭔가가 생기는거야

그게 어린 사회진출한 개발자에게 쉽지 않은 덕목이지만
그걸 하기 위한 1단계를 거쳤으니
넌 다음단계로 갈 수 있을거야
전 아직 기본전인 전제 조건..
1단계가 뭐냐면..
처음에 막 공부하고 실무에서 지가 짠게 통하고 나름 열심히 공부했다고 생각하면
자신감이 붙는건 좋은데
우물안 개굴이처럼 자만해지지
그게 인간성에도 그렇고
실력이 딱 받쳐 주는게 아니라..
하지만 넌 날 만나서 중간에 정신좀 차리고 근본적으로 겸손해진거지 ^^
그러니 그게 태도와 사람을 대하는 자세에
기저에서부터 반영되고
결국 그러한 진정한 의미의 자기분수를 아는 겸손함은
사람들을 끌어들이는 기본적인 자세가 된당.

그게 1단계야..
2단계는 이제 내가 방금가르쳐준걸 깊이 인식하고
일을 바라보기 이전에 사람을 바라봐 ^^
사람이 프로젝트를 기획해서 사람이 돈벌고 사람이 잘먹고 살라고 공사를 만든거야
네 앞으로 일을 진행 할때 명심 하겠습니다.
그리고 발주도 사람이 하고 돈도 사람이 줘 ^^
만족도 사람이 해야하고
그리고 너의 상대는 언제나 갑이 아니야
갑의 대리인이야
갑의 대리인은 사실 갑과 별개인 경우도 많아
갑은 입장이 기간내에 성공시켜 돈을 벌겠다, 비용을 줄이겠다가
거의 똑같은 목표지
하지만 갑의 대리인은말야..
위기처한 대리, 과장, 부장이거나
신입 대리, 과장, 부장이거나
나태해지만 대리, 과장,부장이거나
하기싫은걸 억지로 하는 대리,과장부장이거나
열정만 넘치는 대리과장부장이겠지
사람을 보라는거야

네..
우린 일을 하고 갑에게 부끄러운거 없다..
머 이런거 절대 니 인생엔 도움안된다는거지
저 갑의 대리인은 저런입장이라 이 공사를 어떻게 하고 싶은거고 더 나아가 이공사를 통해 뭘 조직내에서 확보하고 싶거나 처리하고 싶은거구나를
정확하게 이해하고
작업하면서도 그런쪽으로 말이라도 건내고 열심히 하는 모습을 보이고..
그러면 그게 바로 그 사람눈에 니가 정말 똘똘하고 천재고 사람좋아보이는거지
니가 착하고 좋은 사람인게 문제가 아니라 ^^
예로부터 선비는 지기를 위해 목숨을 바친다고 했다 ^^
갑이든 을이든, 니네 회사안이든, 학교든, 심지어 가족이든..
누구에게나 지기가 되어서 벅찬 감동을 안겨라 ^^
니가 나에게 저말을 했을때 다른 사람들이 그 사람들 입장에서
잘되었구나라고 얘기해준것과
나에게 듣는 말이 더 좋은건
같은 원리인거야..
널 보고 너에게 필요한거 너에게 솔깃한게 뭘까
그중에 내가 해줄수 있는건 뭘까라고
보고 너에게 얘기해주니 열심히 듣고 잇겟지 ^^
지 얘기니까

명진 왈 : 그게 참 위에사람들이 가지고 있을 덕목중에 하나인데
             저희 회사 상사들을 생각 해보면..몇몇 없는듯 하네요..^^

그건 선입견이지
사람은 반대로 가는 경우가 많아
자만해지면 남에 얘기를 들을 줄 모르는것처럼
자신이 포지션이 높다고 생각하면
더욱 배려심이 없어지는게 보통이지
그러니 그 반대로 하는거 자체가
사람들에게 감동을 쉽게 주는거지
하지만 위,아래와 상관없어
그리고 정말로 상관없어 니 인생과는 ^^

니 인생에서 내가 말한대로 해야할 유일한 사람은
너야
거만한 상대를 만나면 그 허영기와 자만심을 잘 충족해주고 
잘따라줘야하는게 너야
하하하
쟨 왜 저러냐라고 안하고
내가 말한 요지는 바로 이거야
넌 여전히 자세가 ^^
남은 너와 다르고 다른건 잘못되었다고 보는
유아기적인 사고관에서 못벗어나는거지
사람은 근본적으로 다 다르고 다 옳아
다 옳다는 증거는 사회에서 잘 살고 있다는게
증거야
그러니 자길 잠시 버리고 남을 대할때는 남의 세계관과 가치관에 맞춰서 상대의 감성과 지성에 맞춰줘야
그 상대는 널 보다 아주 쉽게 이해할 수 있고
널 좋아하게 되겠지
만약 너의 언어로 너의 가치관으로만 뭔가 떠들면
이해할수도 있겠지만
이해못하는게 정상이고
모르는건 방금 너처럼..
화를 내고 사람으로서 관계가 쌓이지 않겠지
사람은 누구나 받고 싶어해 ^^
주는 사람이 되면 다 너의 팬이 되고
너를 찾고 너의 인생이 피는거지
설맞이 새해 선물이다.




남들 생각을 듣고 남들 이야기를 해라!!
확실한 실력은 전재조건이며 없으면서 끼여드는건 민폐다.
by 베이스맨 | 2009/09/16 00:05 | 맹쌤왈 | 트랙백 | 덧글(1)
< 이전페이지 다음페이지 >