검수요청.png검수요청.png

"비주얼베이직"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(현황 및 전망)
 
(다른 사용자 한 명의 중간 판 43개는 보이지 않습니다)
5번째 줄: 5번째 줄:
  
 
== 개요 ==
 
== 개요 ==
비주얼 베이직은 컴퓨터 [[프로그래밍]] 언어의 한 종류다. 프로그래밍 언어는 사람이 이해할 수 있는 영문과 비슷한 코드로 되어 있어 컴퓨터에 이해시키기 위해서는 반드시 [[컴파일]](compile) 과정을 거쳐야 한다. 고전적인 [[베이직언어]]인터프리터 기법의 언어나 [[그래픽 사용자 인터페이스]](GUI) 프로그래밍인 비주얼베이직은 [[컴파일러]] 기법과 인터프리터 기법이 모두 사용된다고 할 수 있다. 마우스를 클릭하거나 움직이는 등의 행동을 이벤트라고 하는데 비주얼 베이직은 이러한 이벤트가 발생함에 따라 처리하도록 하는 이벤트 지향 프로그램(Event Driven Programming)이다. 특히 비주얼 베이직은 [[폼]](Form)이라는 [[객체]]를 위주로 이에 여러 가지 컨트롤을 배치해 동작하는 이벤트 지향 프로그램을 작성할 수 있다. 또한 비주얼 베이직은 [[마이크로소프트]]사에서 개발한 [[윈도]]용 그래픽 사용자 인터페이스 프로그래밍 언어로 [[Visual Studio]]라고 불리는 프로그램 통합 개발환경 내에 존재하는 언어다.<ref name="개념">땜쓰, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ansdbtls4067&logNo=220817583984&proxyReferer=https:%2F%2Fwww.google.com%2F 땜쓰]〉, 《네이버 블로그》, 2016-09-21</ref>
+
비주얼 베이직은 컴퓨터 [[프로그래밍 언어]](Programming language)의 한 종류다. 프로그래밍 언어는 사람이 이해할 수 있는 영문과 비슷한 코드로 되어 있어 컴퓨터에 이해시키기 위해서는 반드시 [[컴파일]](compile) 과정을 거쳐야 한다. 고전적인 [[베이직]](Basic) 언어는 인터프리터 기법의 언어나 [[그래픽 사용자 인터페이스]](GUI) 프로그래밍인 비주얼베이직은 [[컴파일러]](Compiler) 기법과 인터프리터 기법이 모두 사용된다고 할 수 있다. 마우스를 클릭하거나 움직이는 등의 행동을 이벤트라고 하는데 비주얼 베이직은 이러한 이벤트가 발생함에 따라 처리하도록 하는 이벤트 지향 프로그램(Event Driven Programming)이다. 특히 비주얼 베이직은 [[폼]](Form)이라는 [[객체]](Object)를 위주로 이에 여러 가지 컨트롤을 배치해 동작하는 이벤트 지향 프로그램을 작성할 수 있다. 또한 비주얼 베이직은 [[마이크로소프트]]사에서 개발한 [[윈도]]용 그래픽 사용자 인터페이스 프로그래밍 언어로 [[Visual Studio]]라고 불리는 프로그램 통합 개발환경 내에 존재하는 언어다.<ref name="개념">땜쓰, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ansdbtls4067&logNo=220817583984&proxyReferer=https:%2F%2Fwww.google.com%2F Visual Basic(비주얼 베이직) 2015 1강 - Visual Basic의 개요]〉, 《네이버 블로그》, 2016-09-21</ref>
  
 
== 역사 ==
 
== 역사 ==
일반적인 베이직(Basic) 언어는 1963년 미국의 다트머스 대학에서 [[John G. Kemeny]]와 [[Thomas E. Kurtz]]에 의해 [[TSS]](Time Sharing System)용으로 개발된 초보자를 대상으로 한 [[프로그래밍]] 언어다. 이러한 베이직 언어가 [[그래픽 사용자 인터페이스]] [[윈도]]용으로 개발된 것이 비주얼 베이직으로서 1991년 비주얼 베이직 1.0이 처음 등장했다 이후 계속 [[버전]](version)업이 되었다. 1992년에는 비주얼 베이직 2.0, 1998년 비주얼 베이직 6.0, 2002년 비주얼스튜디오.net, 2005년 비주얼 스튜디오 2005, 2013년 비주얼 스튜디오 2013, 2015년 비주얼 스튜디오 2015 등등 등장했다.<ref name="개념"></ref>
+
일반적인 베이직(Basic) 언어는 1963년 미국의 다트머스 대학에서 [[John G. Kemeny]]와 [[Thomas E. Kurtz]]에 의해 [[TSS]](Time Sharing System)용으로 개발된 초보자를 대상으로 한 프로그래밍 언어다. 이러한 베이직 언어가 [[그래픽 사용자 인터페이스]] [[윈도]]용으로 개발된 것이 비주얼 베이직으로서 1991년 비주얼 베이직 1.0이 처음 등장했다 이후 계속 [[버전]](version)업이 되었다. 1992년에는 비주얼 베이직 2.0, 1998년 비주얼 베이직 6.0, 2002년 비주얼스튜디오.net, 2005년 비주얼 스튜디오 2005, 2013년 비주얼 스튜디오 2013, 2015년 비주얼 스튜디오 2015 등등 등장했다.<ref name="개념"></ref>
  
 
== 특징 ==
 
== 특징 ==
비주얼 베이직은 [[인터프리터]] 언어인 베이직 언어를 기초로 해서 만들어졌기 때문에 인터프리터 언어로 분류할 수 있다. 한 줄씩 번역되는 인터프리터 언어의 특징을 가지고 있어서 오류를 곧바로 알 수 있다는 장점이 있지만, [[컴파일]] 언어보다 실행 속도가 느리다는 단점이 있다. 이처럼 비주얼 베이직은베이직 언어를 모태로 하여 인터프리터 언어의 특징을 가지면서도 컴파일 방식으로 실행 파일을 만드는 컴파일 언어의 특징을 가지고 있다. 비주얼 베이직은 비주얼한 도구를 이용할 수 있기 때문에 [[프로그래밍]] 입문자가 가장 쉽게 배울 수 있을 뿐만 아니라 [[윈도]] 환경에 맞는 프로그램을 단시간에 효과적으로 작성할 수 있는 언어다. 이러한 특징은 베이직이라는 언어 자체가 쉬운 이유도 있지만, 비주얼 베이직을 만든 [[마이크로소프트]]에서 사용자의 편의를 위한 각종 기능을 추가하여 마치 레고 블록을 맞추듯이 프로그램을 만들 수 있는 개발 환경을 제공하고 있기 때문이다. 비주얼 베이직 6.0부터는 [[개체]]와 속성, [[메소드]], [[이벤트]] 등의 특성을 가지는 [[객체 지향]](Object Oriented) 개발 방식을 지원한다. 이러한 객체 지향 방식은 비주얼 베이직 6.0의 다음 [[버전]]인 [[비주얼 베이직 닷넷]](Visual Basic.NET)에서 완벽하게 지원하게 된다. 객체 지향 언어는 프로그램을 쉽게 개발할 수 있고, 유지 보수가 쉬우며, 개체를 다시 사용할 수 있다는 장점이 있다. 비주얼 베이직 6.0에는 5.0에 없던 많은 기능이 추가됐다. 특히 [데이터베이스]]와 관련된 기능이 좀 더 보완되었다. 비주얼 베이직 6.0에서는 기존의 5.0에서 사용하던 데이터베이스 [[액세스]] 방식인 [[ODBC]]나 [[DAO]] 보다 훨씬 강력하고 빠른 속도를 제공하는 [[OLE DB]], 그리고 [[마이크로소프트 ADO]] 개체를 제공한다. 이 개체는 [[SQL 서버]]나 [[오라클]]과 같은 관계형 데이터베이스뿐만 아니라 텍스트 파일과 전자우편과 같은 데이터도 마치 데이터베이스를 사용하듯 처리해서 더 높은 신뢰성과 빠른 속도를 제공한다. 특히 ADO 개체를 이용하면, 대규모 업무나 인트라넷 등을 좀 더 효율적으로 관리할 수 있다.<ref>siren911, 〈[https://siren911.tistory.com/19 비주얼베이직 6.0의 역사와 특징]〉, 《티스토리》, 2016-09-11</ref>
+
비주얼 베이직은 인터프리터 언어인 베이직 언어를 기초로 해서 만들어졌기 때문에 인터프리터 언어로 분류할 수 있다. 한 줄씩 번역되는 인터프리터 언어의 특징을 가지고 있어서 오류를 곧바로 알 수 있다는 장점이 있지만, 컴파일 언어보다 실행 속도가 느리다는 단점이 있다. 이처럼 비주얼 베이직은 베이직 언어를 모태로 하여 인터프리터 언어의 특징을 가지면서도 컴파일 방식으로 실행 파일을 만드는 컴파일 언어의 특징을 가지고 있다. 비주얼 베이직은 비주얼한 도구를 이용할 수 있기 때문에 [[프로그래밍]] 입문자가 가장 쉽게 배울 수 있을 뿐만 아니라 [[윈도우]](Windows)( 환경에 맞는 프로그램을 단시간에 효과적으로 작성할 수 있는 언어다. 이러한 특징은 베이직이라는 언어 자체가 쉬운 이유도 있지만, 비주얼 베이직을 만든 [[마이크로소프트]](Microsoft)에서 사용자의 편의를 위한 각종 기능을 추가하여 마치 레고 블록을 맞추듯이 프로그램을 만들 수 있는 개발 환경을 제공하고 있기 때문이다. 비주얼 베이직 6.0부터는 [[개체]]와 속성, [[메소드]](Method), [[이벤트]](Event) 등의 특성을 가지는 [[객체 지향]](Object Oriented) 개발 방식을 지원한다. 이러한 객체 지향 방식은 비주얼 베이직 6.0의 다음 버전인 [[비주얼 베이직 닷넷]](Visual Basic.NET)에서 완벽하게 지원하게 된다. 객체 지향 언어는 프로그램을 쉽게 개발할 수 있고, 유지 보수가 쉬우며, 개체를 다시 사용할 수 있다는 장점이 있다. 비주얼 베이직 6.0에는 5.0에 없던 많은 기능이 추가됐다. 특히 [[데이터베이스]]와 관련된 기능이 좀 더 보완되었다. 비주얼 베이직 6.0에서는 기존의 5.0에서 사용하던 데이터베이스 [[액세스]](Access) 방식인 ODBC나 [[다오]](DAO) 보다 훨씬 강력하고 빠른 속도를 제공하는 OLE DB, 그리고 마이크로소프트 ADO 개체를 제공한다. 이 개체는 [[에스큐엘 서버]](SQL Server)나 [[오라클]](Oracle)과 같은 관계형 데이터베이스뿐만 아니라 텍스트 파일과 전자우편과 같은 데이터도 마치 데이터베이스를 사용하듯 처리해서 더 높은 신뢰성과 빠른 속도를 제공한다. 특히 ADO 개체를 이용하면, 대규모 업무나 인트라넷 등을 좀 더 효율적으로 관리할 수 있다.<ref>siren911, 〈[https://siren911.tistory.com/19 비주얼베이직 6.0의 역사와 특징]〉, 《티스토리》, 2016-09-11</ref>
 
=== 장단점 ===
 
=== 장단점 ===
비주얼 베이직의 장점으로는 베이직은 기본 언어로 채택해서 쉽고 빠르게 배울 수 있다. 거의 모든 [[응용 프로그램]]을 작성할 수 있다. Third Part [[컴포넌트]]가 풍부해서 프로그램 개발 생산성이 좋다. ODBC, ADO 등을 이용해 다양한 [[데이터베이스]] 관련 프로그램 작성이 가능하다. VBA, ASP 등의 다양한 [[파생언어]]와 뛰어난 호환성을 갖고 있다. [[ActiveX]], [[COM]] 등의 최신기술을 지원한다는 것들이 있다. 단점으로는 실행속도가 [[델파이]]나 [[VC++]]등에 비해 느리다. 프로그램 배포가 상대적으로 어렵다.(배포에 관련된 파일이 많다) [[애플리케이션]]이 복잡해질수록 생산성이 급격하게 떨어진다. 모든 기술이 [[윈도]] 운영체제에 종속되어 있어서 크로스 플랫폼을 지원하지 못한다는 점들이 있다.<ref>sssoh, 〈[https://sssoh.tistory.com/6 프로그래밍 언어의 종류와 특징]〉, 《티스토리》, 2012-01-17</ref>
+
비주얼 베이직의 장점으로는 베이직은 기본 언어로 채택해서 쉽고 빠르게 배울 수 있다. 거의 모든 [[응용 프로그램]]을 작성할 수 있다. Third Part [[컴포넌트]](Component)가 풍부해서 프로그램 개발 생산성이 좋다. ODBC, ADO 등을 이용해 다양한 [[데이터베이스]] 관련 프로그램 작성이 가능하다. VBA, ASP 등의 다양한 파생언어와 뛰어난 호환성을 갖고 있다. [[액티브엑스]](ActiveX), 콤(COM) 등의 최신기술을 지원한다는 것들이 있다. 단점으로는 실행속도가 [[델파이]](Delphi)에 비해 느리다. 프로그램 배포가 상대적으로 어렵다.(배포에 관련된 파일이 많다) 애플리케이션이 복잡해질수록 생산성이 급격하게 떨어진다. 모든 기술이 [[윈도우]](Windows) 운영체제에 종속되어 있어서 크로스 플랫폼을 지원하지 못한다는 점들이 있다.<ref>sssoh, 〈[https://sssoh.tistory.com/6 프로그래밍 언어의 종류와 특징]〉, 《티스토리》, 2012-01-17</ref>
 +
 
 +
===용어===
 +
*이벤트 기반 프로그래밍: 절차형(순차적) 프로그래밍 방식이다. [[도스]](DOS) [[운영체제]]에서 사용한다. 프로그램을 작성할 때 명령어의 처리 순서를 고려해야 한다. 순서들을 조금씩 구조화해서 함수라는 형태로 정의하고 호출해 사용한다.<ref name="용어">티스토리88, 〈[https://itstory07.tistory.com/916 비주얼 베이직의 기초 용어, 이벤트 기반, 개체, 컨트롤,속성,메소드,이벤트,프로시저]〉, 《티스토리》, 2019-11-30</ref>
 +
*개체: [[개체]]는 우리가 살아가는 세계에 실제로 존재하는 것과 생각할 수 있는 것이다. 특징, 기능(동작), 행위로 표현할 수 있다.<ref name="용어"></ref>
 +
*컨트롤: 비주얼 베이직에서는 도구 상자에 포함된 텍스트 박스, 버튼, 리스트 박스 등의 각 컨트롤이 개체에 해당한다. 개체는 특징에 해당하는 속성, 기능인 [[메소드]](method), 행위인 이벤트를 갖는다. 동일한 컨트롤로 만든 개체는 기본적인 값은 같지만 각 개체의 특성에 맞게 변경할 수 있다. 표준 컨트롤과 [[액티브엑스]](ActiveX) 컨트롤이 있다.<ref name="용어"></ref>
 +
*속성: 개체의 색상, 크기, 위치와 같은 외형을 정의하는 특성이다. 개체마다 속성이 다르다. 레이블은 제목용으로 사용되어 글자를 표시하는 속성이 대부분이므로 그림 속성이 없다. 픽처 박스는 그림을 넣는 컨트롤이므로 그림에 관한 속성이 다양하지만 글자에 대한 속성이 없다.<ref name="용어"></ref>
 +
*메소드: 메소드는 개체가 수행하는 동작이나 기능을 정의한다. 각 컨트롤의 기능에 따라 정의된 메소드가 다르다. 비주얼 베이직 프로그래밍은 각 컨트롤이 가진 속성과 메소드를 이용하여 어떤 기능을 하게 만드는 작업이다.<ref name="용어"></ref>
 +
*프로시저: [[프로시저]](Procedure)는 이벤트를 처리하는 단위로, 어떤 행동을 수행하기 위한 일련의 작업 순서다. 특히 이벤트 프로시저는 사용자가 이벤트를 발생시키면 이를 처리하기 위해 자동으로 호출된다. 프로시저는 이벤트를 처리하기 위한 메소드와 변수, 제어문 등을 포함한다. 이벤트 프로시저는 이벤트가 발생했을 때 자동으로 호출되는 프로시저다.<ref name="용어"></ref>
  
 
==문법==
 
==문법==
77번째 줄: 85번째 줄:
 
===변수===
 
===변수===
 
:{|class=wikitable width=600
 
:{|class=wikitable width=600
|+<big>''''''</big>
+
|+<big>'''변수'''</big>
 
!align=center|구 분
 
!align=center|구 분
 
!align=center|내 용
 
!align=center|내 용
90번째 줄: 98번째 줄:
 
|align=center|Dim, Private, Static
 
|align=center|Dim, Private, Static
 
|}<ref name="자료형"></ref>
 
|}<ref name="자료형"></ref>
 +
 
===상수===
 
===상수===
[[상수]]는 한 번 선언해 놓으면 변하지 않고 고정 되는 값을 말한다. 종류는 일반 상수, 열거형 이 있다. 일반상수는 [[Const]] 키워드 사용, 열거형은 [[Enum]] 키워드를 사용한다.
+
[[상수]]는 한 번 선언해 놓으면 변하지 않고 고정 되는 값을 말한다. 종류는 일반 상수, 열거형 이 있다. 일반상수는 Const 키워드 사용, 열거형은 Enum 키워드를 사용한다.
 
:{|class=wikitable width=600
 
:{|class=wikitable width=600
|+<big>''''''</big>
+
|+<big>'''상수'''</big>
 
!align=center|예제 코드
 
!align=center|예제 코드
 
!align=center|설명
 
!align=center|설명
 
|-
 
|-
 
|align=center|Const MyVar = 459
 
|align=center|Const MyVar = 459
|align=center|상수는 기본값으로 Private을 갖는다.
+
|align=center|상수는 기본값을 Private(전용)으로 갖는다.
 
|-
 
|-
 
|align=center|Public Const MyString = "HELP"
 
|align=center|Public Const MyString = "HELP"
|align=center|Public 상수를 선언한다.
+
|align=center|일반상수를 선언한다.
 
|-
 
|-
 
|align=center|Private Const MyInt As Integer = 5
 
|align=center|Private Const MyInt As Integer = 5
|align=center|Private Integer 상수를 선언한다.
+
|align=center|Private Integer(전용 정수) 상수를 선언한다.
 
|-
 
|-
 
|align=center|Const MyStr = "Hello", MyDouble As Double = 3.4567
 
|align=center|Const MyStr = "Hello", MyDouble As Double = 3.4567
 
|align=center|같은 줄에 다중 상수를 선언한다.
 
|align=center|같은 줄에 다중 상수를 선언한다.
 
|}<ref name="자료형"></ref>
 
|}<ref name="자료형"></ref>
 +
 
===연산자===
 
===연산자===
 
비주얼베이직 6.0에서는 [[산술 연산자]], [[관계 연산자]], [[논리 연산자]] 3가지가 있다.
 
비주얼베이직 6.0에서는 [[산술 연산자]], [[관계 연산자]], [[논리 연산자]] 3가지가 있다.
 
:{|class=wikitable width=600
 
:{|class=wikitable width=600
|+<big>''''''</big>
+
|+<big>'''연산자'''</big>
 
!align=center|구 분
 
!align=center|구 분
 
!align=center|연산자
 
!align=center|연산자
171번째 줄: 181번째 줄:
 
*[[K베이직]]은 비주얼 베이직의 영향을 받은 [[리눅스]], [[매킨토시]], [[윈도]]용 자유 소프트웨어 프로그래밍 언어이다. K베이직은 비주얼 베이직의 클론은 아니지만, 비주얼 베이직 프로그램을 K베이직으로 변환하는 기능이 있다.<ref name=관계></ref>
 
*[[K베이직]]은 비주얼 베이직의 영향을 받은 [[리눅스]], [[매킨토시]], [[윈도]]용 자유 소프트웨어 프로그래밍 언어이다. K베이직은 비주얼 베이직의 클론은 아니지만, 비주얼 베이직 프로그램을 K베이직으로 변환하는 기능이 있다.<ref name=관계></ref>
 
==응용프로그램 개발==
 
==응용프로그램 개발==
비주얼 베이직에서 [[응용프로그램]]을 작성하기 위해서는 3가지 주요 단계가 필요하다. 1단계는 [[인터페이스]] 만들기로 사용자와 컴퓨터 간에 상호정보를 주고받기 위한 기초작업을 하는 단계다. 인터페이스는 응용프로그램 개발의 첫 단계로, [[폼]]은 인터페이스의 기초가 된다. 집 짓는 것에 비유하자면 폼은 집터가 될 것이고, 도구상자에 있는 [[컨트롤]]들은 각종 건축자재에 해당할 것이다. 컨트롤을 폼에 추가시키는 것은 프레임 같은 개체를 컨테이너 안에 그룹화시킬 필요가 있을 때 사용한다. 2단계로는 속성설정이다. 각 개체에 대해 이름을 지정해 주거나 색깔, 모양, 개체위치, 개체크기 등의 속성을 설정해주는 단계다. 두 번째 단계로 개체에 속성을 부여한다. 이것도 인간이 집을 만들 때, 용도에 맞게 방의 크기도 정하고, 또한 방의 위치도 생각할 것이다. 그리고 난 다음 집을 짓고, 명패를 달고, 색깔도 칠하는 등 여러 가지부속 작업을 하는 것에 비유할 수 있다. 이러한 속성을 설정하기 위해 [[비주얼베이직]]은 속성 창이라는 것을 제공하고 있다. 속성 창은 폼뿐만 아니라 폼 내에 있는 모든 컨트롤의 속성을 설정할 수 있도록 속성목록을 제공하고 있다. 폼뿐만 아니라 모든 컨트롤에 이름을 굳이 다시 부여하지 않아도 되지만, 이렇게 하면 혼동되기 쉽다. 예를 들어, 하나의 프로젝트에 10개의 폼이 존재한다고 가정하면 비주얼 베이직은 폼 추가 순서대로 폼의 이름을 폼1, 폼2, 폼3 이런 식으로 부여하게 된다. 이중 폼3이 하는 일이 [[네트워크]]의 로그인 폼이라면 비주얼 베이직의 특징중 하나가 개체의 재활용이다. 즉 기존에 있던 [[프로젝트]]뿐만 아니라 폼 등은 언제든지 필요하다면 다시 불러 쓸 수 있다는 것이다. 이러한 특징을 이용해 다른 프로젝트에서 네트워크 로그인 역할을 하는 기존의 폼을 쓰기 위해 [[하드디스크]]에서 찾을 것이다. 그러한 폼의 이름이 폼1, 폼2 식으로 되어있다면 찾기 힘들 것이다. 3단계로는 코드 쓰기다. 개체에 이벤트가 발생하면 수행해야 할 일을 적어두는 단계다. 속성설정만으로 완전히 [[애플리케이션]]이 될 수는 없다. 모든 애플리케이션의 생명은 바로 코드작성에 있다. [[코드 창]]은 비주얼 베이직 코드를 작성할 수 있는 곳으로 코드는 언어문장, 상수, 선언문으로 구성되어 있다. 비주얼 베이직에있는 모든 코드는 [[프로시저]](Procedure)라고 하는 작은 단위로 이루어진다. 하나의 이벤트 프로시저에는 어떤 사건 발생 시 수행하는 코드를 포함하게 된다.<ref>나비, 〈[https://skql.tistory.com/124 비주얼베이직이란?]〉, 《티스토리》, 2008-01-16</ref>
+
비주얼 베이직에서 [[응용프로그램]]을 작성하기 위해서는 3가지 주요 단계가 필요하다. 1단계는 [[인터페이스]](interface) 만들기로 사용자와 컴퓨터 간에 상호정보를 주고받기 위한 기초작업을 하는 단계다. 인터페이스는 응용프로그램 개발의 첫 단계로, [[폼]](form)은 인터페이스의 기초가 된다. 집 짓는 것에 비유하자면 폼은 집터가 될 것이고, 도구상자에 있는 컨트롤들은 각종 건축자재에 해당할 것이다. 컨트롤을 폼에 추가시키는 것은 프레임 같은 개체를 컨테이너 안에 그룹화시킬 필요가 있을 때 사용한다. 2단계로는 속성설정이다. 각 개체에 대해 이름을 지정해 주거나 색깔, 모양, 개체위치, 개체크기 등의 속성을 설정해주는 단계다. 두 번째 단계로 개체에 속성을 부여한다. 이것도 인간이 집을 만들 때, 용도에 맞게 방의 크기도 정하고, 또한 방의 위치도 생각할 것이다. 그리고 난 다음 집을 짓고, 명패를 달고, 색깔도 칠하는 등 여러 가지부속 작업을 하는 것에 비유할 수 있다. 이러한 속성을 설정하기 위해 [[비주얼베이직]](Visualbasic)은 속성 창이라는 것을 제공하고 있다. 속성 창은 폼뿐만 아니라 폼 내에 있는 모든 컨트롤의 속성을 설정할 수 있도록 속성목록을 제공하고 있다. 폼뿐만 아니라 모든 컨트롤에 이름을 굳이 다시 부여하지 않아도 되지만, 이렇게 하면 혼동되기 쉽다. 예를 들어, 하나의 프로젝트에 10개의 폼이 존재한다고 가정하면 비주얼 베이직은 폼 추가 순서대로 폼의 이름을 폼1, 폼2, 폼3 이런 식으로 부여하게 된다. 이중 폼3이 하는 일이 [[네트워크]](Network)의 로그인 폼이라면 비주얼 베이직의 특징중 하나가 개체의 재활용이다. 즉 기존에 있던 프로젝트뿐만 아니라 폼 등은 언제든지 필요하다면 다시 불러 쓸 수 있다는 것이다. 이러한 특징을 이용해 다른 프로젝트에서 네트워크 로그인 역할을 하는 기존의 폼을 쓰기 위해 하드디스크에서 찾을 것이다. 그러한 폼의 이름이 폼1, 폼2 식으로 되어있다면 찾기 힘들 것이다. 3단계로는 코드 쓰기다. 개체에 이벤트가 발생하면 수행해야 할 일을 적어두는 단계다. 속성설정만으로 완전히 [[애플리케이션]](Application)이 될 수는 없다. 모든 애플리케이션의 생명은 바로 코드작성에 있다. 코드 창은 비주얼 베이직 코드를 작성할 수 있는 곳으로 코드는 언어문장, 상수, 선언문으로 구성되어 있다. 비주얼 베이직에있는 모든 코드는 [[프로시저]](Procedure)라고 하는 작은 단위로 이루어진다. 하나의 이벤트 프로시저에는 어떤 사건 발생 시 수행하는 코드를 포함하게 된다.<ref>나비, 〈[https://skql.tistory.com/124 비주얼베이직이란?]〉, 《티스토리》, 2008-01-16</ref>
  
 
== 버전 분류 ==
 
== 버전 분류 ==
 
===비주얼베이직 1.0===
 
===비주얼베이직 1.0===
비주얼 베이직 1.0은 [[윈도우]] 3.0 기반에서 실행된 프로그램 제작 툴이다. 후속작으로 [[도스]] 기반에서 실행되는 프로그램이 나오기도 했다. 비주얼 베이직 1.0은 1991년 5월에 발표되었다. 지금도 [[네이버]]에 검색하면 윈도우용 파일을 구할 수 있긴 하다. 하지만 [[윈도우 10]]에서 실행이 안 되는듯하다. 더 하위 버전으로 [[다운그레이드]]를 하면 아마 실행이 될 것이다. 도스용 비주얼 베이직을 구해서 [[도스 박스]]로 구동시키면 도스용 비주얼 베이직 1.0이라도 체험해 볼 수 있다.<ref name="분류">비주얼 베이직 우만위키 - https://tcatmon.com/wiki/%EB%B9%84%EC%A3%BC%EC%96%BC_%EB%B2%A0%EC%9D%B4%EC%A7%81</ref>
+
비주얼 베이직 1.0은 윈도우 3.0 기반에서 실행된 프로그램 제작 툴이다. 후속작으로 [[도스]](Dos) 기반에서 실행되는 프로그램이 나오기도 했다. 비주얼 베이직 1.0은 1991년 5월에 발표되었다. 지금도 네이버에 검색하면 윈도우용 파일을 구할 수 있긴 하다. 하지만 윈도우 10에서 실행이 안 되는듯하다. 더 하위 버전으로 다운그레이드를 하면 아마 실행이 될 것이다. 도스용 비주얼 베이직을 구해서 도스 박스로 구동시키면 도스용 비주얼 베이직 1.0이라도 체험해 볼 수 있다.<ref name="분류">비주얼 베이직 우만위키 - https://tcatmon.com/wiki/%EB%B9%84%EC%A3%BC%EC%96%BC_%EB%B2%A0%EC%9D%B4%EC%A7%81</ref>
  
 
===비주얼베이직 6.0===
 
===비주얼베이직 6.0===
비주얼 베이직 6.0은 1998년에 등장했다. 이 버전은 아직도 많은 사람이 이용하고 있으며, 아직도 [[인터넷]]에다 쳐보면 파일들이 많이 나온다. 이렇게 아직도 비주얼 베이직 6.0 사용자가 많은 건 7.0부터는 비주얼 베이직이 비주얼베이직. Net으로 바뀌어 버렸기 때문이다. 둘은 아예 호환이 안 되기 때문에 사실상 완벽히 다른 언어다. 비주얼베이직. Net은 [[객체 지향 언어]]이고 비주얼 베이직은 절차 지향이므로 서로 당연히 코딩 패러다임에 어마어마한 차이를 가져왔다. 즉 6.0버전이 다른 버전보다 좋아서 사용한 게 아니라 애당초 6.0이 비주얼 베이직 버전의 끝이기 때문에 다른 선택지 자체가 없다. 그 이후의 버전은 비주얼 베이직이 아니라 비주얼베이직.Net이라 불러야 한다. 애당초 비주얼 베이직 언어 자체가 [[마이크로소프트]], [[윈도우]] 플랫폼에 종속된 언어이기 때문에 혼자서 마음대로 바꿀 수 있었다. 마이크로소프트는 시대의 흐름에 맞춰서 비주얼 베이직을 객체지향으로 바꾸었고 그 결과물이 비주얼베이직.Net이다. 비주얼베이직 개발 환경의 지원은 공식적으로 2005년에 종료되었고 유료 서비스는 그 후 3년 동안인 2008년까지 지원되고 종료되었다. 그 이후 마이크로소프트는 비주얼 베이직 6.0을 쓰지 말고비주얼베이직.Net을 써 달라고 부탁했지만, 현실적으로 힘든 면이 있었던 게 이미 비주얼 베이직의 압도적인 장점인 쉬운 [[그래픽 사용자 인터페이스]]구축과 6.0버전의 장점인 가벼움이라는 무기로 수많은 프로그램이 만들어졌기 때문에 유지 보수에 비주얼 베이직.Net을 사용할 수 없었다. 비주얼 베이직 6.0이 워낙 걸작이었기 때문에 비주얼 베이직을 아직도 사용하는 사람이 많다. 이는 언어 점유율에서도 확인할 수 있다. 지원이 빵빵한 다른 언어들과도 크게 꿀리지 않는데 매년 비주얼 베이직을 지원해 달라고 마이크로소프트에 진정서를 넣지만, 마이크로소프트에서도 비주얼 베이직.Net을 사용하라고 한다.<ref name="분류"></ref>
+
비주얼 베이직 6.0은 1998년에 등장했다. 이 버전은 아직도 많은 사람이 이용하고 있으며, 아직도 [[인터넷]](Internet)에다 쳐보면 파일들이 많이 나온다. 이렇게 아직도 비주얼 베이직 6.0 사용자가 많은 건 7.0부터는 비주얼 베이직이 비주얼베이직. Net으로 바뀌어 버렸기 때문이다. 둘은 아예 호환이 안 되기 때문에 사실상 완벽히 다른 언어다. 비주얼베이직. Net은 [[객체 지향 언어]]이고 비주얼 베이직은 절차 지향이므로 서로 당연히 코딩 패러다임에 어마어마한 차이를 가져왔다. 즉 6.0버전이 다른 버전보다 좋아서 사용한 게 아니라 애당초 6.0이 비주얼 베이직 버전의 끝이기 때문에 다른 선택지 자체가 없다. 그 이후의 버전은 비주얼 베이직이 아니라 비주얼베이직.Net이라 불러야 한다. 애당초 비주얼 베이직 언어 자체가 [[마이크로소프트]](Microsoft), [[윈도우]](Windows) 플랫폼에 종속된 언어이기 때문에 혼자서 마음대로 바꿀 수 있었다. 마이크로소프트는 시대의 흐름에 맞춰서 비주얼 베이직을 객체지향으로 바꾸었고 그 결과물이 비주얼베이직.Net이다. 비주얼베이직 개발 환경의 지원은 공식적으로 2005년에 종료되었고 유료 서비스는 그 후 3년 동안인 2008년까지 지원되고 종료되었다. 그 이후 마이크로소프트는 비주얼 베이직 6.0을 쓰지 말고비주얼베이직.Net을 써 달라고 부탁했지만, 현실적으로 힘든 면이 있었던 게 이미 비주얼 베이직의 압도적인 장점인 쉬운 [[그래픽 사용자 인터페이스]](GUI)구축과 6.0버전의 장점인 가벼움이라는 무기로 수많은 프로그램이 만들어졌기 때문에 유지 보수에 비주얼 베이직.Net을 사용할 수 없었다. 비주얼 베이직 6.0이 워낙 걸작이었기 때문에 비주얼 베이직을 아직도 사용하는 사람이 많다. 이는 언어 점유율에서도 확인할 수 있다. 지원이 빵빵한 다른 언어들과도 크게 꿀리지 않는데 매년 비주얼 베이직을 지원해 달라고 마이크로소프트에 진정서를 넣지만, 마이크로소프트에서도 비주얼 베이직.Net을 사용하라고 한다.<ref name="분류"></ref>
  
 
==비주얼베이직 닷넷과 차이==
 
==비주얼베이직 닷넷과 차이==
비주얼 베이직이 1991년 비주얼 베이직 1.0으로 발표되던 시점으로 돌아가 보면 한창 인기 [[운영체제]]로 사용하던 [[엠에스 도스]] 체계에서 1990년 [[윈도]] 3.0과 후속으로 윈도 3.1이 발표되고 인기를 얻으면서 [[그래픽 사용자 인터페이스]] 기반의 [[응용프로그램]]을 복잡하고 힘들게 만들었다면 비주얼 베이직 1.0은 프로그래머에게 윈도 프로그램을 쉽게 제작할 기회를 제공했다. 비주얼 베이직 닷넷은 기존의 비주얼 베이직의 기본적인 문법은 가져왔지만 +=, -=[[연산자]]와 같은 [[C]] 문법이 들어오기도 했고 무엇보다 기본적인 닷넷 타입을 적용하면서 이전 비주얼 베이직 [[버전]]에서 작성된 코드는 하위 호환이 되지 않아 비주얼 베이직 닷넷에 맞도록 재작성해야만 실행할 수 있게 되었다. 이전의 비주얼 베이직과 비주얼 베이직 닷넷을 구분 짓는 기반에는 닷넷 [[프레임워크]]가 있다. 프로그램이 만들어져서 실행되는 과정을 살펴보면 비주얼 베이직 코드는 [[컴파일]]과 링크 과정을 거쳐 대상 [[운영체제]]나 [[프로세서]](Processor)에 맞는 [[기계어]](Machine language)로 만들어지고 사용자의 수행 요청에 따라 운영체계의 통제 아래 프로그램이 실행되는 방식이 이전 모델이라면 닷넷 프레임워크 체계에서는 대상 운영체제나 프로세서의 종류와 관계없이 닷넷의 규격에 맞는 프로그램을 생성하면 닷넷 프레임워크의 [[CLR]](Common Language Runtime)을 통해서 다양한 운영체제와 프로세서에서의 동일한 기능을 발휘하는 응용 프로그램을 동작시킬 수 있는 것이다. 요즘 만들어지고 있는 [[비주얼 스튜디오]]는 자체를 닷넷으로 제작하고 있다. 닷넷으로 제작한 응용은 [[웹]] 환경에서도 사용될 수 있을 뿐만 아니라 닷넷을 채용한 [[모바일]](Mobile) 기기에서도 활용할 수 있는 등 그 확장성은 무한하다.<ref>야라바, 〈[https://yaraba.tistory.com/9 Visual Basic과 Visual Basic.Net은 다른 것일까?]〉, 《티스토리》, 2014-12-03</ref>
+
비주얼 베이직이 1991년 비주얼 베이직 1.0으로 발표되던 시점으로 돌아가 보면 한창 인기 [[운영체제]]로 사용하던 [[엠에스 도스]](MS-Dos 체계에서 1990년 [[윈도우]] 3.0과 후속으로 윈도 3.1이 발표되고 인기를 얻으면서 [[그래픽 사용자 인터페이스]] 기반의 [[응용프로그램]]을 복잡하고 힘들게 만들었다면 비주얼 베이직 1.0은 프로그래머에게 윈도 프로그램을 쉽게 제작할 기회를 제공했다. 비주얼 베이직 닷넷은 기존의 비주얼 베이직의 기본적인 문법은 가져왔지만 +=, -=[[연산자]]와 같은 [[C 언어]] 문법이 들어오기도 했고 무엇보다 기본적인 닷넷 타입을 적용하면서 이전 비주얼 베이직 버전에서 작성된 코드는 하위 호환이 되지 않아 비주얼 베이직 닷넷에 맞도록 재작성해야만 실행할 수 있게 되었다. 이전의 비주얼 베이직과 비주얼 베이직 닷넷을 구분 짓는 기반에는 닷넷 [[프레임워크]](framework)가 있다. 프로그램이 만들어져서 실행되는 과정을 살펴보면 비주얼 베이직 코드는 컴파일(Compile)과 링크 과정을 거쳐 대상 운영체제나 [[프로세서]](Processor)에 맞는 [[기계어]](Machine language)로 만들어지고 사용자의 수행 요청에 따라 운영체계의 통제 아래 프로그램이 실행되는 방식이 이전 모델이라면 닷넷 프레임워크 체계에서는 대상 운영체제나 프로세서의 종류와 관계없이 닷넷의 규격에 맞는 프로그램을 생성하면 닷넷 프레임워크의 CLR(Common Language Runtime)을 통해서 다양한 운영체제와 프로세서에서의 동일한 기능을 발휘하는 응용 프로그램을 동작시킬 수 있는 것이다. 요즘 만들어지고 있는 비주얼 스튜디오는 자체를 닷넷으로 제작하고 있다. 닷넷으로 제작한 응용은 [[웹]](Web) 환경에서도 사용될 수 있을 뿐만 아니라 닷넷을 채용한 [[모바일]](Mobile) 기기에서도 활용할 수 있는 등 그 확장성은 무한하다.<ref>야라바, 〈[https://yaraba.tistory.com/9 Visual Basic과 Visual Basic.Net은 다른 것일까?]〉, 《티스토리》, 2014-12-03</ref>
 +
 
 +
==지원 중단==
 +
[[마이크로소프트]]는 무료 지원과 중요 업데이트 제공을 끝으로 2005년 3월 말 VB6에 대한 표준 지원을 중단할 것이라고 밝혔다. 하지만 두 서비스 모두 앞으로 3년 동안은 유료 서비스로 남아있게 된다. 마이크로소프트는 2000년 [[VB.NET]]을 내놓았으며 그 후 VB6 이하 버전을 사용하는 개발자들은 끊임없이 감소해왔다. 비주얼 베이직을 등지고 떠난 많은 개발자들은 VB.NET으로 옮겨가지 않고 마이크로소프트의 언어가 아닌 [[자바]]로 옮겨갔다는 설문 조사 결과가 있다. 2005년, 북미 전체 개발자중 비주얼 베이직 닷넷 개발자가 34%인데 비해 비주얼 베이직 개발자들은 45%다. 기존 VB6 응용 프로그램을 [[비주얼 베이직 닷넷]]으로 옮기는 게 어려운 점이 문제점으로 지적되고 있다. 다만 2008년 VB6 SP6에 대한 일부 취약한 보안 문제와 관련된 패치가 있었다. 그리고 마이크로소프트가 추후 공개할 윈도 8부터 비주얼 베이직 및 기반 프로그램들을 더 지원하지 않는다.<ref name=관계></ref>
  
 
== 현황 및 전망 ==
 
== 현황 및 전망 ==
마이크로소프트의 [[닷넷]] 팀 블로그에 비주얼 베이직 닷넷의 닷넷 5.0 버전 지원과 관련된 글이 올라왔다. 이 글에서 닷넷 팀은 비주얼 베이직을더는 발전시킬 계획은 없다. 앞으로는 안정성이나 호환성 관련 패치만 할 것이다. 닷넷에 차후 [[버전]]에서 제공하는 신기능은 아마 비주얼 베이직에서 지원되지 않을 것이라고 밝혔다. 원래 마이크로소프트는 [[베이직]](BASIC) 언어 개발로 시작한 [[소프트웨어]] 회사였다. 1975년에 [[빌 게이츠]]와 [[폴 앨런]]이 [[알테어 8800]]이라는 개인용 컴퓨터를 위한 [[알테어 베이직]](Altair BASIC)을 개발하여 판매하기 시작한 것이 마이크로소프트의 시작이었다. 닷넷 버전의 비주얼 베이직은 별로 인기가 없었다. 가장 큰 원인은 기존 비주얼 베이직과의 호환성이 전혀 없었기 때문이다. 언어가 지향하는 [[패러다임]] 자체가 [[절차지향]]에서 [[객체지향]]으로 바뀌었기 때문에, 비주얼 베이직 닷넷은 기존의 비주얼 베이직보다는 차라리 새로 나온 [[C#]]에 더 가까운 존재가 되었다. 실제로 비주얼 베이직 닷넷과 C#은 자동으로 상호 코드 변환이 가능할 정도다. 이 때문에 수많은 개발자가 닷넷 버전의 비주얼 베이직으로 넘어가는 것을 거부하고 [[VB 6.0]]에 머무르게 되었다. 이후 비주얼 베이직은 점차 사용자가 줄어들었다. 앞으로 닷넷 기반으로 개발을 하려면 C#을 택하는 것이 가장 좋을 것이다. 물론 마이크로소프트에서는 [[F#]]같은 다른 언어도 제공하고 있긴 하지만, 함수형 프로그래밍 패러다임은 아직도 널리 보편화하였다고 말하기는 힘들다. 닷넷을 위한 제1 언어는 앞으로도 C#일 것으로 보인다.<ref>쮸쀼쮸쀼, 〈[https://gigglehd.com/gg/soft/6852765 비주얼 베이직은 이제 끝났습니다]〉, 《기글하드웨어》, 2020-03-15</ref>
+
마이크로소프트의 닷넷 팀 블로그에 비주얼 베이직 닷넷의 닷넷 5.0 버전 지원과 관련된 글이 올라왔다. 이 글에서 닷넷 팀은 비주얼 베이직을더는 발전시킬 계획은 없다. 앞으로는 안정성이나 호환성 관련 패치만 할 것이다. 닷넷에 차후 버전에서 제공하는 신기능은 아마 비주얼 베이직에서 지원되지 않을 것이라고 밝혔다. 원래 마이크로소프트는 [[베이직]](BASIC) 언어 개발로 시작한 [[소프트웨어]](Software) 회사였다. 1975년에 [[빌 게이츠]]와 [[폴 앨런]]이 알테어 8800이라는 개인용 컴퓨터를 위한 알테어 베이직(Altair BASIC)을 개발하여 판매하기 시작한 것이 마이크로소프트의 시작이었다. 닷넷 버전의 비주얼 베이직은 별로 인기가 없었다. 가장 큰 원인은 기존 비주얼 베이직과의 호환성이 전혀 없었기 때문이다. 언어가 지향하는 [[패러다임]](Paradym) 자체가 절차지향에서 객체지향으로 바뀌었기 때문에, 비주얼 베이직 닷넷은 기존의 비주얼 베이직보다는 차라리 새로 나온 [[C샵]](C#)에 더 가까운 존재가 되었다. 실제로 비주얼 베이직 닷넷과 C샵은 자동으로 상호 코드 변환이 가능할 정도다. 이 때문에 수많은 개발자가 닷넷 버전의 비주얼 베이직으로 넘어가는 것을 거부하고 VB 6.0에 머무르게 되었다. 이후 비주얼 베이직은 점차 사용자가 줄어들었다. 앞으로 닷넷 기반으로 개발을 하려면 C샵을 택하는 것이 가장 좋을 것이다. 물론 마이크로소프트에서는 F샵(F#)같은 다른 언어도 제공하고 있긴 하지만, 함수형 프로그래밍 패러다임은 아직도 널리 보편화하였다고 말하기는 힘들다. 닷넷을 위한 제1 언어는 앞으로도 C샵일 것으로 보인다.<ref>쮸쀼쮸쀼, 〈[https://gigglehd.com/gg/soft/6852765 비주얼 베이직은 이제 끝났습니다]〉, 《기글하드웨어》, 2020-03-15</ref>
  
 
{{각주}}
 
{{각주}}
  
 
== 참고자료 ==
 
== 참고자료 ==
*땜쓰, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ansdbtls4067&logNo=220817583984&proxyReferer=https:%2F%2Fwww.google.com%2F 땜쓰]〉, 《네이버 블로그》, 2016-09-21
+
*땜쓰, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ansdbtls4067&logNo=220817583984&proxyReferer=https:%2F%2Fwww.google.com%2F Visual Basic(비주얼 베이직) 2015 1강 - Visual Basic의 개요]〉, 《네이버 블로그》, 2016-09-21
 
*siren911, 〈[https://siren911.tistory.com/19 비주얼베이직 6.0의 역사와 특징]〉, 《티스토리》, 2016-09-11
 
*siren911, 〈[https://siren911.tistory.com/19 비주얼베이직 6.0의 역사와 특징]〉, 《티스토리》, 2016-09-11
 
*sssoh, 〈[https://sssoh.tistory.com/6 프로그래밍 언어의 종류와 특징]〉, 《티스토리》, 2012-01-17
 
*sssoh, 〈[https://sssoh.tistory.com/6 프로그래밍 언어의 종류와 특징]〉, 《티스토리》, 2012-01-17
 +
*티스토리88, 〈[https://itstory07.tistory.com/916 비주얼 베이직의 기초 용어, 이벤트 기반, 개체, 컨트롤,속성,메소드,이벤트,프로시저]〉, 《티스토리》, 2019-11-30
 
*Sherlock Vinci, 〈[https://procoding-lab.tistory.com/3 Visual Basic 6.0 문법(자료형, 변수, 상수, 배열, 구조체, 연산자, 제어문)]〉, 《티스토리》, 2019-09-22
 
*Sherlock Vinci, 〈[https://procoding-lab.tistory.com/3 Visual Basic 6.0 문법(자료형, 변수, 상수, 배열, 구조체, 연산자, 제어문)]〉, 《티스토리》, 2019-09-22
 
*비주얼 베이직 위키백과 - https://ko.wikipedia.org/wiki/%EB%B9%84%EC%A3%BC%EC%96%BC_%EB%B2%A0%EC%9D%B4%EC%A7%81#%EB%8B%A4%EB%A5%B8_%EC%96%B8%EC%96%B4%EB%93%A4%EA%B3%BC%EC%9D%98_%EA%B4%80%EA%B3%84
 
*비주얼 베이직 위키백과 - https://ko.wikipedia.org/wiki/%EB%B9%84%EC%A3%BC%EC%96%BC_%EB%B2%A0%EC%9D%B4%EC%A7%81#%EB%8B%A4%EB%A5%B8_%EC%96%B8%EC%96%B4%EB%93%A4%EA%B3%BC%EC%9D%98_%EA%B4%80%EA%B3%84

2021년 1월 5일 (화) 11:05 기준 최신판

비주얼베이직(Visual BASIC)
비주얼베이직(Visual BASIC)

비주얼베이직(Visual BASIC)은 미국 마이크로소프트윈도 시스템에서 작동하는 소프트웨어를 쉽고 간편하게 개발하기 위해 만든 프로그래밍 언어이다. 간략히 VB(브이비)라고 쓴다. 비주얼베이직은 데이터베이스 프로그래밍이 가능하고, 그래픽 사용자 인터페이스(GUI)를 사용하는 프로그램을 매우 쉽게 개발할 수 있다.

개요[편집]

비주얼 베이직은 컴퓨터 프로그래밍 언어(Programming language)의 한 종류다. 프로그래밍 언어는 사람이 이해할 수 있는 영문과 비슷한 코드로 되어 있어 컴퓨터에 이해시키기 위해서는 반드시 컴파일(compile) 과정을 거쳐야 한다. 고전적인 베이직(Basic) 언어는 인터프리터 기법의 언어나 그래픽 사용자 인터페이스(GUI) 프로그래밍인 비주얼베이직은 컴파일러(Compiler) 기법과 인터프리터 기법이 모두 사용된다고 할 수 있다. 마우스를 클릭하거나 움직이는 등의 행동을 이벤트라고 하는데 비주얼 베이직은 이러한 이벤트가 발생함에 따라 처리하도록 하는 이벤트 지향 프로그램(Event Driven Programming)이다. 특히 비주얼 베이직은 (Form)이라는 객체(Object)를 위주로 이에 여러 가지 컨트롤을 배치해 동작하는 이벤트 지향 프로그램을 작성할 수 있다. 또한 비주얼 베이직은 마이크로소프트사에서 개발한 윈도용 그래픽 사용자 인터페이스 프로그래밍 언어로 Visual Studio라고 불리는 프로그램 통합 개발환경 내에 존재하는 언어다.[1]

역사[편집]

일반적인 베이직(Basic) 언어는 1963년 미국의 다트머스 대학에서 John G. KemenyThomas E. Kurtz에 의해 TSS(Time Sharing System)용으로 개발된 초보자를 대상으로 한 프로그래밍 언어다. 이러한 베이직 언어가 그래픽 사용자 인터페이스 윈도용으로 개발된 것이 비주얼 베이직으로서 1991년 비주얼 베이직 1.0이 처음 등장했다 이후 계속 버전(version)업이 되었다. 1992년에는 비주얼 베이직 2.0, 1998년 비주얼 베이직 6.0, 2002년 비주얼스튜디오.net, 2005년 비주얼 스튜디오 2005, 2013년 비주얼 스튜디오 2013, 2015년 비주얼 스튜디오 2015 등등 등장했다.[1]

특징[편집]

비주얼 베이직은 인터프리터 언어인 베이직 언어를 기초로 해서 만들어졌기 때문에 인터프리터 언어로 분류할 수 있다. 한 줄씩 번역되는 인터프리터 언어의 특징을 가지고 있어서 오류를 곧바로 알 수 있다는 장점이 있지만, 컴파일 언어보다 실행 속도가 느리다는 단점이 있다. 이처럼 비주얼 베이직은 베이직 언어를 모태로 하여 인터프리터 언어의 특징을 가지면서도 컴파일 방식으로 실행 파일을 만드는 컴파일 언어의 특징을 가지고 있다. 비주얼 베이직은 비주얼한 도구를 이용할 수 있기 때문에 프로그래밍 입문자가 가장 쉽게 배울 수 있을 뿐만 아니라 윈도우(Windows)( 환경에 맞는 프로그램을 단시간에 효과적으로 작성할 수 있는 언어다. 이러한 특징은 베이직이라는 언어 자체가 쉬운 이유도 있지만, 비주얼 베이직을 만든 마이크로소프트(Microsoft)에서 사용자의 편의를 위한 각종 기능을 추가하여 마치 레고 블록을 맞추듯이 프로그램을 만들 수 있는 개발 환경을 제공하고 있기 때문이다. 비주얼 베이직 6.0부터는 개체와 속성, 메소드(Method), 이벤트(Event) 등의 특성을 가지는 객체 지향(Object Oriented) 개발 방식을 지원한다. 이러한 객체 지향 방식은 비주얼 베이직 6.0의 다음 버전인 비주얼 베이직 닷넷(Visual Basic.NET)에서 완벽하게 지원하게 된다. 객체 지향 언어는 프로그램을 쉽게 개발할 수 있고, 유지 보수가 쉬우며, 개체를 다시 사용할 수 있다는 장점이 있다. 비주얼 베이직 6.0에는 5.0에 없던 많은 기능이 추가됐다. 특히 데이터베이스와 관련된 기능이 좀 더 보완되었다. 비주얼 베이직 6.0에서는 기존의 5.0에서 사용하던 데이터베이스 액세스(Access) 방식인 ODBC나 다오(DAO) 보다 훨씬 강력하고 빠른 속도를 제공하는 OLE DB, 그리고 마이크로소프트 ADO 개체를 제공한다. 이 개체는 에스큐엘 서버(SQL Server)나 오라클(Oracle)과 같은 관계형 데이터베이스뿐만 아니라 텍스트 파일과 전자우편과 같은 데이터도 마치 데이터베이스를 사용하듯 처리해서 더 높은 신뢰성과 빠른 속도를 제공한다. 특히 ADO 개체를 이용하면, 대규모 업무나 인트라넷 등을 좀 더 효율적으로 관리할 수 있다.[2]

장단점[편집]

비주얼 베이직의 장점으로는 베이직은 기본 언어로 채택해서 쉽고 빠르게 배울 수 있다. 거의 모든 응용 프로그램을 작성할 수 있다. Third Part 컴포넌트(Component)가 풍부해서 프로그램 개발 생산성이 좋다. ODBC, ADO 등을 이용해 다양한 데이터베이스 관련 프로그램 작성이 가능하다. VBA, ASP 등의 다양한 파생언어와 뛰어난 호환성을 갖고 있다. 액티브엑스(ActiveX), 콤(COM) 등의 최신기술을 지원한다는 것들이 있다. 단점으로는 실행속도가 델파이(Delphi)에 비해 느리다. 프로그램 배포가 상대적으로 어렵다.(배포에 관련된 파일이 많다) 애플리케이션이 복잡해질수록 생산성이 급격하게 떨어진다. 모든 기술이 윈도우(Windows) 운영체제에 종속되어 있어서 크로스 플랫폼을 지원하지 못한다는 점들이 있다.[3]

용어[편집]

  • 이벤트 기반 프로그래밍: 절차형(순차적) 프로그래밍 방식이다. 도스(DOS) 운영체제에서 사용한다. 프로그램을 작성할 때 명령어의 처리 순서를 고려해야 한다. 순서들을 조금씩 구조화해서 함수라는 형태로 정의하고 호출해 사용한다.[4]
  • 개체: 개체는 우리가 살아가는 세계에 실제로 존재하는 것과 생각할 수 있는 것이다. 특징, 기능(동작), 행위로 표현할 수 있다.[4]
  • 컨트롤: 비주얼 베이직에서는 도구 상자에 포함된 텍스트 박스, 버튼, 리스트 박스 등의 각 컨트롤이 개체에 해당한다. 개체는 특징에 해당하는 속성, 기능인 메소드(method), 행위인 이벤트를 갖는다. 동일한 컨트롤로 만든 개체는 기본적인 값은 같지만 각 개체의 특성에 맞게 변경할 수 있다. 표준 컨트롤과 액티브엑스(ActiveX) 컨트롤이 있다.[4]
  • 속성: 개체의 색상, 크기, 위치와 같은 외형을 정의하는 특성이다. 개체마다 속성이 다르다. 레이블은 제목용으로 사용되어 글자를 표시하는 속성이 대부분이므로 그림 속성이 없다. 픽처 박스는 그림을 넣는 컨트롤이므로 그림에 관한 속성이 다양하지만 글자에 대한 속성이 없다.[4]
  • 메소드: 메소드는 개체가 수행하는 동작이나 기능을 정의한다. 각 컨트롤의 기능에 따라 정의된 메소드가 다르다. 비주얼 베이직 프로그래밍은 각 컨트롤이 가진 속성과 메소드를 이용하여 어떤 기능을 하게 만드는 작업이다.[4]
  • 프로시저: 프로시저(Procedure)는 이벤트를 처리하는 단위로, 어떤 행동을 수행하기 위한 일련의 작업 순서다. 특히 이벤트 프로시저는 사용자가 이벤트를 발생시키면 이를 처리하기 위해 자동으로 호출된다. 프로시저는 이벤트를 처리하기 위한 메소드와 변수, 제어문 등을 포함한다. 이벤트 프로시저는 이벤트가 발생했을 때 자동으로 호출되는 프로시저다.[4]

문법[편집]

자료형[편집]

자료형
구 분 자료형 의 미
정수 Byte 1바이트
Integer 2바이트
Long 4바이트
실수 Single 4바이트
Double 8바이트
Decimal 14바이트
참/거짓 Bollean 2바이트
문자열 String 10바이트+문자열 길이
시간 단위 Date 8바이트
객체 단위 Object 4바이트
통화 단위 Currency 8바이트
기타 Variant(숫자) 16바이트
Variant(문자) 22바이트+문자열 길이
[5]

변수[편집]

변수
구 분 내 용 사용 키워드
전역 변수 모듈, 클래스 모듈에 선언하여 프로그램 내부에서 어디에서나 사용 할수 있는 변수, 생명주기는 프로그램 중에는 사용 할수 있다. Public
지역 변수 폼, 프로시저에서 선언 하여 사용 하는 변수, 생명주기는 폼, 해당 프로시저 사용 상태 까지는 사용 할수 있다. Dim, Private, Static
[5]

상수[편집]

상수는 한 번 선언해 놓으면 변하지 않고 고정 되는 값을 말한다. 종류는 일반 상수, 열거형 이 있다. 일반상수는 Const 키워드 사용, 열거형은 Enum 키워드를 사용한다.

상수
예제 코드 설명
Const MyVar = 459 상수는 기본값을 Private(전용)으로 갖는다.
Public Const MyString = "HELP" 일반상수를 선언한다.
Private Const MyInt As Integer = 5 Private Integer(전용 정수) 상수를 선언한다.
Const MyStr = "Hello", MyDouble As Double = 3.4567 같은 줄에 다중 상수를 선언한다.
[5]

연산자[편집]

비주얼베이직 6.0에서는 산술 연산자, 관계 연산자, 논리 연산자 3가지가 있다.

연산자
구 분 연산자 의미
산술 연산자 +,-,*,/ 사칙 연산을 하는 연산자
^ 승수에 사용 하는 연산자
Mod` 나눈 나머지를 구하는 연산자
관계 연산자 =,>,< 같다, 보다 크다, 보다 작다 연산자
<> ~와 같지 않다 연산자
논리 연산자 Not 부정 하는 연산자
And 논리곱 연산자
Or 논리합 연산자
Xor 배타적 논리합 연산자
Eqv 논리적으로 동등한지를 구하기 연산자
Imp 논리적 함축성 연산자
[5]

다른 언어와 관계[편집]

마이크로소프트의 여러 스크립트 언어들은 비주얼 베이직으로부터 파생한 것이다. 비주얼 베이직 자체는 베이직과 강한 연관성을 가지며, 결과적으로 닷넷 프레임워크 플랫폼 버전으로 대체됬다. 밑에 언어들은 비주얼 베이직에서 파생한 것이다.[6]

  • 비주얼 베이직 스크립트액티브 서버 페이지의 기본 언어다. 비주얼 베이직 스크립트는 또한 마이크로소프트 윈도 스크립팅과 클라이언트측 웹 페이지 스크립팅에도 사용된다. 비주얼 베이직과 문법적으로 닮아 있지만, 이 언어는 비주얼 베이직 런타임 라이브러리와 대립되는 vbscript.dll을 통해 실행된다는 점에서 두 언어는 구분 된다.[6]
  • 비주얼 베이직 포 애플리케이션(VBA)는 많은 마이크로소프트의 응용 프로그램들 및 솔리드웍스, 오토캐드, ACCPAC와 같은 서드 파티 제품들에 포함되어 있다. 서로 다른 응용 프로그램들간에 약간의 불일치는 존재하지만, 이것들은 전체적으로 비주얼 베이직 6.0과 같은 언어이며, 같은 런타임 라이브러리를 사용한다.[6]
  • 비주얼 베이직 닷넷은 마이크로소프트의 비주얼 베이직 6.0의 후속작으로 설계된 제품이며, 마이크로소프트의 닷넷 프레임워크 플랫폼의 일부분이다. 비주얼 베이직 닷넷은 닷넷 프레임워크를 통해 실행되며, 실행 파일을 컴파일한다. 비주얼 베이직 닷넷은 비주얼 베이직 6.0과 하위 호환성이 없다. 마이크로소프트에서 제공하는 Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Tool 를 이용하여 변환시 생길 수 있는 문제점들을 확인할 수 있다.[6]
  • 스타 베이직선 마이크로시스템즈가 개발한 스타 오피스 제품군에 포함되어 있는 인터프리터 언어이며, 비주얼 베이직과 호환성이 있다.[6]
  • 감바스는 비주얼 베이직의 영향을 받은 GNU/리눅스자유 소프트웨어 프로그래밍 언어다. 감바스는 비주얼 베이직의 클론은 아니지만, 비주얼 베이직 프로그램을 감바스로 변환하는 기능이 있다.[6]
  • K베이직은 비주얼 베이직의 영향을 받은 리눅스, 매킨토시, 윈도용 자유 소프트웨어 프로그래밍 언어이다. K베이직은 비주얼 베이직의 클론은 아니지만, 비주얼 베이직 프로그램을 K베이직으로 변환하는 기능이 있다.[6]

응용프로그램 개발[편집]

비주얼 베이직에서 응용프로그램을 작성하기 위해서는 3가지 주요 단계가 필요하다. 1단계는 인터페이스(interface) 만들기로 사용자와 컴퓨터 간에 상호정보를 주고받기 위한 기초작업을 하는 단계다. 인터페이스는 응용프로그램 개발의 첫 단계로, (form)은 인터페이스의 기초가 된다. 집 짓는 것에 비유하자면 폼은 집터가 될 것이고, 도구상자에 있는 컨트롤들은 각종 건축자재에 해당할 것이다. 컨트롤을 폼에 추가시키는 것은 프레임 같은 개체를 컨테이너 안에 그룹화시킬 필요가 있을 때 사용한다. 2단계로는 속성설정이다. 각 개체에 대해 이름을 지정해 주거나 색깔, 모양, 개체위치, 개체크기 등의 속성을 설정해주는 단계다. 두 번째 단계로 개체에 속성을 부여한다. 이것도 인간이 집을 만들 때, 용도에 맞게 방의 크기도 정하고, 또한 방의 위치도 생각할 것이다. 그리고 난 다음 집을 짓고, 명패를 달고, 색깔도 칠하는 등 여러 가지부속 작업을 하는 것에 비유할 수 있다. 이러한 속성을 설정하기 위해 비주얼베이직(Visualbasic)은 속성 창이라는 것을 제공하고 있다. 속성 창은 폼뿐만 아니라 폼 내에 있는 모든 컨트롤의 속성을 설정할 수 있도록 속성목록을 제공하고 있다. 폼뿐만 아니라 모든 컨트롤에 이름을 굳이 다시 부여하지 않아도 되지만, 이렇게 하면 혼동되기 쉽다. 예를 들어, 하나의 프로젝트에 10개의 폼이 존재한다고 가정하면 비주얼 베이직은 폼 추가 순서대로 폼의 이름을 폼1, 폼2, 폼3 이런 식으로 부여하게 된다. 이중 폼3이 하는 일이 네트워크(Network)의 로그인 폼이라면 비주얼 베이직의 특징중 하나가 개체의 재활용이다. 즉 기존에 있던 프로젝트뿐만 아니라 폼 등은 언제든지 필요하다면 다시 불러 쓸 수 있다는 것이다. 이러한 특징을 이용해 다른 프로젝트에서 네트워크 로그인 역할을 하는 기존의 폼을 쓰기 위해 하드디스크에서 찾을 것이다. 그러한 폼의 이름이 폼1, 폼2 식으로 되어있다면 찾기 힘들 것이다. 3단계로는 코드 쓰기다. 개체에 이벤트가 발생하면 수행해야 할 일을 적어두는 단계다. 속성설정만으로 완전히 애플리케이션(Application)이 될 수는 없다. 모든 애플리케이션의 생명은 바로 코드작성에 있다. 코드 창은 비주얼 베이직 코드를 작성할 수 있는 곳으로 코드는 언어문장, 상수, 선언문으로 구성되어 있다. 비주얼 베이직에있는 모든 코드는 프로시저(Procedure)라고 하는 작은 단위로 이루어진다. 하나의 이벤트 프로시저에는 어떤 사건 발생 시 수행하는 코드를 포함하게 된다.[7]

버전 분류[편집]

비주얼베이직 1.0[편집]

비주얼 베이직 1.0은 윈도우 3.0 기반에서 실행된 프로그램 제작 툴이다. 후속작으로 도스(Dos) 기반에서 실행되는 프로그램이 나오기도 했다. 비주얼 베이직 1.0은 1991년 5월에 발표되었다. 지금도 네이버에 검색하면 윈도우용 파일을 구할 수 있긴 하다. 하지만 윈도우 10에서 실행이 안 되는듯하다. 더 하위 버전으로 다운그레이드를 하면 아마 실행이 될 것이다. 도스용 비주얼 베이직을 구해서 도스 박스로 구동시키면 도스용 비주얼 베이직 1.0이라도 체험해 볼 수 있다.[8]

비주얼베이직 6.0[편집]

비주얼 베이직 6.0은 1998년에 등장했다. 이 버전은 아직도 많은 사람이 이용하고 있으며, 아직도 인터넷(Internet)에다 쳐보면 파일들이 많이 나온다. 이렇게 아직도 비주얼 베이직 6.0 사용자가 많은 건 7.0부터는 비주얼 베이직이 비주얼베이직. Net으로 바뀌어 버렸기 때문이다. 둘은 아예 호환이 안 되기 때문에 사실상 완벽히 다른 언어다. 비주얼베이직. Net은 객체 지향 언어이고 비주얼 베이직은 절차 지향이므로 서로 당연히 코딩 패러다임에 어마어마한 차이를 가져왔다. 즉 6.0버전이 다른 버전보다 좋아서 사용한 게 아니라 애당초 6.0이 비주얼 베이직 버전의 끝이기 때문에 다른 선택지 자체가 없다. 그 이후의 버전은 비주얼 베이직이 아니라 비주얼베이직.Net이라 불러야 한다. 애당초 비주얼 베이직 언어 자체가 마이크로소프트(Microsoft), 윈도우(Windows) 플랫폼에 종속된 언어이기 때문에 혼자서 마음대로 바꿀 수 있었다. 마이크로소프트는 시대의 흐름에 맞춰서 비주얼 베이직을 객체지향으로 바꾸었고 그 결과물이 비주얼베이직.Net이다. 비주얼베이직 개발 환경의 지원은 공식적으로 2005년에 종료되었고 유료 서비스는 그 후 3년 동안인 2008년까지 지원되고 종료되었다. 그 이후 마이크로소프트는 비주얼 베이직 6.0을 쓰지 말고비주얼베이직.Net을 써 달라고 부탁했지만, 현실적으로 힘든 면이 있었던 게 이미 비주얼 베이직의 압도적인 장점인 쉬운 그래픽 사용자 인터페이스(GUI)구축과 6.0버전의 장점인 가벼움이라는 무기로 수많은 프로그램이 만들어졌기 때문에 유지 보수에 비주얼 베이직.Net을 사용할 수 없었다. 비주얼 베이직 6.0이 워낙 걸작이었기 때문에 비주얼 베이직을 아직도 사용하는 사람이 많다. 이는 언어 점유율에서도 확인할 수 있다. 지원이 빵빵한 다른 언어들과도 크게 꿀리지 않는데 매년 비주얼 베이직을 지원해 달라고 마이크로소프트에 진정서를 넣지만, 마이크로소프트에서도 비주얼 베이직.Net을 사용하라고 한다.[8]

비주얼베이직 닷넷과 차이[편집]

비주얼 베이직이 1991년 비주얼 베이직 1.0으로 발표되던 시점으로 돌아가 보면 한창 인기 운영체제로 사용하던 엠에스 도스(MS-Dos 체계에서 1990년 윈도우 3.0과 후속으로 윈도 3.1이 발표되고 인기를 얻으면서 그래픽 사용자 인터페이스 기반의 응용프로그램을 복잡하고 힘들게 만들었다면 비주얼 베이직 1.0은 프로그래머에게 윈도 프로그램을 쉽게 제작할 기회를 제공했다. 비주얼 베이직 닷넷은 기존의 비주얼 베이직의 기본적인 문법은 가져왔지만 +=, -=연산자와 같은 C 언어 문법이 들어오기도 했고 무엇보다 기본적인 닷넷 타입을 적용하면서 이전 비주얼 베이직 버전에서 작성된 코드는 하위 호환이 되지 않아 비주얼 베이직 닷넷에 맞도록 재작성해야만 실행할 수 있게 되었다. 이전의 비주얼 베이직과 비주얼 베이직 닷넷을 구분 짓는 기반에는 닷넷 프레임워크(framework)가 있다. 프로그램이 만들어져서 실행되는 과정을 살펴보면 비주얼 베이직 코드는 컴파일(Compile)과 링크 과정을 거쳐 대상 운영체제나 프로세서(Processor)에 맞는 기계어(Machine language)로 만들어지고 사용자의 수행 요청에 따라 운영체계의 통제 아래 프로그램이 실행되는 방식이 이전 모델이라면 닷넷 프레임워크 체계에서는 대상 운영체제나 프로세서의 종류와 관계없이 닷넷의 규격에 맞는 프로그램을 생성하면 닷넷 프레임워크의 CLR(Common Language Runtime)을 통해서 다양한 운영체제와 프로세서에서의 동일한 기능을 발휘하는 응용 프로그램을 동작시킬 수 있는 것이다. 요즘 만들어지고 있는 비주얼 스튜디오는 자체를 닷넷으로 제작하고 있다. 닷넷으로 제작한 응용은 (Web) 환경에서도 사용될 수 있을 뿐만 아니라 닷넷을 채용한 모바일(Mobile) 기기에서도 활용할 수 있는 등 그 확장성은 무한하다.[9]

지원 중단[편집]

마이크로소프트는 무료 지원과 중요 업데이트 제공을 끝으로 2005년 3월 말 VB6에 대한 표준 지원을 중단할 것이라고 밝혔다. 하지만 두 서비스 모두 앞으로 3년 동안은 유료 서비스로 남아있게 된다. 마이크로소프트는 2000년 VB.NET을 내놓았으며 그 후 VB6 이하 버전을 사용하는 개발자들은 끊임없이 감소해왔다. 비주얼 베이직을 등지고 떠난 많은 개발자들은 VB.NET으로 옮겨가지 않고 마이크로소프트의 언어가 아닌 자바로 옮겨갔다는 설문 조사 결과가 있다. 2005년, 북미 전체 개발자중 비주얼 베이직 닷넷 개발자가 34%인데 비해 비주얼 베이직 개발자들은 45%다. 기존 VB6 응용 프로그램을 비주얼 베이직 닷넷으로 옮기는 게 어려운 점이 문제점으로 지적되고 있다. 다만 2008년 VB6 SP6에 대한 일부 취약한 보안 문제와 관련된 패치가 있었다. 그리고 마이크로소프트가 추후 공개할 윈도 8부터 비주얼 베이직 및 기반 프로그램들을 더 지원하지 않는다.[6]

현황 및 전망[편집]

마이크로소프트의 닷넷 팀 블로그에 비주얼 베이직 닷넷의 닷넷 5.0 버전 지원과 관련된 글이 올라왔다. 이 글에서 닷넷 팀은 비주얼 베이직을더는 발전시킬 계획은 없다. 앞으로는 안정성이나 호환성 관련 패치만 할 것이다. 닷넷에 차후 버전에서 제공하는 신기능은 아마 비주얼 베이직에서 지원되지 않을 것이라고 밝혔다. 원래 마이크로소프트는 베이직(BASIC) 언어 개발로 시작한 소프트웨어(Software) 회사였다. 1975년에 빌 게이츠폴 앨런이 알테어 8800이라는 개인용 컴퓨터를 위한 알테어 베이직(Altair BASIC)을 개발하여 판매하기 시작한 것이 마이크로소프트의 시작이었다. 닷넷 버전의 비주얼 베이직은 별로 인기가 없었다. 가장 큰 원인은 기존 비주얼 베이직과의 호환성이 전혀 없었기 때문이다. 언어가 지향하는 패러다임(Paradym) 자체가 절차지향에서 객체지향으로 바뀌었기 때문에, 비주얼 베이직 닷넷은 기존의 비주얼 베이직보다는 차라리 새로 나온 C샵(C#)에 더 가까운 존재가 되었다. 실제로 비주얼 베이직 닷넷과 C샵은 자동으로 상호 코드 변환이 가능할 정도다. 이 때문에 수많은 개발자가 닷넷 버전의 비주얼 베이직으로 넘어가는 것을 거부하고 VB 6.0에 머무르게 되었다. 이후 비주얼 베이직은 점차 사용자가 줄어들었다. 앞으로 닷넷 기반으로 개발을 하려면 C샵을 택하는 것이 가장 좋을 것이다. 물론 마이크로소프트에서는 F샵(F#)같은 다른 언어도 제공하고 있긴 하지만, 함수형 프로그래밍 패러다임은 아직도 널리 보편화하였다고 말하기는 힘들다. 닷넷을 위한 제1 언어는 앞으로도 C샵일 것으로 보인다.[10]

각주[편집]

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 비주얼베이직 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.