학교에서 주관하는 전공 캠프가 있어서 오늘부터 시작하게 되었습니다.
해당 게시글은 한동대학교 고윤민 교수님의 자료를 바탕으로 제작되었니다.
https://github.com/YunminGo/netprog
해당 자료는 고윤민 교수님 캠프의 실습 자료들입니다.
socket을 사용하여 통신하는 client/server application을 배우는 것이 목표라고 하셨습니다.
socket : application process 와 transport protocol 간을 이어주는 문과 같은 존재
우선 수업에 앞서서 개발 환경을 세팅해 주어야 합니다.
기본적으로 Ubuntu 환경에서 코딩을 진행할 예정이기 때문에 Window의 경우는 별다른 설정을 해주어야 합니다.
그와 달리 MacOS의 경우는 기본적으로 xcode를 활용하여 개발할 수 있는 환경만 갖추어진다면 설치할 필요는 없습니다.
Development Environment Setting for Windows
virtualBox를 활용하여 새로운 OS를 설치하는 방법도 존재하지만 이번에는 Raspberry Pi를 활용하여 서버를 여는 방식을 택했습니다.
SSH(Secure Shell)라는 원격 컴퓨터로부터 안전하게 접속할 수 있는 protocol로, 대표적으로 PuTTY라는 프로그램이 사용됩니다.
해당 사이트에 접속하여 설치하시면 다음과 같은 실행 결과를 얻을 수 있습니다.
Host Name(or IP address): 접속할 IP 주소값이 입력됩니다. 혹은 서버 주소가 입력될 수도 있습니다.
다음과 같이 save를 누르시면 다음에 추가적으로 타이핑을 하지 않고 더블 클릭하여 접속할 수 있습니다.
Open 버튼을 누르게 되면 로그인 창이 활성화되며, ID와 Password를 입력해야 합니다.
Default 값으로 각각 id는 pi / pw는 raspberry 로 설정되어 있습니다.
이것으로 Ubuntu 환경의 서버를 갖추는 것은 성공했습니다.
Development Environment Setting for MacOs
맥에서는 Terminal이라고 불리는 명령어 실행기가 있다.
서버에 접속하기 위해서 그저 간단히 명령어 몇줄만 적으면 충분히 접속할 수 있다.
$ssh pi@192.168.0.32
//password 입력창
pi@192.168.0.32's password:
굳이 이 방법 이외에도 맥에는 xcode를 이용해서 gcc 명령어를 사용할 수 있습니다. 따라서 별다른 설명은 생략하겠습니다.
Samba Server Install
다음은 개발 환경을 조금 더 쉽게할 Client를 설치해보겠습니다.
samba는 원격으로 해당 PC의 파일을 공유하여 사용할 수 있게 도와주는 프로그램입니다. 즉, 같은 Network만 연결되어 있다면, window 환경에서도 drop-and-drap 형식으로 파일을 주고 받을 수 있습니다.
//sudo 관리자 명령어
$sudo apt-get install update
//software install & manage
$sudo apt-get install samba samba-common-bin
이후 DHCP 관련 창이 나오는 데 NO 선택
//Samba password 추가
$sudo smbpasswd -a pi
//확인을 위해 두번 입력해야함
//Samba 설정 추가
$sudo vi /etc/samba/smb.conf
해당 파일 제일 밑에 다음과 같은 설정을 넣어주면 된다.
이후에 설정이 변경되었으니 서버 재시작
$sudo service smbd restart
Connetting Samba Server for Windows 10
다음과 같이 samba server에 접속할 수 있습니다.
Connetting Samba Server for Mac
Finder > Go > Connet to Server
server ip 주소 입력 smb://는 굳이 입력하지 않아도 연결되는데 이상없다
연결된 서버 중 원하는 서버를 선택한 후 ID와 PW를 입력하면 다음과 같이 연결된다.
앞에서 설명한 것과 마찬가지로 Drop-and-Drap의 형식으로 파일 이동이 원활하다.
조금 길어진 관계로 다음 게시글에서 network에 대해 다뤄보겠습니다