카테고리 보관물: Uncategorized

GPU를 이용한 병렬 처리/전산 유체 역학 시뮬레이션 성능 향상

본 연구실에서는 파동 전파 모델링을 위해 병렬 프로그래밍을 사용하고 있습니다. 최근 GPU 성능 향상에 따라 GPU를 이용한 파동 전파 모델링과 완전 파형 역산도 진행하고 있습니다. 그동안 진행해 왔던 GPU 관련 과제들은 다음과 같습니다.

  • 2014-2019 자원개발특성화대학사업 – 산학협력 연구단 석유가스 물리탐사
  • 2015-2016 한국지질자원연구원 – GPU를 이용한 파동 전파 모델링 기술 개발, GPU를 이용한 속도 모델링 기술 개발
  • 2016 부산과학기술기획평가원 – 범용 그래픽 처리장치와 OpenACC를 이용한 병렬 컴퓨팅 성능 향상
  • 2017-2019 한국지질자원연구원 – 다중 GPU 기반 고성능 역시간 구조보정 성능 비교 연구
  • 2019-2020 국방과학연구소 – 저주파 수중음향 전달특성 및 고속화 성능 분석

병렬 프로그래밍 기술은 탄성파 탐사 분야 뿐 아니라 물리학, 기계, 조선이나 화학 공학의 전산 유체 시뮬레이션 분야에서도 중요하게 사용되는 기술입니다. 특히 GPU 계산은 CPU를 이용한 계산보다 빠르고 효율적이기 때문에 대학/연구소/기업 등에서 연산 성능 향상 및 비용 절감을 위해 수요가 점점 증가하고 있습니다. 그러나 안타깝게도 부산 지역에 GPU 프로그래밍을 하는 사람이 많지 않기 때문에 GPU 병렬 프로그래밍 도입에 어려움을 겪는 사례들이 있습니다.

올해 여름에 부산대학교 조선해양공학과 교수님으로부터 쇄빙선에 가해지는 빙하중을 시뮬레이션하는 프로그램을 GPU에서 빠르게 돌아가도록 만들어달라는 제안을 받고 방학 기간 동안 작업을 진행했습니다. 부산대에서 OpenMP와 MPI를 이용해 클러스터 컴퓨터에서 돌아가도록 개발한 프로그램을 자체적으로 GPU용으로 바꿨는데 성능이 안 나와서 본 연구실에서 GPU 프로그램의 성능을 향상시키는 작업을 수행했습니다. 그 결과 클러스터 컴퓨터에서 CPU 56 코어를 사용해 8시간 30분 정도 걸리던 벤치마킹 모델 시뮬레이션 작업이 GPU 최적화를 통해 Nvidia Tesla V100 GPU 카드 한 장을 사용했을 때 30분 정도로 단축되었습니다. 여러 장의 GPU를 사용할 수 있도록 개선하여 GPU 카드 네 장을 사용하면 10분 정도에 결과를 얻을 수 있습니다. 해당 연구는 최근 대한조선학회에 발표했습니다.

현재 대학원 수업에서 병렬 프로그래밍을 다루기는 하지만 컴퓨터 관련 학과가 아니다보니 GPU 성능 최적화에 대해 깊이 다루지는 않습니다. 평소 컴퓨터와 프로그래밍에 관심이 있고 고성능 병렬 프로그래밍에 대해 배우고 싶다면, 본 연구실에 들어와서 병렬 연산 쪽으로 연구하는 것도 좋겠네요. 병렬 프로그래밍에서 주로 다루는 언어는 Fortran/C/C++/CUDA 이니 해당 언어 사용 경험이 있다면 더 좋습니다.

Tip: 리눅스 환경(Centos 7)에서 SSH Terminal + Docker + Jupyter Notebook을 이용한 Tensorflow GPU 버전 사용

리눅스 환경(Centos 7 기준)에서 Nvidia Docker를 이용하여 Tensorflow GPU 버전을 사용하는 방법에 대해 알아보겠습니다.

먼저 리눅스 환경에서 Docker를 설치합니다.
Docker 설치 방법은 아래 링크를 참고해주세요.
https://github.com/NVIDIA/nvidia-docker
https://docs.docker.com/install/linux/docker-ce/centos/

Docker 설치 후 일반 계정에서 Docker를 사용할 수 있도록 권한을 부여해줍니다.
root 계정으로 로그인 한 다음, shell에서 usermod -aG docker <id> 를 입력해줍니다.
입력 후 다시 로그인합니다.

Nvidia Docker를 사용하면 CUDA, CUDNN 등 CUDA 프로그래밍에 필요한 파일들을 설치하지 않아도 됩니다. Graphic Driver만 설치되어 있으면 사용이 가능합니다.
shell에서 nvidia-smi 명령어를 사용하여 Graphic Driver가 설치되어있는지 확인합니다.
만약 드라이버가 설치되어 있지 않다면 설치합니다.
https://www.nvidia.com/Download/index.aspx

드라이버가 설치되었으면, Nvidia tensorflow gpu 버전 docker 이미지를 다운받습니다.
docker pull 명령어를 통해 docker image를 다운받는데, 이 때 다양한 태그를 통해 여러 버전의 이미지를 받을 수 있습니다.
(참고 : https://www.tensorflow.org/install/docker )
이번에는 Tensorflow GPU, Python3, Jupyter notebook 환경을 사용할 것이기 때문에, 아래와 같이 shell에 명령어를 입력합니다.
docker pull tensorflow/tensorflow:latest-gpu-py3-jupyter

다운로드가 완료됐으면 docker images 명령어를 통해 이미지를 확인해줍니다.

그 다음 docker container를 만듭니다. container를 만드는 명령어는 다음과 같습니다.

docker run –runtime=nvidia –name=<name> -v </home/ID/directory:/directory -it –entrypoint=bash -p 8888:8888 -p 6006:6006 tensorflow/tensorflow:latest-gpu-py3-jupyter

위의 명령어를 실행하기 전에 위에서 사용된 docker 명령어에 대해 알아봅시다.
1) –name=<name> 도커 컨테이너의 이름을 지정해주는 명령어입니다. 컨테이너를 다시 시작할 때, 복잡한 컨테이너 ID를 사용하기 번거로우므로, 별명을 지정해줘서 사용하기 편하게 해줍니다. <name> 부분에 본인이 원하는 이름을 적어주면 됩니다.

2) -v 호스트의 디렉토리를 도커 컨테이너에 마운트 하는 명령어입니다. 호스트에 있는 파일을 작업하기 편하도록 마운트 해줍니다. 마운트하기 원하는 디렉토리의 주소(pwd 명령어로 확인)를 </home/ID/directory:/directory> 형식으로 입력합니다.

3) -it 명령어로 shell에 입출력이 가능해집니다.

4) –entrypoint=bash 컨테이너 시작시에 수행할 명령어입니다. 위의 예시의 경우 Jupyter notebook이 자동으로 실행되지 않게 하기 위해 입력한 것입니다.

5) -p 8888:8888 -p 6006:6006 Jupyter notebook (8888)과 tensorboard (6006)를 사용하기 위해 포트 설정을 해주는 옵션입니다.

사용 예시) 만약, test라는 계정의 works 디렉토리를 컨테이너에 works 디렉토리로 만들고 컨테이너 이름을 hello로 만들고 싶다면, 다음과 같이 입력하면 됩니다. (v, it, p 앞에는 – 1개, runtime, name, entrypoint 앞에는 – 2개)
docker run –runtime=nvidia –name=hello -v /home/test/works:/works -it –entrypoint=bash -p 8888:8888 -p 6006:6006 tensorflow/tensorflow:latest-gpu-py3-jupyter

성공적으로 컨테이너가 만들어 졌다면 아래와 같은 화면이 출력됩니다.

호스트의 디렉토리가 마운트 된 것도 확인할 수 있습니다.

이어서 사용환경 setting에 대해 알아보겠습니다.
nvidia docker 이미지는 ubuntu os가 설치되어 있습니다. 하지만 기본적인 프로그램 설치가 되어있지 않기 때문에 필요한 프로그램을 설치해줍니다.
저는 우선 vim 편집기를 설치했습니다
shell에 apt-get install vim 입력하고 설치합니다.

그 다음 jupyter notebook을 실행합니다.
그러면 아래와 같은 에러 메시지가 출력됩니다.

해당 에러를 해결하기 위해, jupyter notebook configuration 파일을 생성해줍니다.
shell에 jupyter notebook –generate-config 명령어를 입력합니다. (generate 앞에 – 2개, config 앞에 – 1개)

그 다음 vim 편집기를 이용해 config 파일을 수정해줍니다.
shell에 vi /root/.jupyter/jupyter_notebook_config.py 를 입력해줍니다.

vim 편집기 에서 / 를 사용하여 notebook_dir, NotebookApp.ip, NotebookApp.port, allow_root, 를 각각 검색합니다.
notebook_dir는 노트북 시작시 홈 디렉토리를 설정하는 파라미터입니다. 마운트 한 디렉토리로 바꾸는것이 사용에 편리할 것입니다.
ip 는 ‘0.0.0.0’ 으로 수정합니다.
port 는 8888로 수정합니다.
allow_root는 True로 바꿔줍니다.

(수정할 때 앞의 주석처리 #을 지워주는것을 잊지 마세요!)

위와 같이 수정했다면 :wq 를 입력하여 수정한 파일을 저장합니다. 그 다음 다시 jupyter notebook을 실행합니다.

이렇게 된 상태에서 터미널을 하나 더 실행하여 host 계정으로 접속합니다. host에서 웹 브라우저를 실행합니다. 저는 firefox를 사용하겠습니다.

웹브라우저 주소창에 127.0.0.1:8888 을 입력합니다.

아래와 같은 창이 뜨면, 도커 컨테이너에서 token 값을 복사하여 입력합니다.
그리고 필요에 따라 password를 설정해서 사용할 수 있습니다.

토큰을 입력하면 다음과 같이 실행됨을 알 수 있습니다.

수고하셨습니다. 연구에 도움이 되길 바랍니다.

책: 국가란 무엇인가(유시민 작가)

“국가란 무엇인가”라는 다소 식상하고 지루할 수 있는 주제를 유시민 작가만의 독특한 화법으로 이해하기 쉽게 설명해줍니다. 앞 장에서는 ‘국가란 무엇인가’ , ‘누가 다스려야 하는가’ 라는 주제로 동서고금 철학자들의 생각을 시대순으로 언급하면서 국가관의 발전상을 보여주었고, 제 5장 ‘애국심은 고귀한 감정인가’ 라는 의문사 형태로 질문하면서 애국심이란 국가라는 특수한 집단에 의해 생겨난 상호 배타적인 감정이라고 말합니다. 그런 다음, 제 6장 ‘혁명이냐 개량이냐’에서는 혁명은 개량의 길이 봉쇄되었을 때 즉, 점진적 공학이 더 이상 소용이 없을 때 일어난다고 하였으며 제 7장 ‘진보정치란 무엇인가’에서부터 작가가 원하는 정의로운 국가의 모습이 어떠한 형태인지 나타나게 됩니다. 마지막 장에는 우리나라 정치와 국가 방향에 대한 솔직한 생각을 피력하면서 마무리합니다.

작가가 꿈꾸는 훌륭한 국가는 고대 그리스 목적론적 국가론처럼 사람들 사이에 정의를 실현하는 국가라고 합니다. 국민 한 사람 한 사람을 수단이 아니라 목적으로 대하고(칸트의 도덕법), 국민을 인간으로 존중하고 책임지고 보호해주는 그런 국가(진보자유주의, 복지국가)를 말합니다. 그는 촛불집회를 보면서 “이게 나라냐” , “이것이 국가란 말인가?”라는 구호를 듣게 되었고 2011년에 출판한 이 책이 개정신판으로 다시 세상에 나오게 되었습니다.

저는 아직까지 모두가 훌륭하다고 할 수 있는 그런 국가를 경험해보지 못 한 것 같습니다. 그러나 불행 중 다행인 점은 우리나라는 악을 최소화할 수 있는 제도가 있는 민주주의 사회에 살고 있으며 모든 시민들이 국정에 관심을 가지고 훌륭한 국가를 만들려고 노력한다면 마냥 불가능한 이야기는 아닐 것이라고 생각합니다.

‘국가’라는 정의는 다양하고 여러가지 국가론이 있지만 현재 우리나라의 경우 훌륭한 국가를 만든다고 하면 남녀노소 누구든지 책임윤리를 가지고 정치인의 말과 행동에 관심을 가져야 한다고 생각합니다. 민주주의 정치제도의 핵심은 국민의 참여와 소통인데 만약 이 부분이 결여된다면 국민을 속이고 사리사욕만 챙기는 악인이 민주적 절차를 통해 당선되는 경우가 발생할 수 있으며, 또는 국가와 국민을 위해 일하는 선인을 온갖 권모술수로 방해할 수도 있습니다. 정치에 염증을 느껴 떠난 사람들, 하루 먹고 살기 바쁜 사람들, 정치에 관심이 없는 사람들이 점점 사회에 많아질수록 민주주의는 고대 그리스 때처럼 중우정치에 빠질 확률이 높아질 것입니다. 따라서 본인의 행동에 책임윤리를 가지고 자신이 국가의 주인이라는 인식을 가진다면 예를 들어 적어도 투표는 선택이 아닌 권리이자 의무로 임할 것이라고 생각합니다.

유시민 작가는 우리나라 민주주의를 후불제 민주주의라고 표현하였습니다. 충분히 일리가 있는 표현이라고 생각합니다. 4·19 혁명 때 거리에 쓰러졌던 청년과 학생들, 유신시대에 목숨을 잃거나 고문을 당했던 대학생과 종교 지식인들, 5·18광주민중항쟁 희생자들, 6월민주항쟁 때 최루탄과 경찰과 맞섰던 시민들, 광우병 촛불시위와 박근혜 대통령 탄핵 요구 촛불시위 등 민주공화국을 세울 때 미리 치르지 않았던 비용을 후불하였다는 이야기입니다. 안타깝게도 저는 개인적으로 노무현 참여정부 이후 진보정치의 무능력 및 책임회피과 시민들의 정치 무관심이 민주주의 국가시스템의 근본이 위협받는 상황까지 가게 만들었고 결국 촛불시위가 일어난 것이 아닌가?라고 생각합니다.

앞서 언급한 것처럼 민주주의 제도 하에서 훌륭한 국가로 나아가기 위해서는 모든 시민들이 국정에 관심을 가지고 적극적으로 참여해야 하는 것이 중요하다고 생각합니다. 그 결과, 정치인이 국민을 두려워하고 국민의 요구를 파악하면서 의지를 대표할 수 있도록 노력할 것입니다. 마지막으로 이 책에서 언급한 아리스토텔레스의 인용구로 끝맺도록 하겠습니다. “훌륭한 국가는 우연과 행운이 아니라 지혜와 윤리적 결단의 산물이다. 국가가 훌륭해지려면 국정에 참여하는 시민이 훌륭해야 한다. 따라서 시민 각자가 어떻게 해야 스스로가 훌륭해질 수 있는지 고민해야 한다.”

책: 여행의 이유(김영하 산문)

소설가 김영하의 여행, 그리고 여행을 바라보는 아홉 가지 이야기.

1장 추방과 멀미

첫 번째 이야기는 2005년 당시, 작가가 집필을 위해 중국으로 떠났지만 입국을 거부당하고 추방당했던 일화로 시작합니다. 매우 불운한 일로 생각할 수 있지만 이러한 흔치 않은 경험이 결국 좋은 이야기 소재가 되었다고 말하면서 ‘여행의 의미가 무엇인가?”라는 본질적인 질문으로 이어집니다. 그는 여행이란 “여행을 떠난 주인공이 여러 시련을 겪다가 원래 성취하고자 했던 것과 다른 어떤 것을 얻고 오는 것”이라고 말합니다. 여러가지 이야기로 예시를 보여주는데, 여행을 떠난 많은 이들이 여행을 마쳤을 때 본인이 원하던 외면적 목적 달성 여부와 관계없이 평소에 인식하지 못 했던 내면적 목표를 달성하는 경우가 많다고 합니다. 그러나 한편, 여행의 어원이 travail(고역)에서 유래된 점을 보면 20세기 이전의 사람들은 여행이란 고향에서 머물지 못 하고 타지를 떠돌아 다니는 고통스럽고 힘든 시련이라고 여겼을 것이라 생각합니다. 즉, 현재 우리는 지루한 일상을 떠나 새로운 것을 얻고 싶은 마음과 안정적이고 통제된 삶에서 위험한 변수를 피하고 싶은 마음이 서로 상존하고 있을지도 모릅니다.

2장 상처를 몽땅 흡수한 물건들로부터 달아나기

작가는 서두에 “나는 호텔이 좋다.”라고 말하면서 운을 뗍니다. 결론부터 말하자면 호텔에 머무는 동안에는 일상과 가족, 인간관계로부터 받는 상처와 피로로부터 벗어날 수 있기 때문입니다. 실제로 삶이 부과하는 문제가 크면 클수록 작가는 여행을 더욱 갈망하였다고 합니다. 필자도 일상에서 주어지는 문제에 도피하고 싶을 때 소설이나 영화 속 이야기를 상상하곤 하는데 아마도 비슷한 감정이지 않을까 싶습니다.

3장 오직 현재

사람들은 대개 과거를 후회하고 다가올 미래에 대해 불안감을 느끼며 살아갑니다. 여행은 그런 우리를 과거와 미래로부터 끌어내 현재에 집중하게 만든다고 합니다. 그 경험들 중 의미있는 것들을 생각으로 바꿔 저장하고 이로부터 영감을 얻습니다. 그래서 작가는 언제나 그 순간에 있었던 여행지보다는 집에 누워있을 때 영감을 얻는다고 합니다.

4장 여행하는 인간, 호모 비아토르

철학자 가브리엘 마르셀은 인류를 호모 비아토르(여행하는 인간)으로 정의하기도 했는데 인간은 끝없이 이동해왔고 그런 본능이 우리 몸에 새겨져 있다고 합니다. 1995년 전에는 전 세계적으로 여행 인구가 5억 2천만 명이었으나 인터넷 시대가 도래하면서 2016년에는 12억 4천만 명으로 두 배가 넘게 증가하였습니다. 여행은 피곤하고 위험하면서 비용도 많이 들지만 인류의 본능이 여행을 포기하지 않고 기술이 발전하면 할수록 더 많이 이동하는 것을 통계가 보여주고 있습니다. 어쩌면 인류가 여행이 선택이 아닌 필수라고 생각하는 날이 올지도 모르는 일입니다.

5장 알아두면 쓸데없는 신비한 여행

다섯 번째 이야기는 “알아두면 쓸데없는 신비한 잡학사전”에 출연한 김영하 작가가 독특한 화법으로 방송 경험을 풀어내는데 특히 프로그램 편집에 대해 바라보는 관점이 놀라웠습니다. 출연자들이 뿔뿔히 흩어져 각자의 여행을 다니고 저녁 식사 때 모여 본인들이 겪은 여행 이야기를 들려주는 방식인데, 편집하는 제작진들도 모든 여행을 리뷰할 수 없어 최종 영상을 통해 간접적으로 경험하게 된다고 합니다. 작가도 최종 편집본을 통해 간접적으로 다른 여행들을 체험하게 되는데 심지어 본인이 직접 다녀온 여행지조차 편집하는 사람의 느낌과 색깔에 영향을 받아 좀 더 깊이 있고 색다른 여행을 경험한다고 합니다. 즉, 최종 영상은 타인이 보여주고 싶은 여행의 정수만 골라서 체험할 수 있으면서 본인은 여행 과정에 수반되는 고통과 비용을 지불하지 않아도 됩니다. 이를 “방구석 여행자”라고 표현했는데 모두가 어느정도는 방구석 여행자이며 일인칭 시점으로 수행한 이 ‘진짜’ 여행은 다른 사람들의 경험과 생각이 함께 숙성되면서 우리의 여행이 좀 더 명료해진다고 합니다.

6장 그림자를 판 사나이

아델베르트 폰 샤미소의 “그림자를 판 사나이” 소설을 보면 주인공은 자신의 그림자를 신비한 인물(악마)한테 파는 대가로 무엇이든 꺼낼 수 있는 ‘행운의 자루’를 얻게 됩니다. 그림자라는 평소에는 신경도 쓰지 않는 것을 파는 대신 엄청난 부를 얻었지만 주인공은 곧 그림자가 인간에게 매우 중요하다는 사실을 알게 됩니다. 그림자가 없는 인간은 사회에 환대받지 못 하였고 결국 혼자가 되었지만, 우연히 어디든지 갈 수 있는 마법의 장화를 얻게 되면서 여행자로 살아가게 됩니다. 즉, 현실에서 여행자는 그림자가 없는 존재이기 때문에 타지에서 어떤 의무와 책임도 또한 어떤 소속감도 가지지 않습니다.

7장 아폴로 8호에서 보내온 사진

일곱 번째 이야기는 여섯 번째 이야기의 반전을 담아냈는데, 여행을 통해 얻는 또다른 기쁨은 타지에서 경험하는 환대라고 합니다. 지구라는 작은 행성에 같이 탑승하고 있는 승객으로서 모두가 동료이고 소중한 존재라는 관점에서 보면 곤란한 여행자를 도와주는 것은 선순환을 유발합니다. 인류는 오랜 세월동안 서로를 적대하고 살육해왔지만 한편으로 낯선 이들을 손님으로 맞이하고 절실한 것들을 제공하면서 떠나보내기도 하였습니다. 거의 모든 문명에, 특히 유목민들에게는 손님을 잘 대접하라는 계율이 남아있다고 합니다.

8장 노바디의 여행

실뱅 테송은 “여행의 기쁨”에서 괴테를 인용하는데 ‘여행은 여행자가 외부 세계에 감행하는 습격이며 , 여행자는 언젠가 노획물을 잔뜩 짊어지고 집으로 돌아가는 약탈자다’라고 언급합니다. 반면에 식사와 잠자리를 제공하면 고마워하며 소식이나 정보 및 선물 등을 주고 떠나는 이들도 있으므로 외부인은 위험하면서도 동시에 매력적이라고 표현합니다. 성숙한 여행자라면 자신을 타지의 상황에 따라 “섬바디(특별한 사람)” 혹은 “노바디(현지인 코스프레)” 중 하나를 선택해서 현명하게 대처하게 되는데 이는 인생을 지혜롭게 살아가는 방법이기도 합니다.

9장 여행으로 돌아가다

일상과 여행의 관계는 마치 현실과 소설의 관계와 같다고 합니다. 현실은 어지럽고 복잡하고 무질서합니다. 그러나 소설은 현실과 비슷한 일이 일어나지만 질서가 있고 통제가 가능합니다. 여행은 우리를 집중시키고 한 도시의 정수만을 맛보길 원하며 여행에서 보고 듣는 모든 것들이 유기적으로 연결되어 있다는 느낌을 받습니다. 여행은 시작과 끝이 분명하다는 점에서 소설과 닮았으며 설렘과 흥분 속에서 낯선 세계를 탐험하고 안전하게 출발점에 돌아옵니다. 작가는 자신의 정체성을 여행자로 규정할 수 밖에 없는 최종적인 이유가 여기서 두드러지는데 지루한 일상을 벗어나 세상을 다시 느끼고 정신이 한껏 고양된 상태로 돌아오면서 다시 일상을 여행할 수 있는 힘을 얻는다고 합니다.

한 마디로 말하라 – Mini Goss

우리는 전달하고자 하는 메시지를 언어를 이용한 문장을 통해 의사소통을 합니다. 우리는 이러한 메시지를 하루에도 수백, 수천 개씩 처리해야 하고, 서로의 메시지를 제대로 이해하지 못하면 오해, 논쟁, 결렬 등이 발생할 수 있습니다. 따라서 우리는 전달하고자 하는 메시지를 정확하게 파악하고 간결한 문장으로 전달하는 것이 중요합니다. 저자는 이 간결한 문장을 ‘결정적 한 마디’라고 말하고 있습니다. 결정적 한 마디는 맥락과 무관하거나 지나치게 복잡한 정보를 제거하여 우리와 청중이 중요한 메시지에 집중할 수 있도록 만들어 줍니다. 이러한 결정적 한 마디는 면접, 발표, 연설, 협상 등 공적인 자리뿐만 아니라, 일상적인 대화나 유머, 심지어 술자리 건배사 같은 사적인 자리에서도 효과적인 기술입니다. 이 책에서 설명하는 힘 있고 인상적인 결정적 한 마디를 만들기 위한 방법과 우리에게 도움이 될 수 있는 활용법을 설명하겠습니다.

힘 있고 인상적인 결정적 한 마디를 만들기 위해서는 우리가 전달하고자 하는 메시지를 사람(1~5), 행동(6~8), 드라마(9~11)으로 나누고, 다음과 같은 항목에 대한 정보를 체크합니다.

  1. 주제와 관계있는 사람은 누구인가?
  2. 메시지를 듣는 사람은 누구인가?
  3. 그들에게서 알고자 하는 것은 무엇인가?
  4. 그들은 당신에 대해 무엇을 알고 있는가?
  5. 그것을 묘사하는 방직은 어떠한가”?
  6. 전달하고자 하는 정확한 내용이 무엇인가?
  7. 당신에게 가장 중요한 행동은 무엇인가?
  8. 청중에게 가장 중요한 행동은 무엇인가?
  9. 메시지에서 가장 흥미로운 극적 요소는 무엇인가?
  10. 그 요소로 어떤 대화를 시작할 수 있는가?
  11. 서로의 목표를 함께 달성할 수 있도록 청중을 사로잡을 수 있는가?

체크했다면, 각 항목에서 가장 중요하다고 생각하는 단어들을 표시합니다. 이 단어들이 결정적 한 마디에 들어가야 할 핵심 단어들입니다. 그리고 자신의 목표와 청중의 목표 중 중복되는 것에 기반을 두고 핵심 단어들을 활용하여 결정적 한 마디를 구성합니다. 결정적 한 마디를 구성했다면, 구상한 문장을 직접 읽어봅니다. 만약 자신이 읽었을 때 어색하게 들린다면, 대화체로 바꿔주는 것이 좋습니다. 또한 가능한 청중들이 마음속으로 메시지를 그릴 수 있도록 구체적이고 시각적인 표현을 사용하고, 쉽게 이해하고 기억할 수 있도록 쉽고 매력적인 단어들을 사용하는 것이 효과적입니다.

이러한 과정을 통해서 결정적 한 마디하는 활용해서, 우리가 전달하고자 하는 생각을 효과적으로 전달하는 방법도 존재합니다.

<빙산분석법>
빙산 분석법은 청중들이 듣기 원하는 메시지를 찾아서 전달하는 것으로, 우리가 청중에게 전달하고자 하는 전체 내용을 바다에 떠 있는 빙산에 비유한 방법입니다. 우리는 빙산 전체를 알고 있지만, 청중은 수면위로 드러난 빙산의 꼭대기만 볼 수 있습니다. 따라서 우리는 빙산의 꼭대기를 결정적 한 마디를 활용하여 채우고, 수면 아래는 뒷받침하는 내용들을 중요도에 따라서 채워야 합니다.
빙산 분석법은 언론 기자들이 효과적으로 독자의 관심을 끌고, 정보를 신속하게 파악할 수 있도록 기사나 보도를 편집할 때 사용하는 방법입니다. 언론 기자들은 독자들에게 전달할 중요 내용을 빙산 꼭대기에 배치하고, 뒷받침하는 내용들을 중요도에 따라 배치합니다. 그리고 주어진 기사나 보도의 길이에 맞추기 위해, 중요도가 낮은 내용부터 잘라냅니다.

<5분 미팅법>
5분 미팅법은 짧은 시간 내에 결정적 한 마디에 집중 할 수 있도록 도와주는 훈련법으로, 상대가 5분 동안 자신의 생각을 설명하라고 요구했다고 가정하는 방법입니다. 우리는 상대가 집중할 수 있도록 상대가 원하는 내용을 세심하게 고려하고 열정적으로 이야기할 수 있도록, 상대의 의견을 반영할 수 있도록 결정적 한 마디를 수정해야 합니다. 결정적 한 마디를 수정하면서, 결정적 한 마디를 뒷받침 하는 2~3가지의 정보와 현실성을 부여할 수 있는 흥미로운 통계수치나 사례를 함께 준비하는 것이 좋습니다. 또한 우리는 항상 상대의 생각이 우리와 같지 않을 수 있다는 것을 명심하고, 그들이 제시하는 핵심적인 반론을 신중하게 경청하는 자세를 유지해야 합니다.

우리는 때때로 면접이나 발표, 논문의 초록 등 짧은 시간 동안 상대방의 관심을 집중 시켜 중요한 메시지를 전달해야 하는 상황을 마주하게 됩니다. 이러한 상황에서 우리는 결정적 한 마디를 활용하여 청중들에게 효과적으로 우리의 생각을 전달할 수 있다고 생각합니다.

영화: 미스트(The Mist, 2007)

당신이 알던 세상은 안개 속으로 사라진다.

소설이 원작인 SF 영화 ‘미스트’는 다소 식상?하고 근본 없는 SF 소재를 사용했지만 초점은 위기 상황에 직면했을 때, 고립된 사회에서 나타나는 인간의 다양한 모습들을 보여주는 철학적인 내용을 담았습니다.

어느 날 강력한 비바람이 몰아친 다음 날, 사람들은 이러한 재난을 대비하고 극복하기 위해 마트에서 생필품을 구입하고 있었습니다. 기이한 안개는 점차 마을을 향해 몰려오고 있었고 심지어 군인과 소방관, 경찰관들이 출동하는 사태가 발생하게 됩니다. 안개 속에서 도망친 한 노인이 피를 흘리면서 “안개 속에 무언가가 있다!” 라고 소리치면서 마트 안에 들어오게 되고 마트 밖은 앞이 아무것도 보이지 않는 안개 속에 갇히게 됩니다.

‘미스트’의 이야기는 안개 속에 갇힌 마트 안의 사람들이 문제를 어떻게 접근하고 해결하려는 부분에서 시작됩니다. 먼저 안개 속의 ‘괴물’의 존재를 믿지 않는 사람들(주: 변호사 브렌트 노턴)은 이성적으로 생각하라면서 마트 밖에 나갑니다. 그 후 돌아오거나 살아남았다는 장면은 나오지 않습니다. 군인들이 구출해주길 기다리는 남은 사람들은 주인공 데이빗의 말을 따라 마트 유리벽에 장벽을 쌓게 됩니다. 하지만 시간이 흐르면서 고립된 사람들은 점점 불안해지고 데이빗의 아이를 돌보시던 할머니 한 분이 수면제를 먹고 죽음을 택하는 경우도 발생합니다. 이러한 절망적인 상황에서 카모디 부인은 성경의 말씀을 악용하면서 선동을 일으켜 추종자들을 끌어들입니다. 주인공 일행은 카모디 부인 일행과 마찰을 일으키게 되고 결국 주인공 일행은 마트에서 빠져 나가기로 결정합니다. 마트에서 탈출한 후 차를 타고 안개에서 벗어나려고 시도했지만 차 연료가 다 떨어지자 데이빗은 최후의 선택을 합니다. 차 안에 남아 있는 인원들은 전부 데이빗 손에 죽게 되고 본인은 총알이 부족해 혼자 살아남아 차에서 내립니다. 그 순간 데이빗은 사람들을 구출한 군인들을 만나게 되고 마지막 장면 1분을 위해 이 영화가 존재한다는 말이 있을 정도로 현실?적이고 씁쓸한 결말로 막을 내립니다.

재난 또는 한 치 앞도 알 수 없는 상황을 상징하는 ‘안개’, 모든 종류의 인간을 반영한 하나의 고립된 사회를 상징하는 ‘마트’, 안개 속에 존재하는 위험요소인 ‘괴물’. 이 영화의 SF 요소는 단지 고립된 사회를 형성하기 위한 하나의 장치라고 생각되고 본질은 이러한 위기상황에 나타날 수 있는 인간의 선한 면과 악한 면 그리고 이성적인 면과 감성적인 면 등을 관람객의 입장, 즉 최대한 객관적인 입장에서 바라보라는 의미가 아닐까?라는 생각을 하였습니다.

화살촉 프로젝트나 마트에 고립된 군인 병사 한 명이 마녀사냥 당하는 장면 등 언급하지 않은 내용들이 많습니다. 이런 부분들은 영화를 보신 후 직접 판단해보시는 것을 권유합니다. 저는 영화 ‘미스트’에서 작가나 감독이 말하고 싶은 내용은 진짜 위기는 외부에 있지 않고 내부에 있다는 것과 어느 순간에도 ‘희망’을 잃지 말라는 것이 아닐까?라고 생각합니다. 비록 요즘 시대에 비해 조금 허술할 수 있는 SF 요소라는 점이 있지만 스토리텔링만큼은 전혀 식상하지 않고 현실적인 폭로를 담아낸 명작이라고 생각합니다.

책 : 아가씨와 밤 – 기욤 뮈소

“사랑하는 사람을 위한 행동”으로 만들어낸 완전범죄 이야기

기욤 뮈소의 새 소설 ‘아가씨와 밤’은 생택쥐페리 고등학교의 개교 50주년 행사에 25년 전 ‘빙카 사건’에 연관된 졸업생들이 참석하게 되면서 이야기가 시작됩니다. ‘빙카 사건’은 25년 전 학교의 모든 남학생들의 사랑을 독차지하던 여학생 ‘빙카 로크웰’이 학교의 철학 선생님 ‘알렉시 클레망’과 함께 사랑의 도피를 떠나 실종된 사건을 말합니다. 이 사건은 학교 내의 연극 동아리에서 연극 소재로 활용해 공연을 할 정도로 학교의 전설적인 이야기로 내려오고 있지만, 사건의 전말은 단순한 사랑의 도피가 아닌 살인과 사체유기로 물든 치정사건 이였습니다.

빙카 사건이 있던 25년 전 그 날, 주인공을 비롯한 주요 인물들은 각자 ‘사랑하는 사람을 위한 행동’ 이라는 의도를 가지고 행동을 합니다. 하지만 그 행동들의 결과, 빙카와 ‘알렉시 클레망’이 사망하게 됩니다. 그리고 살인 사건을 은폐하기 위해서 둘의 시체를 유기하고 사랑의 도피를 떠났다는 소문까지 만들어 냅니다. 이야기가 진행되면서 그 날 살해당한 ‘알렉시 클레망’이 완전히 무고한 사람이라는 사실을 알게 되지만, 이 소설의 마지막까지 주요 인물들은 사건이 밝혀서 자신들에게 올 피해와 빙카 사건의 복수를 하고 있는 사람을 찾으려고 할 뿐이였습니다. 심지어 주인공 유명 소설가인 토마는 모든 사건이 완전 범죄로 마무리 되자, ‘소설가의 특권’이라는 합리화와 함께 이 사건을 자신의 새 작품의 소재로 사용하는 등 뻔뻔한 모습을 보여주기까지 합니다.

이렇게 무고한 사람을 죽이고, 시신까지 유기한 범인들이 전혀 죄책감이나 후회를 느끼지 않는 모습을 보고, 저는 오랫동안 빙카 사건을 조사해왔던 기자 스테판이 마지막에 진실을 밝히면서 권선징악을 행하는 장면을 기대했습니다. 하지만 스테판은 토마의 부모님의 ‘사랑하는 사람을 위한 행동’이 빙카 사건을 얼마나 철저하게 완전범죄로 만들었는지를 깨닫게 되고 빙카 사건의 진실을 알리는 것을 포기하게 됩니다. 이렇게 완벽하게 무고했던 피해자 ‘알렉시 클레망’을 살해하고 시체를 유기한 범인의 처벌은 물론, 유족들에게 생사조차 알릴 수 없게 끝난 것이 매우 아쉬웠습니다. 그리고 살인을 저지른 자식을 지키기 위해 범죄를 은폐하고 빙카 사건의 복수자로부터 자식을 지키기 위해 싸우는 모습을 보고,
“그들의 행동을 올바른 모성애와 부성애의 모습으로 생각할 수 있을까?”
“만약 내가 그들의 입장에 있었다면, 지금처럼 그들의 행동을 비판할 수 있는 선택을 할 수 있을까?”
라는 두가지 생각이 함께 들었습니다.

개인적으로 아쉬운 점도 있었지만 다양한 인물의 관점에서 생각을 해 볼 수 있었고, 과거 기욤 뮈소의 작품들처럼 뻔한 러브스토리가 아닌 새로운 방식으로 써 내려간 소설이라는 생각이 드는 작품이었습니다.

Tip: Anaconda를 이용한 Intelpython과 TensorFlow (Intel MKL CPU version) 설치방법 – Windows 환경

현재 연구실에서는 머신러닝 관련 스터디를 진행하고 있습니다.
Hands on Machine Learning이라는 책으로 공부하고 있는데, 책의 중반부 부터 텐서플로(TensorFlow)를 활용하는 방법이 서술되어 있습니다.
우리 연구생 여러분들이 텐서플로를 쉽게 설치할 수 있도록 간단한 설치 가이드를 작성하고자 합니다.

참고 :
https://software.intel.com/en-us/articles/using-intel-distribution-for-python-with-anaconda
https://software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide

Tensorflow는 CPU 버전과 GPU 버전이 있습니다. GPU 버전은 GPU를 이용한 병렬 연산을 지원합니다.
연구실에 있는 GPU 서버를 통해 계산할 때는 GPU 버전이 필요하겠지만, 지금은 공부하는 과정이므로 개인용 컴퓨터를 이용하는 것이 편리할 것 입니다. 따라서, CPU 버전으로 설치를 진행하도록 하겠습니다.

Tensorflow는 현재(19.01.27 기준) 파이썬 3.6 이하의 버전만 지원합니다. 현재 Anaconda 패키지는 파이썬 3.7 버전을 기준으로 배포되고 있습니다. 본 설치 가이드에서는 Intel python 3.6 버전을 아나콘다 환경에서 설치하여 텐서플로를 설치하도록 할 것입니다.

먼저 https://www.anaconda.com/download/ 에 접속하여 파이썬 3.7 버전을 설치합니다. (64-bit 권장)

Anaconda Prompt를 실행합니다.

conda update conda 를 입력하고 실행합니다. 업데이트 할 내용이 있으면 y 를 눌러 업데이트를 진행합니다.

conda config –add channels intel 를 입력하고 Enter를 누릅니다.
(add 앞에 – 2개 입니다 !)

필수 파일만 설치하려면 Core 버전을, 모든 패키지를 설치하려면 Full 버전을 설치하면 됩니다. Jupyter notebook 등의 패키지를 사용할 것이기 때문에, Full package를 설치하도록 하겠습니다. (코어 버전 설치 후 따로 패키지를 설치해도 됩니다.)
conda create -n idp intelpython3_full python=3 을 입력하고 실행합니다.
(코어 버전 설치는 위의 내용 중 full을 core로 바꿔주면 됩니다.)

설치가 완료됐으면 위의 메시지가 나타납니다. conda activate idp 를 입력하여 idp 환경을 활성화 시켜줍니다. 활성화가 됐다면 prompt 좌측의 (base)가 (idp)로 바뀌게 됩니다.
idp 활성화 후 python을 실행하여 Intel Python이 제대로 설치되었는지 확인합니다. 제대로 설치되었다면 exit() 를 입력하여 다시 밖으로 나옵니다.

마지막으로 conda install -c anaconda tensorflow-mkl 을 입력하여 텐서플로를 설치하도록 합니다.

Intel Python을 Full package로 설치했기 때문에 자동으로 Jupyter notebook이 설치되게 됩니다. Jupyter Notebook (idp)를 실행하여 텐서플로가 제대로 설치됐는지 테스트 해보도록 합니다.
(Windows 환경에서 위 이미지의 경로에 아이콘이 자동으로 설치됩니다.
C:\Users\계정이름\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)
아이콘을 찾기 힘들다면 시작메뉴에 등록이 되어 있을것입니다.)

Jupyter notebook에서 Tensorflow를 import하고 예제를 실행해보도록 합니다. 예제가 제대로 출력된다면 설치가 제대로 된 것입니다.
* Tensorflow를 import 했을 때 위처럼 경고 메시지가 나타난다면 h5py를 업그레이드 하면 메시지가 사라지게 됩니다. 아래 내용 참고

Anaconda prompt를 관리자 권한으로 실행해서, idp 환경을 activate한 다음 pip를 업그레이드 하고 h5py를 업그레이드 합니다.
conda activate idp
python -m pip install –upgrade pip
python -m pip install –upgrade h5py

(upgrade 앞에 – 2개 입니다!)

h5py를 업그레이드 하고 다시 Tensorflow를 import 하면 경고 메시지가 사라지게 됩니다.
이상으로 Windows 환경에서 Intelpython과 Tensorflow 설치 가이드를 마치도록 하겠습니다. 스터디에 도움이 되길 바랍니다.
수고하셨습니다 🙂

거꾸로 수업 4학기

거꾸로 수업과의 만남

2015년 2월 말, 개강을 한 주 앞두고 마음이 무거웠다. 강의에서 보게 될 일부 학생들의 멍한 눈빛과 조는 모습이 눈 앞에 아른거렸다. 그동안 조는 학생들보다는 열심히 듣는 학생들이 더 많았고 강의 평가도 나쁘지 않았지만 내 무미건조한 말투 때문에 잠과 사투를 벌일 학생들을 생각하니 마음이 아팠다. 그 때 하나님의 은혜로 ‘플립러닝’이란 단어가 생각났다. 그게 무엇인지는 몰랐다. 이전 학기에 대학교육개발원에서 플립러닝 교수법 강의가 있어서 가보고 싶었지만 강의 시간과 겹쳐서 못 갔었는데 그 때 생각이 난 것이다. 그래서 인터넷을 찾아보고 2014년 봄에 방송했던 KBS의 21세기 교육혁명 미래교실을 찾아서 프로그램도 봤다. 거꾸로 교실 관련 책도 두 권 주문해서 읽으며 당장 모든 학부 강의에 거꾸로 수업을 도입하기로 했다.

거꾸로 수업

기존의 수업은 학교에서 강의를 듣고 집에 가서 숙제를 하는 방식이었다. 강의는 보통 선생님이 앞에서 설명하고 학생들은 조용히 듣는 방식이다. 학생들이 질문을 할 수도 있지만 질문하는 학생은 많지 않다. 집에서 숙제를 할 때에는 강의 자료나 책 등을 참고하는데 이 때 선생님의 도움을 받기는 어렵다.

거꾸로 수업에서는 집에서 강의를 듣거나 읽는다. 수업 시간에는 숙제, 토의와 같은 활동을 하면서 수시로 친구들과 대화하고 선생님께 질문하여 도움을 받을 수 있다.

‘서울대에서는 누가 A+를 받는가’라는 책에서 인용한 연구를 보면 학생은 강의를 들으며 머리를 별로 쓰지 않는다. 따라서 질문할 것도 별로 없다. 반면에 스스로 공부를 하거나 숙제를 할 때에는 머리를 많이 사용하게 되고 질문할 것도 많아진다. 거꾸로 수업에서는 학생들에게 질문이 생겼을 때 선생님이 옆에서 도와줄 수 있다.

수업 준비

거꾸로 수업을 위해서는 학생들이 집에서 예습을 해올 수 있도록 미리 동영상을 만들어 인터넷에 올려야 했다. 적당한 교재가 있다면 동영상이 필수는 아니지만 학생들이 빠르게 예습해올 수 있도록 매 시간 강의의 핵심 내용만 담아 짧게는 10분에서 길게는 30분 정도 길이의 동영상을 만들어 올렸다. 짧은 동영상이지만 제작에는 몇 시간씩 걸린다. 동영상도 중요하지만 더 중요한 것은 수업 시간을 어떻게 채울 것인가이다. 강의 없이 두 시간을 채워야 한다. 수업을 위해 학생들이 토의할 수 있는 질문들과 풀 문제들, 동영상에서 생략된 내용을 채워줄 토의를 준비해야 했는데, 수업 준비하느라 흰머리가 많이 늘어난 듯 하다. 그렇게 2015년 두 학기는 수업 준비와 과제 채점만 하다가 다 보냈다. 올해 1학기에는 작년에 만들었던 동영상을 그대로 사용할 수 있어서 비교적 수월했지만 2학기에는 강의 과목 변경으로 인해 또 두 과목의 동영상을 새로 제작중이다.

고맙게도 대부분의 학생들이 수업 전에 동영상을 보고 왔다. 학생들 중에는 동영상을 보며 몇 장씩 필기를 해오는 학생들도 있었다. 나중에 설문조사를 해보니 동영상이 길지 않아 아무 때나 스마트폰으로 간편히 볼 수 있고, 동영상을 미리 보지 않으면 수업 시간에 조원들에게 피해를 끼치게 되기 때문에 열심히 보고 왔다고 했다.

수업 진행

수업 진행 방식은 강의에 따라 약간씩 달라지지만 크게 내가 제시하는 질문에 대한 학생들의 조별 토의와 문제 풀이로 나뉜다. 조별 토의는 강의실 구조상 한 책상에 앉은 두세 명이 한 조가 되어 진행한다. 조는 보통 내가 지정해주지는 않고 학생들이 알아서 앉도록 한다. 제시하는 질문들은 동영상 내용을 이해했는지 기본 개념을 묻는 질문과 응용이 필요한 질문들이다. 이 때 학생들은 짝을 지어 대화, 토론, 논쟁하는 하브루타 방식으로 공부하게 된다. 학생들은 주요 개념들을 직접 설명하면서 더 잘 이해하고 기억하게 된다. 나는 학생들이 서로 설명하고 토의할 때 학생들 사이를 지나다니며 질문을 받고 대답해준다. 예전 강의식 수업에 비하면 학생들의 질문이 크게 늘었다. 조에 따라 활발히 토론하는 조도 있고 말이 별로 없는 조도 있지만, 현재 학생들의 토의를 평가에 넣지는 않고 있다. 대부분의 학생들이 토의에 열정적으로 참여한다. 토의 후에는 몇몇 학생들에게 토의 내용을 발표하도록 시켜서 바로 이해했는지 확인 후 다음 질문으로 넘어간다. 중요한 개념과 관련된 질문의 경우 발표하는 학생에게 소크라테스식 문답법으로 꼬리에 꼬리를 물고 질문을 던지고 설명해주기도 한다. 학생들 한 명 한 명 이름을 불러 질문하다 보니 내 수업을 처음 듣는 학생들 이름도 금방 기억할 수 있어서 좋다. 평소에 학생들이 토론하는 모습을 관찰하게 되니 학생들이 추천서를 써달라고 왔을 때 쓸 말이 있어서 좋았다.

문제 풀이는 조별 또는 개인 과제로 제출하도록 해서 평가에 반영한다. 개인 과제 제출시에도 베끼지는 말되, 옆 친구들과 적극적으로 토의하며 풀도록 한다. 과제는 되도록이면 수업 시간이 끝나기 전에 마쳐서 제출하도록 하지만 수업 시간중에 다 못해서 나중에 제출하더라도 감점은 없다. 학과에 컴퓨터실이 있어서 과목에 따라 컴퓨터실에서 수업을 진행하며 컴퓨터로 풀어야 하는 과제들을 내주기도 한다.

거꾸로 수업을 하게 되면서 학생들은 서로 말을 많이 하게 되었다. 그에 따라 조는 학생이 없어졌다. 드물게 몇 주에 한 번 조는 학생을 발견하는 경우도 있지만 예전에 거의 매시간 몇 명씩 봤던 것에 비하면 없는 것이나 마찬가지다. 그래서 수업 시간도 이전에 학생들이 많이 졸던 9시, 1시로 잡고 있다. 조별 토의를 통해 편입학한 학생들이 기존 학생들과 쉽게 친해지는 장점도 있었다.

‘어떻게 공부할 것인가’라는 책의 ‘인출 연습’ 개념을 도입하여 토의 내용에 이전 수업 내용과 관련된 질문을 넣기도 한다. 퀴즈와 시험 범위는 처음부터 누적이다. 과목에 따라 학기중 두 세번 정도 학생들이 마인드맵을 이용해 배운 내용을 정리하고 직접 시험 문제를 출제해보도록 해준다. 학생들이 작성해서 제출한 내용은 스캔해서 모든 학생들에게 공개하며 좋은 문제가 있으면 중간 또는 기말 시험에 그대로 출제하기도 한다.

수업 결과

앞에 거꾸로 수업으로 얻게된 장점들을 몇 가지 적었는데, 가장 큰 단점은 수업 준비에 많은 시간과 노력이 필요하다는 점이다. ‘조벽 교수의 명강의 노하우&노와이’에서 준비에 시간이 많이 걸리는 교수법은 좋지 않다고 했다. 새로 동영상을 제작하는데는 시간이 오래 걸리지만 앞으로 동일한 수업을 반복하게 되면 수업 준비 시간이 짧아지게 될 것이다.

현재 네 학기째 학부 수업을 거꾸로 수업으로 진행중이다(대학원 수업은 강의식 수업과 거꾸로 수업의 활동이 혼합된 형태). 강의 경력이 짧아서 학생들의 학업 성취도가 향상되었는지는 알 수 없다. 하지만 학생들의 강의 만족도는 높아졌다. 수업을 열심히 들었던 한 학생은 대학교육개발원의 명강의 에세이 공모전에 내 강의에 관한 글을 써서 상을 받았다. 고맙게도 학생들이 작년 두 학기 강의 평가를 잘 해줘서 단과대학 우수강의교수상을 받았다. 앞으로도 개선해야 할 점들이 많지만 이전의 강의식 수업으로 돌아갈 수는 없을 듯 하다.

환영합니다

탄성파 탐사 연구실을 찾아주신 분들을 환영합니다.

단순히 연구실 소개만 하는 홈페이지가 아니라 방문자에게 조금이라도 유익한 홈페이지로 만들고자 블로깅을 시작합니다. 물리탐사 전공자 뿐 아니라 수치해석을 다루는 다른 전공자들에게도 참고가 될 수 있도록 주로 프로그래밍과 관련된 글들을 올릴 생각입니다.

감사합니다.

 

The LORD bless you and keep you;

the LORD make his face shine on you and be gracious to you;

the LORD turn his face toward you and give you peace.