사용자:Utolee90/작업실: 두 판 사이의 차이

(일단 문서 작성)
(문서를 비움)
태그: 비우기
1번째 줄: 1번째 줄:
== 기본적 프로그래밍 테크닉 ==


=== 사전 처리 ===
[[Java]] 같은 일부 프로그래밍 언어들은 null 클래스를 정의하는 등 사전처리를 해야 합니다. 예를 들면 Java에서 Hello, World!를 출력하는 문구는 다음과 같습니다.
<syntaxhighlight lang="java">
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
</syntaxhighlight>
그 다음에 파일명은 클래스명인 HelloWorld.java로 저장해야 합니다. 그 다음에 자바 프로그램이 저장된 디렉토리에서 <code>javac HelloWorld.java</code>를 입력해서 컴파일링을 하고, 컴파일링이 끝난 뒤에야 <code>java HelloWorld</code>를 입력해서 실행시킬 수 있습니다.
[[파이썬]]이나 [[Ruby]], [[PHP]] 같은 인터프리터 언어들이 배우기 쉬운 이유 중 하나가 바로 저런 사전처리를 안 해도 되기 때문이죠.
=== 출력 ===
일부 예외적인 경우를 제외하면 프로그래밍 언어를 배울 때 메시지를 출력하는 방법부터 배웁니다. 가장 대표적인 문장인 [[Hello, World!]]를 출력할 때 프로그래밍 언어별로 출력하는 함수 또는 키워드를 파악하는 것이 도움이 됩니다. 
예를 들면 [[파이썬]]은 다음과 같이 출력합니다.
<syntaxhighlight lang="python">
print("Hello, World!")
</syntaxhighlight>
=== 자료형 ===
프로그래밍 언어에서 사용하는 요소는 숫자, 문자열, 배열(Array 혹은 List), 연관배열(Associated Array), 함수(function), 클래스(class), 모듈(Module), 패키지(Package) 등이 존재합니다. 각 프로그래밍 언어마다 사용하는 자료형은 매우 다르지만 대체로 다음과 같은 자료형을 포함하고 있습니다. 이것도 언어별로 좀 다른데 C언어 같은 경우 각 변수의 자료형을 강제로 지정해야 하지만 파이썬 같은 언어들은 자료형을 강제로 지정하지 않아도 됩니다.
예를 들면 C++에서는 다음과 같이 변수를 정수형으로 정의하면 변수명에 다음처럼 문자열을 집어넣을 수 없습니다.
<syntaxhighlight lang="cpp">
#include <iostream>
int main()
{
    int x = 4;
    x = 'num'; /* 이렇게 정의하면 오류가 납니다 */
    std::cout<<x<<std::endl;
    return 0
}
</syntaxhighlight>
하지만 파이썬처럼 타입을 엄격하게 따지지 않는 언어들은 다음처럼 숫자를 대입한 후에 다시 문자열로 대입하는 것도 가능하다는 거죠.
<syntaxhighlight lang="python">
x = 4
x = 'num'
print(x) #num이 출력되며, 아무 오류도 안 납니다.
</syntaxhighlight>
* 변수 - 일반적으로 알파벳으로 시작하며, 특정한 의미를 가진 문자열로 표현됩니다. PHP 같은 언어는 변수라는 것을 명시하기 위해 반드시 앞에 $표시를 붙여야 하기도 하는 등 제약조건이 있는 언어들도 있습니다. 변수는 일반적으로 그 자체가 값이 정해진 것이 아니고, 숫자나 문자열, 배열 등의 값을 받아들여서 값이 변할 수 있습니다. 
* 불리언 - 참/거짓을 나타내는 자료형입니다. True, False 중 하나로 표현이 가능합니다.
* 숫자 - Lua 같은 언어를 제외하면 보통 정수형과 부동소숫점이 있는 실수형 숫자를 구별하고 있습니다. 이 숫자를 문자열과 구별하는 이유 중 하나가 숫자는 연산자를 이용해서 쉽게 계산할 수 있어야 하기 때문입니다.
* 문자열 - 말 그대로 특정한 의미를 가진 문자들의 집합입니다. 문자열은 대부분의 프로그래밍 언어에서 ""(큰따옴표)로 둘러싸인 형태로 표현됩니다. 문자열은 값이 변할 수 있는 변수와는 달리 그 자체가 값(value)입니다. 이것이 무슨 의미인지 아래 파이썬 예제를 통해 설명하겠습니다.
<syntaxhighlight lang="python">
var = 4 #var이라는 변수는 숫자 4라는 값을 가집니다.
print(var) #4가 출력됩니다.
print("var") #var이라는 문자열이 출력됩니다.
</syntaxhighlight>
* 배열 (Array) 또는 리스트(list) - 숫자, 혹은 문자열, 다른 배열들을 여러 개 모은 모음입니다. 많은 인터프리터 언어에서는 <code>arr = [ (원소0), (원소1), ... ]</code> 형태로 서술됩니다. 각 원소를 불러오는 방법으로 <code>arr[n]</code>, 여기서 n은 배열에서 위치의 정수값(보통 0부터 시작)이죠. 파이썬을 예로 들면 다음과 같이 arr[(숫자)] 형태로 리스트 안에 원소를 호출할 수 있습니다.
<syntaxhighlight lang="python">
arr = [0, 4.5, '3', 'str'] #길이 4짜리.
# arr은 0부터 인덱싱이 시작.
print( arr[0], arr[1], arr[3] ) # 0 4.5 str 이 출력.
</syntaxhighlight>
* 연관배열 (Associated Array) - 일반적인 배열과는 달리 키값이 0부터 시작하는 숫자가 아닌 특정한 숫자나 문자열로 인덱스가 정의된 배열을 의미합니다. PHP 같은 언어는 배열이 연관배열의 특수한 경우로 간주되지만, 파이썬 같은 경우는 연관배열과 유사한 형태의 딕셔너리(dictionary)는 리스트와 다른 것으로 간주됩니다.
PHP 예시
<syntaxhighlight lang="php">
$city = array("Seoul"=>1, "Busan"=>2, "Daegu"=>3);
echo $city["Seoul"]; // 1이 출력된다.
</syntaxhighlight>
파이썬 딕셔너리 예시
<syntaxhighlight lang="python">
city = {'Seoul':1, 'Busan':2, 'Daegu':3 }
print(city['Seoul']) # 1이 출력된다.
</syntaxhighlight>
* 함수(function) - 입력값을 받아서 출력하는 일종의 객체입니다. 자세한 것은 조금 있다가 설명하겠습니다.
=== 변수의 값 할당 ===
일반적으로 등호 '='를 프로그래밍 언어에서는 값을 배정할 때 사용합니다. 예를 들면 <code>a = 4</code>라는 문구는 변수 a에 값 4를 배정한다는 뜻입니다. 오른쪽에 정의된 값을 왼쪽 변수에 값으로 지정한다는 의미로 사용되죠. 거의 대부분의 프로그래밍 언어에서 등호 하나는 같다는 것이 아닌 값을 집어넣는다는 의미로 사용합니다. 같다는 것을 확인하는 여부는 보통 등호 2개를 사용해서 <code>a == b</code>라고 표현하죠. 이것은 a와 b가 같으면 참을, 다르면 거짓이 된다는 것을 의미합니다.
많은 프로그래밍 언어에서 <code>x +=1</code>는 <code>x =x+1</code>로 통용됩니다. 즉 (연산자)+'='이 결합되면 왼쪽에 정의된 변수를 오른쪽 숫자의 연산자만큼 바꿔준다는 뜻이죠. 또한 파이썬 같은 언어를 제외하고 x++, y-- 같은 기호가 있는데, 이건 각각 1씩 더하거나, 1씩 빼준다는 것을 의미합니다.
=== 연산 ===
거의 모든 프로그래밍 언어는 숫자의 산술 연산자를 사용할 수 있습니다. 예를 들면 2+3 이라고 입력하면 5를 출력하는 방식으로요. 덧셈 기호는 +, 뺄셈 기호는 -, 곱셈 기호는 *, 나눗셈 기호는 /를 사용하죠.
=== 비교 연산 ===
두 변수, 혹은 변수와 숫자를 비교할 때 사용합니다. 이 때 등호 '==', 부등호 '<. >', 크거나 같다/작거나 같다를 의미하는 '>=, <=', 같지 않다는 것을 의미하는 '!='(언어에 따라 '~=') 같은 기호를 사용하죠. 보통 <code>a > 3</code>라는 것은 a가 3보다 크다는 의미로, 이 비교 연산자를 포함하는 식 자체가 참/거짓을 판별할 수 있는 일종의 "명제"(Proposition)처럼 간주됩니다. print문을 이용해서 출력을 하면 문장의 참/거짓에 걸맞게 True나 False 중 하나가 출력됩니다.
=== 논리 연산 ===
둘 다 참일 때만 참으로 정의하는 '&&'(and)나 둘 중 하나만 참일 때 참으로 정의하는 '||'(or), 참/거짓 여부를 뒤집는 '!'(not, 또는 ~)같은 연산자입니다. 모든 조건이 참일 때 실행시키기 위해서는 논리곱 연산자인 &&으로, 어느 조건 중 하나라도 참일 때 실행시키기 위해서는 논리합 연산자인 ||을 이용하는 식이지요.
보통 논리 연산자는 아래의 분기문을 실행시킬 때 분기문의 조건 부분에서 많이 사용됩니다.

2020년 10월 23일 (금) 01:20 판