프로그래밍

    [bash 쉘 스크립트] 스크립트 실행하기

    [bash 쉘 스크립트] 스크립트 실행하기

    개요 안녕하세요 피터입니다. 오늘은 Bash 쉘로 만들어진 프로그램(보통 스크립트-script라고 말합니다) 실행하는 방법을 설명드리겠습니다. 가장 기본적인 형태의 bash 스크립트는 여러개의 명령어를 나열한 것입니다. 그러면 명령어를 매번 하나하나 입력할 필요 없이 스크립트 파일을 실행하는 것으로 시간을 절약할 수 있습니다. 마치 windows의 배치(batch) 파일과 같죠. 좀 더 복잡한 스크립트를 만들기 위해서는 쉘 내부 지시자를 사용해야 하는데 그러기 위해서는 맨 첫줄에 #! 로 시작하는 매직 코드(magic code)가 필요합니다. #! 두 바이트는 이 파일이 어떤 명령어 해석기의 집합인지 시스템에 알려주는 역할으르 합니다. 즉, 실행 가능한 스크립트라는 것을 나타내는 특별한 표시자인 것이죠...

    [C언어 강좌-12] 함수 (Function)

    [C언어 강좌-12] 함수 (Function)

    안녕하세요 피터입니다.오늘은 C언어의 함수 (Function)에 대해 알려드리겠습니다. 개요수학에서는 함수 이런식으로 표기합니다. y = f(x)여기에서 x 는 함수의 입력값이 되고, y는 출력값이 됩니다. C언어에서 함수(Function)도 이와 유사하다고 볼 수 있습니다.입력값을 가질 수 있으며, 이에 대응되는 값을 출력할 수 있습니다. 문법(Syntax)함수 선언 (Function Declaration) 함수는 다음과 같이 선언할 수 있습니다. DataType FunctionName(DataType, ...); 위와 같은 문장(문장이기 때문에 ; 세미콜론으로 끝납니다)을 함수 선언 또는 함수 원형이라고 합니다. 맨 앞쪽에 있는 DataType이 ReturnType이며 함수의 출력값입니다.Functi..

    [C언어 강좌-11] 포인터 (Pointer)

    [C언어 강좌-11] 포인터 (Pointer)

    개요 안녕하세요 피터입니다. 오늘은 C언어의 포인터(Pointer)에 대해 알려드리겠습니다. 포인터는 C언어를 배우는 많은 사람들이 어려워 하는 개념 중에 하나입니다. 동시에 C언어에서 가장 중요한 개념 중 한가지이기도 합니다. 사실 포인터(Pointer)라는 것은 하나의 데이터 타입(DataType)일 뿐이며 실제 값(Value)를 저장하는 대신에 값이 저장되어 있는 변수의 주소(Address)가 저장된다는 것만 기억하면 어렵지 않습니다. 문법(Syntax) 포인터 타입 정의 (Definition) 포인터 타입을 정의할 때는 기존에 정의된 데이터 타입 뒤에 * (Asterisk) 를 붙이면 됩니다. (애스터리스크 라고 발음합니다) 예를들면 다음과 같이 정의할 수 있습니다. int* char* float..

    [bash 쉘 스크립트] bash 쉘 프로그래밍을 배워야 하는 이유

    [bash 쉘 스크립트] bash 쉘 프로그래밍을 배워야 하는 이유

    개요 안녕하세요 피터입니다. 오늘은 여러분들이 왜 Bash 쉘 프로그래밍을 배워야 하는지에 대해서 설명드리겠습니다. 리눅스(Linux) 환경에서 개발을 하거나, 시스템 관리자 업무를 수행하는데 있어서 Bash 쉘을 잘 다룰 수 있다는 점은 굉장한 경쟁력이 됩니다. 그만큼 업무를 효율적으로 수행할 수 있으니까요. Bash란 "Bourne-Again Shell"의 앞 글자를 딴 것입니다. Stephen Bourne의 Bourne Shell에 대한 클리쉐로 일종의 말장난 같은 겁니다. Bash는 이제 모든 종류의 유닉스에서 쉘 스크립트에 관한 실질적인 표준입니다. 쉘은 명령어 해석기(command interpreter)로서, 단지 커널과 사용자 중간에 놓여 있는것 이상으로 꽤 강력한 프로그래밍 언어입니다. 일..

    [C언어 강좌-10] 배열 (Array)

    [C언어 강좌-10] 배열 (Array)

    안녕하세요 피터입니다. 오늘은 C언어의 배열 (Array)에 대해 알려드리겠습니다. 개요배열은 이전 시간에 포스팅했던 루프(반복문) 과 단짝입니다. [C언어 강좌-9] 반복문 (Loop) 배열 자체가 같은 크기의 메모리 공간을 연속적으로 할당한 것이기 때문에 각 요소(Element)들을 개별적으로 다루는 것보다 루프를 이용해서 접근하면 훨씬 코드가 심플해지고 효율적이기 때문입니다. 루프와 함께 사용하지 않는다면 배열은 단순히 변수를 여러 개 선언한 것과 다를 바 없습니다. 루프의 반복자(iterator)는 배열의 각 항목(item)들에 접근하는 인덱스(index)로 사용하기에 매우 적합합니다. 문법(Syntax) 배열의 선언 배열을 선언하는 기본적인 문법은 아래와 같습니다. datatype arrayna..

    [C언어 강좌-9] 반복문 (Loop)

    [C언어 강좌-9] 반복문 (Loop)

    안녕하세요 피터입니다.오늘은 C언어의 반복문에 대해 알려드리겠습니다. 개요 반복문은 어떠한 동작을 반복적으로 수행하고자 할 때 사용합니다. 주로 처리해야 하는 데이터가 여러 개인 경우에 효율적으로 처리하기 위해서 씁니다. 순환구조를 갖기 때문에 루프(Loop)라고 부르기도 합니다. 많이 사용되는 표현 중에 영원히 순환하는 루프를 무한루프(infinite loop)라고 하는데 한자와 영어의 합성어로 재미있는 표현입니다. 루프는 대부분의 프로그램에서 필수적으로 들어가는 요소 중에 하나입니다. 일회성으로 기능하고 바로 종료되는 프로그램을 제외하면 사용자가 별도로 종료를 시키기 전까지 계속 실행되는 프로그램들이 훨씬 더 많기 때문입니다. 그러면 지금부터 C언어에서 루프가 어떤식으로 사용되는지 알려드리겠습니다.C..

    [C언어 강좌-8] 조건문 (IF, SWITCH)

    [C언어 강좌-8] 조건문 (IF, SWITCH)

    안녕하세요 피터입니다.오늘은 C언어의 조건문에 대해 알려드리겠습니다. 주어진 조건에 따라 분기한다고 해서 분기문이라고도 하는데요, 아래와 같이 크게 세가지 종류가 있습니다. If / ElseSwitch / Case? operator 동작 원리는 거의 같지만 가독성이나 코드의 유연성을 고려하여 상황에 따라 적절하게 사용하시면 됩니다. 1. If / Else if 구문의 기본적인 문법은 다음과 같습니다.if(condition) statement;위 코드를 "만일(if) 조건이 만족하면 statement를 실행하시오." 라고 이해하시면 됩니다. 조건이 만족하는 기준은 condition이 참(true)가 되는 경우입니다. C언어에서 조건문의 참(true)은 0이 아닌 모든 수가 해당되며, 반대가 되는 거짓(fa..

    [Vim] 범위 지정하기

    [Vim] 범위 지정하기

    안녕하세요 피터입니다.오늘은 vim에서 범위를 지정하는 방법을 소개해드리겠습니다.앞어 강좌에서 복사, 붙여넣기, 삭제 등의 기능을 살펴봤는데요. 이 기능들을 좀 더 효과적으로 사용하기 위해서는 범위 지정에 대해 알고 있어야 합니다. 범위 지정하기vim에서 범위를 지정하는 방법은 크게 두 가지 방법이 있습니다. 첫 번째 방법은 명령행 모드에서 명령어를 입력할 때 범위를 지정하는 방법이고, 두 번째 방법은 비주얼 모드에서 범위를 선택해서 지정하는 방법입니다. 명령어를 특정 범위에 적용하는 동작은 같지만 사용하는 방법이 다릅니다. 한 가지 방법만 알고 있어도 사용하는데 크게 문제는 없으나, 상황에 따라 더 편리한 방법이 존재하고 별로 어렵지도 않으니 두 가지 방법 모두 익혀두시고 사용하시기 바랍니다. 명령행 ..