코딩에는 좋은 노트북이
필요 없다
ZeroPage 24기 김한성
개발력 +93
컴공이세요?
컴퓨터 사려는데….
노트북 사려는데….
핸드폰 사려는데….
컴퓨터가 고장 났는데....
이거 안 되는데?
: 구들구들
: 네들네들
컴공 왈
사실은….
정작 우린….
얼마까지 알아보고 오셨어요?
아니 아니 그게 아니고요
우리가 주로 사용하는 Tool
Visual Studio
Eclipse
Intellij
요구 스펙(사양)
 VS 2013 Community
 Eclipse
 Intellij
엉엉
사양 좋은 컴퓨터(서버)에 접근해서 작업?
Vi(m)
서버 - Server
클라이언트에게 네트워크를 통해 서비스를 제
공하는 컴퓨터 또는 프로그램
P2P
DNS
DB
FTP
Web
SSH – Secure Shell
 SSH는 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시
스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할
수 있도록 해 주는 응용 프로그램 or 프로토콜
 telnet, rlogin 등을 대체하기 위해 설계
 보안이 강화된 통신 수단
그래서 뭐하면 되나요?
Putty를 사용할 예정입니다.
개인 노트북 사용자들께서는
- 구글에서 putty 검색
- 접속
- 맞는 환경 putty 설치
실습실 컴퓨터에는 설치되어 있습니다
찾아서 실행해봅시다
IP, 포트?????
OSI 7계층
– Open Systems Interconnection Reference Model
예를 들어 보이자면…
프로토콜?? - Protocol
뜻 : 컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치
사이에서 데이터를 원활히 주고받기 위하여 약속한
여러 가지 규약
구성
물리적 측면 : 자료 전송에 쓰이는 매체(접속용 단자, 전송
신호, 회선 규격 등)
논리적 측면 : 프레임(자료의 표현 형식 단위) 구성, 프레임
안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등
TCP – Transmission Control Protocol
 근거리 통신망, 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일
련의 옥텟(8개의 비트가 모인 것)을 안정적이고 순서대로 교환해주는 프로토콜
 통신 프로토콜? – 장비 사이에서 메시지를 주고 받은 체계
ex – HTTP, FTP, Telnet, SSH…..
 TCP = TCP 헤더 + TCP 세그먼트
 TCP 헤더
 TCP 세그먼트 = 세그먼트 헤더 + 데이터
TCP/IP
궁금한 것 - UDP vs TCP
TCP UDP
연결형(connection-oriented) 프로토콜
- 연결해야 통신 가능
비연결형(connectionless) 프로토콜
- 연결 없이 통신 가능
데이터 경계를 구분하지 않음
- byte-stream 서비스
데이터 경계를 구분함
- Datagram 서비스
신뢰성 있는 데이터 전송
- 데이터를 재전송, 순서 보장
비 신뢰적인 데이터 전송
- 데이터를 재전송X, 순서 보장X
1대1 통신 1대1, 1대다, 다대다
Zzzz
TCP 요약
 던집니다
 예? 어떻게요??
 던질 때는 TCP로 던지는 걸로 약속합니다
 콜 ㅋ
→ 통신 규약
어디로 던질까요
 SSH는 22번 포트에 던져주세요
= TCP 포트
 0 ~ 1023번 : 잘 알려진 포트 – UNIX계열은 root 권한 필요
 20 : FTP
 22 : Telnet
 53 : DNS
 80 : HTTP
 1024 ~ 49151번 : 등록된 포트
 25565 : MineCraft 기본포트(비공식)
 49152 ~ 65535번 : 동적 포트
IP – Internet Protocol
얘도 프로토콜이네
송신 호스트와 수신 호스트가 패킷 교환 네트워크에
서 정보를 주고 받는데 사용하는 정보 위주의 규약
IP 정보는 패킷 or 데이터그램으로 나뉘어 전송됨
흐름에 관여하지 않기 때문에 신뢰성X
데이터를 교환하기 이전에 세션이 확립X
IP주소
네트워크에서 장치들이 서로 인식하고 통신하기 위한
특수한 번호
IPv4 vs IPv6
IPv4 – 일반적으로 사용하는 0.0.0.0 ~ 255.255.255.255
127.0.0.1 – 자기 자신을 가리킨다.
IPv6 - IP가 부족해짐에 따라 32비트에서 128비트로 늘린 주
소
::1/128 – 자기 자신을 가리킨다.
::/96 – IPv4 호환 주소를 위해 사용되는 주소 공간
Zzz
IP 요약
던질건데 어디로 던질까
127.0.0.1로 던져
→ 정보를 교환하기 위한 프로토콜
돌아와서….
라이브 코딩~! 같은 실습
접속~
여러분들이 접속하신 서버는….
라즈베리파이 B+
- CPU : 싱글코어 700MHz
오버클럭시 1000MH까지 가능
- RAM : 512MB
- 파워 : 5V 600mA(3.0W)
노트북은 좋은데 서버가….
죄송합니다 ㅠㅠ
165.194.17.195
165.194.17.196
간단한 Hello World
C
C++
Java
Python
사실…
 C9.io
 Koding.com
간단한 웹서버? – nginx로 워드프레스
라즈베리파이 기준으로 진행
Sudo apt-get update && sudo apt-get upgrade
Sudo apt-get install nginx
Sudo nginx start
악의 근원 php
 Sudo apt-get install php5-fpm
 Sudo vim /etc/nginx/sites-available/default
 아래 문구 주석제거 > #을 지우세요
 80? – TCP 80port = HTTP
 비슷한 곳 찾아서 IP주소 입력
악의 근원 php
 Index 라인 변경
 Index 페이지에 index.php를 추가하여 index.html, htm보다 먼저 불러옴
 주석 지우러갑시다
악의 근원 php
 Sudo vi /etc/php5/fpm/php.ini
 아래 라인을 찾아 ;를 지우고 1 > 0 변경
 Sudo /etc/init.d/php5-fpm reload && sudo /etc/init.d/nginx
reload
MySQL - DB
 Sudo apt-get update && sudo apt-get upgrade
 Sudo apt-get install mysql-server –fix-missing
 Package가 없을 수 있어서 옵션을 주고 설치
 파랑 화면이 나오면 잘된것
 암호를 입력하되 나중에 워드프레스 설치할때 사용하므로 꼭 기억할 것
 Sudo apt-get install mysql-client php5-mysql
DB & User 생성
 Mysql –u root –p 엔터후 비번
 쿼리문 작성하여 DB생성
 Create database sample; - db생성
 Create user ‘wpuser’@’localhost’ IDENTIFIED BY ‘password_here’; - 서버
접근
 GRANT ALL PRIVILEGES ON sample.* TO ‘wpuser’@’localhost’; - db접근
권한
 FLUSH PRIVILEGES – 새로고침
 CTRL+C
 Mysql –u wpuser sample –p 엔터후 비번 – 되면 성공
워드프레스
 Cd /usr/share/nginx/www
 Rm 50x.html index.html
 Wget http://wordpress.org/latest.tar.gz
Tar -xzvf latest.tar.gz
 rm latest.tar.gz
 Cd wordpress
 Mv * ..
 Cd ..
 Rm –rf wordpress
워드프레스
 Sudo apt-get update && sudo apt-get upgrade
 Sudo apt-get install php5-curl php5-gd libssh2-php
 Sudo apt-get install php-apc – php5-fpm 성능 향상을 위한 캐셔
 설정파일 수정
 cp wp-config-sample.php wp-config.php
 vi wp-config.php
 Define -> DB_NAME, USER, PASSWORD, HOST 입력

코딩에는 좋은 노트북이 필요 없다

  • 1.
    코딩에는 좋은 노트북이 필요없다 ZeroPage 24기 김한성
  • 2.
  • 3.
    컴공이세요? 컴퓨터 사려는데…. 노트북 사려는데…. 핸드폰사려는데…. 컴퓨터가 고장 났는데.... 이거 안 되는데? : 구들구들 : 네들네들
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    우리가 주로 사용하는Tool Visual Studio Eclipse Intellij
  • 10.
    요구 스펙(사양)  VS2013 Community  Eclipse  Intellij
  • 11.
  • 12.
  • 13.
  • 14.
    서버 - Server 클라이언트에게네트워크를 통해 서비스를 제 공하는 컴퓨터 또는 프로그램 P2P DNS DB FTP Web
  • 15.
    SSH – SecureShell  SSH는 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시 스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 or 프로토콜  telnet, rlogin 등을 대체하기 위해 설계  보안이 강화된 통신 수단
  • 16.
    그래서 뭐하면 되나요? Putty를사용할 예정입니다. 개인 노트북 사용자들께서는 - 구글에서 putty 검색 - 접속 - 맞는 환경 putty 설치 실습실 컴퓨터에는 설치되어 있습니다
  • 17.
  • 18.
  • 19.
    OSI 7계층 – OpenSystems Interconnection Reference Model
  • 20.
  • 21.
    프로토콜?? - Protocol 뜻: 컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 여러 가지 규약 구성 물리적 측면 : 자료 전송에 쓰이는 매체(접속용 단자, 전송 신호, 회선 규격 등) 논리적 측면 : 프레임(자료의 표현 형식 단위) 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등
  • 22.
    TCP – TransmissionControl Protocol  근거리 통신망, 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일 련의 옥텟(8개의 비트가 모인 것)을 안정적이고 순서대로 교환해주는 프로토콜  통신 프로토콜? – 장비 사이에서 메시지를 주고 받은 체계 ex – HTTP, FTP, Telnet, SSH…..  TCP = TCP 헤더 + TCP 세그먼트  TCP 헤더  TCP 세그먼트 = 세그먼트 헤더 + 데이터
  • 23.
  • 24.
    궁금한 것 -UDP vs TCP TCP UDP 연결형(connection-oriented) 프로토콜 - 연결해야 통신 가능 비연결형(connectionless) 프로토콜 - 연결 없이 통신 가능 데이터 경계를 구분하지 않음 - byte-stream 서비스 데이터 경계를 구분함 - Datagram 서비스 신뢰성 있는 데이터 전송 - 데이터를 재전송, 순서 보장 비 신뢰적인 데이터 전송 - 데이터를 재전송X, 순서 보장X 1대1 통신 1대1, 1대다, 다대다
  • 25.
  • 26.
    TCP 요약  던집니다 예? 어떻게요??  던질 때는 TCP로 던지는 걸로 약속합니다  콜 ㅋ → 통신 규약
  • 27.
    어디로 던질까요  SSH는22번 포트에 던져주세요
  • 28.
    = TCP 포트 0 ~ 1023번 : 잘 알려진 포트 – UNIX계열은 root 권한 필요  20 : FTP  22 : Telnet  53 : DNS  80 : HTTP  1024 ~ 49151번 : 등록된 포트  25565 : MineCraft 기본포트(비공식)  49152 ~ 65535번 : 동적 포트
  • 29.
    IP – InternetProtocol 얘도 프로토콜이네 송신 호스트와 수신 호스트가 패킷 교환 네트워크에 서 정보를 주고 받는데 사용하는 정보 위주의 규약 IP 정보는 패킷 or 데이터그램으로 나뉘어 전송됨 흐름에 관여하지 않기 때문에 신뢰성X 데이터를 교환하기 이전에 세션이 확립X
  • 30.
    IP주소 네트워크에서 장치들이 서로인식하고 통신하기 위한 특수한 번호 IPv4 vs IPv6 IPv4 – 일반적으로 사용하는 0.0.0.0 ~ 255.255.255.255 127.0.0.1 – 자기 자신을 가리킨다. IPv6 - IP가 부족해짐에 따라 32비트에서 128비트로 늘린 주 소 ::1/128 – 자기 자신을 가리킨다. ::/96 – IPv4 호환 주소를 위해 사용되는 주소 공간
  • 31.
  • 32.
    IP 요약 던질건데 어디로던질까 127.0.0.1로 던져 → 정보를 교환하기 위한 프로토콜
  • 34.
  • 35.
  • 36.
  • 37.
    여러분들이 접속하신 서버는…. 라즈베리파이B+ - CPU : 싱글코어 700MHz 오버클럭시 1000MH까지 가능 - RAM : 512MB - 파워 : 5V 600mA(3.0W)
  • 38.
    노트북은 좋은데 서버가…. 죄송합니다ㅠㅠ 165.194.17.195 165.194.17.196
  • 39.
  • 40.
  • 41.
    간단한 웹서버? –nginx로 워드프레스 라즈베리파이 기준으로 진행 Sudo apt-get update && sudo apt-get upgrade Sudo apt-get install nginx Sudo nginx start
  • 42.
    악의 근원 php Sudo apt-get install php5-fpm  Sudo vim /etc/nginx/sites-available/default  아래 문구 주석제거 > #을 지우세요  80? – TCP 80port = HTTP  비슷한 곳 찾아서 IP주소 입력
  • 43.
    악의 근원 php Index 라인 변경  Index 페이지에 index.php를 추가하여 index.html, htm보다 먼저 불러옴  주석 지우러갑시다
  • 44.
    악의 근원 php Sudo vi /etc/php5/fpm/php.ini  아래 라인을 찾아 ;를 지우고 1 > 0 변경  Sudo /etc/init.d/php5-fpm reload && sudo /etc/init.d/nginx reload
  • 45.
    MySQL - DB Sudo apt-get update && sudo apt-get upgrade  Sudo apt-get install mysql-server –fix-missing  Package가 없을 수 있어서 옵션을 주고 설치  파랑 화면이 나오면 잘된것  암호를 입력하되 나중에 워드프레스 설치할때 사용하므로 꼭 기억할 것  Sudo apt-get install mysql-client php5-mysql
  • 47.
    DB & User생성  Mysql –u root –p 엔터후 비번  쿼리문 작성하여 DB생성  Create database sample; - db생성  Create user ‘wpuser’@’localhost’ IDENTIFIED BY ‘password_here’; - 서버 접근  GRANT ALL PRIVILEGES ON sample.* TO ‘wpuser’@’localhost’; - db접근 권한  FLUSH PRIVILEGES – 새로고침  CTRL+C  Mysql –u wpuser sample –p 엔터후 비번 – 되면 성공
  • 48.
    워드프레스  Cd /usr/share/nginx/www Rm 50x.html index.html  Wget http://wordpress.org/latest.tar.gz Tar -xzvf latest.tar.gz  rm latest.tar.gz  Cd wordpress  Mv * ..  Cd ..  Rm –rf wordpress
  • 49.
    워드프레스  Sudo apt-getupdate && sudo apt-get upgrade  Sudo apt-get install php5-curl php5-gd libssh2-php  Sudo apt-get install php-apc – php5-fpm 성능 향상을 위한 캐셔  설정파일 수정  cp wp-config-sample.php wp-config.php  vi wp-config.php  Define -> DB_NAME, USER, PASSWORD, HOST 입력