로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 기본적 프로그래밍 테크닉 == === 사전 처리 === [[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씩 빼준다는 것을 의미합니다. 쉽게 생각하려면<code>a = b</code>는 a는 b다. <code>a == b</code>는 a와 b는 같다라고 생각하면 된다. === 연산 === 거의 모든 프로그래밍 언어는 숫자의 산술 연산자를 사용할 수 있습니다. 예를 들면 2+3 이라고 입력하면 5를 출력하는 방식으로요. 덧셈 기호는 +, 뺄셈 기호는 -, 곱셈 기호는 *, 나눗셈 기호는 /를 사용하죠. ==== 비교 연산 ==== 두 변수, 혹은 변수와 숫자를 비교할 때 사용합니다. 이 때 등호 '==', 부등호 '<. >', 크거나 같다/작거나 같다를 의미하는 '>=, <=', 같지 않다는 것을 의미하는 '!='(언어에 따라 '~=') 같은 기호를 사용하죠. 보통 <code>a > 3</code>라는 것은 a가 3보다 크다는 의미로, 이 비교 연산자를 포함하는 식 자체가 참/거짓을 판별할 수 있는 일종의 "명제"(Proposition)처럼 간주됩니다. print문을 이용해서 출력을 하면 문장의 참/거짓에 걸맞게 True나 False 중 하나가 출력됩니다. 비교 연산자중에서는 삼항연산자라는 것도 있습니다. <code>(조건)?(참일 때 결과):(거짓일 때 결과)</code> 이런 식으로 표현하는 거죠. ==== 논리 연산 ==== 둘 다 참일 때만 참으로 정의하는 '&&'(and)나 둘 중 하나만 참일 때 참으로 정의하는 '||'(or), 참/거짓 여부를 뒤집는 '!'(not, 또는 ~)같은 연산자입니다. 모든 조건이 참일 때 실행시키기 위해서는 논리곱 연산자인 &&으로, 어느 조건 중 하나라도 참일 때 실행시키기 위해서는 논리합 연산자인 ||을 이용하는 식이지요. 보통 논리 연산자는 아래의 분기문을 실행시킬 때 분기문의 조건 부분에서 많이 사용됩니다. === 함수 === 프포그래밍의 핵심적인 요소 중 하나가 바로 함수(函數, function)의 활용입니다. 가장 쉬운 것은 비슷한 작업을 명령어 하나로 줄여줄 수 있다는 이점이 있다는 거죠. 예를 들면 1부터 100까지 홀수인지 짝수인지 출력을 하고 싶으면 "1은 홀수입니다", "2는 짝수입니다" 이런 식으로 출력을 할 수도 있지만 함수를 이용해서 숫자를 입력하면 짝수입니다, 홀수입니다를 출력할 수 있게 할 수 있다는 거죠. 자바스크립트와 파이썬으로 구현된 예제를 통해서 확인해보겠습니다. {{탭|여백좁게=예 |제목1 = 자바스크립트 예제 |내용1 = <syntaxhighlight lang="javascript"> function oddeven(num){ if (num%2 ==0) {return `${num}은 짝수입니다.`;} else { return `${num}은 홀수입니다.`;} } for (var i=1; i<=100; i++){ //반복 출력 console.log(oddeven(i)); } </syntaxhighlight> |제목2 = 파이썬 예제 |내용2 = <syntaxhighlight lang="python"> def oddeven(num): if num%2 ==0 : return '{0}은 짝수입니다.'.format(num) else : return '{0}은 홀수입니다.'.format(num) for i in range(1,101): print(oddeven(i)) </syntaxhighlight> }} 보면 알겠지만 대부분의 언어에서는 함수를 정의하는 키워드, 함수의 입력값, 그리고 모든 함수에서 정의되지는 않지만 return이라는 출력값을 정의하는 키워드로 구성되어 있다는 것을 알 수 있습니다. 위의 예제에서 oddeven이라는 함수는 정수를 입력값으로 받고 문자열 "%는 짝수입니다." 같은 문자열을 출력으로 내보내는 것을 알 수 있죠. {{각주}} {{리브레 시리즈}} [[분류:프로그래밍 시리즈| ]] [[분류:쉽게 알 수 있다 시리즈]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț