프로그래밍 관련
자바스크립트 강좌 1편. 시작
2016.05.091. 자바스크립트 소개 1995년, 넷스케이프 사의 브랜든 아이히(Brendan Eich)가 라이브 스크립트(live script) 언어를 개발하기 시작합니다. 그 후 썬 마이크로시스템즈 사와 제휴를 맺으며 그 당시 유명했던 자바의 이름을 본따 '자바스크립트'로 변경되어 다시 개발이 시작됩니다. 그러자 마이크로소프트 사에서 이에 대항하기 위해 VB 스크립트를 발표하고 그 후에 자바스크립트와 비슷한 J스크립트를 발표하게 됩니다. (익스플로러 3.0에 Jscript 탑재) 그러자 넷스케이프 사에서 1996년, 표준화를 위해 자바스크립트의 기술 규격을 ECMA 국제회의에 제출하고 1997년에 ECMA 스크립트의 첫번째 버전인 ECMA-262가 발표됩니다. 자바스크립트와 J스크립트 등 ECMA 스크립트와의 호환..
가독성에 관해 1편. 코드는 이해하기 쉬워야 한다.
2014.02.26[가독성에 관해서] [이 글은 저자인 더스틴 보즈웰, 트레버 파우커가 작성한 '읽기 좋은 코드가 좋은 코드다'를 토대로 쓰여졌습니다.] 코드를 작성할 때 가장 중요한 지침을 제공하는 원리! 코드는 이해하기 쉬워야 한다 혹시 자신이 작성한 소스 코드를 1~2달 뒤에 보게되니 이게 어떠한 역할을 하는 코드 부분인지 몰랐던 경험이 있으신가요? 코드 구조가 복잡해지게 되면서 다른 사람뿐만 아니라 자기 자신도 못알아보게 되는 상황이 있었던 분들이 있을 것이라 생각합니다. 코드 구조가 복잡하고 코드가 함축되어 있거나, 쓸데없는 코드가 많아지다 보면 '가독성'이 떨어지게 됩니다. 여기서 가독성이란 얼마나 쉽게 읽을 수 있는지 나타내는 정도이며, 이 강좌는 가독성을 중심으로 하여 내용을 다룰 예정입니다. 먼저 코드를 ..
파이썬 강좌 11편. 예외 처리(Exception Handling)
2013.12.291. 예외 처리(Exception Handling) 오늘은 예외 처리(Exception Handling)에 대해 알아보려고 합니다. 여기서 '예외(Exception)'란 어떤 것일까요? 우리가 프로그램을 사용하다 보면 예기치 못한 상황으로 에러가 발생하여 비정상 종료되는 경험을 해보신적이 있으신가요? 예를 들어, 프로그램 내에서 존재하지 않는 파일을 열려고 한다던가 피제수를 0으로 나누려고 하는 등 런타임 도중 발생하는 에러를 예외라고 하며, 이는 프로그램의 작업 수행을 막아버리는 존재입니다. 우선 예외가 발생하는 상황을 한번 보도록 하겠습니다. >>> 2013 * (1229/0) Traceback (most recent call last): File "", line 1, in 2013 * (1229/0..
파이썬 강좌 10-2편. 파일 입출력(File I/O)
2013.12.151. 파일 입출력(File Input/Output)오늘은 파일 입출력에 대해서 알아보도록 하겠습니다. 전 강좌에서는 화면에서 출력하고 입력하는 방법을 알아봤다면, 이번에는 파일에 출력하고 입력하는 것을 알아보도록 하겠습니다. 파일을 읽고, 쓰고, 덧붙이는 등 세밀하게 작업을 위해 파이썬에서는 open이란 함수를 지원하는데 이 함수의 기본형은 아래와 같습니다.파일객체 = open(file, mode) 기본적으로 들어가는 두 인자 중 file이란 인자에는 파일 이름이 이곳에 들어가고, mode에는 파일을 열 때 사용하는 모드를 말합니다. 여기서 파일을 열 때 사용하는 모드란 쓰기 모드, 읽기 모드 등과 같이 파일에 무언가를 쓸때는 쓰기 모드, 무언가를 읽어들일 때는 읽기 모드를 사용합니다. 아래에 mode에..
파이썬 강좌 10-1편. 입출력(I/O)
2013.12.131. 출력(Output) 오늘은 입력과 출력에 대해서 간단히 알아보도록 하겠습니다. 먼저 출력에 대해서 알아보도록 하겠는데요, 우리는 이미 화면에 무언가를 출력할 때 사용하는 함수는 'print' 함수 라는 것을 알고 있습니다. 이전 강좌에서는 간단히 화면을 출력하는 기능을 담당하는 함수라고 알고 있었지만, 이번에는 더 자세히 파고들어 보도록 하겠습니다.>>> print(3.14) 3.14 >>> print('Hello, World!') Hello, World! >>> t = 'variable' >>> print(t) variable 위 예제 그대로 print 함수에 넘겨주는 인자를 출력하고 있음을 확인하실 수 있습니다. 우리는 문자열과 문자열을 서로 연결하고 싶을때는 공백을 사용해서 연결할 수 있었는데..
파이썬 강좌 9편. 모듈(Module)
2013.11.101. 모듈(Module) 이번에는 모듈(Module)에 대해서 알아보도록 하겠습니다. 파이썬에서의 모듈이란 변수, 클래스, 함수 등과 같은 여러 코드를 한곳에 모아놓은 코드의 모음이라고 할 수 있습니다. 이런 모듈이라는 것을 만들어 놓으면 계속 사용할 수 있으므로 코드의 재사용성을 극대화 시킬 수 있으며, 연관성이 있는 것들을 모듈 단위로 분리하여 효율성을 높일 수 있습니다. 모듈의 장점에 대해서는 차차 알아가보도록 하고, 먼저 모듈을 불러오는 방법부터 알아보도록 하겠습니다. 이 모듈이라는 것을 가져오려면 'import'라는 키워드를 통해 모듈을 불러올 수 있습니다. 아래와 같이 말입니다.import 모듈명 우리가 직접 모듈을 만들어 보기 전에, 파이썬에 기본으로 내장된 모듈을 불러와, 그 모듈의 기능을..
파이썬 강좌 8-4편. 연산자 오버로딩(Operator Overloading)
2013.11.021. 연산자 오버로딩(Operator Overloading) 이번에는 연산자 오버로딩(Operator Overloading)에 대해서 알아보려고 합니다. 이 연산자 오버로딩이란, 인스턴스 객체끼리 서로 연산을 할 수 있게끔 기존에 있는 연산자의 기능을 바꾸어 중복으로 정의하는 것을 말합니다. 예를 들어보자면, 아래와 같은 경우를 생각해 볼 수 있겠죠? >>> class NumBox: def __init__(self, num): self.Num = num >>> n = NumBox(40) >>> n + 100 Traceback (most recent call last): File "", line 1, in n + 100 TypeError: unsupported operand type(s) for +: 'N..
파이썬 강좌 8-3편. 상속(Inheritance)
2013.10.271. 상속(Inheritance) 오늘은 클래스의 상속(Inheritance)에 대해 알아보려고 합니다. 상속이란 무엇일까요? 우리가 알고 있는 상속은 사전적 정의에 따르면 "일정한 친족적 관계가 있는 사람 사이에 한 쪽이 사망하거나 법률상의 원인이 발생하였을 때 재산적 또는 친족적 권리와 의무를 계승하는 제도"와 같습니다. 그런데 이 상속이란 개념이 파이썬의 클래스에도 존재합니다. 쉽게 말해서, 부모의 유산을 자식이 물려 받듯이 부모 클래스와 자식 클래스라는 것이 존재하여 부모 클래스의 멤버를 자식 클래스가 물려받을 수 있습니다. 위 그림처럼 상속 관계에 있다고 가정해봅시다. 먼저 사람(Person) 클래스는 부모가 되는 클래스이니 부모 클래스라고 말하고, 근로자(Employee) 클래스는 자식이 되는..
파이썬 강좌 8-2편. 생성자와 소멸자(Constructor and Destructor)
2013.10.271. 생성자(Constructor) 이번에는 생성자와 소멸자에 대해서 알아보도록 하겠습니다. 우선은 생성자부터 알아보고, 그 다음 소멸자에 대해 알아보는 순서로 공부를 할 생각입니다. 클래스라는 개념을 처음 접해보신 분들은 생성자라는 이름이 생소하시겠지만, 이름과 연관지어 생각을 해봅시다. 생성자라고 하면 '무언가 생성할 때 호출되는 녀석', '무언가 생성하기 위해 호출되는 녀석' 등 여러가지 추측을 해볼 수 있습니다. 파이썬의 생성자는 객체를 생성할 때 호출되는 함수로써, 객체 생성 시 초기화 작업을 위해 존재하는 녀석입니다. 생성자라는 녀석이 파이썬에서는 어떻게 표현이 되는지 확인해보도록 합시다.class 클래스명: ... def __init__(self): 문장 ... 위를 보시면 파이썬에는 생성자..
파이썬 강좌 8-1편. 클래스(Class)
2013.10.20인스턴스(Instance) 이번에는 객체지향 프로그래밍에서 핵심이 되는 요소 중 하나인 클래스(Class)에 대해서 알아보도록 하겠는데, 그 전에 인스턴스란 개념에 대해 먼저 알아보도록 하겠습니다. 여기서 인스턴스와 객체(Object)는 같은 의미인데, 인스턴스는 클래스에 의해 만들어진 객체를 인스턴스라고 합니다. 이 설명에서 한가지 유추해보자면, 클래스는 인스턴스를 만드는 하나의 틀이라고 볼 수 있습니다. 우리가 앞으로 배울 클래스란 녀석을 통해서 인스턴스를 계속 만들어 낼 수 있습니다. 이제는 한번 클래스가 무엇인지 살펴보도록 합시다. 클래스(Class) 앞에서 인스턴스에 대해서 간단히 알아보았는데, 파이썬에서의 클래스를 간단하게 설명하자면 변수와 함수를 모아넣은 것이라고 할 수 있습니다. 클래스가 ..
파이썬 강좌 7편. 함수(Function)
2013.10.151. 함수(Function)오늘은 함수(Function)에 대해 알아보도록 하겠습니다. 파이썬의 함수에 대해 알아보기 전에, 이미 어디선가 함수란 말을 들은 기억이 있지 않나요? 중학교 수학시간에 나온 '함수'는, 우리가 배울 파이썬의 '함수'와 비슷합니다. x의 값을 넣으면, y의 값이 정해지듯이 파이썬의 함수 역시도 값을 함수에 집어넣으면, 함수는 결과값을 되돌려줍니다. 예를 들어서, 어느 특정한 수를 넣으면 그 수의 절댓값을 돌려주는 신비의 상자가 있다고 합시다. 우리가 만약 -2라는 값을 이 상자에 넣으면, 꺼낼때는 2가 되어 나오는 것입니다. 그리고 4라는 값은 역시, 4 그대로 꺼내집니다. 이를 그림으로 나타내보도록 하겠습니다.위의 박스는 어느 수를 넣으면 그 수의 절댓값을 돌려주는 기능을 합..
파이썬 강좌 6편. 반복문(Loop)
2013.10.101. 반복문(Loop)오늘은 반복문(Loop)이라는 것에 대해 알아보도록 하겠습니다. 반복문, 쉽게 생각하면 이름 그대로 반복에 사용되는 녀석입니다. 파이썬에서 지원하는 반복문에는 조건문이 참인가 거짓인가에 따라 반복을 진행하는 while문이라는 것이 존재하고, 리스트나 튜플 같은 순서형 자료의 요소들을 하나씩 가져오면서 반복을 수행하는 for문이 존재합니다. 이 두 가지에 대해서 간단히 알아볼 계획인데, 비슷한 작업이 수 없이도 반복되는 것을 이러한 반복문을 통해서 간단히 해결할 수 있습니다. 먼저 while문에 대해서 먼저 알아보도록 하겠습니다. 2. while문앞에서 소개한대로 while문은 조건식을 가지는 녀석입니다. 조건식이 참이라면 while문 내부에 있는 블록의 문장을 실행하고, 거짓이면 반..