Trouble Shooting-

 * Linux: apt install 에서 "Unable to locate package"에러가 나는 경우 sudo apt-get update를 해주면 해결 된다.

 * pip를 업데이트 하였다가 "cannot import name 'main'"이란 에러가 발생하는 경우

      1) which pip를 커맨드 라인에 치면 pip의 위치가 나옵니다. [/usr/bin/pip]

          보통 이 pip 위치에서 하면 되는데 가끔 전혀 다른 곳에서 pip가 문제가 되는 경우 상단의 에러메시지와 함께 어떤 위치에서 발생하였는지 나오기 때문에 그 위치의 pip 파일을 수정해 주시면 됩니다.

      2) sudo nano pip라고 치시면 nano editor가 작동하며 파일이 열립니다. vim으로 작성하셔도 크게 문제 없습니다.

      3) 파일을 열면
from pip import main
if __name__ == '__main__':
     sys.exit(main())

 

이렇게 나와 있을 것인데, 이것을

import sys
from pip import __main__
if __name__ == '__main__':
     sys.exit(__main__._main())

 

로 바꿔주시고, ctrl+o를 눌러서 저장한다고 하시고 엔터 치신 뒤 ctrl+x로 빠져나오시면 됩니다.

그리고 이후에 pip이용시에는 문제가 되지 않을 것입니다.

   

참고-

 복붙은, GUI환경에서 ctrl+c 후에 linux cli환경에서 마우스 오른쪽 클릭으로 됩니다.

 

리눅스-

먼저 리눅스 설치가 기반이므로 리눅스 설치를 일단 설명한 뒤 윈도우 설치로 넘어가도록 하겠습니다.

나이브 linux subsystem(ubuntu)에서 까는 것으로 가정하고 서술하겠습니다.

일단 python 2.7로 깔고 이후에 pyenv등을 통하여 3.대와 같이 사용하도록 하겠습니다.

 

1) 먼저 pip가 인스톨 되어 있지 않을 것이니 apt install python-pip(혹은 sudo apt install python-pip)를 해줍니다.

2) git도 안깔려 있을테니 apt install git 해줍니다.

3) unzip도 안깔려있습니다. apt install unzip 해줍니다.

4) pip install tensorflow-gpu

5) sudo apt-get install protobuf-compiler python-pil python-lxml python-tk

   pip install --user Cython
   pip install --user contextlib2
   pip install --user jupyter
   pip install --user matplotlib

6) git clone https://github.com/cocodataset/cocoapi.git

7) git clone https://github.com/tensorflow/models

8) cd cocoapi/PythonAPI

9) make

10) cp -r pycocotools [/root]/models/research/

   pycocotools를 앞서 다운받은 models 안에 있는 research 폴더 안에 넣어야 합니다. 앞에서 다운받은 models위치를 확인하여 주시고 (보통 위에것을 그대로 실행하셨다면 최상위 디렉토리에 models가 다운되었을 것입니다. 최상위 디렉토리 이름은 유저네임과 동일하므로 /[user name]/models...으로 진행하여 주시면 됩니다. 저는 유저네임을 root로 하였기에 다음과 같은 주소입니다. [/root/models/research/]

11) cd

12) curl -OL https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip

13) unzip protoc-3.2.0-linux-x86_64.zip -d protoc3

14) ~/protoc3/bin/protoc --help

     위 명령어를 입력한 후에 뭔가가 주르륵 나오면 설치 완료입니다.

15) cd models/research

16) ~/protoc3/bin/protoc object_detection/protos/*.proto --python_out=.

17) export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

18) python object_detection/builders/model_builder_test.py

 

윈도우-

 윈도우 버전에서는 저번에 CUDA환경을 만들어 놓은 Anaconda 환경에서 진행하도록 하겠습니다. [https://omnil.tistory.com/64?category=777916]

 리눅스와 다르게 GUI시스템 기반이라 수기로 옮겨주고 처리해야 하는 등 리눅스보다는 조금 더 많이 왔다갔다 해야 합니다.

 0) Anaconda prompt를 열어줍니다.

 1) pip install git

    일단은 git 정도가 깔려있는지 확인해 줍니다.

 2) 이미 tensorflow는 전에 CUDA환경을 만들면서 설치하였기 때문에 넘어갑니다.

 3) windows는 apt-get 을 통한 protobuf-compiler의 인스톨이 불가하므로 pip로 대체합니다.

  pip install --user Cython 
  pip install --user contextlib2 
  pip install --user pillow 
  pip install --user lxml 
  pip install --user jupyter 
  pip install --user matplotlib

  보통 아나콘다를 깔면 위의 것들 중 많은 것이 깔리지만 일단은 확인 차원에서 한번씩 다 실행해 줍니다.

 4) git clone https://github.com/tensorflow/models

  이번에는 모델을 먼저 받아줍니다. cocoapi부분이 윈도우에서는 좀더 설명이 필요하기 때문에 간단한 것 먼저 진행합니다.

 5) linux와 다르게 윈도우에서는 깃에서 클론한 cocoapi를 사용하는 대신 바로 설치를 해버릴 것입니다.

  그 이유는 일단 윈도우 안에서 make 명령어가 없으며, make를 돌아가게하는 패키지를 conda로 깔아도(conda install makeconda install -c anaconda make) 마이크로 소프트 비쥬얼 스튜디오 버전이니 cl.exe니 하면서 과거 CUDA에서 저를 괴롭혔던 것들이 막 튀어나오거든요..

  그리고 다른 이유로는 과거에는 cocoapi가 공식적으로 windows를 지원하지 않았으나 이번에는 지원하는 것으로 나왔기 때문에 시스템 안정성 측면에서도 공식 서포트되는 것이 좋기 때문입니다. [https://github.com/philferriere/cocoapi]

  명령줄에

    pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

  를 입력해주시면 됩니다. 그러면 알아서 다운받고 설치까지 합니다. 이 상황에서 위의 리눅스와는 다르게 따로 설치하고 파일을 옮겨줄 필요 없이 자동으로 잘 동작합니다.

 6) protoc도 윈도우즈 용으로 따로 받아줄 것 입니다.

  아나콘다 프롬프트에서도 CURL 명령어가 먹기는 하지만, 그냥 브라우저상에서 https://github.com/protocolbuffers/protobuf/releases/download/v3.4.0/protoc-3.4.0-win32.zip를 입력하거나 그냥 링크를 클릭하셔서 protoc를 다운 받으십시오. 윈도우에서는 3.4 이상에서 버그픽스가 있었는지 많이들 권하는 버전이 3.4입니다.

 7) 이 파일을 받으신 뒤 윈도우에서 GUI로 압축을 해제하여 주시고 폴더 이름을 단순하게 지어주십시오. 경로는 가장 간편한 경로가 좋습니다. 왜냐하면 윈도우즈에서는 CLI환경에서 상대주소를 사용하기가 힘들(저는 거의 불가능이)기 때문에 시스템 path로 등록해주고 그냥 바로 이름만 써서 사용할 것 입니다.

 8)  시스템 패스를 설정합니다.

 => 시작메뉴 오른클릭 '시스템'

    -> 검색창에 '고급' 검색

      -> 검색된 결과 중 '고급시스템설정보기' 클릭

        -> 하단의 '환경변수' 버튼 클릭

          -> 하단의 '시스템 변수' 리스트 중 'Path'를 찾아 클릭하고 하단의 '편집' 버튼 클릭

            -> '새로만들기' 버튼 클릭 후 새로나오는 입력창에서 '압축푼 폴더\[압축 푼 이름]\bin\'을 입력합니다. 경로는 절대경로이어야 하며, 보통의 경우 '사용자' 아래에 바로 저장할 경우 C:\Users\[유저 이름]\압축 푼 폴더 이름\bin\'이라고 입력하면 됩니다.

              -> 이후 모든 창에서 '확인'을 눌러서 종료해주시면 됩니다.

 9) protoc --help 치면 무언가가 주르륵 뜰 것입니다. 절반의 성공입니다.

 10) 왜냐하면 위의 리눅스처럼 윈도우는 *.proto 가 먹지 않기 때문입니다. 그럼 지옥처럼 모든 proto파일마다 하나하나 protoc를 먹여주어야 하느냐.. 하면 그건 또 아닙니다. models/research 폴더로 가셔서,

      명령줄에

       for /f %i in ('dir /b object_detection\protos\*.proto') do protoc object_detection\protos\%i --python_out=.

      를 입력하여 주십시오. 명령줄에서 for문이라니! 하실 수도 있지만, 제대로 잘 작동합니다. 위의 linux의 *.proto와 같은 기능으로 파일 내 모든 .proto 파일을 protoc로 컴파일 합니다.

      잘 되었는지는 object_detection\protos에 가서 보시면 .py파일이 .proto아래 생겨있으면 성공입니다.

 11) CLI상에서 환경변수 설정하는 방법도 linux와는 약간 다르게, models/research 폴더 상에서

       SET PYTHONPATH=%cd%;%cd%\slim

      를 입력하시면 됩니다. 특이점이라면 %cd%와 %cd%사이가 콜론(:)이 아니라 세미콜론(;)입니다.

      지금까지 사용해 본 결과로는 매번 실행할 때마다 새로 해주어야 하는 것 같은데, 이는 추후에 더 확인해보고 계속 초기화 되면 시스템 패스에 등록한 뒤 제대로 작동되나 확인해보고 추가하겠습니다.

 12) python C:\Users\[유저 이름]\models\research\object_detection\builders\model_builder_test.py 를 입력하시면 OK사인이 나옵니다. GPU환경에서요. (여담이지만 윈도우즈에서는 대괄호 안에 넣은 절대주소를 이용하는 것이 속이 편합니다.)

윈도우즈 10 64bit에서부터 ubuntu가 공식적으로 윈도우즈의 subsystem으로 들어왔습니다.

 

그리고 이를 따라서 하신다면 VMware에서 말고도 윈도우즈 자체에서 linux bash등 linux system을 사용할 수 있기 때문에 좀 더 빠른 환경을 가지실 수 있습니다.

 

1) 시작메뉴에서 '제어판'을 실행합니다.

2) 프로그램 및 기능을 선택합니다.

3) 왼쪽의 Windows 기능 켜기/끄기를 선택합니다.

4) 목록에서 Windows subsystem for Linux를 체크하고 확인을 누릅니다.

5) 컴퓨터를 재시작 하라는 안내가 나오면 재시작 합니다.

6) Microsoft store에서 linux를 검색하고, 아래에 'Windows에서 Linux의 모든 것을 누리세요' 하단의 '앱 다운로드'를 클릭합니다.

7) 사용 가능한 linux 배포판이 리스팅 되어 있습니다. 저희는 Ubuntu를 설치할 것이므로, Ubuntu를 클릭하시고 '무료' 혹은 '다운로드'를 클릭하셔서 다운 받으신 뒤 '설치'를 눌러주시면 설치가 진행됩니다.

8) 설치가 다 되면 시작메뉴에서 ubuntu를 검색한 뒤에 그냥 클릭해주시면 자동으로 ubuntu system이 가동됩니다.

9) 첫 실행시에는 Unix username과 password를 입력하는 것이 뜰 것입니다. 작성하고 싶으신 username과 password를 입력해주시면 됩니다.

 

10) 윈도우즈 내에 linux ubuntu subsystem 설치를 완료하였습니다.

 

이후에는 linux에서 사용하듯이 명령어를 입력하여 linux환경 혹은 bash 환경을 설정할 수 있습니다.

고민하는 것이 사는 것이며, 고민하는 힘이 살아가는 힘이다.

 

1) 나는 누구일까?

 사람과 사람의 관계에 있다 : ~의 아빠, ~의 남편.

                                      나란 존재는 타자와의 관계 속에서만 성립할 수 있다. => 타인은 나의 지옥이다

                                      => 주변 사람들을 소중하게 생각해야

 

2) 우리는 무엇을 위해 일을 하는가

 콤플렉스 : 일을 하지 않으면 제 구실을 하지 못한다.

 사회 속에서 자기 존재를 인정 받는다.

 

3) 제대로 안다는 것은 무엇인가

 정보를 더 많이 가지고 있는 것을 지성으로 착각하고 있는 것은 아닌가?

 알고 있다(know)와 사고하다(think)는 다르고, 또한 정보(information)와 지성(intelligence)은 다르다.

 세상을 움직이는 지식은 정보가 아니라 진리이다.

 

4) 늙어서 우리는 어떻게 살아야 할까

 늙지 않는 것을 꿈꾸지 말고, 늙으면서 얻는 가치를 이용하라.

 제 2의 인생에 도전 : 인생을 두 번 살 수 있는 기회

 

진정한 문제는 밑바닥을 치는 고민을 통해 해결.

큰 고민이 위대한 역사를 만든다.

 

감상: 사람은 고민하는 만큼 성장한다고 하였다. 갓 태어난 새는 자신만의 세계를 부리가 부러질 정도로 쪼아대어야 새로운 세상으로 나아갈 수 있다고 하였다. 이것은 자신만의 고민에도 해당되는 것 같다. 자기자신에 대한 고민을 죽을정도로 할 때, 그 해답에서 자신의 세상이 그만큼 넓어지는 것이라 생각한다. 또한 일을 하면서도 고민을 통해 어떻게 하면 더 효율적으로 일할 수 있을까를 고민하다보면 그만큼 요령이 생긴다. 고민 없는 삶이 좋은 것 같지만 미꾸라지와 잉어의 이야기처럼 적절한 스트레스(고민)은 일상생활을 더 활력있게 만든다.

'ETC > 책리뷰' 카테고리의 다른 글

괴짜처럼 생각하라  (0) 2019.05.30
보이게 일하라  (0) 2019.05.08

무슨 일을 하건 가장 먼저 던져야 할 질문 : "내가 왜 이 일을 하지? 그래서 얻는게 뭐지?" [방향성]

 

사람들이 변화에 동참하지 않는 것 : 방향성에 공감을 못하기 때문

 

보이게 일하면 일에 대한 피로가 줄어 듦 <-> 혼자만 볼 수 있게 일하면 쉬운 일도 힘들어짐

 

팀워크의 기본 : 보이게 일하기

 

1) 어디로 가는지 보이게 하기

 - 조직은 어디로 가고 있나, 직원들도 그 방향을 알고 있나

 - 과감한(이상적인) 목표 : 10배 성장, 시장을 뒤흔들고 판도를 바꾸고, 완전히 다른 시장 개척

  => 기존 방식과 고정관념 버리고 백지 상태에서 다시 시작. 상상->실행, 불가능한 생각->실제 만들어가는 발상

       실행에 대한 절박함이 조직을 강하게 만든다. 쉬운 문제만 풀면 실력이 늘지 않음.

 

2) 무엇을 하는지 보이게 하기

 - problem의 어원 : 암프로 던지다 = 문제를 던지는 순간 해결 됨

 - 누구나 무엇이 문제인지 알게 하고 공유하게 하면 문제를 해결할 수 있음

 - 서로가 무슨 일을 하는지 알 수 있어야 함

 - 누가 휴가를 가더라도 대신할 사람이 있어야 함

  => 내 일을 대신할 사람이 없어 휴가를 못 가는 구성원이 많으면 문제가 있는 조직

 - 자기 일만 잘하고 '이 일은 내 일이니, 나만 알아야 한다'는 폐쇄적 생각은 위험함

   조직 안에 나만의 일이란 존재하지 않음. 지식/정보 공유 => 부가가치 창출 [블로그를 하는 이유]

   내가 맡을 일 뿐 아니라 여러 분야를 두루 공부하고 이해하려는 노력

   얼마나 빨리 정보를 공유하고 이해관계를 조정하고 협력해서 성과를 개선하느냐

 - 사무실 공간 : 가운데가 뻥 뚫린 도넛 모양(구글 신사옥), 1층 짜리 거대한 원룸(페이스북 사무실)

 

3) 어떻게 하는지 보이게 하기

 - 갈무리 회의 : 팀 전체가 서로 도와 일을 같이 마무리

                     퇴근 한 두 시간 전 오늘 일을 다 마무리 했는지, 해야할 일이 남았다면 어떤 일이 어느 정도 남았는지, 왜 늦어졌는지 등을 서로 공유 -> 리더를 중심으로 누구에게 어떤 도움이 필요한지 파악하고 서로 도움을 줄 수 있는 부분과 도움을 받으면 쉬워질 수 있는 부분을 함께 논의. 그리고 그 업무를 가능한 빠른 시간 내에 협력해 마무리하고 같이 퇴근

 - 혼자만 잘해서는 안됨. 각자 능력을 최대한 발휘해야 성과가 있음.

   업무 프로세스를 투명하게 공개하면 업무 능력 차이에서 오는 병목현상과 불균형을 해소하고 초과업무로 인한 불만을 없앨 수 있음.

 

협업의 시대 - 협업을 위해서는 보이게 일해야 함

우리가 어디로 가는지, 목표로 삼은 고지가 어디인지를 구성원이 다 함께 볼 수 있어야 하고, 누가 무슨 일을 어떻게 하는지도 서로에게 보여야 함.

 

결론: 중간에도 썼듯이 처음 블로그를 하고 에버노트나 구글 드라이브에 있던 문서들을 많은 부분 블로그에 옮기는 계기가 된 책이었다. 산업시대의 재화와 다르게 지식은 나눌수록 가치가 증대하며, 그 증대된 가치는 다시 나에게 돌아온다. 윈윈하기 딱 좋은 시대이기 때문에 서로의 업무를 투명하게 공개하여 업무를 좀 더 효율적으로 해결할 수 있다. 그리고 혹시 아는가. 정말 예상도 못한 직종에 있는 사람이 나의 고민을 해결해 줄 수 있을지.

'ETC > 책리뷰' 카테고리의 다른 글

괴짜처럼 생각하라  (0) 2019.05.30
고민하는 힘  (0) 2019.05.09

* 시작 전에: EC2 무료사용의 경우 한달 750시간인데, 이는 EC2 전체 사용시간을 통틀어 한달 750시간 이내라는 것 입니다. 즉 EC2를 두대를 켜놓게 되면 하루에 48시간 사용하는 것과 같은 효과라 한대치는 유료로 사용하는 것이 됩니다. 이걸 이번달에 돈내면서 알게 되었으니 다들 저같이 피같은 돈을 쓰시지 않으시기를 바랍니다... 저희는 온전히 무료로 서버를 이용하는게 목적이니까요... 흑흑..

 

사실 이전까지의 모든 것으로 python을 사용할 수 있는 한대의 컴퓨터가 더 생긴 것은 맞지만, 보안을 위해서 ssh 접속으로 설정해 놓았기 때문에 정말 아무런 컴퓨터 혹은 아무런 디바이스에서나 막 접속할 수는 없습니다.

 

이를 위해서 8888번 포트를 미리 개방해 놓았는데요, 오늘은 이 포트를 가지고 어디에서나 접속할 수 있는 주피터 노트북 서버를 만들어 보도록 하겠습니다.

 

현재 아나콘다를 설치하여 주피터 노트북은 설치가 이미 되어있는 상태입니다.

그리고 현재 버전의 아나콘다(정확히는 주피터 노트북 5버전 이상)를 사용중이시면 주피터 노트북에서 비밀번호 설정이 매우 쉽습니다.(중요) 나중에 차근히 알려드리겠습니다.

 

그리고 자신하건데 주피터 노트북 서버를 만드는데 지금 이 포스팅보다 더 간단한 방법은 없다고 자부할 수 있습니다.

 

1) 먼저 설정에 필요한 정보들을 모아야 합니다.

      1] AWS에 접속하여 대시보드에서 EC2를 검색합니다. (혹은 최근에 이 항목을 쓰셨다면 대시보드 검색창 아래에 EC2가 있을 것입니다.)

      2] EC2 대시보드에서 좌측의 '인스턴스'를 클릭합니다.

      3] 현재 저희들은 인스턴스를 하나만 만들어 놓았기 때문에 현재 'running'이라고 떠 있는 인스턴스를 클릭합니다.

      4] 아래쪽에 인스턴스의 상세한 설명들이 나오는데 여기서 '프라이빗 IP'라고 써있는 항목을 찾습니다. 점(.) 세개로 구분된 네 뭉텅이의 숫자가 IP입니다. (ex 172.30.29.125)

      5] 과거에 처음에 만들었던 설정에서 '보안그룹'에 '인바운드'탭에 8888번 포트가 개방되어 있는지 확인합니다. 만약에 개방되어 있지 않다면 개방하여 줍니다. (jupyter notebook은 기본적으로 8888번 포트를 사용합니다.)

 

2) 이제 인스턴스에 CLI로 접속합니다. PuTTY(Windows) 혹은 Command Line(Mac, Linux)을 사용하여 접속합니다.

 

3) 명령줄에 [jupyter notebook --generate-config]를 입력하고 엔터를 칩니다.

      1] 이 명령을 수행하고나면 [/home/ubuntu/.jupyter] 폴더 아래에 jupyter_notebook_config.py라는 python 파일이 생성됩니다.

 

4) 명령줄에 [vi /home/ubuntu/.jupyter/jupyter_notebook_config.py]를 입력한 뒤 엔터를 치면 vim 에디터가 열리며 문서가 열립니다.

      1] 아래에 모든 항목이 #으로 주석처리 되어있으며, 사실 여기서 찾아보면 저희가 설정하고자 하는 모든 항목들이 나와있으나 하나하나 찾기 힘드니 그냥 위에다가 새로 써 줄 것입니다.

      2] 맨 첫줄 맨 앞에서 i키를 누른 뒤 엔터를 두번 쳐줘서 맨 위에 공간을 만들고 다시 맨 위로 올라와 아래의 커맨드를 씁니다.

            c.NotebookApp.ip = '___.___.___.___' #아까.찾은.프라이빗.IP [필수!]

            c.NotebookApp.open_browser = False #자동으로 브라우저 여는 것에 대해 False. 어차피 CLI 환경이라 꺼줍니다.

            c.NotebookApp.notebook_dir = u'/home/ubuntu/' #Jupyter notebook에 처음 접속하였을 때 보여줄 디렉터리 경로입니다. CLI로 처음 접속하였을 때의 기본 디렉터리가 ubuntu/이며, 이 뒤에 새로 생성한 dir이 있으면 주소형식으로 추가해주시면 됩니다. 만약 안써주시면 CLI 상에서 jupyter notebook 명령을 친 디렉터리 위치가 브라우저상에서 열리게 됩니다.

            c.NotebookApp.port_retries = 8888 #주피터 노트북이 사용할 포트를 지정하는 곳입니다. 기본 포트인 8888을 사용할 경우 이 부분을 입력하지 않으셔도 되지만, 만약에 포트를 바꾸고 싶으시면 이 부분을 수정함과 동시에 EC2에서 보안그룹의 인바운드 포트를 추가적으로 개방해주셔야 합니다.

      3] 위의 네 줄(혹은 필수 한줄 이외 옵셔널 몇 줄)을 모두 입력하셨으면 :wq를 누르셔서 저장하고 CLI환경으로 다시 나오시면 됩니다.

 

5) 주피터 노트북을 브라우저로 열 때 비밀번호를 설정합니다.

      만약 설정되어 있지 않다면 접속이 아예 안되거나, 첫 접속시 token(이라고 jupyter notebook을 실행한 환경에 주소뒤에 붙어나오는 특별한 값이 있습니다.)을 입력하거나 토큰입력 후 비밀번호를 설정하라는 페이지가 나옵니다.

      위의 상황 모두 짱 귀찮으니 그냥 주피터 노트북에 비밀번호를 먼저 설정해줍시다.

      여기서 주피터 5번 버전대 이후가 편해진 부분이 이 부분입니다. 과거에는 비밀번호를 설정하거나 재설정 할때 정말 핵귀찮았지만, 5버전대 이후에는 명령어 한줄만 쓰면 새로 설정과 변경이 자유롭습니다.

      1] CLI 명령줄에 [jupyter notebook password]을 칩니다.

      2] 차례대로 Enter password:, Verify password: 식으로 나오는데, Enter password: 라고 나오고 아무리 키를 눌러도 입력되는 것으로 나오지 않으나 입력되는 상태이므로 그냥 먹통인 상태로 패스워드 입력 후 엔터치면 자동으로 Verify password: 로 넘어가고 여기서도 같은 pw를 입력하면 password가 설정됩니다.

      3] 이후에 패스워드를 바꿀때도 간편하게 CLI 명령줄에 [jupyter notebook password]입력 후 새로 쓸 패스워드를 입력하면 패스워드가 바뀝니다.

 

      참고) 과거에는 ipython 혹은 python을 직접 CLI환경에서 구동한 뒤

              [from notebook.auth import passwd]

              [passwd()]

              의 두 줄을 따로 입력하여 'sha1:~~~~~'라고 하는 해시값을 얻은 뒤 이것을 다시 jupyter_notebook_config.py에다가 다른 항목들 처럼 c.NotebookApp.password = 'sha1:~~~~'이런식으로 써 주어야 했으며 패스워드 변경은 훨씬 어려웠습니다.

 

6) 서버를 24시간 켜두고 언제든지 접속하는 것을 목표로 하기 때문에(서버에 들어가서 따로 켜 주었을 때만 작동하는 거라면 그냥 로컬에서 jupyter notebook을 쓰는 것과 다름이 없습니다... (적어도 사용하는 관점에서는)) 사용자가 로그아웃 하여도 24시간 서버컴에서 돌아가는 방법을 사용하겠습니다. screen이라는 기능인데, 이 명령어를 사용하여 만든 screen안에서 동작하는 것은 사용자가 로그아웃을 하여도(서버를 떠나도) 계속 작동합니다.

      1] screen -S [스크린 이름] 을 명령줄에서 실행합니다. 여기서 -S는 새로 스크린을 스크린 이름으로 만들겠다는 것입니다. 처음에는 만들자마자 스크린으로 자동으로 attach 됩니다.

      2] 여기에서 jupyter notebook을 명령줄에 입력하여 jupyter notebook을 켭니다. 이제 jupyter server가 꺼지지 않고 돌아가는 서버 컴퓨터를 만든 것입니다.

      3] 이후 Ctrl+a+d키를 차례로 눌러 원래 CLI 환경으로 돌아옵니다. 다시 스크린에 돌아가고 싶으시면 screen -r [스크린 이름]을 치시면 해당 스크린으로 다시 attach되며 다시 Ctrl+a+d를 누르시면 detach 됩니다. (어떤 경우에 제대로 detach되지 않은채 CLI환경 자체가 꺼진경우 다시 접속하면 CLI 환경인데 스크린이 detach되지 않아 -r로 attach할 수 없을 경우 -dr로 접속하면 그 스크린을 자체적으로 detach시켰다 다시 attach하므로 접속이 가능해집니다.)

      4] 추가적으로 현재 사용하고 있는 스크린의 목록을 보고 싶으시면 screen -ls를 치시면 볼 수 있습니다.

      5] 어떤 스크린을 끄고 싶으시면 원래 CLI 환경에서 screen -X -S [스크린 이름] quit 혹은 screen -X -S [스크린 이름] kill을 하시면됩니다.

      6] 동일한 이름의 스크린을 만드셨다면, screen -ls 를 쳤을 때 스크린 이름 앞에 숫자가 .으로 붙어있는데 이것으로 같은 이름의 스크린이더라도 구별하여 없애거나 다시 접근하거나 하실 수 있습니다.

 

7) 이제 직접 접속해 봅시다.

      1] 이전까지 파일질라나 PuTTY에서 썼던 퍼블릭 IP를 [http://퍼블릭 IP:8888]로 브라우저에 입력하고 접속합니다.

          예를들어 퍼블릭 IP가 54.127.52.125 였다면 http://54.127.52.125:8888로 접속합니다.

      2] 비밀번호를 입력하라는 페이지가 나오면 성공입니다. 여기서 비밀번호를 입력하면 처음에 보여주기로 설정했던 디렉토리가 보일 것이며, 한번 입력 후 브라우저가 기억하는 한 다음 접속부터는 비밀번호를 입력하지 않아도 주소만 입력하면 자동으로 접속 될 것입니다.

 

8) 따라! 성공하였습니다!

 

 

이제 자유자재로 프로그래밍 가능한 강력한 interpreter 도구를 얻으셨으며, 언제 어디서든 자유롭게 인터넷으로 접속할 수 있습니다. 게다가 고정된 ip주소를 가지고 있으니 한번 접속만 하면 자동으로 브라우저가 자동완성으로 페이지 주소를 만들어 줄 것입니다.

 

그러나 컴퓨팅 성능 자체는 그리 좋지 못하여 과한 deep learning tasks 같은 것을 돌리면 컴퓨터 자체가 뻗어버려 EC2환경에서 다시 재부팅 해줘야 하는 일도 발생할 수 있으니 컴퓨팅 환경은 제한적이라는 것을 꼭 기억해주시기 바랍니다.(그래도 일반적인 코딩 수준에서는 문제가 하나도 될 것이 없습니다.)

 

이제 이 서버컴퓨터로 개발을 할 수 있는 준비는 다 끝났습니다. 이것을 활용하여 더욱 많은 프로젝트들을 협업하고, 언제 어디서나 작업하실 수 있기를 바랍니다!

요새 외장하드를 사용하는데 처음 켜지는데 오래걸리고 자꾸 '매개변수가 틀립니다'라는 오류가 나서 찾아보니 전부 데이터 복구업체 광고들 뿐...

 

정말 심각한 상황이면 데이터 복구업체를 이용해야 하지만, 일단 집에서 할 수 있는 것은 해보아야겠다는 생각에 cmd를 켜 보았습니다.

 

실행방법은 윈도우키+R 이후 cmd입력 혹은 요새는 시작 버튼 누른 뒤 바로 키보드로 cmd 입력해도 검색해서 찾아주니까 쉽게 실행하실 수 있습니다.

 

그 뒤 인식이 애매하게 되는 드라이버 명(F:, G: 등)을 입력하면 만약 문제가 있을 경우 무슨 문제가 발생했다고 알려줍니다.

 

이후 chkdsk/f [드라이버 명]을 입력하면 알아서 처리가 됩니다.

 

시간은 조금 소요되고, 만약 컴퓨터가 완전히 제대로 인식하고 있다면 '다른 프로세스가 사용중인데 볼륨을 떼어낼까요?' 같은 질문이 들어옵니다.

 

이 메시지가 나온다면 제대로 인식이 되고 있는지 한번 더 확인해보시고, 그래도 안되면 떼어내서 검사하기에 yes 해주시면 됩니다.

이제 그동안에 인스턴스를 만들고 서버에 접속도 되며, 파일까지 올릴 수 있으니 본격적으로 서버를 활용해 보는 시간을 가져보도록 하겠습니다.

 

일단 요새 프로그래밍 언어 중 가장 핫한 파이썬을 깔아보도록 하겠습니다.

 

파이썬은 여러 패키지가 장점인 만큼 오히려 패키지가 서로 상호 의존적인 부분이 있어 따로 설치시에 가끔씩 오류가 나는 경우가 있어서 요새는 '아나콘다(Anaconda)'라는 Continuum사에서 따로 배포하는 배포판을 받아서 설치할 것입니다.

 

가볍게 '배포판'이라는 것은 파이썬 인터프리터 외에 필수적인 여러 패키지를 한번에 묶어서 배포하는 것 입니다.

 

여기서는 리눅스 자체에서 wget 명령어로 다운받는 방식과 리눅스 실행파일을 받은 뒤 FTP로 올려주는 방법이 있습니다.

(차이는 명령어로 좀 더 쉽게 처리하냐 아니면 수작업을 한번 더 하느냐의 차이일뿐입니다.)

 

1) wget 명령어 활용

      1) https://repo.continuum.io/archive/에 접속하시면 다운받을 수 있는 파일의 이름이 쭉 나옵니다. 이 중에서 원하는 버전(2번대 혹은 3번대. 개인적으로는 3번대를 추천드립니다.)과 원하는 OS(여기서 우리는 Linux 버전), 프로세스 타입(32bit, 64bit) 그리고 원하는 날짜(가장 최근 릴리즈 된 것 등)를 고르신 뒤 .sh로 끝나는 파일명을 오른쪽 클릭하여 링크 주소를 복사합니다.

      2) PuTTY 혹은 커널로 접속한 뒤 wget을 입력한 뒤 한칸 띄우고 아까 복사한 링크를 붙여넣기 합니다. 예를 들어 파이썬 버전 3, 64비트 운영체제 linux 최신 릴리즈(2019.03)인 파일을 다운 받으려면 [wget https://repo.continuum.io/archive/Anaconda3-2019.03-Linux-x86_64.sh]라는 명령줄을 입력하시면 됩니다.

 

2) 웹 다운로드 후 FTP활용

      1) https://www.anaconda.com/distribution/사이트에 접속합니다.

      2) 중간의 OS에서 Linux를 클릭한 뒤 아래쪽의 버전대를 보시고 64비트 인스톨러를 클릭합니다.(아마 그냥 Download 버튼을 클릭해도 64비트 인스톨러가 다운로드 될 것입니다.)

      3) FileZilla를 켜시고 다운받은 파일을 서버에 업로드 해 줍니다.

 

이렇게 아나콘다 파일 다운로드는 끝났습니다.

 

이후에는 공통적으로 [bash 파일이름]을 입력하시면 설치가 시작됩니다. (bash Anaconda3-2019.03-Linux-x86_64.sh)

 

설치시에는 yes|no가 나오는 부분에서 전부 yes를 해주시면 되며, system path에 등록할거냐고 묻는 질문에 yes 해 주신 뒤 source ~/.bashrc 한번 해 주시면 system path가 등록이 됩니다.

 

이 상태에서 테스트 스크립트를 한번 돌려보고 만약에 테스트 스크립트가 돌아가지 않는 경우 conda환경을 하나 만들어주어야 합니다.

 

테스트 스크립트 만드는 방법은 아래를 따라오시면 됩니다.

 

시스템 CLI: vi test.py 입력

VIM안에서 a [vim 에디터 수정 명령어]

print("Hello world!")

esc로 에디트 모드 해제

:wq 입력하여 저장 후 CLI창으로 복귀

시스템 CLI: python test.py 입력

 

화면에 Hello world!가 출력되지 않는다면 conda 환경을 만들어주어야 합니다.

 

conda create --name [환경이름] python=3

conda activate [환경이름]

 

환경이름에는 영어로 입력해주시면 됩니다. 가령 my_env 같은 이름으로요.

 

저의 경우 이렇게 한번 activate 시켜주면 이후로는 지속적으로 activate되어 있었습니다.

 

그리고 다시 python text.py를 입력해보시면 이번에는 확실하게 Hello world!가 찍히는 것을 보실 수 있습니다.

 

더 궁금하신 점은 댓글 달아주시면 확인 후 답변드리겠습니다.

 

다음에는 이 환경에서 온라인으로 jupyter notebook 서버를 만들어보도록 하겠습니다.

인터넷에서 찾아보면 석박사 유학에 드는 준비 자금이 얼마나 드는지 정말 속 시원히 올라와 있는 곳이 없습니다.

 

저도 준비하면서 얼마나 자금이 드는지 미리 알아 놓아야 준비 전 저축을 해 두어서 대비를 할 수 있었을텐데 그러지 못하여 유학 준비에 큰 어려움을 겪었습니다.

 

이에 여기서 제가 준비했던 것을 기반으로 유학 준비 자금을 공개합니다.

 

절대적으로 이정도 든다는 것이 아니라 이 사람은 이정도 들었구나 하고 참고자료 정도로 보아 주시기 바랍니다.

 

순수하게 유학 준비에 사용한 돈만 추려보았습니다. 그래서 생활비 항목이 빠져있습니다.

 

학원은 전부 H학원에서 들었고, 유학원도 동 유학원을 이용하였습니다.

 

TOEFL-

H학원에서 토플은 3개월을 수강하였고, 수강료에 책값과 기타 부교재 비용등을 총합하여 141만원을 사용하였습니다.

토플 시험의 경우 회당 신청 기간에 따라 최소 190 달러(19년 5월 환율 기준 22만원)에서 240 달러(동 환율 28만원)까지 차등이 있으므로, 미리미리 신청하여 최소가격에 신청하는 것이 좋습니다.

토플은 총 4번 보았는데, 목표했던 점수에는 이르지 못하였습니다.

2번+2번 나누어 보았는데, 개인적으로 토플을 3달 잡고 한번에 목표점수를 돌파하는 것이 좋은 것 같습니다.

 

GRE-

H학원에서 GRE 3개월 수강하였고, 수강료에 책값과 기타 부교재 비용등을 총합하여 301만원을 사용하였습니다.

GRE 시험의 경우 회당 205달러(동 환율 기준 24만원)입니다. 이때는 준비성이 좋았는지 총 세번의 시험 모두 205달러에 시험보았습니다.

사실 공부하면서 정말 말도 안되는 시험 같아서 빨리 끝내버리고 싶은 마음에 적당히 타협하고 졸업했습니다.

 

공부기타-

공부를 하다보면 노트나 독서실 비용이나 서류를 떼야 하는 등 기타 잡비가 발생할 수 있는데, 이것을 다 합쳐 약 50만원 정도의 여유비용을 가지고 있으시면 좋을 것 같습니다.

 

생활비-

생활비의 경우 워낙 개인마다 편차가 커서 정확히 말씀드릴 수는 없습니다만, 개인적으로 공부하시게 되신다면 매달 들어가는 생활비도 만만치 않다는 것을 알려드리고 싶었습니다.

 

유학원-

그리고 사실 유학원도 상당한 비용이 들어갑니다. 약간 미지의 영역이라 그래도 조언해줄 수 있는 유학원을 찾게되는 것 같습니다. 언제 등록하는지, 어느 유학원에서 하는지에 따라 가격이 천차만별이라 정확한 가격은 말씀드릴 수 없지만, 미리 유학을 준비하는 입장에서 약 500만원 이상 준비해 놓으시면 부족함은 없으시리라 생각됩니다.

그리고 말씀드리고 싶은 것은 유학원도 하나의 영리추구집단이기 때문에 유학원에 본인의 모든 것을 맡기시면 안됩니다. 분명히 공부가 힘들고 나머지 것을 다 처리해 주었으면 하고 등록하는 곳이 유학원이지만, 그정도로 1:1 케어를 하기에는 직원 한 사람당 딸려있는 학생이 너무 많습니다. 정말 중요한 것은 본인이 처리하셔야 하며, 그렇게 친다면 자문기관의 역할로 사용할 수 밖에 없음인데 이에 500이라는 돈은... 주변에 조언해 줄 분들이 계시다면 한번 쯤 재고해보실 필요가 있는 돈입니다.

 

원서접수-

준비가 끝나셨을 경우 학교마다 원서를 접수해야 하는 시기가 옵니다. 여기에서 다시 토플과 GRE 점수를 대학교에 리포팅을 해야하는데 여기에 또 돈이 듭니다.(ETS는 돈빨아 먹는 기계입니다) 토플은 학교 하나당 20달러(2만원), GRE는 학교 하나당 27달러(3만원)이고, 학교마다 원서비 자체는 원서 하나당 약 10만원 입니다. 즉, 학교 열군데 조금 넘게만 지원해도 약 150만원이 넘는 금액이 깨지는 것을 알 수 있으며, 특히 오프라인 우편물을 요구하는 학교가 껴 있을 경우 택배비도 추가되니 원서비도 상당한 고려사항이 될 수 있습니다.

 

 

그래서 결과적으로 유학에 생활비 제하고 1500만원 가량을 썼네요.

처음에 정보가 너무 없어서 500만원 예상하고 시작했던 기억이 있는 만큼, 이 글을 보시는 여러분들께 이정도의 비용이 든다는 점을 알려드리고 싶었습니다.

 

 

아래 표는 대략적인 근사치가 아닌, 제가 직접 사용한 모든 돈을 기반으로 위의 네가지 카테고리에 맞춰 그려본 파이차트입니다. 생활비 항목은 빠져있고, 순수하게 유학을 준비하는데 사용한 비용만 산출하였습니다.

 

'ETC > 유학' 카테고리의 다른 글

유학준비하기 - 장학금(한국고등교육재단)  (2) 2019.04.18

오늘까지의 포스팅이면 AWS에서 서버를 만든 뒤 자유자재로 활용가능합니다.

 

서버에 할당된 용량안에서 파일도 왔다갔다 할 수 있고(3), OS 내부에서 일을 처리할 수 있으며(2), 컴퓨터 자체를 켜고 끄고 인터넷 설정을 할 수 있게 되는 것(1)이죠!

 

이미 1번과 2번 포스트를 보고 잘 따라오셨다면 이번 포스트는 정말 쉽습니다.

 

그럼 시작해보겠습니다.

 

1) 먼저 FileZilla를 다운받아줍니다.

      공식 홈페이지는 https://filezilla-project.org/이며, 현재 저희는 Client인 컴퓨터에서 AWS서버로 접속을 할 예정이니 Client(홈페이지 좌측에 있는 버튼)를 클릭하여 다운로드 받아줍니다. 클릭하면 자신의 OS를 선택하는 창이 나오는데, OS에 맞게 다운로드 받으시면 됩니다.

      마지막에 팝업으로 FileZilla Pro버전을 프로모션하는데, 그냥 저희는 FileZilla만으로 족하니 오른쪽 컬럼의 FileZilla에서 Download를 눌러줍니다.

      그럼 마침내 다운로드가 시작됩니다.

 

2) 다운로드 받은 파일을 설치합니다.

      처음에 I Agree 해주시면 잠깐만 기다리라는 말이 나온 뒤 먼저 FileZilla가 깔려있었을 경우에는 이전세팅 유지하고 Upgrade할 건지 아니면 세팅 변경할건지 같은 창이 나오는데, 각자 자신에게 알맞은 것을 선택하며 설치를 진행해 줍니다.

      중간중간에 Avast 백신 등 FileZilla외에 프로그램을 설치하는데 동의하냐는 구간이 있으니 막 Next 클릭하지 마시고 저런 프로그램 설치에 동의하냐는 체크박스를 풀어주셔야 합니다.

      그리고 Next 누르면 자동으로 설치가 완료됩니다.

 

3) 파일질라를 실행하시면 먼저 왼쪽 위에 컴퓨터 본체 세대가 붙어있는 듯한 아이콘을 클릭하셔서 '사이트 관리자'창을 띄우셔야 합니다.

 

4) 이 창에서 먼저 좌측 하단에 '새 사이트'를 클릭하시고 새 사이트의 이름을 정하신 뒤, 오른쪽의 '일반' 탭에서 [프로토콜]을 'SFTP'로 설정해 줍니다. 저희는 SSH로 접속하기 때문에 FTP도 SSH로 접근합니다.

 

5) 그리고 그 아래 [호스트]는 저희가 이전에 elastic ip(탄력적 ip)를 만들어서 저희 서버에 붙여주었던 그 ip를 써주시면 됩니다. 저희가 커맨드라인 상에서 혹은 PuTTY로 접속할 때 썼던 그 ip입니다. [포트]는 비워두신채로 두셔도 SFTP가 사용하는 포트가 22번(FTP-21번)이므로 프로그램에서 자동으로 설정합니다.

 

6) 그리고 그 아래 [로그온 유형]은 '키 파일'로 설정해 주시고 그 아래 [사용자]는 ubuntu로 지정해줍니다. 저희가 만들었던 OS에서 사용하는 사용자 명입니다. 저희는 ubuntu OS로 만들었기 때문에 ubuntu이고, 다른 OS인 경우 이전 포스팅(https://omnil.tistory.com/68?category=782762)에서 사용자 이름을 정리한 테이블을 보아 주시기 바랍니다.

 

7) 그 아래에 있는 [키 파일]에서 '찾아보기'를 선택하신 뒤 ppk파일이나 pem파일을 선택하여 주시면 됩니다.

 

8) 이 외의 탭은 고급설정이므로 저희는 이정도면 OK입니다. 이렇게 설정을 마친 뒤 '연결'을 눌러주시면 서버로 SFTP연결이 되며, 현재 서버에 있는 파일들을 볼 수 있습니다. 그리고 다음부터는 아까전에 설정한 이름을 가지고 쉽게 연결을 진행하실 수 있습니다.

 

이것으로 AWS를 활용할 수 있는 방법에 대하여 전부 알아보았습니다. 다음편에는 Anaconda와 jupyter를 활용하여 웹상에서 jupyter를 사용할 수 있게 만들어 보도록 하겠습니다.

우리나라에서 유학이란 정말 은근히 정보가 많이 부족한 분야인 것 같습니다.

 

제가 자료를 찾아보던 몇년 전보다는 관련 자료들이 폭발적으로 늘어나고 있기는 하지만, 그럼에도 자세하게 비용이라던가 유학 flow라던가 여러가지가 부족한 것이 사실입니다.

 

그리고 사실 유학원이 이런 것으로 돈을 벌고 있는 부분은 사실입니다.

[그러나 결국 말씀드리겠지만, 유학원은 '보조적'으로 써야지 유학원을 백퍼센트 믿으면 안됩니다. 결국 그들은 돈을 받고 동시에 '수십명'의 유학을 대행하기 때문에 한명한명 신경써주지 않습니다.]

 

그리고 그 중 한국고등교육재단에서 주는 장학금에 대하여 말씀드려보고자 합니다.

 

현재 우리나라에서 많은 해외장학들이 과거에 비해 사라졌습니다.

삼성장학과 STX장학이 대표적입니다.

 

특히 석사 혹은 박사 유학으로 받을 수 있는 장학은 정말 몇개 되지 않습니다.

 

그리고 남아있는 장학들 중 유학 대학의 합격 발표 이전에 신청하여 받을 수 있는 장학은 (개인적으로 찾아본 수준으로는) 한국고등교육재단과 풀브라이트 장학의 두가지 입니다.

 

그 중 풀브라이트 장학은 2년간만 지원해주고, 액수도 정해져있을 뿐더러 학위를 마치고 난 뒤 2년간 본국에 의무 복귀를 해야 한다는 단점이 있습니다.(물론 이 부분은 반드시 본국이 아니라 다른 해외에 나가있어도 된다는 말도 있습니다.)

 

그래서 그나마 국내에서 받을 만한 해외 장학은 한국고등교육재단 정도라는 결론이 나옵니다.

 

그래서 저는 한국고등교육재단에 지원을 했었습니다.

 

그러나 사실 한국고등교육재단에서 어떤 시험을 보는지 검색해도 잘 나오지 않더라구요.

 

그래서 오늘은 그 이야기를 해볼까 합니다.

 

시험은 8월 중에 보는데, 그때 기록해 놓으려고 따로 적어놓은 종이가 현재 사라져서 제 기억에 의존하여 작성합니다.

[물론 그 종이가 발견되면 다시 이 글에 업데이트 하겠습니다.]

 

신청은 약 7월 사이에 한국고등교육재단 홈페이지에서 'What's new'에 공지로 뜹니다.

지원을 위해서는 기본적인 양식 작성과 함께 교수님의 추천서가 필요한데, 이는 양식작성시 교수님 이메일을 쓰면 교수님께 직접 링크가 날아가서 교수님께서 쓰시는 형태입니다.

사실 한국고등교육재단에서 주는 장학금은 특이하게 먼저 1차적으로 '필기 시험'을 보게 됩니다. 여기서 선발된 사람들이 면접으로 진행되고, 그 이후에 장학금을 받게 되죠.

면접전형이 필기발표 바로 다음날이라 발표를 보고 준비하기에는 늦고, 먼저 시험을 보자마자 혹은 그 이전부터 면접을 준비해야한다는 점이 있고, 면접 바로 다음날 최종 발표가 나기 때문에 시험 이후 템포가 굉장히 빠른 축에 속합니다.

 

시험은 총 4교시로 봅니다.

1교시는 영어1(구GRE)

2교시는 영어2(독해)

3교시는 영어3(에세이)

4교시는 전공

 

일단 영어를 3과목이나 봅니다.

영어는 구GRE형식의 문제, 독해, 에세이 이렇게 세 과목으로 보는데, 현재 기억으로는 정확한 매칭은 기억이 나지 않습니다. 개인적으로 구GRE, 독해, 에세이 순서였던 것 같고 각 시간은 영어1 55분, 영어2 45분, 영어3 30분 입니다.

 

구GRE형식의 문제는 synonym쓰기, antonym쓰기, 단어의 뜻 쓰기, 한글단어를 영어로 쓰기, 문장 중 틀린부분 찾기 등이 있었습니다.

그리고 독해에서는 숏 길이의 지문을 주고 다지선다의 질문 중에서 고르는 문제였는데, 시간대비 문항수가 많아 빨리 읽어도 시간이 모자란 수준이었습니다.

마지막으로 에세이 영역에서는 사실 토플수준의 발제에서 '직접 펜으로' 에세이를 씁니다. 물론 영어로 영작하며 쓰는 것입니다.

 

그리고 전공에서는 처음에 무엇을 공부해야할지 몰랐는데, 정말 아주 기초적인 문제들이 나옵니다. 쉽다는 것이 아니라 그래서 어렵다는 것입니다.

 

생명과학으로 시험을 쳤는데, 모든 문제가 주관식이며, 문제중에는 예를 들어 '티로신과 트립토판의 두 아미노산이 결합한 것을 분자식으로 그려라'는 식의 매우 기초적이지만 오히려 '응용'보다는 달달 외워야 하는 기본지식들이 나옵니다.

 

1차인 시험에서만도 경쟁률이 치열합니다.

약 200명 정도가 시험에 응시하며 따로 1차 합격자 명수는 말해주지 않지만 대략 각 전공별 최우수 1인만 1차적으로 뽑는다는 썰이 있었습니다. (그리고 면접에서 또 거르겠죠)

'ETC > 유학' 카테고리의 다른 글

석박사 유학 준비 자금 공개  (0) 2019.05.01

+ Recent posts