2015년 9월 19일 토요일

[4교시] 파이썬 변수명 및 예약어, 기본문장 이용방법

파이썬뿐만 아니라, 프로그래밍 언어에서는 숫자 또는 문자 등 다양한 자료형을 저장하기 위한 변수라는 것이 있는데, 변수를 선언할 때 꼭~ 지켜야 할 사항들이 있습니다.
파이썬도 다른 프로그래밍 언어와 마찬가지로 변수의 명명 규칙이 유사합니다.

변수의 명명규칙

- [_a-zA-Z][_a-zA-Z0-9]*
- 사용 예제
a, a1, my_name, your_job, MyName, _private, __private_member 등
- 사용할 수 없는 것들
1abc, @file, %x 등 숫자와 특수기호를 맨 처음에 사용할 수 없습니다.

표기법

그리고, 변수의 명명 규칙처럼 프로그래밍 언어에서는 함수, 클래스, 매개변수 등 다양한 요소들의 명명규칙과 표기법(대표적인 표기법으로는 헝가리안, 카멜, 파스칼 등)을 사용하여 다음과 같은 선언 규칙으로 시작해 봅시다.
1. 변수의 명칭은 명사를 사용한다.(예: Count 등)
2. 함수의 명칭은 명사와 동사를 사용한다.(예: MyName 등)
3. 네임스페이스는 첫문자를 대문자로 사용한다.(예: Microsoft.Office.Excel.Web 등)
4. 자료형은 헝가리안 표기법을 사용한다.(예: int nNumber 등)
5. 변수의 첫문자는 대문자를 사용한다.(예: string sMyName 등)
6. 매개변수의 첫문자를 'p_'를 사용한다.(예: string p_sMyName 등)
7. 전역변수의 첫문자는 'g_'를 사용한다.(예: string g_sMyName 등)
8. 멤버변수의 첫문자는 'm_'를 사용한다.(예: string m_sMyName 등)
요즘은, 헝가리안 표기법을 많이 사용하고 있지 않습니다. 왜냐하면, IDE(Integrated development environment) 에서 마우스만 갖져가면 자료형이 나타나기 때문입니다.
하지만, 헝가리안 표기법도 나름데로 장점을 갖고 있어 복합적으로 사용하는 것이 좋습니다.

헝가리안 표기법으로 자료형 선언하기

- 숫자형 : n(integer, long, float, double type)
- 화폐형 : m(currency type)
- 문자형 : s(string, character type)
- 부울형 : b(boolean type)
- 객체(클래스)형 : o(class type)
- 구조체형 : t(structure type)
- 열거형 : e(enumerated type)

파이썬의 예약어

파이썬 2.7.10에서 사용되는 예약어는 총 31개로 구성되어 있습니다.
파이썬의 예약어를 확인하려면 'keyword' 를 이용하면 됩니다.(아래)
keyword를 목록과 개수를 확인


앞서 설명한 변수의 이름을 선언할 경우에는 파이썬의 예약어를 사용할 수 없습니다. 또한, 파이썬에서 먼저 만든 함수나 모듈의 이름을 변수명으로 사용할 경우 파이썬의 기본함수를 더이상 사용할 수 없게 되니 조심해서 변수의 이름을 지어야 합니다.
다음과 같은 파이썬 기본함수를 변수로 사용할 경우 문제가 발생합니다.(아래)
파이썬 기본함수 str()을 변수명으로 선언
파이썬의 기초문장
- 주석 : ('#') 기호를 사용하면 코멘트로 인식합니다.
- 연속라인 : ('\') 기호를 라인의 끝에 추가하면 현재 라인과 다음 라인을 연결합니다.
- 다양한 형태의 치환문을 제공하며, 자료의 교환이 쉽습니다.
주석, 라인연결, 자료의 치환 및 교환 방법
확장된 치환문
파이썬에서는 간소화된 치환문을 제공합니다. 예를 들어, (a = a + 1) 식을 확장식으로 적용한다면 (a += 1) 처럼 사용할 수 있습니다.
종류로는 +=, -=, *=, /=, %=, &= |=, ^=, <<=, >>=, **= 있습니다.

이상이며, 다음 시간에는 파이썬의 기본 함수와 자료형에 대해서 알아보도록 하겠습니다.




2015년 9월 18일 금요일

[3교시] 파이썬을 설치하고, 시스템원리를 알아야 한다.

프로그래밍의 기본원리

어떤 프로그래밍 언어이든지 시작할때의 기본은 원리를 알아야 합니다.
파이썬의 기본적인 원리는 인터프린터 언어라는 것입니다.
인터프린터 언어의 장점은 라인단위로 실행할 수 있기 때문에 버그를 잡아내는데 아주 좋습니다. 이와 다르게 컴파일 언어라는 것이 있는데 인터프린터 언어의 장점이 단점이 될 수 있습니다.

파이썬 설치

오늘은 파이썬을 설치해 보도록 하겠습니다.
파이썬은 윈도우즈, 리눅스, 매킨토시에서 동일하게 실행할 수 있습니다. 우리는 윈도우즈 환경에서 설치하여 프로그래밍을 하도록 하겠습니다.

윈도우즈용 파이썬 설치

파이썬(https://www.python.org/downloads) 사이트를 방문하여 윈도우즈용 설치파일을 다운로드 합니다.

- 설치파일은 2.7.10으로 하도록 하겠습니다. (아래)
파이썬 설치파일 다운로드 사이트
- 모든 항목을 컴퓨터에 설치하도록 설정을 변경합니다. (아래)
python-2.7.10.msi 파일 실행
-  다음을 누르면 파이썬 설치가 완료됩니다. (아래)
파이썬 설치설정 화면
- 설치가 완료되었네요. 이젠 파이썬을 실행해 보도록 하겠습니다. (아래)
설치 완료 화면

파이썬 실행

- 윈도우 시작 > 모든 프로그램 > Python 2.7 눌러보세요. (아래)
설치된 파이썬 프로그램 목록
- 파이썬의 IDLE (Python GUI)를 실행해 봅시다. (아래)
파이썬 Shell 프로그램 실행 화면
앞으로 파이썬 Shell을 이용하여 많은 작업을 시도해 볼 것입니다.

다음 시간에는 파이썬에서 사용하는 변수 선언방법과 예약어, 기초문장에 대해서 알아보도록 하겠습니다.

[2교시] 중학생이 이해하기 쉬운 언어 프로그래밍 언어를 선택하자.


과거의 놀이방식

제가 어렸을 때는 놀이기구가 아날로그 방식이었기 때문에 들판에서 뛰어놀거나 계절에 맞는 놀이(윷놀이, 제기차기, 팽이싸움, 술래잡기, 다방구 등등)를 했습니다.

현재의 놀이방식

그런데, 요즘 어린 친구들은 디지털 기기를 손에 쥐고 게임이나 SNS(Social Network Service)를 하는 것이 대부분이죠. 이런 놀이방식이 바뀌게 된것은 애플의 창시자인 스티브잡스의 영향이 크다고 볼 수 있겠네요.

이제는 무엇이 필요한가?

아무튼, 요즘은 디지털 시대인 만큼 우리나라 정부에서도 소프트웨어를 개발을 지향하고 있으며 다양한 정부지원이 쏟아져 나오고 있습니다.

프로그래밍 언어의 선택

그런데, 이와 같은 소프트웨어 개발을 위해서는 프로그래밍 언어를 선택해야 하는데 본인에게 맞는 언어를 선택하는 것이 제일 중요합니다.
지금까지 나와 있는 프로그래밍 언어는 수십에서 수백가지가 됩니다. 여기서 선택하기란 정말 어렵기 때문에, 접근하기 쉬운 프로그래밍 언어를 선택하는 방법이 최선이라 생각되어 여러가지를 찾던 중 눈에 들어오게 된 것이 바로 파이썬(Python) 이란 언어 입니다.

자기주도학습 강좌

처음 시작하는 분들을 위해서는 아래의 다음과 같은 사이트를 이용해 보세요.
[프로그래밍 관련/Python]에 해당되는 글 20건
왕초보를 위한 Python 2.7

그럼, 파이썬으로 시작하는 프로그래밍 언어를 시작해 보도록 하겠습니다.




2015년 9월 17일 목요일

[1교시] 어떤 프로그램이든 공통적인 사항, 시작하기 앞서 이정도는 알아야죠.


프로그래밍 언어를 공부하기에 앞서서 미리 알아야 하는 사항은 문법, 함수, 규칙 등이 있습니다. 여기에 공통적인 용어정의와 규칙에 대해 알고 넘어가도록 하겠습니다.

1. 용어정의

프로그래밍 언어별로 사용되는 단순 및 복합문장
프로그래밍 언어별로 선언된 문장의 조건이 참 또는 거짓을 구분, 값을 대입하는 문장

-. Syntax(구문,문법)

프로그래밍 언어별로 이용되는 명령어를 호출하기 위한 문장

-. Constant(상수)

변경되지 않는 값

-. Variable(변수)

변경이 자유로운 값

-. Data Type(자료형)

프로그래밍 언어별로 값을 저장하기 위한 형식(숫자형, 문자형, 나열형, 등 다양)

-. Session(구역)

여러개의 키를 묶어 놓은 집단

-. Key(키)

값을 구분하기 위한 이름

-. Value(값)

키에 저장되는 값

-. Procedure(프로시져)

여러가지 자료형과 함수 등을 복합적으로 구성하여 선언한 문장

-. Module(모듈)

여러가지 함수와 자료형들을 선언하여 묶어 놓은 집단
자료처리를 위해 만들어 놓은 기능 목록
함수, 속성, 이벤트 등을 선언하여 묶어 놓은 자료형

-. Parameter(인자)

함수를 선언하여 받아오기 위한 자료형

-. Return(반환)

함수를 선언하여 반환되는 값을 전달할 때 사용

2. 규칙

프로그래밍을 사용할 경우 연산방법에는 우선순위가 있다. 우선순위는 사회집단에서의 서열을 의미하는 것처럼 프로그래밍에서도 먼저 계산해야 하는 서열방식이 존재한다.

- 최고높은 서열은 괄호( "()" )

- 연산을 위한 서열은 나누기( "/" )가 제일 높고, 그 다음이 곱하기( "*" )

- 더하기( "+" )와 빼기( "-" )는 왼쪽에서 오른쪽으로 연산하면 된다.



2015년 8월 31일 월요일

오픈소스용 원격제어 소프트웨어를 소개합니다.

구글에서 만든 원격제어를 위한 소프트웨어를 소개합니다.

원격제어란?
내 컴퓨터에서 다른 컴퓨터를 손쉽게 제어하는 것을 의미하는데, 유지보수업체 등에서 자주 사용되는 도구들입니다.

대표적으로 팀뷰어가 제일 유명한데, 개인이 사용하면 무료이지만 상업용도로 사용할 경우에는 돈을 지불하고 사용해야 합니다.

하지만, 이와 같은 원격제어를 상업적으로 무료 사용을 하고자 할 경우 구글의 원격데스크톱을 이용해 보세요(참고로 모바일도 지원됩니다).

아래와 같은 절차로 진행하시면 됩니다.

1. 구글 크롬브라우져를 이용하여 앱스토어로 이동합니다.


2. 앱스토어에서 원격데스크톱을 검색해 보세요.


3. "Chrome 원격 데스크톱" 을 다운로드 하여 설치해 보세요. 설치는 자동으로 진행되며 크롬 브라우져의 추가 앱으로 등록됩니다.


4. 위에 보이는 "Chrome 원격 데스크톱"을 클릭하면 원격지원을 시작할 수 있습니다. 원격지원에 "시작하기" 버튼을 눌러 보세요.


5. 원격지원은 2가지 기능을 제공합니다. 다른 사용자가 내 PC를 제어하려고 할 경우에는 "공유" 버튼을 누르시고, 반대의 경우는 "액세스" 버튼을 누르세요. 우리는 원격제어를 먼저 해보도록 하겠습니다. 아래 화면에서 "액세스" 버튼을 누르세요.


6. 내가 다른 사용자 PC를 제어하려면 액세스 코드를 입력해야 합니다. 액세스 코드는 원격 PC 또는 다른 사용자에게 문의해야 합니다. 코드를 입력(12자리)하고 "연결" 버튼을 누르세요.


7. 이와 같이 다른 사용자 PC를 웹 브라우져에서 확인할 수 있습니다.


8. 이번에는 내 PC를 공유하여 원격 접속을 시도해 보죠. "공유" 버튼을 누르세요(5번 항목을 참고하세요).


9. 추가로 설치되는 파일이 존재합니다. 다운로드하여 설치를 진행하여 주세요.


10. 설치가 완료되면 아래와 같은 액세스 코드를 알려줍니다. 원격 접속자에게 액세스코드를 알려주시면 연결 성공 입니다.



위와 같은 절차로 내 PC 또는 원격 PC를 제어하는 방법을 웹 브라우저만을 가지고 사용하는 방법에 대해서 알아 봤습니다.
참고로, 여기서 파일을 공유하고 다운로드하려면 구글의 구글드라이브를 이용해 보시는 것도 좋겠네요.

그럼, 오늘은 이만 줄입니다.

2015년 8월 29일 토요일

[해결 팁] 윈도우즈 7에서 VB를 실행하면 컨트롤이 매우 느리게 동작한다.

윈도우7에서 VB6을 실행하고 폼 디자인 화면에서 컨트롤들을 선택하면 매우 느리게 선택되는 현상을 볼 수 있다.
이 문제는 VB6.EXE 실행 파일의 속성 > 호환성에서 "바탕 화면 구성 사용 안 함"을 선택하면 해결 할 수 있다.
     
VB6.EXE > 속성 > 호환성
     
"바탕 화면 구성 사용 안 함"을 체크하고 VB 실행하면 아래 그림처럼 알림이 표시된다.

2015년 7월 24일 금요일

[Setup Factory] 패키지를 활용한 설치 방법

앞에서 설명한 조건 설치이외에 패키지 설치 방법으로도 설치를 구분할 수 있습니다.
오늘은 패키지 설치 방법으로 설치 파일을 구분할 수 있는 방법에 대해서 알아 보겠습니다.

1. 우선, 패키지를 추가하여 구성합니다.

추가된 패키지 화면
2. 대상 파일을 패키지별로 연결시킵니다.

대상 파일 또는 폴더에 패키지를 적용

3. 스크립트에 의해 설치 방법을 설정합니다.

패키지 정보로 설치용 스크립트 설정

위 3단계 방법으로 설치 방법을 구성할 수 있는데, 패키지에 관련된 함수정보는 다음과 같습니다.

  • table SetupData.GetPackageList();
  • void SetupData.GetPackageProperties(패키지명);
  • void SetupData.SetPackageProperties(패키지명, table);

여기서, table의 구조는 아래와 같습니다.

  • AdditionalDiskSpace (number) : 단위는 KB로 패키지에 묶여 있는 파일의 전체 크기를 반환합니다. 사용방법으로는 table.AdditionalDiskSpace = 590 또는 {AdditionalDiskSpace=590} 설정할 수 있다.
  • DisplayName (string) : 현재의 패키지명을 설정합니다.
  • Description (string) : 패키지명의 설명을 설정합니다.
  • Install (boolean) : 패키지를 설치여부를 설정합니다.
  • Enabled (boolean) : 설치 프로그램 화면에서 패키지 선택 여부를 설정합니다.



이와 같은 방법으로 파일을 구분하여 설치할 수 있습니다.

2015년 7월 19일 일요일

[Setup Factory] 설치 프로그램 통합 버전을 만들 때 유용한 팁


오늘은 설치프로그램을 작성하다가 기록이 필요할 듯 하여 이곳에 남겨 공유해 봅니다.

우리 회사에서 사용하는 설치 프로그램으로는 Indigo Roso社 로부터 구매한 Setup Factory 8.0 입니다.

Software Installer Builder

오늘 작업할 배포 대상은 32비트 운영환경과 64비트 운영환경을 자동으로 감지하여 설치할 수 있는 통합 설치파일을 작성해야 합니다.

지금까지 Setup Factory를 이용하여 운영체제별로 따로 따로 만들었는데 매뉴얼을 찾아보니 아주 어처구니(?) 없는 강력한 기능이 숨어있었습니다.

그것은 바로, "File or Folder 속성 > Conditions > Script Condition" 를 이용하는 것입니다.

"Script Condition" 은 참 또는 거짓으로 반응을 하는데 만약에 여러분이 해당 파일이나 폴더 자체를 설치하고 싶지 않을 경우 "Actions Menu > On Pre Install" 에서 세션변수로 조건을 사용하면 됩니다. (예를 들어, System.Is64BitOS(); 함수를 사용하여 64비트 여부를 확인한다는 것이죠)


그럼, 아래 그림 순서대로 정리해 봅니다.

1. Project Setting 부분에서 Session Variable 을 선언합니다.

%SVPInstall% 을 Session Variable 로 선언하고, 초기값을 32bits 로 정의

2. File 또는 Folder의 속성에서 Script Condition을 설정합니다.

%SVPInstall% 변수 값이 문자열 "32bits" 이면 해당 폴더를 설치해도 좋다는 의미

3. Actions 메뉴의 "On Pre Install" 탭에 아래와 같은 스크립트를 작성합니다.

운영환경에 맞춰서 %SVPInstall% 변수 값을 변경

이제는 3단계만의 작업으로 32비트, 64비트 상관없는 통합 설치프로그램을 작성할 수 있게 되었습니다.

2015년 5월 1일 금요일

[1교시] C/C++ 프로그래밍 언어는 어떻게 생긴걸 까요?

안녕하세요.

C/C++ 프로그래밍 언어에 대해서 이야기 해보는 첫번째 시간입니다.

C 언어C++ 언어는 서로 다르게 생겼어요. 자세한 것은 링크를 눌러서 자세히 읽어보세요. 간략하게 말하자만 객체지향 언어냐? 아니냐?를 구분한다고 보시면 됩니다.
처음시작부터 너무 어렵죠. 객체지향이 뭔지?

저도 처음엔 이해하기 어려웠죠. 하지만, 쉽게 생각하면 간단합니다. 사람을 예로 들어보도록 하겠습니다.
사람을 크게 구분하면 얼굴, 상체, 하체, 팔, 다리 등으로 나눌 수 있습니다.

여기서의 사람, 얼굴, 상체, 하체, 팔, 다리 => 객체 라고 할 수 있습니다. 이러한 객체중에 얼굴을 예로 들어보면 사물을 볼 수 있는 눈과 소리를 들을 수 있는 귀는 멤버함수(=메소드)라고 할 수 있으며, 눈동자의 색상이 파랑색, 노랑색, 검은색 들은 멤버변수(=속성)라고 합니다. 이해가 되셨나요?

일반 C언어에서는 함수와들의 집합으로 이뤄졌다면 C++언어는 구조화된 클래스(=객체)를 구성하여 코드의 재활용을 할 수 있는 장점을 갖게 되었습니다.

어려운 이론 이야기는 그만하고 그림으로 설명하는 개발 코딩을 하도록 하겠습니다.
우선, 프로그래밍 언어를 사용하려면 해당 프로그래밍 언어를 지원하는 개발 도구를 설치해야 합니다.

C/C++ 프로그래밍 언어는 마이크로소프트의 비주얼스튜디오를 사용하면서 하도록 하겠습니다(설치 이전에 반드시, Microsoft 계정을 갖고 있어야 합니다).

1. 비주얼스튜디오 다운로드 페이지로 이동합니다.(아래 링크)

http://www.microsoft.com/visualstudio/kor/downloads


2. 'Community & Express' 링크를 클릭합니다(위 그림).


3. 'Express 2013 업데이트 4 for Windows' 링크를 클릭하여 설치 옵션에서 '지금 설치'를 클릭합니다.


4. Express 2013 for Windows 를 선택합니다.


5. 파일 다운로드 알림이 뜨고, 계속을 선택합니다(브라우저는 크롬을 사용했습니다).


6. 비주얼스튜디오 설치 프로그램이 뜨면, 사용약관 체크를 하고 설치를 클릭합니다.


7. 사용자 계정 컨트롤이 나오면 예를 선택합니다.



8. 이제부터는 설치가 진행됩니다.



9. 설치가 완료되면 시작을 클릭하세요.


10. 앞서 가입한 MS 계정을 이용하여 로그인을 수행합니다.


11. MS 계정으로 정상적인 로그인을 하게되면 설정이 완료 됩니다. 이후, 비주얼스튜디오가 실행되며, 윈도우 스토어 앱 개발을 위해 개발자 라이선스에 대한 동의를 선택합니다.



12. 마이크로소프트 계정으로 로그인을 합니다.



13. 만료되는 날짜까지 개발자 라이선스를 사용할 수 있다는 알림을 표시합니다.



14. 비주얼스튜디오 설치가 완료되었습니다.

이상 14단계로 비주얼스튜디오 설치를 끝마쳤으며, 우리는 이와 같은 IDE(통합개발환경)를 이용하여 C/C++, C#, VB 등 마이크로소프트가 제공하는 다양한 프로그래밍 언어를 이용할 수 있게되었습니다.

다음에는 간단한 C/C++ 프로그램을 작성해 보는 것으로 해보겠습니다.

2015년 4월 30일 목요일

개발을 시작하기 위한 첫걸음

안녕하세요. 
저는 현재 중소기업의 연구소장으로 일을 하고 있습니다.
이곳 블로그는 제 주변에 있는 기초가 필요한 개발자들의 준비단계를 돕고자 글을 올리는 것이 대부분이 되고, 저 또한 새롭게 올라오는 기술들을 정리하는 차원에서 이용되는 블로그입니다.

그리고, 소프트웨어 개발자로 자리매김을 하기 위한 올바른 개발자가 되려면 어떤 준비가 필요한지 여러가지 방면으로 도움(?) 또는 조언을 드리도록 합니다.

그럼, 개발자로써의 소양을 갖추기 위해서는 제일 처음으로 어떤 것이 필요할까요?
아마도 많은 선배님들로부터 얘기 중에 논리적인 사고방식을 갖추어야 한다는 소리를 제일 많이 들었을 것입니다.

논리적인 사고방식이란 사리에 맞게 생각하고 말하는 것으로 자연과학에서 제일 적합한 사고방식일 것입니다. 사람은 누구나 이성적인 사고와 논리적인 사고를 갖고 살아갑니다. 이성적인 사고는 하지 말아야 하는 것들을 판단하는 것에 기준을 두고 있지만 논리적인 사고는 문제를 해결하기 위해 여러가지 절차들을 연결시키는 사고(思考)에 기준을 두고 있습니다.

따라서, 개발자들은 항상 이와 같은 높은 사고력을 갖추고 있어야 합니다. 이를 뒷받침하기 위해서는 추리소설 등을 많이 읽어보는 것도 도움이 됩니다.

이런 따분한 얘기는 그만하고, 본격적인 개발을 위한 준비를 시작해 보도록 하겠습니다.

대학에서 컴퓨터와 관련된 학과나 학부 경험이 있으시다면 아마도 제일 처음 시작하는 것이 컴퓨터에 대한 역사를 공부했습니다. 그런데, 이런것은 구글링을 하거나 네이버의 지식님들에게 여줘보면 자세하게 잘 나와 있으니 한번씩 찾아보시기 바랍니다. 우리가 가야하는 길에서의 역사 공부는 필수니까요.

우선, 제일 먼저 개발자가 되기 위해서는 컴퓨터와 의사소통이 필요합니다.
컴퓨터는 0과 1의 조합으로 이뤄진 아주 단순한 녀석인데요. 이 녀석과 의사소통을 하기 위해서는 프로그래밍 언어라는 것을 익혀야 합니다.
다시 말해, 우리가 영어권의 나라로 해외 여행을 간다고 하면 간단한 인사나 물건을 사는것 길 찾는 방법 등등은 익히고 가게 되는 것처럼 말입니다.

프로그래밍 언어에 대해서는 위키백과에 잘 나와 있으니 찾아서 읽어보세요.

프로그래밍 언어라는 것이 한가지만 제대로 배워두면 거의 대부분이 구문의 형식과 명령어, 예약어 등만 다를뿐이지 비슷하게 많이 있으니 한가지를 배울때 제대로 열심히 하시는 것이 제일 중요합니다.

우리나라에서는 자바(Java) 개발자들이 많습니다. 정부에서도 적극적으로 지원하고 있는 것이 자바 프로그래밍 언어분야인 것 같아요. 하지만, 이외에도 다양한 언어들이 있습니다.

저는 여기서 닷넷과 C/C++, 자바를 진행하려고 합니다. 새로운 것을 배울 때 항상 기본이라는 것이 있는 것처럼 저는 프로그래밍 언어의 기본은 C/C++ 이라고 생각합니다. 
이 C/C++ 프로그래밍 언어만 제대로 이해하고 사용할 줄 안다면 어떤 개발이라도 충분히 소화할 수 있을 것이라고 생각됩니다.

그럼, C/C++ 프로그래밍 언어 속으로 들어가 볼까요?