본문 바로가기

2021/08

물리학 상식 : 양자 터널링 효과 이번에는 양자역학의 파동-입자 이중성으로부터 파생되는 중요한 현상 중의 하나인 터널링 (quantum tunneling) 효과에 대해 알아봅시다. 고전역학 또는 뉴턴역학으로는 설명할 수 없기 때문에, 일상적인 직관을 거스르는 현상 중의 하나인데요. 물질파를 기술하는 슈뢰딩거의 파동방정식에 입각해서, 입자의 운동에너지를 상회하는 위치에너지를 가진 장벽을 넘나드는 터널링 효과에 대해 살펴보겠습니다. 슈뢰딩거 방정식이라는 것을 앞서 언급했었는데, 이는 입자의 파동적 성질을 나타내는 물질파의 파동함수가 시간에 따라 어떻게 변화하는지를 알아내기 위한 방정식입니다. 파동-입자 이중성의 개념이나 파동방정식이 생소하게 느껴지는 분들은 시작하기에 앞서서 다음 포스팅을 읽어보시면 큰 도움이 되리라 생각합니다. 물리학 상식.. 더보기
가상현실 이야기 - 메타버스와 멀티버스 메타버스란 계속해서 유지되는 통합 가상공간으로서, 인터넷을 통해 접속한 사람들이 각자의 캐릭터나 아바타를 조종하면서 3D로 구현된 단일한 가상공간 내에서 다른 사람들과 의사소통을 할 수 있다는 특징이 있습니다. 메타버스 (metaverse)라는 이름은 뭔가가 변형되었다는 의미의 meta 에다가, 우주를 뜻하는 universe의 verse를 떼서 붙인 합성어가 되겠습니다. 상당수의 MMORPG (Massive Multiplayer Online Role-Playing Game) 역시 메타버스의 몇 가지 특징을 가지고 있습니다. 다만 여기서 플레이어들이 접속하고 활동하는 가상공간은 멀티버스 (multiverse)라고 불리며 메타버스와는 다른 개념인데요. 메타버스와의 중요한 차이점 중의 하나는 접속한 모든 플레.. 더보기
비주얼 스튜디오 C/C++ 라이브러리 만들기 이번 포스팅에서는 마이크로소프트 비주얼 스튜디오에서 C언어 또는 C++ 라이브러리를 제작하고 사용하는 법에 대해 알아봅시다. 라이브러리는 정적 (static) 라이브러리와 동적 (dynamic) 라이브러리가 있는데요. 정적 라이브러리는 실행 파일에 함수들의 정보가 모두 들어가는 반면에, 동적 라이브러리는 프로그램이 실행되는 시점에 소환된다는 차이점이 있습니다. 비주얼 스튜디오에서는 별도의 프로젝트 유형을 선택하여 이러한 라이브러리들을 만들고 사용할 수 있습니다. 여기서는 비주얼 스튜디오 커뮤니티 2019 버전을 기준으로 이야기하며, 소스 코드로부터 프로그램을 만드는것과 관련된 기본적인 내용들은 다음 포스팅에 소개되어 있습니다. 비주얼 스튜디오 C/C++ 콘솔 프로그램 만들기 여기서는 마이크로소프트의 통합.. 더보기
비주얼 스튜디오 C/C++ 콘솔 프로그램 만들기 여기서는 마이크로소프트의 통합 개발환경인 비주얼 스튜디오를 이용해서, C언어 또는 C++ 콘솔 프로그램을 만드는 법에 대해서 알아봅시다. 콘솔 프로그램이란 문자만으로 이루어진 인터페이스를 가진 프로그램으로, 터미널을 열어서 명령 프롬프트 등을 통해 실행하는 것이 한 예시가 될 수 있습니다. 참고로 이 포스팅은 비주얼 스튜디오 커뮤니티 2019를 기준으로 작성되었습니다. 요즘 세상에 누가 콘솔 프로그램을 쓸까 싶을 수 있는데요. 수학이나 과학 문제를 수치적으로 푸는 프로그램같이 계산결과를 파일에 저장한 뒤, 이를 시각화하는 것은 별도의 프로그램에게 맡기는 경우라면 콘솔 어플리케이션도 나쁘지 않은 선택입니다. 그래서 저도 개인적으로 이러한 용도의 비주얼 스튜디오 콘솔 프로그램을 많이 작성했었습니다. 뿐만 아.. 더보기
구글 드라이브를 이용한 자료 공유 블로그를 운영하다보면 별도의 자료를 링크해서 공유하는 것이 유용할 때가 있습니다. 대표적인 예시로 이미지 파일 등을 공유하고 싶을때가 있는데요. 포스팅 본문에 넣기에는 용량이 커서 로딩 속도를 떨어트릴 수 있으므로, 클라우드 스토리지를 이용하는것도 나쁘지 않습니다. 여기서는 쉽게 사용할 수 있는 구글 드라이브를 이용해서 자료를 공유하는 방법에 대해 간단히 짚어보겠습니다. 당연한 얘기지만 일단 구글 계정이 있어야 합니다. gmail을 사용하고 있는 경우 동일한 계정으로 드라이브도 사용할 수 있으며, 15 기가바이트의 저장공간이 무료로 주어집니다. 주의할 점은 gmail, 구글 드라이브, 구글 포토등의 모든 서비스를 통틀어서 15 기가바이트를 제공한다는 것인데요. 이말인즉슨 드라이브에 대용량 파일들을 지나치.. 더보기
수학 상식 : 미분과 적분 이해하기 이번 포스팅에서는 고등학교 수학의 종착역이자 고급 수학의 출발점이라고 할 수 있는 미분과 적분에 대해 알아보도록 합시다. 미분과 적분의 기본 개념뿐만 아니라, 미분방정식이나 적분변환 등의 확장된 개념들에 대해서도 짚어보도록 하겠습니다. 미분 개념 미분 (derivative)은 주어진 함수가 매개변수 또는 인자의 값에 따라 얼마나 빠르게 변화하는지를 수치화한 것입니다. 다시 말해서 인자의 값을 아주 약간 바꿨을 때, 함수의 값이 변하는 비율을 나타낸 것인데요. 기하학적으로 보면, 이는 함수를 그래프로 그렸을 때의 기울기에 해당합니다. 미분으로 주어진 함수를 도함수라는 명칭으로 부르기도 합니다. 예컨대 매개변수 x 에 대한 함수 f(x) 를 x에 대해 미분하여 얻은 함수를 f의 도함수라고 부르고, df/dx.. 더보기
물리학 상식 : 방사성 붕괴 여기서는 방사성 동위 원소들의 붕괴 (radioactive decay)가 어떻게 일어나는지에 대해 한번 짚어보겠습니다. 더 안정적인 입자들로 쪼개지는 경향을 가진 방사성 동위 원소들의 갯수가 시간에 따라 어떻게 변하는지를 알아봅시다. 그리고 반감기 (half-life)라는 개념이 어떻게 등장하는지도 한번 살펴보겠습니다. 방사성 붕괴가 일어나는 것은 양자역학의 시간-에너지 불확정성과 밀접한 관련이 있습니다. 이는 입자가 파동의 성질을 가진다는 점으로부터 도출해낼 수 있는 결과 중의 하나인데요. 파동-입자 이중성과 불확정성 원리에 대해 더 자세한 내용이 궁금하시다면, 다음 포스팅을 한번 읽어보시기를 권장합니다. 물리학 상식 : 파동-입자 이중성 이번 포스팅에서는 양자역학에서 언급되는 물질과 파동의 이중성 (.. 더보기
미국 스타벅스 앱을 이용한 원격 주문 미국에서 제가 요즘 자주 사용하는 스타벅스 (Starbucks) 앱에 대해서 간략히 써 볼까 합니다. 각종 음료와 샌드위치 등을 스마트폰 앱을 통해서 주문하고, 매장에 가서 픽업할 수 있는데요. 요즘 시국에 이렇게 비대면 주문이 가능하다는 건 상당히 좋은 점이죠. 미국에서 오래 체류하면서 스타벅스에 자주 방문하시는 분이라면, 앱을 이용하면 확실히 편리합니다. 스타벅스 웹사이트와 스마트폰 앱 사이의 연계가 잘 되어있는 편입니다. 웹사이트를 통해서 회원가입을 하면, 그 계정으로 앱에서 로그인을 하고 원격 주문이 가능하며, 포인트도 적립할 수 있습니다. 미국에 처음 도착해서 아직 회원이 아닌 경우 공식 웹사이트에서 가입을 할 수 있습니다. https://www.starbucks.com/ 이름과 이메일, 전화번.. 더보기
수학 상식 : 테일러 급수 전개 여기서는 함수의 특징을 이해하거나, 여러 수학 및 과학 문제들을 근사적으로 푸는 데 도움이 되는 테일러 급수 전개 (Taylor series expansion)에 대해 알아봅시다. 주어진 함수를 무한한 차수의 다항식으로 전개하는 것으로서, 이 개념을 처음 도입한 수학자 브룩 테일러 (Brook Taylor)에게서 그 이름을 따왔습니다. 테일러 급수 전개는 함수의 미분과 밀접한 관련이 있습니다. 함수의 변화율을 구하는 미분의 개념이 낮설게 느껴지거나 더 자세한 내용이 궁금하신 분들은, 시작하기에 앞서서 다음 포스팅을 읽어보시면 큰 도움이 되리라 생각합니다. 수학 상식 : 미분과 적분 이해하기 이번 포스팅에서는 고등학교 수학의 종착역이자 고급 수학의 출발점이라고 할 수 있는 미분과 적분에 대해 알아보도록 합.. 더보기
C++ 동적 메모리 할당 (new, delete 키워드) 여기서는 new 및 delete 키워드를 통해 C++ 프로그램에서 메모리 공간을 동적으로 할당받고 해제하는 방법에 대해서 짚어보겠습니다. 보통 변수나 객체를 소스 코드 내에서 선언하게 되면, 선언한 시점부터 함수나 코드블록 등이 끝날 때 까지 메모리 공간을 점유하게 됩니다. 메모리를 절약해야 하는 상황이라면, 동적 메모리 할당을 통해 한 개 또는 여러개의 변수나 객채를 위한 메모리 공간을 필요할 때만 할당받아 사용하는 것이 좋은 방법입니다. 1개의 변수나 객체를 생성하기 위해서는, 포인터 변수를 선언하고 new 키워드 뒤에 자료형이나 클래스의 이름을 붙여주면 되겠습니다. 할당받았던 메모리 공간을 해제하기 위해서는 delete 키워드를 사용하면 되는데요. delete 키워드 뒤에 할당받았던 공간을 가리키는.. 더보기