집을 보다 끄적임...

'시스템분석 및 설계 > 디자인패턴' 카테고리의 다른 글

팩토리 패턴  (0) 2012.10.22
필요하시면 보시고, 댓글은 필수!

c#환경변수 설정

실행--> CMD 상에서 C#컴파일 가능

내컴퓨터 -->속성-->고급-->환경변수-->PATH(편집) 에 CSC.EXE 파일이 있는경로를 설정C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

(보통 알집으로 설정이 되어있지만 상관말고 밀어버리셈..)

해주면 CMD(도스 커맨드창) 어느곳에서든 CSC 컴파일이 가능

 출처:// 내 머리 중추신경 어딘가에서..


COM(Component Object Model)은 Visual C++를 비롯한 다양한 언어로 만들어서 배포할 수 있으며,

DLL이나 EXE 파일처럼 이진코드(binary)에서의 표준을 말한다. COM을 만드는 것은 어떤 언어든 관계가 없으며

단지 COM 표준을 잘 지켜서 만들면 된다. COM은 다음과 같이 발전해 왔다.

 

메인프레임 -> 클라이언트/서버 -> 3 tier 클라이언트/서버(분산 컴퓨팅 환경)

 

분산 컴퓨팅 환경에서 응용 프로그램을 어떻게 구성하고 묶어나가는가는 중요한 문제로 떠올랐으며,

이를 해결하기 위해 컴포넌트에 기반한 객체 기술이 생겨났다. 컴포넌트 기반 기술은 각 회사별로 다음과 같다.

 

윈도우:

마이크로소프트 - COM/DCOM, COM+

 

유닉스:

OMG(object management group) - CORBA

선마이크로시스템즈 - EJB(enterprise java beans)

 

다음은 COM의 발전사이다.

 

OLE(object linking and embedding) - 객체(엑셀,워드,비트맵)를 서로 연결하고 포함하는 기술로써

      DDE(dynamic data exchange)를 사용하여 구현.

 

OLE2 - DDE의 문제점을 개선. 이때부터 COM이라 부름.

 

-------------------------------*^^*-----------------------*^^*----------------------------

 

COM 용어

 

COM 인터페이스 - C++에서 볼 수 있는 가상 함수 테이블. 우리는 이 가상함수 테이블의 포인터를 얻는

                           것을 QueryInterface() 함수를 통해 구현할 수 있다.

메서드 - COM 인터페이스가 제공하는 함수를 메서드(method)라 부른다.

IUnknown 인터페이스 - 모든 COM 프로그램이 반드시 상속 받아야 하는 인터페이스로, QueryInterface(),

                                 AddRef(), Release() 메서드(함수)를 갖고 있다.

CoClass - 하나 이상의 인터페이스와 실제 구현 코드. CoClass는 하나 이상이 모여서 DLL 또는 EXE 파일로

               컴파일되어 저장된다.

COM 오브젝트 - CoClass가 메모리에 로드되어 객체화된 상태

COM 서버 - 기능을 제공하는 프로그램(DLL 또는 EXE)

COM 클라이언트 - DLL 또는 EXE를 사용하는 프로그램

GUID - Globally Unique IDentifier. 전세계적으로 유일한 값(ID)으로 16바이트(128bits)로 구성, GUID는

          네트워크 카드의 물리적인 주소(48비트), 1582년 이후의 10억분의 1초(60비트), 기타(20비트)로 구성.

CLSID - COM객체마다 유일한 GUID.

IID - CoClass의 인터페이스마다 유일한 GUID.

HRESULT - COM에서 사용되는 함수가 리턴하는 값. S_OK, E_NOTIMPL, E_NOINTERFACE 등.

COM 라이브러리 - COM을 지원하기 위한 운영체제의 함수들. 보통 CoXXX()처럼 호출됨.

ProgID - GUID를 대신해서 사용할 수 있는 문자열로 구성된 ID. (예-Excel.Application.12)

 

 

COM 응용 기술

 

자동화(Automation) - IDispatch 인터페이스를 통해 COM을 제어하는 기술.

OLE 문서 - IOleContainer, IOleObject 등의 인터페이스를 통해 서로 데이터를 공유하는 기술.

클립 보드 - IDataObject 인터페이스를 통해 데이터를 주고 받는 기술.

드래그 앤 드롭 - IDropTarget, IDropSource 등의 인터페이스를 사용하며, 마우스로 데이터를 끌어다

                       놓고 전송하는 기술.

ActiveX 컨트롤 - 일반적인 컨트롤처럼 사용될 수 있으며, 비주얼 베이직, 웹페이지에 삽입될 수 있음.

                        다른 말로 OLE 컨트롤이라고도 부름. 확장자가 OCX 임.

 

퍼온글 : http://cafe.naver.com/pplus.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=140

cygwin을 설치하고 공부하면서 설정하는 부분에서 어떻게 들어가서 편집을하고 저장해야 하는지 부터 공부를 해야 했고, vi라는 편집기를 알게 되었고 vi 편집기에 대한 명령어도 공부를 하게 되더군요.
그래서 이쯤에 vi명령어를 발굴해서 올려보기로 작정하고 이렇게 찾아서 올립니다. 많은 도움 되셨으면 합니다.^^;

-. vi       - vi편집기를 호출한다.
-. vi filename     - 기존에 있는 파일이면 그 파일을 열고 없는 파일이면 새로 만든다.
-. vi + 10filename    - 지정화일의 10번째 행부터 화일열기
-. vi +/"school" filename  - 지정화일내의 school이란 단어가 처음나오는 시점부터 열기
-. vi -r filename    - 손상된 파일을 복구
-. view filename    - 수정없이 읽기전용으로 열기

커서의 이동
-. h    - 왼쪽으로 이동
-. j     - 아래로 이동
-. k    - 위로 이동
-. l    - 오른쪽으로 이동
-. w    - 한단어 오른쪽으로이동
-. b    - 한단어 왼쪽으로 이동
-. Return   - 한행아래로 이동
-. Backspace  - 한문자 왼쪽으로 이동
-. Spacebar  - 한문자 오른쪽으로 이동
-. H    - 화면의 맨위로 이동
-. M    - 화면의 중간으로 이동
-. L    - 화면의 맨 아래로 이동
-. ^F    - 한화면 앞으로 이동
-. ^D    - 반화면 앞으로 이동
-. ^B    - 한화면 뒤로 이동
-. ^U    - 반화면 뒤로 이동

▒ 삽입명령어
-. a   - 커서 오른쪽에 문자삽입
-. A   - 커서 오른쪽, 행의끝에 문자삽입
-. i   - 커서 왼쪽에 문자삽입
-. I   - 커서왼쪽, 행의 처음에 문자삽입
-. o   - 커서 아래에 행 삽입
-. O   - 커서 위에 삽입
-. <Esc>  - 작업완료후 반드시 입력

▒ 텍스트 변경
-. cw    - 단어 변경
-. cc    - 변경
-. C    - 커서 오른쪽의 행 변경
-. s    - 커서가 위치한 문자열 대체
-. r    - 커서 위치 문자를 다른 문자로 대체
-. r-Return  - 행 분리
-. J    - 현재 행과 아래 행 결합
-. xp    - 커서 위치 문자와 오른쪽 문자교환
-. -    - 문자형(대,소문자) 변경
-. u    - 이진 명령 취소
-. U    - 행 변경 사항 취소
-. :u    - 이전의 최종행 취소

▒ 텍스트 삭제
-. x   - 문자삭제
-. dw   - 단어삭제
-. dd   - 행 삭제
-. D   - 커서 오른쪽 행 삭제
-. :5,10 d  - 5-10째 행 삭제

▒ 행번호 설정
- :set nu   - 행번호 표시
- :set nonu  - 행번호 숨기기

행 찾기
-. G    - 파일의 마지막 행으로 가기
-. 12G    - 파일의 12번째 행으로 가기

▒ 텍스트의 복사 및 이동
-. yy    - 행 yank 또는 복사
-. Y    - 행 yank 또는 복사
-. P    - yank 되거나 삭제된 행을 현재 행 아래에 삽입
-. p    - yank되거나 삭제된 행을 현재 행 위에 삽입
-. :1,2 co 3  - 1-2행을 3행 다음으로 복사
-. :4,5 m 6  - 4-5행을 6행 다음으로 이동

▒ 탐색 및 대체
-. /string/         - string탐색
-. ?string?         - string 역 방향 탐색
-. n(N)          - string의 다음(이전) 계속 탐색
-. :g/search-string/s//replace-string/gc  - 각 발생 탐색후 확인하고 대체
-. :s/str/rep/         - 현재 행의 str을 rep로 대체
-. :1,.s/str/rep/        - 1부터 현재 행의 str을 rep로 전부 대체
-. :%s/str/rep/g        - 파일 전체 str을 rep로 전부 대체

▒ 화면정리
^L <Ctrl + L> 불필요한 화면 내용 제거 후 다시 표시
다른 파일을 파일내로 삽입
-. :r filename   - 커서 다음에 파일 삽입
-. :20 r filename  - 파일을 20번째 행 다음에 삽입

▒ 파일의 저장 및 종료
-. :w   - 변경사항 저장
-. :w filename  - 지정한 파일로 저장
-. :wq    - 변경사항 저장후 vi종료
-. ZZ    - 변경사항 저장후 vi종료
-. :q!    - 변경사항을 저장하지 않고 vi종료


-. clear  - 화면의 내용을 깨끗이 지운다.
-. ls   - 현재 디렉토리의 파일목록을 표시한다.
-. cp   - 파일을 복사한다.
-. mv   - 파일의 이름을 변경한다.
-. mv   - 파일을 다른곳으로 옮긴다.
-. rm   - 파일을 삭제한다.
-. cat   - 파일내용을 표시한다.
-. pwd   - 현재 위치의 경로를 표시한다.
-. cd   - 디렉토리의 경로를 이동한다.
-. mkdir  - 새로운 디렉토리를 만든다.
-. rmdir  - 디렉토리를 삭제한다.



▒ :k,l command m  
:1,10 co 50  - 1 줄 부터 10 줄 까지를 50 줄 이후로 복사
:34,50 d   - 34 줄 부터 50 줄 까지 삭제
:100,150 m 10   - 100 줄 부터 150 줄까지를 10 줄 이후로 옮김
:.,$ d    - 현재줄부터 끝까지 지우기
:.,+20 co -4    - 현재줄부터 20줄을, 4줄 위에 복사하기
:-,+ t 0   - 위, 아래로 한줄(총 3줄)씩을, 문서 맨위에 복사하기
:/pattern/ d   - pattern 이 들어있는 줄 지우기
:/pattern/ -nd   - pattern 이 들어있는 줄로부터 n 번째 윗줄 지우기
:/pattern/ +nd   - pattern 들어있는 줄로부터 n 번째 아랫줄 지우기
:/p1/, /p2/ d   - p1 이 들어있는 줄부터, p2 가 들어있는 줄까지 지우기
:.,/pa/ m 23   - 현재줄부터 pa 이 들어있는 줄까지, 23번줄 이후로 옮기기 

▒ g 옵션 붙이기  
:g/pattern   - 파일전체에서 마지막으로 pattern 이 쓰여진 줄로 가기
:g/pattern/ p   - 파일전체에서 pattern 이 있는줄 보여주기
:g/pattern/ nu   - 파일전체에서 patterm 이 있는줄을 번호와 함께 보여주기
:60,124 g/pa/    - p 60,124 줄 사이에서 pa 이 들어있는줄 보여주기

▒ 저장 및 종료  
:w     - 저장하기  
:q     - 종료하기 
:wq    - 저장하고 종료하기 
:x    - 저장하고 종료하기 (:wq 와 동일)
:w!     - 강제로 저장하기 (read-only 로 열었을경우)
:q!     - 편집한 내용을 저장하지 않고 종료하기
:w    - new_filename new_filename으로 저장하기
:w %.new   - 현재파일 이름에 .new 를 붙여서 새로운 파일로 저장
:230,$ w filename ant - 230 줄부터 끝줄까지 filename으로 저장하기
:.,580 w filename  - 현재줄부터 580줄까지 filename으로 저장하기
:1,10 w new_filename  - 1줄부터 10줄까지 new_filename으로 저장하기
:340,$ w >>new_file  - 340줄부터 끝줄까지 new_file에 추가하기 

읽기  
:r[ead] filename  - 현재위치에 filename 읽어들이기
:r /usr/local /data  - 현재위치에 /usr/local/data 읽어들이기
:185 r /usr/ local/data - 185줄 이후에 /usr/local/data 읽어들이기
:$ r /usr/local/data  - 맨끝줄 이후에 /usr/local/data 읽어들이기
:0 r /usr/local/data  - 맨윗줄에 /usr/local/data 읽어들이기
:/pa/ r /usr/local/data - pa 이 존재하는 줄에 /usr/local/data 읽어들이기

▒ 다중편집하기  
vi file1 file2 file3 :args - 편집중인 파일목록 보여주기
:n[ext]   - 다음 파일로 넘어가기
:prev[ious]   - 이전파일로 돌아가기
sc/ESC/g    - BX가 있는줄 찾아서 Esc 를 ESC 로 바꾸
:% s/editer/editor/g   - 처음줄부터 마지막줄까지, editer 를 editor 로 바꾸기
:g/editer/ s//editor/g  - 위와 동일("s/" 다음에 인자가 없어서 윗줄과 같은효과


출처 -   http://cafe.naver.com/iscript.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=122

연관글



< Cygwin 홈페이지 > 이 주소의 시그윈 홈에 보면

Install or update
now!
(using setup.exe)


이런 곳이 있습니다. 'setup.exe를 사용해 인스톨/업데이트'하는 메뉴입니다. 그곳을 클릭하면 setup.exe 라는 조그만 파일이 다운로드됩니다. setup.exe 를 실행하면 인터넷 서버에서 실시간으로 파일을 받아오며 인스톨이 시작됩니다.

※ 시그윈은 무료이고 오픈소스입니다


인스톨 과정



* Install from Internet (인터넷으로부터 인스톨; 다운받은 파일들은 나중에 다시 사용할 수 있도록 지우지 않음)

* Download without Installing (필요한 파일을 다운로드만 하고, 인스톨은 하지 않음)

* Install from Local Directory (하드에 이미 다운받아 놓은 파일로 설치)

이런 옵션 대화상자가 나오는데, 처음 설치라면 Install from Internet (인터넷으로부터 인스톨) 을 선택합니다.



Select Root Install Directory (인스톨할 루트 디렉토리를 선택하세요) 라는 곳이 나오는데, 하드의 어디에 시그윈을 설치할지 물어보는 것입니다. 저의 경우
D:\cygwin
여기로 지정했습니다. 나머지는 기본값이 좋습니다.



Select Local Package Directory (설치 파일을 보관할 곳을 정하세요)

다운받은 시그윈 설치파일들을 지우지 않고 계속 보관할 폴더를 지정하는 곳입니다. 저의 경우에는
D:\Warehouse\cygwin_install_files
이런 폴더를 만들어서 지정해 주었습니다. 시그윈도 일종의 유닉스이기에, 디렉토리/파일명에는 공백문자가 들어가지 않는 것이 좋을 것 같습니다.



Select Your Internet Connection (인터넷 연결 방식을 선택하세요)

Direct Connection (직접 연결)을 선택했습니다.



Choose A Download Site (다운받을 사이트를 고르세요)

설치 파일들은 시그윈 홈페이지가 아닌 세계 각곳의 FTP 서버에 올려져 있습니다. 그래서 골라야 하는데, 서버에 따라 아주 느리거나 아예 다운로드가 안되는 경우가 많습니다.

예전에는 한국의 "리눅스사랑" 서버가 좋았는데 지금은 보이지 않습니다.

"초고속연구망 KREONET": ftp://ftp.kreonet.re.kr
여기가 속도도 빠르고 잘 되는군요. 아무튼 한국 서버에서 받는 것이 빠릅니다.



Select Packages (설치할 패키지를 고르세요)

이 부분이 좀 어렵습니다. 리눅스에 익숙하지 않다면 무엇을 설치해야 할지 알 수가 없을 것입니다. 시그윈은 Vim (VI; 빔) 같은 에디터조차도 기본적으로는 설치해 주지 않습니다.

필요한 것이 있으면 나중에 추가 설치하면 되기에 그냥 기본값으로 설치하는 것이 좋습니다. "다음" 버튼을 누릅니다.


최소한의 파일만 설치했는데도 D:\cygwin 폴더가 50MB나 됩니다.


바탕화면에 만들어진 시그윈 아이콘을 클릭하면 시그윈이 실행됩니다.


실행 결과:
Administrator@chessman-dsjf2pe ~
$


이런 아주 썰렁한 프롬프트 한 개가 나올 것입니다. 그러나 이것이 정상입니다. 정확히 말하자면 이것은 Cygwin의 Bash Shell 입니다. 윈도우의 cmd.exe 와 같은 명령어 처리기입니다.

프롬프트를 이루는 Administrator 는 현재 사용자의 로그인 ID이고, chessman-dsjf2pe 는 컴퓨터 이름입니다. 이런 프롬프트는 변경할 수 있습니다.

아무튼 이것으로 설치는 완료되었습니다.

퍼온글 : http://mwultong.blogspot.com/2006/06/cygwin.html

'기타 > Cygwin' 카테고리의 다른 글

cygwin 다운로드~  (0) 2009.08.23
cygwin에서 gcc 컴파일하기.  (0) 2009.08.23
Cygwin(시그윈) 메뉴얼 있는 곳은?  (0) 2009.08.20
저도 시그윈을 설치하고 매뉴얼이 어디 있는지 몰라서, 시그윈 사이트에 다시 가서 매뉴얼을 다운로드받았었는데, 알고 보니 시그윈을 설치할 때 매뉴얼을 같이 설치해주더군요.

Cygwin을 설치했다면, 윈도 시작메뉴의 Cygwin 이라는 곳에, 다음과 같은 '바로가기 파일'들이 있습니다:

Cygwin API Reference
Cygwin FAQ
Cygwin User's Guide
User's Guide (One file)
User's Guide (PDF)



User's Guide (PDF) 인, \cygwin\usr\share\doc\cygwin-doc-1.4\cygwin-ug-net.pdf <- 이 파일이 읽기에 편했습니다.

퍼온글 : http://mwultong.blogspot.com/

1. 네이밍 률

  이 문서 전반에 걸쳐 파스칼표기법과 카멜 표기법이 사용된다.  

  파스칼 표기법 - 모든 단어에서 첫번째 문자가 대문자이며 나머지는 소문자이다.

    예: BackColor

  카멜 표기법 - 최초에 사용된 단어를 제외한 첫번째 문자가 대문자이며 나머지는 소문자이다.

    예: backColor

 

1. 클래스 명에는 파스칼 표기법을 사용한다.

ICP 적용 예 :

public class ConnRS232

2. 함수(Method) 명에는 파스칼 표기법을 사용한다.

void OpenRS232(string name)

3. 변수와 함수 파라미터에는 카멜표기법을 사용한다.

string addressData = string.empty

void SayHello(string name)

4. 변수는 풀네임으로 의미를 명확히 한다

ex) addr -> address

txt -> text

5. 루프에서 반복을 의미하는 변수만 I, j, k를 사용한다

ex) for ( int i = 0; i <count; i++ )

6. 지역변수에는 밑줄(_)을 사용하지 않는다.

7. 모든 멤버 변수들은 앞에 밑줄(_)을 사용해야 한다. 그래야 다른 지역변수들과 구분할 수 있다.

8. 키워드와 비슷한 이름을 사용하지 않는다

9. boolean 이 들어가는 변수, 속성, 함수(method)등은 "is" 또는 유사한 접두사를 사용한다.

예: private bool _isFinished

10. 닷넷에서 사용되는 컨트롤의 표준 네임 정의

 Control

 prifix

 Control

 prifix

 Label

 lbl

 Checkbox

 chk

 TextBox

 txt

 CheckBoxList

 cbl

 DataGrid

 dtg

 RadioButton

 rdo

 Button

 btn

 RadioButtonList

 rbl

 ImageButton

 imb

 Image

 img

 Hyperlink

 hlk

 Panel

 pnl

 DropDownList

 ddl

 PlaceHolder

 phd

 ListBox

 lst

 Table

 tbl

 DataList

 dtl

 Validators

 val

 Repeater

 rep

 

 

   

11. 파일명은 클래스 명과 같아야 한다.(파일명 또한 파스칼 명명법 적용)

ex)클래스명이 RS232면 파일명은 RS232.cs

2. 들여쓰기

1. 들여쓰기에는 TAB 을 사용한다. SPACE를 사용하지 않는다. Tab 사이즈는 4로 정의한다.

2. 주선은 코드와 같은 레벨에 있어야 한다(들여쓰기의 레벨을 같이 사용한다.).

3. 중괄호는 중괄호 밖에 있는 코드와 같은 레벨에 있어야 한다.

           4. 중괄호는 다른 라인과 분리되어 있어야하며 라인을 같이 쓰면 안된다.

5. 지시자(operator)와 괄호 앞뒤로는 한 칸의 공간을 남긴다.

좋은 예:

               if ( showResult == true )

               {

                       for ( int i = 0; i <10; i++ )

                       {

                              //

                       }

               }

6. 연관된 코드를 묶을때는 #region을 사용해라. #region을 사용해서 묶는다면 그 페이지는 훨씬 간략해질 것이다.

아직 미완성 률 이지만 예전에는 이렇게 썼다고 한다. 좀더 보강해서 완벽한 률을 만들어 한눈에 보기 싶게 유지보수가 최대한 잘될수 있도록 정하여 개발의 착수하였으면 좋겠다.

'기타 > 코딩의 규칙' 카테고리의 다른 글

코딩의 규칙  (0) 2009.07.29

+ Recent posts