왕초보만/기초 왕초보만
-
객체(Object)라는 단어는 참으로 심오하다. 앞으로 여러분들이 배우게 될 컴퓨터 언어에서 매우 중요하게 쓰이는 단어이고 그 개념에 대해서 이직 할 때마다 물어보는 단골문제이다. 따라서 이 객체라는 개념을 잘 알고 넘어가는게 너무나도 중요하다. 뿌리깊은 나무는 바람에도 잘 견디는 법이다. 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른것과 식별 가능한 것 이라고 한다. 이해가 되는가? 여러 설명을 들어보았지만 제일 쉽게 설명되는 것은 2가지였다. 한 가지는 붕어빵이다. 위는 붕어빵 굽는 기계이다. 여러분은 붕어빵 틀에다가 밀가루 반죽을 넣고 구우면 틀의 모양대로 붕어빵들이 생길것이다. 그런데 붕어빵은 여러 종류가 있지 않은가?? 슈크림 붕..
뻘짓 하며 얻은 기본기 7 객체객체(Object)라는 단어는 참으로 심오하다. 앞으로 여러분들이 배우게 될 컴퓨터 언어에서 매우 중요하게 쓰이는 단어이고 그 개념에 대해서 이직 할 때마다 물어보는 단골문제이다. 따라서 이 객체라는 개념을 잘 알고 넘어가는게 너무나도 중요하다. 뿌리깊은 나무는 바람에도 잘 견디는 법이다. 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른것과 식별 가능한 것 이라고 한다. 이해가 되는가? 여러 설명을 들어보았지만 제일 쉽게 설명되는 것은 2가지였다. 한 가지는 붕어빵이다. 위는 붕어빵 굽는 기계이다. 여러분은 붕어빵 틀에다가 밀가루 반죽을 넣고 구우면 틀의 모양대로 붕어빵들이 생길것이다. 그런데 붕어빵은 여러 종류가 있지 않은가?? 슈크림 붕..
2023.07.21 -
프로그래밍 언어란 컴퓨터가 계산할 수 있도록 돕는 언어이다. 위 그림은 자카드식 문직기 라고 한다. 왜 컴퓨터 언어를 설명하는데 제일 먼저 등장하냐 하면 이게 프로그래밍 언어의 기원이라고 한다. 자카드 직기가 무엇이나면 식탁보에 있는 레이스 같은 천을 보면 다양한 패턴이 있다. 이런 패턴을 예전에는 직접 손으로 만들다가 베틀같은 것을 이용하여 제작하였다. 그런데 복잡한 패턴같은 것을 만들려면 날실을 구성하는 수백개의 실들 중 수십개를 손으로 고르고 들어올려 만들어야 했다. 이를 돕기 위해 천공카드가 등장. 이러한 부분들을 구멍뚤린 카드인 천공카드를 이용하여 실을 넣고 패턴을 유지했다. 패턴에 맞는 실을 짜려면 천공카드들의 구멍이나 순서가 중요했고 천공카드의 배치나 구멍의 배치가 패턴의 다양화에 따라 발전..
뻘짓 하며 얻은 기본기 6 컴퓨터 언어의 기원프로그래밍 언어란 컴퓨터가 계산할 수 있도록 돕는 언어이다. 위 그림은 자카드식 문직기 라고 한다. 왜 컴퓨터 언어를 설명하는데 제일 먼저 등장하냐 하면 이게 프로그래밍 언어의 기원이라고 한다. 자카드 직기가 무엇이나면 식탁보에 있는 레이스 같은 천을 보면 다양한 패턴이 있다. 이런 패턴을 예전에는 직접 손으로 만들다가 베틀같은 것을 이용하여 제작하였다. 그런데 복잡한 패턴같은 것을 만들려면 날실을 구성하는 수백개의 실들 중 수십개를 손으로 고르고 들어올려 만들어야 했다. 이를 돕기 위해 천공카드가 등장. 이러한 부분들을 구멍뚤린 카드인 천공카드를 이용하여 실을 넣고 패턴을 유지했다. 패턴에 맞는 실을 짜려면 천공카드들의 구멍이나 순서가 중요했고 천공카드의 배치나 구멍의 배치가 패턴의 다양화에 따라 발전..
2023.07.20 -
드디어 뭔가 단어 다운 단어가 등장하였다. 컴파일러(compiler) 번역하면 번역기 혹은 해석기 정도로 되는 단어이시겠다. 저번에 필자가 프로그래머는 결국 인간의 언어를 컴퓨터의 언어로 번역하는 번역가라고 했었다. 물론 인간이 매번 번역을 일일이 하면 좋겠지만 도구를 사용할 줄 아는 만류의 영장 아니겠는가. 그래서 번역기라는 것이 있다. 쉽게말해 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램이다. 그런데 이상하다. 프로그래밍 언어를 짰다면 바로 컴퓨터가 이해하면 되는건데 왜 프로그래밍 언어로 짰는데 왜 또 다른 프로그래밍 언어로 만들어야 하는가? 그 이유는 언어에도 레벨이 있기 때문이다. 쉽게 말해 고급언어(c, c#, java 등)와 저 수준 언어(어셈블리, 기..
뻘짓 하며 얻은 기본기 4 컴파일러에 대해서드디어 뭔가 단어 다운 단어가 등장하였다. 컴파일러(compiler) 번역하면 번역기 혹은 해석기 정도로 되는 단어이시겠다. 저번에 필자가 프로그래머는 결국 인간의 언어를 컴퓨터의 언어로 번역하는 번역가라고 했었다. 물론 인간이 매번 번역을 일일이 하면 좋겠지만 도구를 사용할 줄 아는 만류의 영장 아니겠는가. 그래서 번역기라는 것이 있다. 쉽게말해 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램이다. 그런데 이상하다. 프로그래밍 언어를 짰다면 바로 컴퓨터가 이해하면 되는건데 왜 프로그래밍 언어로 짰는데 왜 또 다른 프로그래밍 언어로 만들어야 하는가? 그 이유는 언어에도 레벨이 있기 때문이다. 쉽게 말해 고급언어(c, c#, java 등)와 저 수준 언어(어셈블리, 기..
2023.07.18 -
함수 듣기만해도 수학의 냄새가 나는가? 함수의 정의부터 한번 읊고 넘어가자. 구글에 함수를 찾아보면 이렇게 나온다. 함수란 어떤 집합의 각 원소를 다른 집합의 유일한 원소에 대응시키는 이항 관계다. 이해 되는가? 벌써 집합, 원소, 이행 관계를 보니 포기하고 싶어지는가? 조금 딴 소리를 하자면 컴퓨터 공부가 이러하다. 언어라는 장르이기 떄문에 한 정의를 공부하다 보면 이처럼 여러 모르는 단어가 또 튀어나온다. 그래서 모르는 단어를 또 찾아들어가야 되는 문제가 있다. 미리 팁을 드리자면 그때마다 모르는 단어를 정리해놓기를 바 란다. 안 그러면 나중에 또 찾아봐야 되는 문제가 종종 발생할 것이다. 전 챕터에서 입력값과 출력값을 배우지 않았던가? 또한 우린 수학을 공부하려는 것이 아니다. 저 위에서 나오는 함..
뻘짓 하며 얻은 기본기 3 함수함수 듣기만해도 수학의 냄새가 나는가? 함수의 정의부터 한번 읊고 넘어가자. 구글에 함수를 찾아보면 이렇게 나온다. 함수란 어떤 집합의 각 원소를 다른 집합의 유일한 원소에 대응시키는 이항 관계다. 이해 되는가? 벌써 집합, 원소, 이행 관계를 보니 포기하고 싶어지는가? 조금 딴 소리를 하자면 컴퓨터 공부가 이러하다. 언어라는 장르이기 떄문에 한 정의를 공부하다 보면 이처럼 여러 모르는 단어가 또 튀어나온다. 그래서 모르는 단어를 또 찾아들어가야 되는 문제가 있다. 미리 팁을 드리자면 그때마다 모르는 단어를 정리해놓기를 바 란다. 안 그러면 나중에 또 찾아봐야 되는 문제가 종종 발생할 것이다. 전 챕터에서 입력값과 출력값을 배우지 않았던가? 또한 우린 수학을 공부하려는 것이 아니다. 저 위에서 나오는 함..
2023.07.14 -
입력과 출력 그것은 무엇인가. 사람들에게 입력과 출력을 물어본다면 다들 쉽게 대답할 것이다. 들어가는 것, 그리고 나오는 것. 이는 모두가 다 아는 사실이다. 그런데 프로그래밍에 가서 입력과 출력을 물어보면 매우 어려운 것이 되는 듯 하다. 우리가 정보라고 말하면 쉬운듯 하지만 데이터라고 말하면 어렵게 느껴지는 것과 같은 것이다. 컴퓨터도 마찬가지다. 우리는 지금도 입력과 출력을 사용한다. 지금 우리에게 데이터를 주고 있는 모니터가 출력이고 여러분이 손으로 붙잡고 있는 마우스가 입력장치이다. 그리고 소리를 내뿜는 스피커가 출력, 글을 쓰는 키보드가 입력. 이쪽 세계에선 들어오는건 입력이고 나오는 건 출력이다. 이게 왜 중요하냐면 결국 컴퓨터는 입력과 출력이고, 프로그래밍도 입력과 출력의 결과이다. 아무리..
뻘짓 하며 얻은 기본기 2 입력 과 출력입력과 출력 그것은 무엇인가. 사람들에게 입력과 출력을 물어본다면 다들 쉽게 대답할 것이다. 들어가는 것, 그리고 나오는 것. 이는 모두가 다 아는 사실이다. 그런데 프로그래밍에 가서 입력과 출력을 물어보면 매우 어려운 것이 되는 듯 하다. 우리가 정보라고 말하면 쉬운듯 하지만 데이터라고 말하면 어렵게 느껴지는 것과 같은 것이다. 컴퓨터도 마찬가지다. 우리는 지금도 입력과 출력을 사용한다. 지금 우리에게 데이터를 주고 있는 모니터가 출력이고 여러분이 손으로 붙잡고 있는 마우스가 입력장치이다. 그리고 소리를 내뿜는 스피커가 출력, 글을 쓰는 키보드가 입력. 이쪽 세계에선 들어오는건 입력이고 나오는 건 출력이다. 이게 왜 중요하냐면 결국 컴퓨터는 입력과 출력이고, 프로그래밍도 입력과 출력의 결과이다. 아무리..
2023.06.15 -
이곳을 만든지 2일차 너무나도 큰 난관에 봉착하였다. 귀찮아졌다. 그래서 빨리 지나가려고 한다. 필자 많은 데이터는 아니지만 냥냥한 양의 데이터를 가지고 있다. 무엇이냐 하면 코딩을 가르쳐 본 경험이다. 그런 소박한 시간동안 느낌점 중에 문과의 심장을 가진 친구들의 가장 큰 실수가 있었다. 바로 공부방법이다. 필자는 다년간의 실패와 좌절을 통해 이과놈들의 머리는 우리같은 감성적인 문과적 심장과 맞지 않다는걸 뼈저리게 깨 닫았다. 그놈들은 자연을 있는 그대로 즐기지 못하고 생물학을 만든 놈들이고, 사과나 맛있게 먹을 것이지 굳이 만유인력 을 깨닫는 것들이다. 필자 아름다운 문과의 심장으로 그들의 학문을 공부하는 터라 정수리 부분이 흰머리 가 바탕인지 검은머리가 바탕인지 모를 지브라의 페러독스에 빠지고 말았..
Dog-Foot part 2 개발의 공부방법이곳을 만든지 2일차 너무나도 큰 난관에 봉착하였다. 귀찮아졌다. 그래서 빨리 지나가려고 한다. 필자 많은 데이터는 아니지만 냥냥한 양의 데이터를 가지고 있다. 무엇이냐 하면 코딩을 가르쳐 본 경험이다. 그런 소박한 시간동안 느낌점 중에 문과의 심장을 가진 친구들의 가장 큰 실수가 있었다. 바로 공부방법이다. 필자는 다년간의 실패와 좌절을 통해 이과놈들의 머리는 우리같은 감성적인 문과적 심장과 맞지 않다는걸 뼈저리게 깨 닫았다. 그놈들은 자연을 있는 그대로 즐기지 못하고 생물학을 만든 놈들이고, 사과나 맛있게 먹을 것이지 굳이 만유인력 을 깨닫는 것들이다. 필자 아름다운 문과의 심장으로 그들의 학문을 공부하는 터라 정수리 부분이 흰머리 가 바탕인지 검은머리가 바탕인지 모를 지브라의 페러독스에 빠지고 말았..
2023.06.15