그 놀라운 이야기들...

살아 숨쉬는 코드들을 만들어 봅니다. 조심하세요. 날아갈 수도 있으니...

삶이 어떻게 더... 완벽해~
반응형

신코더 27

[컴퓨팅개론-003] 디지털이란

1. 디지털이 vs 아날로그 디지털이란 수학적으로는 0과 1의 세계를 말한다. 전자공학에서는 전압 0볼트 와 5볼트를 기준으로 0과 1을 구분한다. 디지털 세계에서는 이 0과 1만 가지고 모든것을 해결해야 한다. 정보를 저장할 때, 전달 할 때, 정보의 흐름을 제어할 때… 디지털 세계의 모든 활동이 이 0과 1로서 이루어 진다. 믿기지 않겠지만 사실이다. 반면 아날로그는 정보의 형태가 연속적이고 무한하다. 아무리 확대해서 그 끝을 보려고 해도 도저히 그 끝을 볼 수가 없다. 아날로그는 정보를 저장하거나 전달하는 과정에서 미디어의 영향을 많이 받는다. 그리고 아날로그는 정보의 흐름을 제어하는 게 쉽지가 않다. 비유를 하자면 디지털은 컨베어 벨트에 하나씩 실려 나오는 박스라면 아날로그는 파이프를 통해 흐르는..

[C언어:초급-015] 제어문 - for

1. for 반복문 제어문들 중 for는 반복문 종류에 속한다. for문 다음에 오는 코드라인 혹은 블럭을 조건에 맞게 반복한다. 사용법은 다음과 같다. for(;;) 반복할 코드라인 혹은 블럭 어떤 절차를 반복하기 위해선 처음엔 작업이 필요하다. 일종의 준비작업이라 하겠다. 그리고 나서 어떤 조건이 충족 될 때까지 반복할 지를 정한다. 이를 이라 한다. 끝으로 매번 반복할 때마다 을 통해 과 관련된 어떤 변화가 필요하다. 그래서 결국에 가서는 반복조건이 충족되어 반복문을 빠져나갈 수 있어야 한다. 그렇지 않으면 반복은 무한루프에 빠져 우주가 멸망할 때까지 멈추지 않게 될 것이다. 다음의 사용예를 보자 for(int idx = 0; idx < 10; idx++) { printf("current index..

[C언어:초급-014] 제어문 - if, else

프로그래밍 언어에서 제어문이란 프로그램의 흐름을 제어하기 위해 사용되어지는 특별한 기능의 키워드를 이용한 명령문을 말한다. 지금까지는 데이터 자체를 다루기 위해 타입과 저장소(변수)등을 다루는 법을 배웠다면 이제 부터는 이 데이터들을 어떤 흐름과 조건에 맞춰 처리할 것인지에 대해서 배울 차례다. 1. if, else if와 else 는 조건문을 다루기 위한 키워드로서 if 다음에 오는 조건문이 참이면 다음에 오는 코드라인이나 코드블럭을 실행하고, 조건문이 거짓이면 else 다음에 오는 코드라인이나 코드 블럭을 실행한다. if ( ) 코드 부분1 [else 코드 부분2] 조건식은 주로 비교 연산자나 논리 연산자의 조합등이 주로 쓰이나 그 외 논리적인 정수값을 리턴하는 함수등도 사용 가능하다. 코드 부분은 ..

카테고리 없음 2022.03.17

[영화리뷰] 해적,도깨비 깃발-캐리비안 해적이 되고 싶었던 조선의 해적

해적,도깨비 깃발 캐리비안 해적이 되고 싶었던 조선의 해적 네플릭스에 올라와서 봤다. 요즘 살면서 웃을 일이 거의 없었는데… 계속 없었다. 코미디로선 실패했다고 본다. 한효주는 예쁘더라. 해적 두목이 그렇게 예뻐도 되는지 그건 잘 모르겠다. 강하늘과 이광수는 좀 오버스러웠다고 느꼈다. 배우의 문제가 아니라 대본의 설정이 그렇기 때문에 어쩔수 없는 연기였다고 본다. 한효주는 찍으면서 고생을 많이 했을것 같다. 강하늘과의 관계는 인간적인 우정이나 썸 정도로 마무리 했으면 하는 아쉬움이 있다. 오히려 권상우의 악역 연기가 신선하게 느껴졌다. CG 퀄리티는 좋았다. "우리도 이정도는 찍는다"라는 걸 보여주고자 했던 거라면 성공한 거다. 다만 펭귄씬은 좀 애니메이션 같은 느낌이였다는 것과 갑판위의 보물들이 어색했..

[영화추천] 오리엔트 특급의 연인들

오리엔트 특급의 연인들 Romance on the orient express 1985년작 이 영화는 오리엔탈 특급 열차를 배경으로 하는 로맨스 영화입니다. 오래된 영화이지만 지금 연인끼리 봐도 좋을 정도의 감성을 가지고 있는 영화입니다. 해피엔딩으로 끝나니 보고나서의 꿉꿉함도 없습니다. 어디선가 많이 들어본 듯한 감미로운 음악들과 유럽 시골의 풍광들이 보는 이의 마음을 아련한 추억으로 젖어들게 합니다. [삽입곡] Goodbye yellow brick road - Elton John Time in a bottle - Jim Croce https://youtu.be/oRjW_qeTU1g 오리엔트 특급의 연인들 죄송합니다. 한글 자막은 없네요.

[컴퓨팅개론-001] 컴퓨터의 기본 구성 요소

개념적인 측면에서 컴퓨터의 기본 구성 요소는 5가지다. 입력장치, 출력장치, 중앙처리장치, 램(RAM), 롬(ROM)이 그것이다. 최소한 이 5가지를 갖춰야 컴퓨터로서 의미있는 기능을 할 수 있다는 얘기다. 또 어떤 이론에서는 입력, 출력, 연산, 제어, 메모리로 구분하는 경우도 있다. 어느 것이 정확한지가 중요한 게 아니라 각각의 요소들이 의하는 게 뭔지 아는 게 중요하다 하겠다. 여기서는 전자의 경우를 기준으로 설명을 한다. 1. 입력장치 컴퓨터를 사용하기 위해서 가장 먼저 해야하는 작업이 입력 작업이다. 입력이란 컴퓨터가 처리하기 위해서 필요한 데이터를 컴퓨터 외부에서 컴퓨터 내부로 전송하는 작업이다. 입력장치가 없다면 컴퓨터로 할 수 있는게 없다는 얘기가 된다. 요즘 일반적으로 쓰이는 가장 기본적..

[C언어:초급-012] 배열과 포인터

우리는 앞에서 배열을 배웠었다. 포인터도 배웠다. 오늘은 배열과 포인터의 상관관계에 대해서 알아볼 것이다. 조금 어려울 수도 있을 것이다. 그렇더라도 한 번 읽고 지나가면 다음에 진행될 문자열 조작 부분을 이해하는데 도움이 될것이다. 1. 배열변수는 포인터다. 모든 곳에서 정확한 표현은 아니지만 C에서 만큼은 맞는 말이다. 아래와 같은 경우 int (4바이트) 크기의 메모리를 5개, 즉 20바이트 만큼의 메모리를 확보해 4바이트 단위로 숫자를 채운 것이다. int score[5] = {10, 20, 30, 40, 50}; 여기서 배열변수 score는 자기가 확보한 메모리의 시작점을 담고있는 포인터인 것이다. 그러므로 배열변수 int score[] 는 int* score 와 같은 의미인 것이다. 다음의 예..

[C언어:초급-011] 문자열

1. 문자열 타입? 많은 분들이 의아해 할지 모르지만, C 에는 문자열 타입이란 없다. C 에서 타입이라고 하면 정수, 실수, 포인터, 구조체 정도만 있을 뿐이다. 그럼 문자열은 어떻게 처리를 해야할까? 그 방법을 알아보도록 하자. 2. 문자열 구조 우리는 상수 강좌에서 문자열 상수의 표현법을 배웠었다. 그러나 실질적으로 사용되는 문자열의 메모리 구조는 다음과 같다. "Hello" => [H] [e] [l] [l] [o] [0] // 마지막 숫자 ‘0’은 문자열의 끝을 알려주는 표시. 문자열 종결자. 그러므로 어떤 문자열을 사용하기 위해서는 메모리 상에 그 ‘문자열의 길이’ + 1 개의 바이트 더 필요하다. 만약에 마지막 바이트에 ‘0’ 숫자가 없다면 컴퓨터는 문자열이 다음의 ‘0’ 숫자가 나올 때까지 ..

[C언어:초급-010] 포인터 기초

1. 변수의 포인트(주소) 알아내기 C언어의 가장 큰 특징이자, 장점이자, 단점인 포인터에 대해서 알아보자. 포인터(Porinter)란 말 그대로 풀이하면 ‘지정자’가 될 것이다. 요즘 흔히들 많이 쓰는 레이저 포인터를 생각하면 이해가 될 것이다. 풀어 애기하자면 컴퓨터 메모리 상의 특정 위치를 가리키는 변수가 바로 포인터이다. 아래는 정수형 변수의 포인트 값(메모리상의 주소)을 포인터에 저장하는 예이다. int num = 10; // [0][0][0][10] : 4바이트 정수형 변수 int* ptr = &num; // ^ 의 주소를 포인터(ptr)에 저장 먼저 'num' 이라는 변수에 10이라는 수를 저장한다. ‘num’ 이라는 정수형 변수는 곧 4바이트 크기를 가진 저장공간(메모리)이다. 이 저장 공..

[개발상식] 개발과 관련된 파일 형식들…

1. 소스 파일(.c, .cpp, .java) 소스 파일은 각 프로그래밍 언어의 문법과 형식을 따르는 코드들이 텍스트 방식으로 쓰여진 파일이다. 이 자체로 실행 될 수 있는 파일은 아니고, 컴파일과 링크라는 과정을 거쳐야 각 운영체제에서 실행할 수 있는 바이너리 실행파일이 되는 것이다. 프로그램이 빌드되고 실행파일이 만들어지기 위해서는 최소한 1개의 소스파일이 존재해야한다. 그러다 구현되는 함수들이 늘어나고 프로그램 규모가 커지면 소스파일들의 수도 늘어나게 된다. 이 때 구현된 함수들의 특성별로 각각의 소스파일에 나누어 담게 된다. 2. 헤더파일(.h, .hpp) 개발 초기애는 소스파일들만 가지고도 개발이 가능할 수도 있다. 그러나 개발 규모가 너무 커지게 되면 하나의 함수를 여러 모듈들이 공유해야하는 ..