REACT를 써보자
PS용 Python 설치
Python 개발 환경 설정 (Visual Studio Code 활용) :: 오늘부터 프로그래밍 시작 (tistory.com)
Python 개발 환경 설정 (Visual Studio Code 활용)
Python의 편집기로 다양한 platform이 존재하지만, 최근에는 Visual Studio Code가 가벼워 많이 활용되고 있다. Python을 Visual Studio Code에서 사용하기 위해서는 복잡한 설치 및 설정 과정이 필요하다. 1. Pyt..
rswm-ju.tistory.com
와 개쩐다 설명 개 잘해놓음
토이프로젝 #3. nginx & react 실행 환경 구축하기 : 네이버 블로그 (naver.com)
토이프로젝 #3. nginx & react 실행 환경 구축하기
프론트를 리액트로 만들어야겠다는 생각이 있었기때문에 GCP에 리액트 실행환경을 구축하기로 했다. 그...
blog.naver.com
개쩐다
회사에서 쓰던 환경 그대로 VSCode 동기화하기!__gist__settings sync__ 설정 동기화 (tistory.com)
회사에서 쓰던 환경 그대로 VSCode 동기화하기!__gist__settings sync__ 설정 동기화
1.Git hub에서 Token 발급 Token은 아이디나 패스워드 대신해 인증을 담당하는 역할을 합니다. [발급방법] 본인의 계정 > Settings > Developer settings > Personal access tokens (바로가기 링크) Generate new..
okayoon.tistory.com
나중에 설정해주어야겠다.
CSS 상대 단위 - em과 rem | Engineering Blog by Dale Seo
CSS 상대 단위 - em과 rem
Engineering Blog by Dale Seo
www.daleseo.com
em과 rem의 차이점 모두 상위요소 대비인데 em은 해당 요소의 font-size에 비례하고 rem은 root의 font-size에 비례한다. 만약 em이 쓰이는 곳에 font-size가 없다면 부모요소것을 받아서 쓴다.
OS
- WIN10(클라이언트 OS)
- Linux(서버용 OS) -> 서비스를 제공하는 사람입장에서 공부를 시작해보자.
기본환경설정이 꼭 필요하다. 그리고 운영을 위한 명령어들이 필요하다. 웹서버, DNS 서버, NFS(Network File System -> 공유저장소)가 필요하다.
* NFS는 경로상에 떨어져 있는 폴더를 이야기한다. 그 폴더를 본인의 디렉토리처럼 사용하는 것이다.
그외에도 DB, FTP도 필요하다.
그리고 마지막으로 자동화작업이 필요하다. 예를들면 백업작업같은게 있다. 백업작업은 사람들이 들어오지 않는 야간 시간등에 하게 된다.
그리고 오늘은 IP, Subnet Mask, Default Gateway, DNS에 대해 알아보자
REVIEW
통신(네트워크)를 위해서는 아래와 같이 두가지 주소가 필요하다.
해당 주소는 NIC(Network Interface Card; LAN 카드)에 해당된다.
1. 물리적 주소(MAC 주소)
- 바꿀 수 없다.
- 기계가 출시될때 함께 찍혀서 나오는 주소이다. 그래서 동일한 경우가 많이 없다.
그도 그럴께 위와같이 3byte의 주소공간이기 때문에 나올 수 있는 경우의 수가 정말 많다.
구글에 MAC vendor이라고 검색해보자 그러면 MAC 주소를 만드는 사이트를 확인할 수 있다.
Home | MAC Vendor Lookup Tool & API | MACVendors.com
MAC Address Lookup
Find the manufacturer of a device by its MAC address.
macvendors.com
대충 이런 느낌이다.
MAC의 절반은 OUI라고 해서 회사의 고유 코드이고 나머지는 제조회사가 겹치지 않게 부여함.
2. 논리적 주소(IP 주소)
- 필요할때마다 바꿀 수 있다.
- 사람의 이름(성 + 이름)이다.
- 겹치는 경우가 나올 수 있다.
IP, Subnet Mask
IP 주소란? 인터넷 프로토콜이다.
- Internet(Internetworking) : 상호통신
- Protocol : 통신을 위한 규약 (통신 규약) - 상호통신을 위한 통신 규약(언어)
- IP는 표준 통신 규약(언어) 이므로 통신을 위한 모든 장비, 장치에는 기본적으로 IP가 할당되어야 한다.
- 32비트의 4개의 옥텟으로 되어 있다. 각 옥텟은 8비트로 구성되어 있다.
- 0.0.0.0 ~ 255.255.255.255 까지 사용할 수 있다. 그것보다 더 큰 숫자는 사용할 수 없다.
-> IP 주소의 일정부분은 네트워크 영역, 나머지는 호스트 영역이다.
IP주소의 네트워크 영역과 소트으 영역을 구분하기 위하여 Subnet Mask를 사용한다.
예를 들어서
IP : 1.1.1.1 -> 0000 0001.0000 0001.0000 0001.0000 0001 일때
SM : 255.255.255.0 -> 1111 1111.1111 1111.1111 1111.0000 0000
일때 연속되 1에 해당하는 자리가 네트워크 영역이고 나머지 0들이 호스트 영역이다.
이때 주의할점이 네트워크 범위의 모든 주소를 PC에 할당할 수 없다. 처음과 마지막은 예약되어 있다.(192.168.1.0 : 네트워크 주소(문패이름), 192.168.1.255 : 브로드캐스트 주소(같은 네트워크 상에 모든 호스트들에게 동일한 소식을 한꺼번에 전달하고자 할 때 사용))
그렇다면 네트워크 주소가 다른 PC간의 통신은 어떻게 하는 것일까? 그건 기본 게이트웨이를 통과해서 하기 때문에 외부와 통신이 가능해지는 것이다.
Default Gateway
한번 우리의 컴퓨터가 어디를 통해서 구글로 가는지 확인해보자
```
tracert -h 10 www.google.com
```
위와같다. 위와같이 ISP(Internet Service Provider)들이 가진 다른게이트들을 계속 거치어서 결국에 구글로 통하게 된다.
통신을 위해서는 IP와 서브넷마스크 모두 있어야하지만 외부와의 통신을 위해서는 반드시 Default Gateway가 있어야 한다.
DNS
DNS(Domain Name System) : IP 주소를 알아들을 수 있는 주소로 바꾸어주는 시스템
대표적인 패킷 탐지 시스템인 Wireshark이다.
가서 Windows Installer(64-bit)를 설치해보자. 패킷 캡쳐 도구이다. 우리 NIC으로 들어오는 패킷들의 정보를 확인할 수 있다.
설치해보자
나머지는 신경쓰지 말고 그냥 설치하자
중간에 얘가 나오는데 그냥 계속 YES만 누르자
그럼 위와같이 생긴게 나온다. 하기전에 내 IP를 미리 알아놓자.
우린 이더넷을 더블클릭하자. 그러면 창이뜨면서 이상한 패킷들을 정말 많이 볼 수 있다.
그다음 위쪽에 검색정보를 입력하니 관련된 정보들이 모두 나오는 것을 확인할 수 있다.
서울대학교발전기금 | 온라인 약정, 재단소개, 발전기금 현황, 사용용도 등 안내 (snu.or.kr)
서울대학교발전기금
서울대학교발전기금 홈페이지입니다.
www.snu.or.kr
으로 접속했는데 우리가 보고 싶은 정보만 볼 수가 없다. 그래서 추가적인 필터를 적용하자
그럼 다시금 위와같이 53번 포트로 들어오는 패킷들을 모두 볼 수가 있다.
예를 들어 위와같이 우리가 보낸 쿼리에 대해 response 해주는 것들이 존재한다.
그런데 인터넷이 되면서 서버가 많아지게 되었다. 그렇다보니 ip를 기억해서 해당 서버로 접속하는게 어려워졌다. 이를 해결하기 위해서 ip주소에 딱맞는 우리가 알아먹을 수 있는 주소를 파일 하나에 정리하게 되었다. 그리고 그 파일을 모든 서버가 공유하게 해준것이다.
그런데 이것보다 더 크기가 커지면? 이제 파일조차 부담스러워진다. 그래서 이걸 모두 기억하고 있는 서버하나만 남기자는 것이다. 그것이 바로 DNS server이다. 이제 사용자는 DNS server만 가지고 접속하면 원하는 주소로 이동할 수 있게 된다.
보면 위와같이 우리의 DNS 서버는 8.8.8.8과 168.126.63.1 두가지가 등록되어 있다.
참고로 위에 적힌 8.8.8.8은 구글꺼다
예를들어 우리가 Wireshark로 분석한 패킷을 확인하면 우리가 접속한 사이트의 IP 주소를 확인해볼 수 있다.
정리해보면 우리가 웹페이지 접속과정은 이러하다.
1. PC에서 설정한 DNS 서버에게 query한다.
2. DNS서버는 자신에게 등록된 도메인:IP 매핑 데이터를 검색하여 원하는 결과를 찾는다. www.snu.or.kr의 의 주소가 만약 5.5.5.5라면 해당 정보를 PC에게 알려준다.
3. PC는 DNS 서버로 부터 응답을 받는다. 응답내용에는 snu.or.kr은 5.5.5.5라는 정보이다.
4. 최종적으로 PC는 5.5.5.5로 웹 접속한다.
그렇기에 DNS 서버의 주소를 작성하지 않았다면 현실적으로 인터넷으로의 접속은 불가능하게 된다. 실제로 8.8.8.8은 구글에서 운영하는 DNS 서버이다.
참고로 그 외에 유용할만한 Wireshark의 필터식을 봐두자
공인 IP와 사설 IP
공인 IP : 공인 IP는 ISP에게 비용을 지불하고 IP를 받아온다.
사설 IP : 별도의 비용지불이 없으므로 마음대로 써도 되지만 인터넷 사용/접근은 불가능하다.
그림으로 그려보면
위의 경우 사설 IP가 할당된 노트북과 TV는 인터넷을 사용할 수 없다. 하지만 인터넷으로 나갈때 공유기는 해당 사설 주소를 "공인IP" 주소로 변경하여 내보낸다. 이를 통해 인터넷 연결이 가능해진다. 우리는 이러한 기술을 Network Address Translation(NAT)이라고 부른다.
정리
- 통신을 위해서는 IP가 필요
- 네트워크 범위를 알기 위해 서브넷 마스크 필요
- 다른 네트워크와 통신을 위해서는 기본 게이트웨이가 필요하다.
- ip를 이용하는 방법이 아닌 이름(도메인)을 이용하여 통신을 하고자 한다면 DNS server가 필요하다.
- 인터넷을 사용하고자 한다면 공인IP가 있어야한다.
CentOS를 VMWare에 설치하자
대충 내가 다운받았던 파일을 가지고오자
_Enterprise : 기업용 -> 비용지불
자 다시금 컴퓨터, VM에 대해서 알아보자
위와같이 물리자원이 있다면 그 위에 OS가 커널과 시스템 프로그램(쉘)들을 가지고 있다. 그 위에 애플리케이션이 놓이고 같은 애플리케이션의 하이퍼바이저가 물리자원을 요청해서 그 위에 OS 설치하는 것이다.
보다보니 system 프로그램이 뭔지 잘 몰랐는데 아래와 같은 것이다.
운영체제 05 : 시스템 프로그램 (System Programs) (tistory.com)
운영체제 05 : 시스템 프로그램 (System Programs)
참고 도서는 'Operating System Concepts 8th' 입니다. (포스팅 하단부 참고) 개인공부 후 자료를 남기기 위한 목적으로 포스팅합니다. 내용 상에 오류가 있을 수 있습니다. 2.5 시스템 프로그램 (System Pro
luckyyowu.tistory.com
가급적 Power on은 꺼놓자 왜냐하면 바로 시작하다보니 또 컴터 껏다가 켜서 조정해야되어서 귀찮다.
그럼 생긴거에서 Edit virtual machine settings를 클릭해서 우리에게 필요한 설정을 해놓자.
왜 VMnet8 만 NAT인걸까?
으휴의 세상사는 이야기, 와이스토리 - vmnet1, vmnet8 의 차이점과 사용용도 (fromqubit.com)
vmnet1, vmnet8 의 차이점과 사용용도
========================================================================= 윈도우 2000_Server의 네트워크 환경입니다. 궁금1) 네트워크 및 전화 접속 연결 ---------------------------------- 로컬 영역 연..
www.fromqubit.com
VMware의 자체설정인것으로 보인다.
VMnet1은 Host Only Network로 게스트와 호스트 컴퓨터만이 서로 네트워킹이 된다고 생각해야한다. 그래서 외부네트워크로 연결되지 않는다.
VMNet8은 MAT로 VMware가 가상의 게이트웨이역활을 해주어 외부네트워크와 연결해준다.
이때 VMware은 가상의 게이트웨이, DHCP, DNS 서버 역활을 모두 해준다. 그래서 VMNet8을 설정하면 그 내부의 게스트 컴퓨터가 가상의 DHCP 서버에서 IP 주소를 할당받을 수 있게 된다. 또 외부 접속도 가능하게 된다.
Base Environment들
- minimal install -> 서버 운영을 위한 최소한의 설치. 그래서 필요한 애플리케이션은 설치를 통해 제공
- Server with GUI -> "minimal install" + GUI
- GNOME Desktop -> 클라이언트용으로 설치. OS, 미디어를 위한 것들이 설치된다.
암튼 우린
나중에 데이터센터같은 곳을 가보면 위와같이 외부에 있는 디스크를 사용할수도 있다.
물리장치를 파티셔닝 해야하고 포맷을 해야한다.(EXT3, EXT4, XFS)방식으로 디스크를 처리한다. 일단 자동으로 처리하게끔하자.
NETWORK & HOST NAME을 설정해보자
일단 HOST NAME을 위와 같이 설정해놓자.
이게 앞에서 DNS가 처리하는 것과 같이 localhost(서버이름).localdomain(회사이름)로 처리하기도 한다.
하지만 이렇게는 어려우니 이렇게 보자.
- www : 서버의 이름
- test.com : 회사에서 사용하는 일종의 그룹이름
위와같이 처리하면 좋겠지만 우리에게는 이런 Host name이 없다.
Configure로 들어가면 이런게 있다. 이게 체크가 되어 있어야 서버가 켜졌을때 자동으로 NIC이 켜진다.
위와같이 설정해주었다.
리눅스 시스템 살펴보기
리눅스에서 사용자는 크게 2가지로 나뉜다.
1. super user(SU - 리눅스 : root) : 리눅스 서버 시스템 전체를 관리할 수 있는 퍼미션을 갖는다. 추가적으로 사용자, 그룹등을 생성, 삭제, 수정할 수 있는 권한도 갖는다.
2. normal user : 자신의 디렉토리가 지정되고 해당 디렉토리에서는 모든 권한을 갖지만 다른 디렉토리에 대해서는 제한적인 권한을 갖는다.
이게 되는 이유는 Linux는 Multi User, Multi Tasking이기때문에 다수의 사용자가 동시에 접속하여 자신만의 독립적인 작업공간을 갖는다.
root 사용자는 /root 폴더를 가지고 있다.
user1 사용자는 /home/user1 디렉토리 안에서 작업가능
user2 사용자는 /home/user2 디렉토리 안에서 작업가능
가서 터미널을 키면 위와같이 뜬다. 자세하게 보면
root : 접속한 사용자
localhost : 현재 로그인한 서버의 이름
~ : 현재 로그인한 사용자가 있는 위치를 말하며 ~은 로그인한 사용자의 홈 디렉토리를 의미한다.
리눅스 파일 시스템은 아래와 같이 tree 구조를 갖는다.
/(루트 파티션)
-----------------------------------------------------
etc var home usr root ...
ㄴsysconfig ㄴuser1 ㄴDocument
ㄴhttpd ㄴuser2 ㄴDesktop
etc : 설치/설정 등을 위한 구성 파일들이 위치
var : 주로 시스템 로그 등이 저장되는 디렉토리
home : 일반사용자들의 홈 디렉토리
usr : 응용프로그램이 위치
root : super user인 root의 홈디렉토리
WEBDIR :: 리눅스 디렉토리 구조 (tistory.com)
리눅스 디렉토리 구조
리눅스의 디렉토리 혹은 파일 시스템 구조는 윈도우와는 조금 다른 구조를 가지고 있습니다. 기본적으로 디렉토리를 구분하는 '/'(슬래시)는 리눅스에서 사용하고 윈도우는 반대인 '\'(역슬래시)
webdir.tistory.com
리눅스에서의 경로
- 절대 경로 : 내 위치가 어디가 되던지 상관없이 동일한 위치로 이동할 수 있다. 주로 루트 파일 시스템임 "/"를 기준으로 작성한다.
- 상대 경로 : 내가 어디에 있느냐에 따라 이동하는 곳이 달라진다.( . ..)을 이용
hostname 바꾸기
gedit /etc/hostname
echo "host이름" > /proc/sys/kernel/hostname
reboot
바로는 안되고 재부팅해야한다.
httpd 작동방식
위와같이 시스템프로그램들이 작동한다.
이제 우리가 systemctl restart httpd 를 했을때 실행과정을 확인해보자.
1. shell에서 실행하라고 함
2. 바이너리파일(실행파일) httpd가 구성파일로 올라간다.
3. 구성파일을 읽어들여서 httpd 서비스를 실행시킨다.
4. 구성파일들은 etc에 존재한다.
gedit /etc/hostname 파일을 수정했다면. 네트워크 데몬을 재실행해야 변경된 내용을 서비스에 반영시킬 수 있다.
- 정리 : 리눅스에서는 서비스등을 바꾸고 싶다면 "설정파일"을 편집하고 이를 관리하는 실행파일을 재실행 시켜주면 된다.
정리 : 리눅스에서 서비스등을 바꾸고 싶다면 "설정파일"을 편집하고 이를 관리하는 실행파일을 재실행 시켜주면 된다. 이후 실행파일(데몬)을 실행시키면 설정이 적용된다.
httpd를 사용해보자
```
yum -y install httpd
```
한다음 80번 포트를 바꾸어보자
```
gedit /etc/httpd/conf/httpd.conf
가서 Listen 8888로 바꾸어버리자
그럼 에러가 난다.
그래서 변경가능하도록 제어를 낮추자
```
setenforce 0
systemctl restart httpd
systemctl stop httpd
```
실행결과 8888번 포트로 어찌저찌 httpd에 접속했다.
cd /etc/sysconfig/network-scripts/
그 안에 ifcfg-ens32 등등 내가 아까전에 네트워크에서 설정된 이름이 붙어 있다. 이걸 수정해보자
```
gedit ifcfg-ens32
```
그럼 위와같이 우리가 아까전에 시스템창에서 설정했던 설정들이 모두 나온것을 확인할 수 있다.
IP번호만 바꾸어서 다음 명령어를 쳐보자
```
systemctl restart network
```
---
IP란
우리는 공인 IP에 달린 공유기에 2개의 web 서버 두개가 있다면 두개는 상호통신하고 그리고 공유기에 달려있는 HOST OS로 접근하는것을 해보자.
- 공인 IP, 사설 IP
- IP를 구성하는 방법
1) 정적 : 직접 입력방식, 서버에 주로 적용
2) 동적(DHCP) : DHCP을 서버와 클라이언트가 주고 받으며 서버로 부터 필요한 IP, Subnet Mask, Default Gateway, DNS 등의 정보를 할당받아 사용하는 방식. 주로 PC에 적용시키는 방법이다.
DHCP 가 작동하는 방식은 DHCP가 브로드캐스트 방식으로 전체에 offer을 보낸다.
---
호스트네임이란?
DomainName과 HostName (tistory.com)
DomainName과 HostName
몇일전, 일을 하며 네트워크에 관련된 설정을 해야하는 상황이 있었다. 나는 내가 가진 지식에 대해 확신이 별로 없는편(?)이기 때문에, 뭔가를 해야하는 상황이 오면 곧 잘 뇌정지가 오곤하기
real-dongsoo7.tistory.com
도메인네임이란 네트워크 상에서 컴퓨터를 식별하는 호스트명을 이야기한다.
호스트네임이란 네트워크에 연결된 장치들에게 부여되는 각각의 고유한 이름
예를들어서 naver.com이라하더라도 앞에 comic이 붙어 comic.naver.com이 될 수 있다.
이때 호스트네임은 comic이고 도메인 네임은 naver.com이다.
호스트네임이란 컴퓨터 네트워크에 접속된 장치들에 할당된 이름이다.
위와같이
```
gedit /etc/hosts
```
로 들어가서 수정하자
그러면 이제 이런게 가능하다.
위와같이 DNS 처럼 놀아볼 수 있다. DNS 전단계인 개인이 가지고 있는 ip와 도메인 주소인것이다.
---
궁금증 왜 게이트웨이가 192.168.8.2인가?
왜 hostname을 test.com으로 했는가?
'Development(Web, Server, Cloud) > 22) LINUX - Cloud' 카테고리의 다른 글
Cloud 05 (0) | 2022.01.05 |
---|---|
Cloud 정리1(01~07) (0) | 2022.01.04 |
Cloud 04 (0) | 2022.01.04 |
Cloud 02 - Volume, 허브, 스위치, WEB Server, WAS Server, DB Server, linux 명령어, mariaDB 연결, PHP DB 데이터 가져오기 (0) | 2021.12.31 |
Cloud 01 - VMware, Hypervisor, centOS, AWS-EC2 (0) | 2021.12.30 |