델파이에서 사용되는 함수 형태는 크게 procedure 와 function 두가지 입니다.
이 둘의 차이는 C 에서 void 형인가 아닌가의 차이겠군요.
즉, 함수 자체가 인자를 받아서 함수 자체가 결과 값을 되돌려 주지 않는가 또는 주는가의 차이라 하곘습니다.
차이는 다음과 같이 알 수 있습니다.

procedure testProc(input1 : integer);

function  testFunc(input1 : integer) : integer;


procedure 인 testProc 는 입력인자로 integer 형으로 input1 이란 걸 받고 뭔가를 처리 할 것입니다.
반면 function 인 testFunc 는 입력으로 input1 을 받아서 뭔가를 다시 integer 형태로 결과를 돌려 주게 됩니다.
한때 컴파일러가 변경 되면서 procedure 도 function 처럼 값을 돌려줄 수 있었습니다만 이는 좋은 방법이 아니므로 사용하지 않도록 해야 겠습니다.

procedure 든 function 이든 인자는 여러개 일 수 있지만 function 의 경우는 돌려받는 결과값이 제한 될 수 밖에 없습니다.
그래서 인자값 자체가 출력으로 사용되는 경우가 반드시 있겠습니다.
C 에서는 포인터를 받으므로 해당 인자값의 포인터에 다시 결과값을 기록 할 수 있죠.
델파이도 물론 가능 합니다.
포인터 형으로 인자를 받을 때엔 심볼 앞에 var 를 붙입니다.

function  multipleFunc(in1 : integer; var out1 : integer; var out2 : integer) : boolean;


이 함수는 어떤경우 일까요 ?
전체적으로 입력이 1개에 출력이 총 3개가 되는 경우라 하겠습니다.

함수 자체는 해당 기능의 성공이나 실패를 판가름 하기 위해 boolean 형으로 TRUE 나 FALSE 둘 중 하나를 반환 하겠죠.
그리고 뭔가 입력 값 1개에 대한 처리 는 out1 과 out2 에 저장 되겠죠.

이로서 복잡한 기능을 여러 함수로 분리하여 처리 하여 중복적인 코딩을 피하고 체계적인 호출을 지정하여 효율적인 코딩이 가능 할 것입니다.

다음은 유닛에 대한 설명 입니다.

델파이는 기본적으로 여러개의 unit 으로 구성 되어 있습니다.
이 unit 은  C 에서 header 와 code 를 나눠서 용도별로 여러개의 파일을 나누는 것과 동일 하다고 하겠습니다.
하지만 델파이는 C 처럼 header 와 code 가 나뉘지 않고 하나의 pas 파일 내에 정의 되는 구조 이므로 이를 이해 해야 할 필요가 있습니다.

일단 다음 기본 unit 구조를 보도록 하겠습니다.

unit testUnit;

interface

type
    TcallBack = procedure;

function setCallBack(aCallBack : TcallBack):boolean;

implementation

var
    interCallBack : TcallBack;

function setCallBack(aCallBack : TcallBack):boolean;
begin
    interCallBack := aCallBack;
    result := true;
end;

begin
    interCallBack := NIL;
end.

델파이에서는 interface 와 implementation 으로 외부에서 볼 수 있는 심볼군 과 구현부를 구분 합니다.
쉽게 말해 C 에서 header 는 interface 부에 속하고, code 는 implementation 에 속한다고 하겠습니다.
또한 unit 의 이름과 실제 파일의 이름은 같을 필요는 없습니다만 관례적으로 동일하게 가도록 하고 있습니다. (DOS 시절이나 win3.1 시절의 구 컴파일러는 unit 과 파일이름이 다르면 오류라 표시 하기도 했습니다)

interface 에 선언되는 함수나 변수는 모두 사용되는 다른 유닛에서 접근,변경이 가능합니다.
하지만 implementation 에 있는 구현부에 선언된 변수나 함수는 다른 유닛에서 접근이 불가능 하게 됩니다.
실제 C 에서도 동일한 것입니다만, C 처럼 심볼 자체를 가져다 쓸 수 있는 extern 같은 것은 존재 하지 않습니다.

unit 예제를 보면 마지막에 begin~end. 가 있는 것을 볼 수 있습니다.
실제는 begin 이 없더라도 되지만 꼭! end. 는 있어야 합니다.
즉, 뭔가 내부적으로 초기화를 위해 begin 을 end. 앞에 선언해서 코딩을 해도 되지만 반드시 end. 는 존재 해야 한다는 점 입니다.

실제 이 unit 이 다른 코드에서 사용 되려면 해당 코드 내에서 uses 로 사용 하려는 unit 의 이름을 정의 하면 됩니다.

uses
    testUnit;

C 에서 #include 를 통해서 사용하려는 기능을 추가 하는 것과 동일 하다고 하겠습니다.
델파이를 쓰던 사람이 C 를 쓰게 되면 서로 다른 점을 쉽게 이해 할수 있는 편 입니다만 C 를 쓰던 사람이 델파이의 하나의 파일 내에서 모든걸 쓰는 것을 이해하는 일은 잘 없었던 것 같습니다만, 이는 제 개인적으로 C 가 Pascal 이후에 나오면서 늘어난 편리성과 심볼단위의 LINK 등의 차이점 때문에 발생하는 것이 아닌가 합니다.



방화벽에서 1433 포트 외부에 오픈하기











sql sever configuartion manager 외부 1433 포트 오픈하기




TCP/IP 에서 속성 선택하여 IP 주소 제일 하단 중, IPALL 부분 에서 TCP Port 부분에 1433 기재
(TCP Dynamic Ports 의 포트 값은 제거)


클라이언트 프로토콜에서 TCP/IP 의 사용을 체크 한다.


우선 외부에서는 윈도우 인증으로 접속이 어려우니, SQL 사용자를 생성하여 매칭해주고, 외부에서 접속이 되도록
데이터베이스의 속성 > 보안 > 서버인증을 SQL SERVER 및 WINDOWS 인증 모드 로 체크 해 줍니다.
이제 생성된 데이터베이스에 사용자를 매칭하여 해당 SQL 사용자 계정으로 접속해 보시길 바랍니다.


여기서 express 를 접속할 때, ip 접근이 아닌 원격지 서버의 컴퓨터 명으로 접속을 하며, 콤마 뒤로 포트 명을 기재합니다.
기본이 1433 일 경우에는 생략이 가능합니다.
(서버이름 구성 : 서버컴퓨터명\SQLEXPRESS,포트)



출처: http://aspdotnet.tistory.com/1859 [심재운 블로그]

1. dpr(delphi project) 

프로젝트 파일 이라고 부르며 여러 개의 pas 파일과 dfm 파일의 정보를 가지고 있다.

※ 통프로그램(하나의 exe 파일)으로 개발 시 dpr 파일은 반드시 하나만 존재한다.

※ DLL 분할 프로그램으로 개발 시 DLL파일 개수만큼 dpr 파일이 생성된.

 

 

2. dpg(delphi project group) 

프로젝트 그룹 파일 이라고 부르며 여러 개의 프로젝트 파일의 정보를 가지고 있다.

여러 개의 프로젝트 파일을 관리할 때 사용하는 파일이다.

 ※ 여러 개의 DLL파일도 bpg로 관리하면 편리하다.

 

 

3. pas(pascal) 

유닛 파일 이라고 부르며 하나의 폼에서 실행되는 처리 코드를 저장하는 텍스트 파일이다.

※ 무조건 pas 파일과 dfm 파일은 1:1 매칭을 이룬다.

 

 

4. dfm(delphi form) 

폼 파일 이라고 부르며 하나의 폼에 관련된 모든 속성을 저장하는 텍스트 파일이다.

※ 델파이4.0 까지는 바이너리 파일이었으나 5.0부터 텍스트 파일로 생성된다.

※ dfm 파일을 에디터나 메모장으로 열어 수정하고 저장하면 에러가 난다. 반드시

델파이 상의 오브젝트 인스펙터창을 이용하여 수정해야 한다.

 

 

5. dsk - 델파이 환경설정 파일

dpr 파일과 파일명이 같으며 해당 프로그램의 환경설정 내용을 가지고 있는 파일이다.

삭제하더라도 프로그램 컴파일 시 자동으로 만들어지는 파일이다.

※ F12키로 잘 보이던 폼이 안 보일 때는 dsk파일을 삭제 후에 다시 컴파일 + 빌드한다.

※ 특정 DLL소스에 브레이크 포인트가 갑자기 들지 않을 때는 이 파일을 삭제 후에 다시

컴파일 후 브레이크 포인트를 적용해본다.

※ 위의 방법으로도 브레이크 포인트가 들지 않으면 bpg파일에 있는 dpr파일을 모두

삭제한 후 다시 추가하거나 그래도 안되면 델파이를 종료 후 다시 실행한다.

 

 

6. dpk(delphi package) - 델파이 패키지 파일

델파이 패키지 파일로 컴포넌트 소스인 .pas(유닛파일)를 하나로 합쳐 패키지로 만든

파일이다. 델파이에 컴포넌트를 쉽게 추가하기 위한 목적을 가진 패키지 파일이다.

 

 

7. dll(dynamic link library) - 동적 링크 라이브러리

※ 자주 사용하는 함수는 공유파일 이진파일로 만든다.

 

 

8. dcu

델파이의 소스를 컴파일해서 생기는 object파일 이진파일이다.

 

 

9. exe - 프로그램 설치 파일

 델파이의 object파일을 실행 가능한 파일로 만든 것이다.

 

 

10. RES 

컴파일 된 이진 리소스 파일

 

 

11. bpl(borland package library) - 델파이 패키지 라이브러리

볼랜드 패키지 라이브러리 파일이며 다이나믹 링크 라이브러리(DLL) 파일과 비슷하지만

bpl은 볼랜드 제품에서만 호환되며 dll은 MS 제품에서도 사용 가능하다.


델파이의 procedure와 function

값을 반환하는 서브루틴을 펑션(Function)이라하며 값을 반환하지않는 서브루틴을 프로시져(Procedure)라고 부른다.

procedure는 C에서 void형의 함수에 해당한다.

■ 프로시져 procedure

  ▶ 구조

procedure <프로시져 이름>(<인수>);
label;
    <라벨>
const
    <상수 선언>
type
    <형 선언>
var
    <변수 선언>

<프로시져 및 펑션 선언>

begin
    <프로시져 본문>
end;


프로시져 본체이외의 label, const, type, var 및 프로시져, 함수의 선언은 필요없는 경우 생략할 수 있다.
프로시져 안에 선언된 프로시져 또는 함수는 그 프로시져 안에서만 사용할 수 있다.
인수가 여러개 있는 경우는 세미콜론으로 구분한다.

  ▶ 사용예

procedure TestProc(nA:Integer; dB:double);
label 10;
const
  NoMax = 256;
type
  TTestRcd = record
    nIdNo: Integer;
    steId: String;
    nVal: integer;
  end;
var
  arrItem: Array[0..NoMax] of Byte;
  TempRcd: TTestRcd;

function InFunc(dB:double):double;
var
  dC:double;
begin
  //...
end;

begin
  //...
  //...

end;

■ 펑션 function

  ▶ 구조

function <프로시져 이름>(<인수>):<반환값의 데이터형>;
label;
    <라벨>
const
    <상수 선언>
type
    <형 선언>
var
    <변수 선언>

<프로시져 및 펑션 선언>

begin
    <프로시져 본문>
    <프로시져 이름>:=<반환값>;
end;


  ▶ 사용예

함수값은 Result에 결과를 대입한다.
함수명에 반환값을 대입해도 된다.

function Testfunc(nA:Integer; dB:double):integer;
label 10;
const
  NoMax = 256;
type
  TTestRcd = record
    nIdNo: Integer;
    steId: String;
    nVal: integer;
  end;
var
  arrItem: Array[0..NoMax] of Byte;
  TempRcd: TTestRcd;

function InFunc(dB:double):double;
var
  dC:double;
begin
  //...
end;

begin
  //...
  //...
  Result := nA * 2;
end;

< 델파이 단축키 모음 >

[찾기]

Ctrl + F Find

Ctrl + R Find and Replace

F3 Search Again


[화면이동]

F11 View Object Inspector

F12 Toggle Form/Unit

Alt + 0 View Window List

Ctrl + F12 View Unit

Shift + F12 View Form

Ctrl + PgUp/PgDown CodeEditor에서 현재페이지의 첫줄(PgUp), 마지막줄(PgDown)로 이동


[컴파일/실행]

Ctrl + F9 Compile

F9 Run

F7 Trace Into

F8 Trace Over

F5 Set Breakpoint

Ctrl + F5 Add Watch

Ctrl + F7 Evaluate/Modify


[블록관련]

Ctrl + Shift + U Unindent

Ctrl + Shift + I Indent

Ctrl + O, C Column Block Mode (또는 Alt키를 누른상태에서 Mouse를 드래그 해
도 컬럼블럭 설정이 가능, Shift + Alt + Arrow Key 를 사용해도 컬럼블럭 설정)

Ctrl + O, K Line Block Mode


[키 매크로]

Ctrl + Shift + R Record

* 키매크로 작성순서 : -> <원하는키> ->

Ctrl + Shift + P Play


[Object Inpector]

Ctrl + Down Object Inpector 상단의 Object List ComboBox 열기
이 상태에서 Component Name을 키보드로 치면 Incremental Search 기
능Tab Property 와 Property Value 부분을 전환가능하며,
Property 쪽에 Cursor 가 위치한 상태에서 키보드를 치면
Incremental Search


[Code Insight]

Ctrl + Space Code Completion 기능

Ctrl + J Code Template 기능

Ctrl + Shift + Up/Down Object 의 Member function/procedure 의 선언부와 구현부를 이동

Ctrl + Shift + C Object 의 Member function/procedure 의 선언부와 구현부중
의 한가지를 코딩 한후 누르게 되면 나머지 선언부 또는 구현부를 완성시켜줌


[기타]
Alt + F10 현재 위치에서 Popup-Menu 띄우기

Ctrl + Enter Code Editor 에서 현재위치의 단어로 File Open을 시도(기본 확장자
는 .pas) 하고 현재 Path 에서 그 파일을 찾지 못하면 File Open Dialog를 띄움.

Alt + { or } Find Matching Brace( ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘, ‘]’ )

#2에디터에서 Ctrl + E 를 하면 increment Search 가 됩니다. Ctrl+E 를 눌루고 문자열을 입력해 보세요
Ctrl+L 을 해도 다시 찾기 또는 다시 바꾸기를 할수 있습니다.

Alt+F11 은 유닛을 Uses 할때 사용하면 됩니다.

Ctrl+K+W 를 하면 선택한 블럭을 저장할수 있습니다.
Ctrl+K+R 을 하면 캐럿위치에 파일을 읽어서 붙일수 있습니다.

Ctrl+Alt+B 를 하면 현재 프로젝트에 설정된 BreakPoint 를 편집할수 있구 그 라인으로 이동할수 있습니다.


다시찾기 단축키
ctrl+f로 찾은후, F3을 누르면 다시 찾기가 됩니다.

 

토큰으로 찾기 단축키
커서가 토큰에 위치시키고는 ctrl + alt + 화살표 위로 또는
아래로 하면 커서위치의 토큰과 가장 가까이에 있는 토큰을 찾아갑니다.

ctrl + 마우스 왼쪽 클릭 단축키
ctrl + 화살표 위메소드 선언부바로가기
메소드선언부에서 ctrl+shift+화살표아래

 

메소드 구현부바로가기

메소드구현부에서 ctrl+shift+화살표위

 

컬럼블럭 선택 해제
선택: shift + alt + 화살표키하시면 컬럼열을 복사하실 수 있습니다.
해제: 그냥 편집창에서 마우스를 클릭하시면 해제됩니다.
또는 Ctrl+O+K를 하시면 해제됩니다.(이건 많은 분들이 모르시고 있더군요)

컴포넌트 이름은 알고 어떤 팔레트에 있는지 모를때
Alt + V + C를 하시고 컴포넌트 이름을 입력하셔서 찾으시면 됩니다.

델파이환경에서 unit을 제거했는데 dcu를 찾지 못할때..
델파이는 보통 컴파일시 변경된 파일만 체크하기 때문에 이런 문제가 나타날 수 있습니다.
그때는 Alt + P + B를 하시면 모두 빌드해서 에러를 잡으세요.

Project Group에서 여러 프로젝트를 한번에 빌드하기.
하나하나씩 컴파일 하지 마시고, Alt + P + E를 하시면 프로젝트 그룹내의 모든 프로젝트를 빌드하게 됩니다.

 


폼 디자이너
Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동
Shift + Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동(빠르게)
Shift + 방향키(←↑→↓) : 컴포넌트 크기 변경
선택 후 ESC : Parent컴포넌트로 이동

오브젝트 인스펙터
Ctrl + ↓ : 컴포넌트 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Alt + ↓ : Property Combo 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Ctrl + Enter : 열거형 Property값을 다음 값으로 변경
+선택 후, ←,→ : 하위 Property펼치기,접기
Ctrl + Tab : Properties,Events탭 전환
..선택 + Ctrl + Enter : Property Editor 열기
Tab : Property Name/Value토글

 

소스코드 에디터
Ctrl + Enter : 현재위치의 단어로 File Open 시도
현재 Path 에서 찾지 못하면 Dialog
Ctrl + S : 파일 저장
Ctrl + F4 : 파일 닫기
Ctrl + Shift + C : Method/Procedure/Property자동생성
Ctrl + Shift + ↑(↓) : 선언부,구현부 상호간 이동
Ctrl + Shift + R : 키 매크로 레코딩
Ctrl + Shift + P : 키 매크로 실행
Ctrl + ←,→ : 이전 단어, 다음 단어
Ctrl + Shift + ←,→ : 이전 단어, 다음 단어까지 블럭
Ctrl + Home : 소스코드 맨 앞으로 이동
Ctrl + End : 소스코드 맨 뒤로 이동
Shift + Home : 현재 라인 맨 앞까지 블럭
Shift + End : 현재 라인 맨 뒤까지 블럭
Ctrl + PageUp : 현재 화면의 맨 윗줄로 이동
Ctrl + PageDown : 현재 화면의 맨 아랫줄로 이동
Ctrl + Shift + I(U) : 현재 라인에 들여쓰기(내어쓰기)
Shift + Alt + 방향키(←↑→↓) : 블록 사각형 지정         -> Ctrl + Backspace : 해제
Ctrl + KL : 캐럿이 Line Home에 있을 때, Line 블럭
Ctrl + T : 현재 위치에서 마지막 단어까지 삭제
Ctrl + I : 블럭 지정된 문자를 공백으로 변환
Alt + {, } : '{'괄호 앞,뒤에서 사용. 짝 찾기.
Ctrl + N : 다음 Line 맨 앞으로 줄바꿈
Ctrl + M : 줄바꿈
Alt + BackSpace : 실행 취소
Ctrl + E : 한 글자 찾기
Ctrl + ↑(↓) : 캐럿 고정 스크롤
Ctrl + F : 찾기
Ctrl + R : 바꾸기

 

코드탐색기
F2 : 이름 변경하기(Uses제외)
DoubleClick : 소스코드 탐색기의 해당 코드로 이동
Ctrl + Shift + E : 탐색기<->에디터 창 이동

코드 인사이트(Code Insight)
Ctrl + Space : 코드완성 마법사
Ctrl + Shift : 메소드 파라미터 팁
Ctrl + J : 코드 템플릿 사용

 

기타 기능
Alt + F10 : 현재 위치에서 Popup-Menu 띄우기
F11 : View Object Inspector
F12 : Toggle Form/Unit
Alt + 0 : View Window List
Ctrl + F12 : View Unit
Shift + F12 : View Form 
 

저작자 표시
신고


* 데브기어 : http://www.devgear.co.kr/
* 델파이볼랜드포럼 : http://delphi.borlandforum.com/
* 델마당 : https://www.delmadang.com/

* 델파이 공부 관련 링크
http://withwani.tistory.com/81
http://blog.devquest.co.kr/tag/delphi
http://gomsun2.tistory.com/category/Delphi
http://blog.naver.com/compcw?Redirect=Log&logNo=193133699

* 델파이 관련 자료



* 오브젝트 파스칼 관련 자료





델파이는 C++ & MFC 정도의 환경과 비교하는 것이 나을 것 같습니다. 플랫폼 종속적이며(다른 플랫폼 지원한다지만 많이 미진합니다) 몇 남지 않은 네이티브 언어라는 점에서요. 만약 다른 툴이 Java와 같은 비 네이티브 툴들이라면 네이티브 환경과 VM 환경의 장단점을 논하는 글이 되겠지요.

델파이는 시스템 프로그래밍이 가능한 언어이자 툴 입니다.
자바나 파워빌더 및 스크립트 언어들은 직접적인 메모리 핸들링을 할 수가 없습니다. 그로인해 심플하며 얕은 시스템 지식으로도 최상은 아니더라도 어느정도 만족할만한 결과를 낼 수 있습니다. 자바나 스크립트 언어들이 웹프로그래밍이나 업무용 프로그램에 많이 사용되고 있는 이유입니다.
단순한 업무프로그램을 만드는데 생산성이 필요할 뿐 운영체제를 깊게 알 필요는 없죠





버전[편집]

  • 볼랜드 델파이 1
  • 볼랜드 델파이 2
  • 볼랜드 델파이 3
  • 볼랜드 델파이 4
  • 볼랜드 델파이 5
  • 카일릭스(Kylix)
  • 볼랜드 델파이 6
  • 볼랜드 델파이 7
  • 볼랜드 델파이 8
  • 볼랜드 델파이 2005
  • 볼랜드 델파이 2006
  • 코드기어 델파이 2007: 인라인 함수 지원. 프랜드 차단 지원.
  • 엠바카드로 델파이 2009: Generics 지원. 유니코드 지원. 익명 메서드 지원.
  • 엠바카드로 델파이 2010: RTTI(Run Time Type Infomation) 강화, Interface 연산자 As, Is 추가, 지연된 라이브러리(DLL, Package)로딩 기능 추가[3]
  • 엠바카드로 델파이 XE
  • 엠바카드로 델파이 XE 2: Osx(32bit), iOS(아이폰 OS) 개발 지원. 마이크로소프트 윈도(32/64bit) 개발 지원
  • 엠바카드로 델파이 XE 3: Record Helper 지원, iOS(아이폰 OS) 개발 지원 중단
  • 엠바카드로 델파이 XE 4: Delphi ARM optimized compiler 추가 및 iOS(아이폰 OS) 개발 지원
  • 엠바카드로 델파이 XE 5: Android 2.2 이상 버전의 개발 지원[4]

기능[편집]

한 가지 중요한 장점은 기반 프레임워크로 뛰어난 객체지향 프레임워크인 비주얼 컴포넌트 라이브러리(VCL)를 사용하고 있다는 점이다. VCL은 델파이1에서부터 최신 버전인 델파이 XE2에 이르기까지 열다섯 개의 버전들을 거치는 동안, 내부의 실제 코딩은 수없이 변했지만 잘 설계된 클래스 구조 덕분에 프로그래밍 인터페이스는 큰 변화없이 계승되어 왔다. 이로 인해 상/하위 호환성이 아주 뛰어나다.

이런 이유로 마이크로소프트 닷넷을 지원하게 된 최신 버전에서도 비주얼 베이직이 VB.NET으로 업그레이드되면서 겪은 대대적인 프로그래밍 방법/스킬의 변화가 없으며, 다른 최신 기술의 적용에도 기존의 프로그래밍 방식/인터페이스를 최대한 재활용함으로써 개발자들이 델파이에 적용된 새로운 기술들을 배우는 과정에서 겪게 되는 어려움인 러닝 커브(learning curve)가 대단히 작다.

델파이 2007에서 추가된 VCL for WEB은 AJAX를 지원하고 있으며, 또한 델파이 2007에서부터는 공식적으로 윈도 비스타를 지원한다. 델파이 2009에서부터는 윈도 비스타지원 강화, 유니코드, 제네릭 / 익명의 메소드(클로져)를 지원한다. 2009 버전에 이르러 기존 방식의 델파이.NET은 단종되고 새로운 방식의 델파이 프리즘이 그 뒤를 잇게 되었다.

2009년 8월 25일 발표된 델파이 2010 버전은 윈도 7 운영체제를 최초로 정식으로 지원하는 개발 도구로서 멀티터치와 제스처를 지원한다. 또한 코드 포매터, 서브버전 통합, IDE 인사이트 등의 IDE 기능 개선이 많이 추가되었다.

2010년 9월 2일 발표된 델파이 XE 버전은 Azure, AWS 클라우드 시스템 지원과, REST 지원이 추가되었다.

2011년 9월 발표된 델파이 XE 2 버전은 MaxOS, iOS 개발 지원과 DirectXOpenGL 을 사용하는 새로운 UI 프레임워크인 FireMonkey 가 추가되었다

2012년 9월 발표된 Delphi XE3 버전은 일반 타입 및 구조체를 확장할 수 있는 Record Helper가 추가 되었으며 FireMonkey 프레임을 통한 iOS 개발 지원이 중단 되었다. iOS개발 지원은 Mobile Builder 프로젝트로 이관 되어. XE4버전에서 통합된다. Windows 8 개발은 지원되지만 MetoUI에 최적화 되어 있지 않으며, Windows 8 RT는 지원되지 않는다.

2013년 4월 발표된 델파이 XE4 버전은 델파이 프리즘의 지원이 중단되었고, iOS개발 지원 위하여 LLVM기반의 Delphi ARM optimized compiler가 추가되었으며 ARC를 지원한다.

2013년 9월 발표된 델파이 XE5 버전은 Android(v2.2 / ARM) 개발 지원이 추가되었다.

관련 소프트웨어[편집]

오픈소스 기능

델파이 언어의 특징[편집]

델파이는 마이크로소프트 윈도 기반하에서 모든 부분을 프로그래밍할 수 있는 강력한 언어로 높은 생산성과 간결한 코드가 대표적인 장점이며 C 이외에도 저수준의 시스템 프로그래밍이 가능한 소수의 언어이다. 델파이의 일부로 취급되는 경향이 강해 개발사가 주도적으로 언어의 변화를 이끄는 특징이 있다.

또 현존하는 네이티브 언어(native language) 중 가장 빠른 컴파일 속도도 델파이만의 장점이다. 대표적인 개발 도구로 볼랜드/코드기어의 델파이, 카일릭스가 있다. 이외에도 프리 파스칼도 고유한 오브젝트 파스칼 외에 델파이를 컴파일할 수 있도록 지원한다. 델파이는 향후 멀티플랫폼을 비전으로 삼고 윈도 운영 체제 이외에 다른 플랫폼들을 지원하는 방향으로 개발이 진행되고 있다. 현재 개발이 가능한 플랫폼으로는 OS XiOS가 있으며, 안드로이드가 지원 계획이 확정 되어 있다.

이전의 오브젝트 파스칼과의 차이[편집]

델파이 컴파일러의 지속적인 언어 확장을 통해 이전의 오브젝트 파스칼(터보 파스칼)의 제한을 서서히 벗어나기 시작하며 델파이에서 사용하는 언어를 오브젝트 파스칼이 아닌 델파이 프로그래밍 언어로 부르게 된다.

아래는 이전의 오브젝트 파스칼에서 지원하지 않으나 델파이 컴파일러가 지원하는 특징이다.

  • 멀티 플랫폼(Windows 32/64bit, OSX, iOS, Android) 지원
  • 클래스 내의 선언부
  • 클래스 사이의 친구관계 막기
  • 최종 상속자
  • 레코드가 메소드를 포함
  • 인라인 함수
  • 연산자 오버로드
  • for 문의 반복자 사용
  • 제네릭_프로그래밍 지원
  • 유니코드(UTF-16) 지원
  • 익명의 함수 지원
  • Helper를 통한 타입 확장

같이 보기[편집]

C++빌더(C++Builder)는 코드기어(옛 볼랜드)의 C++ 기반 RAD 개발 툴이다. 델파이와 많은 부분을 공유하며, 델파이의 C++ 버전으로 취급되기도 한다. 델파이에서 개발된 많은 구성요소들을 C++ 코드로 그대로 사용할 수 있다. 실제로 델파이로 작성된 비주얼 컴포넌트 라이브러리를 별도로 다시 작성하지 않고 그대로 사용하고 있다.

C++빌더는 드래그-앤드-드롭 비주얼 개발환경을 지원하며, 위지윅 GUI 빌더를 포함하는 IDE를 가지고 있다.

C++빌더는 원래 마이크로소프트 윈도용으로 개발되었으나, Qt 기반의 크로스플랫폼 비주얼 구성요소 라이브러리 볼랜드 CLX를 지원했던 적이 있다. 이 라이브러리를 사용해 개발한 경우 카일릭스로 컴파일 할 수 있다. 하지만 이후 볼랜드는 카일릭스 개발을 중단하고 더이상 CLX 라이브러리를 지원하지 않는다.

2003년 볼랜드는 C++빌더의 후속작인 C++빌더 X를 준비하였다. 이는 J빌더와 같은 기반을 공유하며 기존의 제품과 많은 차이를 나타낸다. 하지만 이 프로젝트는 상업적으로 성공하지는 못했다. 따라서 델파이 개발 환경의 일부로 포함될 것이라고 볼랜드 사가 2004년에 선언했다.

C++빌더 2006까지는 볼랜드 디벨로퍼 스튜디오에 포함되어 있으며 이후의 버전은 개별적인 C++빌더 제품 및 코드기어 래드 스튜디오에 포함된 패키지 제품 두가지로 판매되고 있다.

볼랜드로부터 독립 조직으로 분리된 코드기어엠바카데로에 인수된 이후 2008년에 출시된 버전인 C++빌더 2009에서는 유니코드 지원, TR1, Boost, C++0x 등 C++의 최신 표준 및 트렌드를 광범위하게 지원하여 비주얼 C++ 2008 버전에 비해 표준 준수도가 더 높다.[출처 필요] 2009년 출시된 버전인 C++빌더 2010 에서는 윈도 7 개발을 지원한다.





비주얼 컴포넌트 라이브러리(Visual Component Library), 줄여서 VCL은 델파이의 오브젝트 파스칼 언어로 설계된 Win32용 라이브러리이다. 볼랜드가 개발했으며, 델파이 외에 C++빌더 환경에서도 사용할 수 있다.

VCL은 볼랜드사의 비주얼 RAD 툴과 쉽게 연계되어 사용할 수 있는 장점을 갖고 있다. 2009년부터 완전한 유니코드를 지원하고 있다.

VCL4PHP와 같이 VCL을 모방한 라이브러리가 생기기도 하였다.



윈도우xp서비스종료를 몇일 앞두고 윈도우7로 업그레이드 했습니다.

그런데 윈도우7 업그레이드 후 일부 프로그램에서 키보드 입력 시, 영어로 시작하더라구요

매번 한/영 전환하기는 매우 귀찮은 일이죠.

컴퓨터 유지보수하시는 분께 여쩌보니 방법을 친절히 가르쳐주셨습니다.


윈도우 키보드입력 영어로 시작되는 것을 한글로 시작하게 하려면

설정을 Microsoft 입력기로 해주면 ok!입니다.


자 감이 안오실텐데요 아래 설명을 따라 설정해 보시면

아하! 하실거여요^^


1. 작업표시줄을 보면 [입력기]가 있습니다.





2. 한글 입력기 옵션에서 [설정]을 선택.





3. [텍스트 서비스 및 입력언어] 창을 보시면

   [ Microsoft IME 2010]으로 되어 있습니다. 여기서 [추가]를 클릭합니다.





4. [입력언어추가] 창에서 [Microsoft 입력기]를 선택하고 확인을 클릭.





5. 다시 [ 텍스트 서비스 및 입력언어] 창에서 

  [기본입력언어]를 [한국어(대한민국)-Microsoft 입력기]로 선택하고 

  [적용-확인]하면 끝!





이렇게 하면 특정 프로그램에서 키보드입력시 영어로 우선 입력되던 것이 한글로 우선 입력됩니다.^^



출처: http://meaningone.tistory.com/94 [의미 하나]

MS, IBM, 호스팅업체까지 모두 클라우드 서비스를 하고 있습니다. 하지만, 정작 해외 기업에서 제공하는 클라우드 서비스는 무언가 국내 실정에 안 맞거나 어렵기까지 한 UI를 가지고 있는데요. 네이버가 기업용 클라우드 서비스를 시작하였습니다. 국내 실정에 맞게 또 글로벌하게 구축한 경험을 토대로 기업용 클라우드 서비스를 진행하고 있는데요.

직접 네이버 클라우드 플랫폼을 써보면서 어떤 제품인지 알 수 있었습니다. 제가 IT개발자라서 그런지 API 개발, MSSQL 클라우드 서비스, APP개발서버, 파일 배포 서버 등의 다양한 서비스를 제공하는 네이버 클라우드 플랫폼을 미리 엿볼 수 있었습니다. 직접 네이버 본사에서 해당 서비스에 대해서 듣고 직접 서버구축까지 해볼 수 있었는데요. 

네이버 클라우드 플랫폼은 다양한 경험과 대규모 인프라경험을 바탕으로 기업들에게 편리하고 빠른 클라우드 서비스를 해준다는데, 어떤 비즈니스 플랫폼인지 알아보고자 합니다.




네이버 클라우드 플랫폼 서비스는 큰 틀 위에서 움직이는 서비스 중 하나입니다. 글로벌 리즌으로 제공되는 서비스로 매니저먼트와 보안을 갖추고 컴퓨터, 스토리지, 네트워크, 데이터베이스, IoT, AI, 프레임워크, OPEN API를 갖춰 결국 비즈니스 어플리케이션과 마켓 PLACE까지 진출되는 로드맵을 가지고 있습니다.

네이버는 국내 1위 포털 사이트로 그간 운영해온 다양한 서비스 경험이 이번 네이버 클라우드 플랫폼에도 반영되는데요. 국내 최대 규모의 데이터센터인 각을 비롯한 전세계를 잇는 네트워크를 구축하고 있는 회사입니다.



네이버의 기업용 클라우드서비스


클라우드 서비스는 이제 IT업계에서는 거스를 수 없는 서비스 중 하나입니다. 기존에는 서버를 구매하고 구축하기 위해서 엄청난 비용과 운영상의 어려움을 겪었다면, 이제는 운영 능력이 없는 스타트업 기업도 단순히 클라우드 서비스를 신청하여 서버를 사용할 수 있는 것이죠.

빠르게 서비스할 수 있다는 장점과 운영상의 어려움도 클라우드 서비스에서 해결해주니, 기업으로서는 골치 아픈 것이 줄어 든다고 볼 수 있습니다.

클라우드란 서버가 어디에 있든 이제 쉽게 기업은 글로벌 서비스를 운영할 수 있게 되는 것입니다.





그럼 나에게 맞는 클라우드 서비스는 무엇이 있을까요? 저는 서버 추가만 해보았는데 전체 상품을 열어 보면 다양한 상품군을 가지고 있네요. 

컴퓨터, 스토리지, 네트워킹, 데이터베이스, 매니지먼트, 보안, 글로벌 리즌까지 모든 상품을 갖추고 있는 네이버 클라우드 플랫폼 서비스입니다.

그럼 직접 네이버 클라우드 플랫폼 서비스를 이용해보면서 서버를 신청을 해보죠.



네이버 클라우드 플랫폼 서비스는 기본적으로 50GB용량이 주어지는데, 서버의 사양이 높아야 하면 램을 늘리거나, 하드 용량을 더 추가하여 늘릴 수 있습니다. 초기에 서버의 유저가 적다면, 적은 비용으로 바로 서버를 운영할 수 있다는 장점이 있습니다. 운영이 잘되고 사용자가 늘어 난다면, 바로 서버의 사양을 높여 반영할 수 있다는 게 네이버 클라우드 플랫폼의 장점입니다.



기업용 네이버 클라우드 플랫폼 서비스 사용법(서버 추가하기)

네이버 클라우드 플랫폼 서비스를 신청하였습니다. 그리고 서버를 바로 추가하여 운영해 볼 텐데요. 왼쪽 메뉴의 SERVER를 눌러서 서버 생성 버튼을 눌러 줍니다.



서버는 리눅스 서버부터 윈도우 서버까지 다양한 OS를 지원합니다. 저는 윈도우 서버 계열인 windows 2012R2 64Bit 서버를 만들어 보겠습니다.


서버의 이름을 정합니다. 최소3글자와 15자이하로 입력하면 됩니다.


서버의 스토리지 종류는 가장 빠른 SSD 선택도 가능합니다. 클라우드 플랫폼 호스팅도 SSD라 빠른 속도를 제공하여 주는군요. 상대적으로 저렴한 HDD로 CPU 2코어로 디스크 50GB 용량으로 신청하였습니다. 



서버 설정 후, 서버에 대한 인증키를 생성할 수 있습니다. pem 파일로 내려 받아지는데, 이것은 나중에 서버의 관리자 패스워드를 알아내는 인증키로 사용됩니다. 

[인증키 생성 및 저장] 버튼을 눌러 줍니다.



ACG는 일종의 방화벽입니다. 네트워크 접근 제어와 관리를 담당하며, 서버들의 접근을 제어하고 관리하여 보안 규칙 단위로 서버들을 관리할 수 있는 기본적인 접근 제어를 구현합니다.



모든 설정이 끝났고 서버 생성을 눌러 줍니다. 이제 조금 기다리면 서버가 생성되며, 생성된 후에는 이메일로도 알람이 옵니다.  언제 생성되었는지 이메일 푸시로 받을 수 있어 알기 쉽죠.



서버는 아직 생성중이네요. 상대적으로 리눅스 서버가 생성이 더 빨랐습니다.



서버가 생성되었습니다. 이메일로 푸시가 오니 편하군요.


서버는 생성 되자마자 보안상 공인IP가 할당되어 있지는 않았습니다. 공인IP 가 없으면 외부에서 접근이 안되니 IIS서버로 접근이 안됩니다. 그래서 PUBLIC IP (공인IP)를 눌러서 공인IP를 신청합니다.


설명이 어려울 수 있죠? 그래서 다양한 도움말을 제공하여 주고 있습니다. 풍선말로 설명을 해주고 있어서 마우스만 가져가도 정보를 알 수 있게 되어 있습니다. 또 메뉴 팝업 설명으로 간편한 가이드를 받을 수 있습니다.



또 FAQ 로 사이트로 이동하여 설명을 받을 수 있습니다. 위키페이지처럼 상세한 설명이 있으니 중간TO 매니저가 보면서 네이버 클라우드 플랫폼 서비스를 교육할 수 있습니다.


공인IP를 신청하였습니다. 서버에는 미할당하였는 데 이를 선택하여 할당하여 줍니다.



신청된 공인IP를 할당하고 싶은 서버를 선택하여 부여합니다.



이제 서버는 외부로 연결이 되게 공인IP를 부여 받았습니다. IIS 서버로 웹서버로 연결을 하면 열립니다.



서버 관리를 위해서 알려진 포트를 숨길 필요가 있는데요. 이럴 때, 포트포워딩을 설정할 수 있습니다. 3389 포트는 터미널 포트로 외부에서는 3333으로 호출되게 바꾸어 볼 수 있습니다. 이렇게 알려지지 않은 포트를 운영하면 보안상 덜 위험할 수 있어 좋습니다.


ACG가 기본적으로 생성되어 있는데요. 앞서 설명한 것처럼 보안장치입니다.



ACG에는 내부 포트들의 인바운드/아웃바운드를 설정할 수 있습니다. 0.0.0.0 IP대역으로 3389 터미널 포트와 22번 포트가 허용되어 있습니다. 서버에서 운영될 응용프로그램이 사용하는 포트가 있다면 이를 허용하기 위해서 사용하면 됩니다.


서버를 원격 터미널로 접근하고 싶다면, 서버의 패스워드를 알아야 합니다. 서버가 신청되어 생성될 때 임의로 패스워드가 지정되었고 이를 알 수 있는 방법은 [관리자 비밀번호 확인] 메뉴를 눌러서 확인할 수 있습니다.


서버 신청시 받은 인증키를 선택합니다. pem 확장자로 된 인증키를 선택하면 됩니다.




인증키를 선택하면 이렇게 서버의 비밀번호가 보여집니다. 이를 관리하였다 접속할 수 있습니다.




서버의 모니터링을 한눈에 볼 수 있는데요. 아직 신규서버라 Disk 의 사용이나 I/O 전송량도 크지 않습니다. 만약 CPU사용량이 99%를 넘거나 한다면 관리자에게 알려 주어야 할 것 같은데요. 이런 관리도 가능합니다.


서버 선택 후 상세모니터링 서비스 설정을 눌러 줍니다.


이렇게 상세 모니터링 서비스를 신청하고 서버에 대한 상세 모니터링을 할 수 있는데요.


테스트를 위해서 서버의 CPU 부하가 10% 가 넘으면 알람이 오게 설정하였습니다.



통보 방법은 SMS와 이메일로 보내게 했습니다.



임계치는 CPU10% 인데요. 이를 넘으면 제 스마트폰으로 문자와 이메일이 오게 됩니다.




이메일로 서버의 이상을 알려 왔습니다.


또 설정해둔 스마트폰으로 서비스 상태를 알려 왔는데요. 상세 모니터링으로 설정해둔 조건에 해당되면 관리자에게 바로 알려주니, 서버에 장애가 발생해도 즉각 상태를 인지하여 대처할 수 있게 됩니다.

이런 알람 서비스는 실제로 운영하는 서버에 디스크용량이 다 차거나, CPU 사용량이 너무 많아졌을 때 받으면 좋습니다. 서버에 부하적인 문제가 크니 이를 해결해주는 진단용으로 사용하는 것이죠.

이렇게 해두어야 서비스의 장애가 발생하지 않고 미연에 방지할 수 있는 것입니다.


네이버 클라우드 플랫폼 서비스로 운영되고 있는 발표자의 PHP운영페이지의 모습입니다.



만약 서버의 스펙을 높이고 싶다면, 서버 타입을 변경하여 CPU 코어를 늘리거나, 메모리, 디스크를 증설 할 수 있습니다.



서버를 자동으로 생성하게 스크립트 쉘을 작성한다던지 보다 전문적인 운영방법도 있는듯합니다. 설명을 읽어보면 쉽게 운영할 수 있게 되어 있는데요. 만약 잘안되고 장애가 발생한다면?



365일 쉬지 않고 24시간 지원이 되는 고객센터를 가지고 있습니다. 안정적인 서비스를 위해서 로드밸런서를 운영하고 있어 네트워크 트래픽을 분산하여 서버의 부하를 경감하여 주는데요. 대규모의 서비스도 네이버 클라우드 플랫폼 서비스라면 문제가 없어 보입니다.



모르는 것이나 장애가 발생한다면 24시간 쉬지 않고 운영되는 고객지원실로 문의 할 수 있습니다. 


네이버 클라우드 플랫폼 서비스 무료체험 이벤트


기업은 관리자라면 네이버가 하는 서비스에 귀 기울여보고 싶을 겁니다. IT기업 중에는 큰 기업이 하는 클라우드 플랫폼 서비스이니 관심이 갈 텐데요. 사전 체험을 통해서 어떤 클라우드 플랫폼 서비스인지 알아 볼 수 있습니다.

5월 16일까지 신청이 가능한 네이버 클라우드 플랫폼 서비스는 2코어CPU 1대, 공인IP 1개, Network Traffic 1TB, 스토리지 100GB, 파일스토리지 100GB, CDN 100GB 를 제공합니다. 선착순 1000명에게 제공된다니 조금 서둘러야겠네요.



무료 체험자에게는 또 다른 혜택이 있는데요. 콘솔 내 사용후기를 올리 분에게 모두 스타벅스 아메리카노 쿠폰을 준다고 합니다. 또 무료 체험 기간 중 사용량이 많고 충실한 후기를 남겨준 300분에게는 추첨으로 체험기간 종료 후 즉시 사용할 수 있는 50만원 상당의 추가 무료 혜택이 주어진다고 합니다!


▲ 네이버클라우드 무료 체험 신청하기

http://www.ncloud.com/freeTrialApply



출처: http://ndolson.com/4133 [엔돌슨의 IT이야기]

출처: http://ndolson.com/4133 [엔돌슨의 IT이야기]

+ Recent posts