경고 : 최신판이 아닙니다. 이 문서의 오래된 판을 편집하고 있습니다. 이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다. 로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{쉽게 알 수 있다 시리즈|이 문서는 정말 쉽습니다.|문서의 내용이 너무 쉬워서 오늘부터 프로그래밍 할 수 있을 것 같습니다..}} [[분류:컴퓨터_프로그래밍]] == 들어가기 전에 == 이 항목은 예비 컴퓨터공학/과학 생들이 프로그래밍의 기초적인 내용을 적는 집단연구문서입니다. 이 항목에 내용을 추가하시는 분들께서는 대상층이 예비 대학교 1학년생이라 생각하시고 내용을 추가해 주셨으면 좋겠습니다. 만약에 항목에 없는 새로운 언어를 기준으로 추가하실 경우, 새로 목차를 만들어 주시길 바랍니다. == [[Python]] == 일단 [[Python]]은 타 프로그래밍과 다르게 '''예외'''라는게 없다. <s>[[베이직]]보다도 깐깐하다</s> 그 때문에, 파이썬에서 만약 에러가 나온다면 그 부분은 대부분 예외적인 사항을 임의적으로 썼다는 이야기다. 흔히 예외가 적용되는건 중간에 탭을 쓰느냐 스페이스 네번을 누르냐 정도고<s>그게 그거잖아</s> <s>게다가 섞어쓰면 안 된다</s>, 나머지는 몽땅 예외가 없다고 생각을 하면 되게 만들어져 있는 만큼, 알 수 없는 에러가 뜬다고 좌절하지 말자. 그냥 오타낸거라고 생각하면 된다. 그러니까, 제대로된 [[Python]]교본만 준비되어 있으면, 타 프로그래밍보다 훨씬 빠른 속도로 익힐수가 있다. 분명 어딘가 안되면 오타낸거고, 구사한 표현법이 오타가 난 것이다. <s>그 때문에 일주일정도만 노력하면 [[매크로]]를 만들수 있다. 진짜다!!</s> === 준비 === ==== 다운로드 ==== * 윈도우(32비트)의 경우 :[https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi 다운로드] * 윈도우(64비트)의 경우 :[https://www.python.org/ftp/python/3.4.3/python-3.4.3.amd64.msi 다운로드] * 리눅스의 경우 :패키지 관리자로 python 혹은 python3를 설치합니다. 위의 링크는 파이선 3.4버전을 다운로드 받습니다. 파이썬은 크게 파이선 2.x버전과 파이선 3.x버전으로 나뉩니다. 두 버전은 세세한 문법에서 차이를 보이며, 이 차이로 인해 프로그램이 실행되지 않는 경우도 있습니다. 한동안은 기존에 만들어진 자료와의 호환성 문제등으로 인해 파이썬 2.x버전이 선호되었지만, 2015년 5월 기준으로는 파이썬 3.x버전으로 배우셔도 문제가 없을 정도로 상황이 바뀌었습니다. 만약 아래의 강좌가 아닌 다른 강좌로 파이썬을 배우실 계획이라면 해당 강좌의 파이썬 버전을 확인해주세요. 파이썬 2.x버전과 3.x버전의 문법은 완벽하게 호환되지 않습니다. 파이썬 3.x대가 개선되고 있음을 고려하면 파이썬 3.x버전 기반의 강좌를 들으시는 것을 권장합니다. ==== 실행 ==== 시작의 Python 3.4의 IDLE (Python 3.4 GUI)을 실행시킵니다. === Hello, World! === 대부분의 프로그래밍 언어의 시작은 Hello World를 출럭하는 것에서 시작합니다. 다음과 같이 화면에 입력해 봅시다. <source lang="python"> print("Hello, World!") </source> === 변수 === 일상에서 일이나 공부를 할때 어떤 정보를 기록하거나 머리에 암기하는 경우가 있습니다. 이와 마찮가지로 프로그램을 만들다 보면 항상 값(혹은 데이터)를 어딘가에 저장해놔야 할 상황이 옵니다. 프로그래밍을 할 때, 이러한 값을 저장할 수 있는 공간을 '''변수'''(variable)이라고 합니다. ==== 변수의 선언 ==== <source lang="python"> variable = 29 변수 = 84 </source> 앞에 이것저것 붙일 필요 없이 그냥 (변수명) = (값)을 입력해주면 된다. 게다가 Python 3부터 유니코드를 지원하기 때문에 변수명을 한글로 할 수도 있다! ==== 변수형 ==== 변수형이란 변수가 지금 어떠한 값을 가지고 있는지를 나타내는 말입니다. 파이썬에서는 다양한 데이터를 효율적으로 저장하기 위하여 다음과 같은 변수형을 지원합니다. ===== 수(number)형 ===== :말 그대로 수를 나타내는 변수형입니다. 3, 3.14같은 숫자를 저장하기 위한 변수형입니다. ===== 문자열(String)형 ===== :문자열이란 문자(A,B,C,가,나,다등등등)이 일렬로 있는 자료를 저장하기 위한 변수입니다. ===== 리스트(List)형 ===== ===== 사전(Dictionary)형 ===== ===== 진위(Boolean)형 ===== === 조건문 === === 반복문 === === 함수 === == [[Java]] == == [[HTML]]/[[CSS]]/[[JavaScript|JS]] == == [[SQL]] == == [[C (프로그래밍 언어)|C]] == === 준비 === === <s>당연하지만</s> Hello, World! === === 출력 형식 === === 변수 === === 입력 형식 === === 조건문 === === 반복문 === === 함수 === === 포인터 <s>고비</s> === === 다차원 배열 === === 구조체 === === 공용체 === === 열거형 === === 파일 입출력 === === 헤더파일, 소스파일 === === 고급 과정 === == [[C++]] == === 이 언어를 배우려는 사람에게 전하는 주의사항 === ==== C 문법을 그대로 사용하는 경우 ==== 물론 프로그래밍을 할 수는 있다. 그렇지만, C의 문법보다 [[타입 캐스팅|형변환]]<ref>간단히 설명하자면, 문자를 정수로 바꾸는 등의 한 데이터 타입을 다른 타입으로 변환하는 것을 말한다.</ref> 조건이 빡빡하다던가, C++의 많은 기능을 사용할 수 없다던가 하는 점이 있기 때문에, 정말 C로 개발해야만 하는 상황(거의 없겠지만)이 아니라면 C++의 문법을 사용하는 것이 좋다. ==== 객체지향은 또 뭐야? ==== 쉽게 말해, 모든 대상을 "데이터"와 "기능"으로 추상화해서 나타낸 것이다. 기존의 C에서 사용하던 구조체(struct)는 말 그대로 단순히 데이터를 담는 "자료형"의 역할을 했지만, 클래스는 어떤 대상을 데이터와 기능의 집합으로 나타내므로 그 대상의 성질, 특성과 같은 것들을 표현할 수 있다. ==== <s>쓸데없이 불친절하고</s> 어려운 템플릿 ==== 템플릿은 메타프로그래밍 요소로, 서로 다른 여러가지의 클래스에 대해 '''각각을 따로 프로그래밍하지 않고 같은 이름을 가지는 대상(클래스, 함수)으로''' 프로그래밍할 수 있게 한다. 다시 말해서, '''일반화 프로그래밍'''이 가능하다! 하지만, C++의 템플릿은 다른 여타 언어들의 메타프로그래밍 요소와는 달리 [[템플릿 메타프로그래밍]]이라는 <s>변태짓</s>을 가능하게 한다.<s>나쁜 녀석들 같으니라고</s> <s>[[구글링]]을 해도 답이 안나온다</s> 이 기법은 C++ 프로그래머 중에서도 정말 고수들만이 제대로 활용할 수 있으므로, 공부하려고 마음먹었을 때 각오하는 것이 좋다.<s>하지만 우리 회사는 못하게 하는데</s> ==== 함수형 프로그래밍은 또 어디에서 굴러들어온건데? ==== 시간이 지나면서, 프로그래머들은 객체지향의 한계에 봉착하게 된다. 대세는 멀티코어! 다들<s>컴맹 빼고</s> 들어봤을 것이다. 멀티코어 프로그래밍은 서로 다른 프로세스가 하나의 데이터에 동시에 접근하는 경우가 비일비재하기 때문에<ref>이렇게 되면 프로그램을 여러번 실행시켰을 때 같은 조건에서도 항상 같은 결과가 나온다고 기대할 수 없다.</ref> 접근 통제를 위해 프로세스들을 락/언락해야만 한다. 그런데 락/언락을 자주 하게 되면 [[CPU]]에서 [[병목현상]]이 발생하기 때문에 프로그램의 실행시간, 반응 속도 등에 영향을 끼치게 된다. 이 멀티코어 프로그래밍을 위한 대안이 바로 '''함수형 프로그래밍'''이다. 함수형 프로그래밍에 사용되는 함수는 수학에서의 함수의 성질을 따른다. 기존의 함수는 모든 작업을 '''순차적'''으로 처리해야만 했지만, 함수형 프로그래밍에서는 작업 순서를 변경시켜서 '''어떤 것을 먼저 처리하고 어떤 것을 지연시켜도 같은 결과가 나오는 것'''이다! ==== 더럽게 기능이 많은데, 이 많은 걸 언제 배워! ==== '''그래서 C++의 진입장벽이 높은거다.''' 현재진행형으로 언어 표준을 개정해나가면서 짧은 시간에 많은 기능이 추가되거나, 바뀌거나, 사라지고 있다. 하지만, "C++스러운" 프로그래밍 방법은 표준을 개정해나가도 크게 변하지 않는다. 표준은 "C++스러운" 방법을 위한 편의 기능을 제공하는 방향으로 개정되고 있다고 생각해도 된다. 그러니, "C++스러운" 방법이 무엇인지 안다면, 앞으로 계속 표준이 바뀌더라도 학습이 용이할 것이다. 많은 내용들 중 중심적인 내용을 먼저 학습한 후, 곁가지로 제공되는 기능을 익혀나가는 방법은 C++을 공부하는 좋은 방법 중 하나이다. 당장 C를 빠르게 공부한 후, C++의 중심적 내용인 클래스를 공부하면 나머지는 다 부가기능처럼 보일것이다. === 준비 === === <s>예외란 없다</s>Hello, World! === === 새 표준 입출력 === === 공용체, 열거형 === === 클래스 === === 예외처리 === === 템플릿 === === 람다 === === 고급 과정 === == [[어셈블리어|어셈블리]] == 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 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: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:Skin (원본 보기) (준보호됨)틀:ㅊ (원본 보기) (준보호됨)틀:가로목록 (원본 보기) (준보호됨)틀:각주 (원본 보기) (준보호됨)틀:고지 상자 (원본 보기) (보호됨)틀:둘러보기 상자 (원본 보기) (보호됨)틀:둘러보기 상자/중첩 (원본 보기) (준보호됨)틀:둘러보기 상자/핵심 (원본 보기) (보호됨)틀:디시인사이드 갤러리 (편집) 틀:리브레 시리즈 (편집) 틀:마이너 갤러리 (편집) 틀:쉽게 알 수 있다 시리즈 (편집) 틀:아카라이브 채널 (편집) 틀:취소선 (원본 보기) (준보호됨)틀:탭 (원본 보기) (준보호됨)틀:탭/styles.css (편집) 틀:틀바 (원본 보기) (준보호됨)