본문 바로가기

전체 글

과학 공부의 기초 : 통제변인과 조작변인 이번 포스팅에서는 과학적으로 문제를 해결하는데 있어서 기본이 되는 개념들인 통제변인 (controlled variable)과 조작변인 (manipulated variable)에 대해서 알아봅시다. 이들을 명확히 하는 것은 교양과학 뿐만 아니라 학술논문 레벨에 있어서도 매우 중요합니다. 실험을 설계하는데 있어서 일정하게 유지되는 변수를 통제변인이라고 하는 반면, 값을 바꾸는 변수를 조작변인이라고 합니다. 물론 조작변인의 값에 따라 실험결과가 달라질텐데요. 조작변인에 따라 결과값이 달라지는 변수를 두고 종속변인 (dependent variable)이라고 합니다. 통제변인과 조작변인은 우리가 풀고자 하는 문제 또는 증명하고자 하는 명제에 따라서 달라지게 됩니다. 예컨대 민물 혹은 담수는 온도가 영하로 내려갔을.. 더보기
C언어 프로그래밍 기초 : 포인터 여기서는 C언어와 C++가 다른 프로그래밍 언어와 차별화되는 요소 중 하나인 포인터 (pointer)에 대해서 알아봅시다. 포인터의 기본 개념과 함께 일반적인 데이터를 저장하는 변수들과의 상관관계에 대해서도 짚어보겠습니다. 포인터에 대해서 간단히 말하자면, 메모리 상에서 변수의 주소를 저장하는 자료형이라고 할 수 있는데요. 따라서 이미 선언된 변수의 주소를 알아낸 뒤, 이를 또 다른 포인터 변수에 저장하는 것이 가능합니다. 포인터를 선언할 때는 변수 이름 앞에 * 기호를 붙이고, 변수의 주소를 얻기 위해서는 이름 앞에 & 기호를 붙이면 되겠습니다. /* 정수형 변수 a를 선언하고 * 그 값을 3으로 정의 */ int a = 3; /* 정수형 변수의 주소를 저장하는 * 포인터 변수 */ int *ptr_a.. 더보기
물리학 상식 : 강체의 회전과 관성 모멘트 여기서는 단단한 물체인 강체 (rigid body)의 회전으로 인해 발생하는 각운동량과 운동에너지를 계산하는 방법에 대해서 알아봅시다. 그 과정에서 관성 모멘트 (moment of inertia)라는 것을 정의하고, 물체의 각속도와 각운동량 및 운동에너지가 어떻게 연결되는지 살펴보겠습니다. 이번 포스팅에서 다루는 내용을 이해하기 위해서는 각운동량 (angular momentum)이라는 물리량에 대해 먼저 알아둘 필요가 있는데요. 물체의 회전이나 공전운동의 임팩트를 수치화하는 개념인 각운동량의 정의와 특징에 대해서는 다음 포스팅에 더 자세한 내용이 소개되어 있습니다. 물리학 상식 : 에너지, 운동량과 각운동량 여기서는 물체의 운동을 수치화하는데 있어서 중요한 물리량들인 에너지 (energy), 운동량 (m.. 더보기
이 블로그 주소를 검색해서 들어오는 유입? 애드센스를 달고 블로그를 운영하다보니까 별 희안한 일을 다 겪습니다. 다들 뭐가 그리 아니꼬운지 일 방문자 50명도 안되는 블로그에 무효클릭 공격이 들어오는건 예삿일이고, 이제는 제 닉네임이랑 티스토리 주소를 검색창에 넣고 들어오는 사람도 있네요. 굳이 아이스 브레이킹 할 생각은 없고, 바로 본론으로 들어갑시다. 제가 이런걸 가지고 포스팅을 하는 이유는 매우 이상해 보이기 때문입니다. 정확히 말하자면 그 동기를 가늠하기가 어렵다고나 할까요. 문제를 해결하거나 궁금한 것을 찾아보기 위한 일반적인 검색 패턴에서 벗어나 있는 겁니다. 유입경로를 살펴보면, 제 블로그 메인 페이지로 직접적인 유입이 두 번 있었습니다. 첫번째와 두번째의 IP가 다르지만, 그래봤자 같은 기기로 접속한거라서 셋트로 나옵니다. 두번째 .. 더보기
C언어 프로그래밍 기초 : 반복문 (for, while) 여기서는 C언어나 C++ 프로그램을 작성할 때 특정한 구문들을 반복해서 실행하는 반복문 (loop)에 대해서 알아봅시다. 반복문의 종류와 더불어 반복을 위한 조건을 설정하는 방법에 대해서도 살펴보겠습니다. 반복문은 복잡한 기능을 구현하기 위한 필수요소인 만큼, 프로그래밍에서의 반복문은 매우 중요한 개념입니다. 특정 구문을 계속해서 반복실행할지, 중지시킬지 여부를 결정하기 위해 조건문과 관계연산자가 사용됩니다. 만약 이들이 생소하게 느껴지시는 분들은 시작하기에 앞서서 다음 포스팅을 읽어보시면 큰 도움이 되리라 생각합니다. C언어 프로그래밍 기초 : 조건문과 관계 연산자 여기서는 C언어 또는 C++ 프로그램의 특정 연산문을 실행하기 위한 조건을 설정하는 방법과, 이를 위해 필요한 관계 연산자 (relatio.. 더보기
수학 상식 : 행렬의 고유값과 고유벡터 이번 포스팅에서는 정사각행렬의 고유값 (eigenvalue)과 고유벡터 (eigenvector) 문제에 대해서 다뤄보겠습니다. 고유값과 고유벡터의 정의와 더불어, 행렬이 대칭성을 갖는 경우에 이들이 어떤 특징을 가지는지에 대해서도 살펴봅시다. 물리학에서 고유값 문제가 등장하는 예시에 대해서도 소개하겠습니다. 행렬의 고유값 문제는 행렬의 곱셈 연산을 포함하고 있습니다. 더 정확히 말하자면 정사각행렬과 하나의 열로 이루어진 행렬의 곱셈이 등장하죠. 행렬의 곱셈이 정의되기 위한 조건과, 이를 계산하는 방법에 대한 더 자세한 내용은 다음 포스팅에 소개되어 있습니다. 수학 상식 : 행렬 (matrix)의 덧셈과 곱셈 이번 포스팅에서는 수학 및 과학 분야에서 널리 쓰이는 개념인 행렬의 연산에 대한 기본적인 내용을 .. 더보기
C언어 프로그래밍 기초 : 조건문과 관계 연산자 여기서는 C언어 또는 C++ 프로그램의 특정 연산문을 실행하기 위한 조건을 설정하는 방법과, 이를 위해 필요한 관계 연산자 (relational operator)에 대해서 알아봅시다. 특정한 조건이 만족되면 실행되는 조건문은 복잡하고 다양한 기능을 구현하기 위해 필수적입니다. 관계 연산자는 대상이 되는 두 개의 변수에 저장된 값들을 비교하는 과정을 포함하고 있습니다. 따라서 변수와 자료형의 개념에 대해서 먼저 익숙해질 필요가 있는데요. 여기에 대한 더 자세한 내용은 다음 포스팅에 소개되어 있습니다. C언어 프로그래밍 기초 : 변수와 자료형 여기서는 C언어로 프로그램을 작성하는데 있어서 가장 기본적인 요소들 중 하나라고 할 수 있는 변수 (variable)에 대해서 알아봅시다. 변수들의 종류를 지정하기 위.. 더보기
C언어 프로그래밍 기초 : 함수와 라이브러리 이번 포스팅에서는 C언어 혹은 C++를 이용해서 복잡하면서도 규모가 큰 프로그램을 작성하는데 필수적인 요소인 함수 (function)와 라이브러리 (library)에 대해서 알아봅시다. 함수를 정의하고 호출하기 위한 방법과 함께, 라이브러리가 어떻게 구성되어 있는지도 짚어보겠습니다. 함수를 정의하고 사용하기 위해서는 함수가 어떤 형태의 데이터를 받아들이고 돌려주는지를 명확히 해야 합니다. 이를 위해서 매개변수와 리턴값의 자료형을 지정하게 되는데요. C언어나 C++ 프로그램에 등장하는 변수들의 여러가지 자료형의 특징에 대해서는 다음 포스팅에 더 자세하게 소개되어 있습니다. C언어 프로그래밍 기초 : 변수와 자료형 여기서는 C언어로 프로그램을 작성하는데 있어서 가장 기본적인 요소들 중 하나라고 할 수 있는 .. 더보기
C언어 프로그래밍 기초 : 연산문과 사칙연산 이번 포스팅에서는 C언어 또는 C++ 프로그램에 등장하는 변수들의 값을 바꾸기 위한 연산문들에 대해 알아봅시다. 여러 개의 연산문들을 순차적으로 실행함으로써, 궁극적으로는 원하는 기능을 구현하게 됩니다. 따라서 사칙연산을 포함한 여러가지 연산자들에 대해 친숙해지는 것은 프로그램을 작성하는 데 있어서 매우 중요하다고 볼 수 있습니다. 변수들을 C언어 프로그램에서 사용하기 위해서는 선언문을 통해서 이들의 존재를 먼저 알려야 합니다. 여러가지 자료형을 통해 다양한 형태의 데이터를 나타내는 변수들을 선언하는 방법에 대해서는 다음 포스팅에 더 자세한 내용이 소개되어 있습니다. 변수와 자료형의 개념이 생소하게 느껴지시는 분들에게 큰 도움이 되리라 생각합니다. C언어 프로그래밍 기초 : 변수와 자료형 여기서는 C언어.. 더보기
C언어 프로그래밍 기초 : 변수와 자료형 여기서는 C언어로 프로그램을 작성하는데 있어서 가장 기본적인 요소들 중 하나라고 할 수 있는 변수 (variable)에 대해서 알아봅시다. 변수들의 종류를 지정하기 위한 다양한 자료형 (data type)들이 어떤 특징을 가지고 있는지에 대해서도 살펴보겠습니다. 이번 포스팅에서는 C언어 프로그램에 대해서 이야기합니다만, 여기서 다루는 내용들은 C++ 프로그램에서도 대부분 적용할 수 있습니다. 변수의 선언 컴퓨터 프로그램의 변수에 대해서 간단히 말하자면 데이터를 저장하기 위한 공간이라고 할 수 있습니다. 프로그램에서 사용하는 변수들은 메모리 혹은 RAM이라고도 부르는 주기억장치에서 할당받은 공간을 차지하게 됩니다. 그리고 프로그램 내의 여러 명령문에 따라서 변수들의 값이 달라지게 되죠. 다만 프로그램이 종.. 더보기