글
-
[JavaScript] JavaScript Object prototype 이해하기Legacy/Web 2015. 6. 13. 03:00
출처 - http://insanehong.kr/post/javascript-prototype/ 소개이번 글에서 다룰 내용은 자바스크립트의 프로토타입 상속(prototypal inheritance) 이라는 확장과 객체의 재사용을 가능하게 해주며 class 기반으로 인스턴스를 생성하지 않는 자바스크립트에서 객체지향적인 개발 개념을 가질수 있게 해주는 Prototype에 대한 내용이다. 하지만 일반적으로 자바스크립트에 대한 정공파가 아니면 제대로 이해하고 있지 않거나 이해 하기 힘든 부분이기도 하다. 그이유는 Prototype Object 와 Prototype Link을 제대로 구분하여 인지 하지 못하고 있기 때문일 것이다. 이번글을 통해서 자바스크립트에서 사용하는 프로토타입이란 녀석의 개념을 확실히 집고 넘..
-
[OOP] 객체지향 프로그래밍Legacy/General 2015. 6. 10. 10:46
생활코딩 이고잉 님의 글입니다.https://opentutorials.org/course/743/6553 객체지향 프로그래밍2014-04-14 22:59:16객체 지향 프로그래밍객체지향 프로그래밍(Object-Oriented Programming)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다. 이 객체들을 마치 레고 블럭처럼 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다. 다시 말해서 객체지향 프로그래밍은 객체를 만드는 것이다. 따라서 객체지향 프로그래밍의 시작은 객체란 무엇인가를 이해하는 것이라고 할 수 있다. 말이 어렵게 느껴지지 않는가? 그것은 아직 객체 지향에 대한 체험이 ..
-
프로그래밍을 위하여 - 0x03 "경고와 오류"Legacy/C&C++ 2015. 6. 10. 08:47
경고(Warning)와 오류(Error)우리가 프로그래밍을 하면서 수많은 경고와 오류를 접하게 된다. 그런데 "경고는 무엇이고 오류는 무엇인가? 둘은 같은 것이 아니었나?"라고 생각하는 사람도 있을 것이다. 실제로 조금 프로그래밍을 배운 사람들도 이 두 단어를 혼동해서 사용하고 있는 경우를 종종 발견할 수 있다. 하지만 '경고'와 '오류'는 엄연히 다른 단어이다. (글자 생김새부터 다르지 않은가? :-) ) 우선 경고에 대해서 알아보자.경고(Warning)란 "컴파일은 가능하지만 문제가 발생할 수 있다." 라는 의미이다.대표적인 예로 Visual Studio 2010에서의 scanf 함수를 살펴보자. 우리는 scanf를 사용하여 코드를 작성하여 F5를 눌러 컴파일을 하면 다음과 같은 메시지를 확인할 수 ..
-
프로그래밍을 위하여 - 0x02 "소스코드가 프로그램이 되는 과정"Legacy/C&C++ 2015. 6. 10. 08:46
소스코드가 프로그램이 되는 과정 우리가 비쥬얼 스튜디오 혹은 리눅스에서 소스를 작성한 후 컴파일을 시키면 위와 같은 과정을 거쳐 '실행프로그램'이 된다.우선 선행처리기 다른 말로 전처리기(Preprocessor)가 하는 작업은 소스에서 #이 붙어있는 내용들을 바꿔주는 작업을 한다.예를 들어 #define 혹은 #ifdef, #ifndef 같은 조건부 컴파일을 위한 구문들을 처리한다. 이러한 전처리 과정을 거치면 순수한 C코드인 Pure C가 된다.위 그림에 나와있는 선행처리기 이후에 있는 소스프로그램이 그 후 컴파일러를 거치는데 컴파일러는 소스 프로그램이 문법에 맞는지 확인하는 과정을 거친다.이때 확인을 위해 BNF(Backus–Naur form)이라는 표기법을 이용해 트리를 구성한 후 적법한 문법인지 ..
-
프로그래밍을 위하여 - 0x01 "C표준과 POSIX C"Legacy/C&C++ 2015. 6. 10. 08:45
C 표준 (C Standard) 이 글을 보고 있는 사람들은 다들 C를 배웠거나 배우고 있는 사람들일 것이다. 그러면 C는 알겠는데 C의 표준은 무엇일까? 먼저 일반적으로 통용되는 '표준'이라는 의미에 대해 알아보자. 위키백과를 검색해보면 표준이라는 말 대신 '표준화'라는 말이 등장한다. 표준화(標準化)는 여러 가지 제품들의 종류와 규격을 표준에 따라 제한하고 통일하는 것을 말한다. 이와 비슷한 말로 정규화가 있다. 표준으로 만든다는 의미지만 여러 가지 제품들의 종류와 규격을 표준에 따라 제한하고 통일하는 것을 말한다고 한다. 종류와 규격을 통일하는 것을 의미하는 것 같다. 표준화를 하는 이유는 불편함을 막기 위해서이다. 예를들어 돈을 생각해보자. 우리나라에서 표준으로 통용되고 있는 화폐가 무엇인가? '..
-
프로그래밍을 위하여 - 0x00 "사전 준비"Legacy/C&C++ 2015. 6. 10. 08:44
프로그래밍을 위한 사전 준비 Java 같은 객체 지향적(object-oriented) 언어들도 마찬가지겠지만, C로 프로그램을 만들 때에는 무작정 코드를 작성하기 전에 먼저 프로그램을 설계하는 과정이 필요하다. 언어를 새로 배우는 과정에서 접할 수 있는 예제들처럼 쉽고 간단한 문제들은 설계가 별로 필요가 없지만, 조금만 규모가 커지거나 알고리즘 대회 문제 같은 복잡한 문제를 프로그래밍하려면 대개 설계가 꼭 필요하다. 설계가 상세할 수록 프로그램이 주어진 문제를 빠르고, 정확하게 풀 '가능성'도 높아진다. 또한 설계를 잘 해두면 비교적 버그가 적고 유지보수도 쉬운 프로그램이 만들어진다. 프로그램을 설계할 때 생각해 봐야할 첫 번째는 '내가 풀고자 하는 문제가 무엇인가?'이다. 만약 다음과 같은 경우를 생각..
-