'분류 전체보기'에 해당되는 글 367건

  1. 2010.04.05 2010년 4월 5일 - 델파이 강의
  2. 2010.04.01 강의실로 입장하기
  3. 2010.03.31 온라인 강좌 녹화 자료
  4. 2010.03.29 SVN Global Ignore Pattern
  5. 2010.03.29 관점 대립
  6. 2010.03.26 2010년 3월 29일 - 델파이 강의
  7. 2010.03.23 Job Flow의 소개
▶ 녹화자료보다 본방을 사수해야 하는 이유
  • 녹화자료는 화질이 선명하지 않습니다만, 본방은 아주 깨끗 합니다.
  • 강의 중에 언제든지 질문하실 수 있습니다.
  • 혼자 녹화자료 보는 것보다 학습동기 부여가 좋습니다.
  • 본방에 인원이 너무 저조하면 강사가 자극받아서 녹화자료를 오픈안할 수가 있습니다 ㅡ.ㅡ;

 

강의시간
  * 2010년 4월 5일 월요일 저녁 9시 30분 (1초도 안기다리고 그냥 강의 시작합니다)

 

접속방법
  * http://ryujt.textcube.com/ 접속
  * 우측 상단에 있는 "강의실 들어가기" 클릭
  * 온라인 강의 프로그램 설치를 위해, Active-X를 사용합니다. 
  * 아이디/암호 아무거나 입력 (아이디는 커뮤니티 필명으로 해주세요)
  * 한 번 입력된 아이디 암호는 기억됩니다.  (서버 재부팅 하기 전까지)
  * 여전히 프로그램 디자인 및 UI는 미비합니다 ㅡ.ㅡ;; 
   (조만간 오픈 소스로 공개 할 예정입니다.  공개 범위는 우선 수강자용 프로그램입니다.)

 

강의내용
  * Warm-up Time
    - 간략한 팁
    - 최대한 초보자도 이해할 수 있도록 쉬운 접근을 할 것 입니다.
      . 필요에 따라서는 구현설명이 아닌 사용/활용 방법 설명


  * Main Session
    - 빨간팬 만들기
      . 모니터가 하나 이상일 때, 선택 기능 추가
      . 대충 쉽게 따라할 수 있는 소스를 먼저 작성
      . 객체지향적 설계를 토대로 기능 추가 및 업그레이드
      . SVN 사용법 필수 (아래 링크 참고)
        http://www.seinsoft.co.kr/support/download/devnu/Ryu/r100329_1k_4z/r100329_1k_4z.htm
      . 소스 저장소 : http://dev.naver.com/projects/deskpen
     

녹화내용

  * Warm-up Time

  * 빨간팬 만들기 Part-01, Part-02

  * 연장강의 MegaCast Part-01, Part-02, Part-03


'강의' 카테고리의 다른 글

2010년 4월 19일 - 델파이 강좌  (1) 2010.04.16
2010년 4월 12일 - 델파이 강좌  (0) 2010.04.08
2010년 4월 5일 - 델파이 강의  (0) 2010.04.05
강의실로 입장하기  (0) 2010.04.01
온라인 강좌 녹화 자료  (0) 2010.03.31
2010년 3월 29일 - 델파이 강의  (0) 2010.03.26

Posted by 류종택
강의실로 접속 중 입니다.

실시간 강의 프로그램을 사용하기 위해서는 Active-X 설치가 필요합니다.

수동 설치 프로그램은 아직 제공되지 않습니다.
이점 널리 양해 바랍니다.

로그인 창이 나타나면,
아이디와 암호는 아무것이나 입력하시면 됩니다.
(한 번 입력된 아이디와 암호는 서버가 재가동 되기 전까지 기억됩니다)

'강의' 카테고리의 다른 글

2010년 4월 19일 - 델파이 강좌  (1) 2010.04.16
2010년 4월 12일 - 델파이 강좌  (0) 2010.04.08
2010년 4월 5일 - 델파이 강의  (0) 2010.04.05
강의실로 입장하기  (0) 2010.04.01
온라인 강좌 녹화 자료  (0) 2010.03.31
2010년 3월 29일 - 델파이 강의  (0) 2010.03.26

Posted by 류종택
▶ 녹화자료보다 본방을 사수해야 하는 이유
  • 녹화자료는 화질이 선명하지 않습니다만, 본방은 아주 깨끗 합니다.
  • 강의 중에 언제든지 질문하실 수 있습니다.
  • 혼자 녹화자료 보는 것보다 학습동기 부여가 좋습니다.
  • 본방에 인원이 너무 저조하면 강사가 자극받아서 녹화자료를 오픈안할 수가 있습니다 ㅡ.ㅡ;

데브앤유에서 이정칠님께서 녹화를 해두신 것이 있네요 ^^*

2010년 3월 15일


2010년 3월 23일

2010년 3월 29일

'강의' 카테고리의 다른 글

2010년 4월 19일 - 델파이 강좌  (1) 2010.04.16
2010년 4월 12일 - 델파이 강좌  (0) 2010.04.08
2010년 4월 5일 - 델파이 강의  (0) 2010.04.05
강의실로 입장하기  (0) 2010.04.01
온라인 강좌 녹화 자료  (0) 2010.03.31
2010년 3월 29일 - 델파이 강의  (0) 2010.03.26

Posted by 류종택

SVN Global Ignore Pattern

etc 2010.03.29 21:06
SVN 사용할 때,
무시해도되는 확장자 모음입니다.

Delphi & Visual Studio
Debug Release Win32 Win64 __history *.~* *.dcu *.exe *.dll *.local *.identcache *.drc *.map *.zip *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store *.rsm *.ipch *.ocx *.sdf ipch

기타
__history *.~* *.dcu *.local *.identcache *.drc *.map *.zip *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store thumbs.db Thumbs.db *.bak *.class *.ap_ *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk *.msi* *.pch *.suo *.exp *.*~ *.~* ~*.* release Release debug Debug ignore Ignore bin Bin obj Obj *.csproj.user *.user *.rsm *.ipch *.so.[0-9]* *.a *.pyc *.pyo __pycache__ Win32 Win64 *.sdf ipch
 


'etc' 카테고리의 다른 글

시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13
컴파일러 만드는 중 (Blue Orange)  (2) 2010.09.17
텍스트 기반 Network Programming 설계  (1) 2010.05.24
About me & Contact  (0) 2010.05.23
SVN Global Ignore Pattern  (0) 2010.03.29

Posted by 류종택

관점 대립

종태기 생각 2010.03.29 11:06
어느 회사에서 마케팅팀과 개발팀의 갈등이 있었습니다.

  마케팅팀은
  제품 판매에 용이하고 보다 개선된 수익모델을 위해
  제품의 모든 기능을 컴포넌트처럼 선택이 가능하도록 해야 한다고 했습니다.
 
  개발팀은
  이미 개발된 구조를 버리고 새로 개발해야하는 상황이며,
  새로 개발한다고 해도 마케팅팀이 원하는 수준의 컴포넌트화는 어렵다고 했습니다.
 
  사실 소프트웨어는 전혀 소프트하지 않습니다.
  일반인에게 아주 쉬워보이는 변화에도 엄청난 비용이 필요하게 됩니다.
  이부분은 개발자 이외의 인원들이 자주 간과하는 일입니다.

    더욱 위험한 것은
    개발 경험이 있거나, 방금 전까지 개발을 해왔던 사람들도,
    자신의 업무의 특성이 바뀌면,
    관점이 변한다는 것을 까맣게 잊어버리는 것 입니다.

  두 팀은 하염없이 논쟁을 하면서 시간을 보내고, 지쳐버렸습니다.

다른 회사에서 같은 일이 벌어집니다.

  개발팀은 마케팅팀의 관점에서 요구사항을 다시 해석합니다.

  "문제에 집중하면 해답을 찾기 어렵다"는 교훈을 가슴에 새기고,
  제품을 콤포넌트화라는 문제 또는 원인보다 그것으로 얻게되는 이득을 생각합니다.
 
  개발팀은
  개발된 제품의 모든 기능에 플래그를 다는 것으로 문제를 해결합니다.

  "컴포넌트화 되었다는 것은 사기다"라고
  목소리를 높이는 개발자도 있었습니다.
 
  하지만, 마케팅팀이 만족합니다.
  필요에 따라 기능을 언제든지 따로 설치할 수 있었기 때문입니다.
  물론 모든 기능은 이미 설치되어 있었지만..
 
  하지만, 고객이 만족합니다.
  필요없는 기능을 구매할 필요가 없었기 때문입니다.
  물론 마케팅팀은 그것을 감안하고 더 비싸게 팔고 있었지만..
 
  결과적으로 개발팀도 만족합니다.
  dll, com 등 다양하고 복잡한 컴포넌트화 악몽에서 벗어날 수 있었기 때문입니다.
  물론 여전히 간단해 보이는 플래그 관리에 시달리고 있었지만..

사실 마케팅팀과 개발팀 사이에는
이러한 것보다 더 많은 갈등이 항상 있어왔습니다.

해결책은 간단합니다.

  마케팅팀은 개발의 난이도를 직관에 의존하여 판단하지 않으면 됩니다.
  또한, 그 잘못된 판단으로 개발팀에게 압력을 주지 않으면 됩니다.
 
  개발팀은 요구된 기능/문제에만 집중해서는 안됩니다.
  "문제에 집중하면, 해답을 바라볼 수가 없습니다."

'종태기 생각' 카테고리의 다른 글

얼마나 배워야 하나요?  (0) 2010.12.20
신입의 자격  (2) 2010.11.15
입사시험  (3) 2010.10.26
임기응변으로 모든 것을 해결하려는 우리 현실  (0) 2010.06.25
나팔소리에 취하지 마라  (0) 2010.04.07
관점 대립  (0) 2010.03.29

Posted by 류종택


델파이 온라인 강의를 아래와 같이 실시합니다.

한동안 개인적인 사정으로 중단했었는데,
이번에는 끊임없이 진행될 수 있었으면 좋겠네요 ^^;

프로그램 디자인 및 UI는 역시나 구립니다.
언젠가는 좋아질 것 입니다 ㅡ.ㅡ;;

다시 온라인 강의를 시작한게, 이번이 세번째 입니다.
앞으로 특별한 일이 없으면,
매주 월요일 저녁 9시 30분부터 1시간 30분에서 2시간 정도를 생각하고 있습니다.
(시간에 대한 의견은 각 커뮤니티 제 글에 댓글 달아주시면 최대한 반영하겠습니다)

강의시간
  * 2010년 3월 29일 월요일 저녁 9시 30분 (1초도 안기다리고 그냥 강의 시작합니다)

접속방법
  * http://ryu.wowip.kr 접속
  * 입실하기 클릭
  * 아이디/암호 아무거나 입력 (아이디는 커뮤니티 필명으로 해주세요)
  * 한 번 입력된 아이디 암호는 기억됩니다.  (서버 재부팅 하기 전까지)
  * 강의 전에도 접속이 가능합니다.

강의내용
  * Warm-up Time
    - 간략한 팁
    - 최대한 초보자도 이해할 수 있도록 쉬운 접근을 할 것 입니다.
      . 필요에 따라서는 구현설명이 아닌 사용/활용 방법 설명
  * Main Session
    - 빨간팬 만들기
      . 모니터가 하나 이상일 때, 선택 기능 추가
      . 대충 쉽게 따라할 수 있는 소스를 먼저 작성
      . 객체지향적 설계를 토대로 기능 추가 및 업그레이드
      . 강의는 시간에 맞춰서 다음 주까지 이어질 수도 있습니다.
      
주의사항
  * 본 강좌는 유료입니다.  강의를 들으신 분들은 반드시 후기를 남기셔야 합니다.
    . 후기를 남기는 곳은 어디든지 상관없습니다.  
    . 자신의 블로그도 상관없고, 일기장?? ㅡ.ㅡ;;

첨부파일 설명
  * Sample.zip
     - Warm-up Time에 소개할 양병규님의 BitmapRgn 유닛 사용법 입니다.
     - 제가 필요에 의해서 조금 소스를 수정하였으며, 쉽게 사용하는 방법을 제시합니다.
  * DeskPen.zip
     - Main Session에서 다룰 예제 프로그램입니다.
     - Ctrl+1을 클릭하시면 화면에 낙서할 수 있습니다.

'강의' 카테고리의 다른 글

2010년 4월 19일 - 델파이 강좌  (1) 2010.04.16
2010년 4월 12일 - 델파이 강좌  (0) 2010.04.08
2010년 4월 5일 - 델파이 강의  (0) 2010.04.05
강의실로 입장하기  (0) 2010.04.01
온라인 강좌 녹화 자료  (0) 2010.03.31
2010년 3월 29일 - 델파이 강의  (0) 2010.03.26

Posted by 류종택

Job Flow와 관련 된 다른 포스트


 

 

▶ 만든계기

Job Flow는 1995년 여름 어느 날 델파이 프로젝트를 진행하던 중, 객체간의 메시지 흐름만을 명확하게 도식해 보려는 시도를 통해서 만들어진 문서형식입니다.

 

 

▶ 모듈별 분업화에 이르는 길

절자적 프로그래밍으로도 모듈화는 가능합니다.  예를 들어 델파이의 유닛참조나, C 언어의 include를 통해서 프로그램의 일부분을 라이브러리라는 모듈로 나눠서 작성하면 됩니다.  하지만, 모듈별 분업화에 있어서, OOP와 절차적 프로그래밍 사이에는 커다란 차이가 있습니다.  아래의 차이점을 이해하지 못한다면,  단순히, Class를 사용한다고 객체지향적 프로그래밍을 한다고 할 수는 없습니다.

  • 인터페이스 분리 vs 코드 분리
    • 코드 분리를 통한 모듈화에서는 의존성에 대한 코드를 격리시켜서 변화에 대비할 수가 없습니다.
    • 의존성과 전혀 관련이 없는 함수와 루틴을 은닉할 수 없습니다.  (Class의 private method와 비교됨)
    • 코드 분리를 통한 모듈화에서는 데이터를 은닉할 수 있는 방법이 없습니다.
  • Event 중심 개발 vs Flow 중심 개발
    • Flow 중심으로 개발하게 되면, 다른 객체의 변화를 필요 이상으로 감시해야되는 문제가 발생합니다.
    • 나의 변화는 Event를 통해서 누군가에게 알려줬다는 사실만 기억할 수 있으면 됩니다.
    • 다른 객체의 변화는 해당 객체의 Event를 구독하겠다는 신청을 한 것으로 감지할 수 있어야 합니다.

 

 

▶ 인터페이스 분리란?

다음 코드에서 우리가 알 수 있는 것은 무엇일까요?

[code delphi]
type
  TClock = class(TObject)
  private
  public
    procedure Start; virtual; abstract;
    procedure Stop; virtual; abstract;
  end;
 
var
  Clock : TClock;
 
begin
  Clock := TClock.Create;
  Clock.Start;
[/code]

위의 코드만으로는 당연히 에러가 납니다.  Start라는 메소드가 구현되지 않았기 때문입니다.

 

아래의 코드는 어떻습니까?

[code delphi]
type
  TClock = class(TObject)
  private
  public
    procedure Start; virtual; abstract;
    procedure Stop; virtual; abstract;
  end;
 
  TDigitalClock = class(TObject)
  private
  public
    procedure Start; override;
    procedure Stop; override;
  end;
 
var
  Clock : TClock;
 
begin
  Clock := TDigitalClock.Create;
  Clock.Start;
[/code]

코드가 완전하지는 않지만, override를 통해서 해당 메소드가 구현된 부분이 동작하게 될 것이라 추측할 수가 있습니다.  이를 통해서 우리가 얻을 수 있는 것은, 이후 어떠한 동작을 하는 시계 클래스를 만들더라도 사용법은 Start, Stop으로 동일합니다. 라는 보장을 받을 수 있다는 것 입니다.  즉, 이제 구현과정이 아무리 복잡하고, 변화가 심해도 그것은 이것을 사용하는 다른 코드(객체)에는 전혀 영향을 줄 수 없다는 확신이 생긴 것 입니다.

 

 

▶ 절차 중심적 사고와 Event 중심적 사고의 차이

[그림 1] 절차 중심적 사고와 Event 중심적 사고의 차이

 

[그림 1]은 같은 상황을 절자 중심적으로 설계된 과정과 Event 중심적으로 설계된 과정을 Job Flow로 도식화 한 것 입니다.

 

그림의 윗쪽의 상황은

  • 클라이언트가 서버에 접속하면 암호화에 필요한 키를 받게되고
  • 게임 모듈에서는 사용자가 프로그램을 조작했을 때 발생하는 이벤트를 명령어로 변환하여 소켓을 통해서 서버로 전송하게 됩니다.
  • 만약 소켓이 아직 서버에 접속 중이면서 아직 키를 받지 못한 때에 명령어를 전송할 수가 없습니다.
  • 전송하기 전에 Key값을 받았는 지 점검하고, 받지 않았으면 키값을 받을 때까지 반복하면서 기다립니다.
  • 전송되는 명령어는 암호화되어서 서버로 전송됩니다.

그림 아랫쪽의 상황은

  • 클라이언트가 서버에 접속하면 암호화에 필요한 키를 받게되고
  • 이때, 이벤트를 통해서 상황을 알아야할 객체에게 알려주게 됩니다.
  • 게임모듈은 클라이언트 소켓이 키를 받아서 사용할 수 있게되었다는 이벤트를 받습니다.
  • 게임모듈은 해당 이벤트가 발생하면 자신을 Enabled 될 수 있도록 합니다.
  • 명령어 전송이 키를 받기 전에 이루어지지 않도록 방어하는데 루프를 반복할 필요가 없습니다.

 

 

▶ Job Flow의 작성 목적

 

▶ 기능

 

▶ 작성법

 

 

Codeway.vss


Posted by 류종택


티스토리 툴바