-
#Project '내 컴퓨터를 서버로 만드는 과정'개인 프로젝트 2020. 4. 25. 16:10
*결론부터 이야기하면 서버로 만드는데 실패했다. 보안 문제를 해결해야 한다.
Q. 서버를 왜 돈 주고 사야 하지? 안 쓰는 컴퓨터를 서버로 쓰자!!
: 리눅스 공부 중 서버를 직접 만들 수 있을 것 같다는 자신감이 생겼다. 하지만 얄팍한 지식으로 서버를 만드는건 어림도 없었다.
-용어 정리
- IP vs Port : 흔히 IP는 주소라고 표현하는데 이것만 알고 있으면 못 찾아간다. 아파트를 알아도 ***동 ***호를 모르면 못 가는 것과 같다. 한 IP에는 1024개의 포트가 있고 정확히 어느 포트로 진입해야 하는지 알고 있어야 한다. 보통 웹 서버의 경우 80을 사용한다.
- DNS : 개인정보인 주소를 이용해 해커들이 나쁜 짓을 할 수도 있다. 그래서 IP는 매 시간마다 바뀐다고 한다. 그래서 이 바뀐 IP들을 DNS 서버에서 저장해준다. 우리는 이 서버 덕분에 IP를 기억하지 않아도 된다.
- Socket (소켓) : 실시간 통신에서 아주 중요하다. 소켓 이전의 네트워크에서는 Client가 요청해야 Server가 응답했는데, 소켓을 이용하면 요청 없이 응답이 가능하다. Apache, php, javascript, ruby, node.js 모두 소켓을 포함하고 있다.
- 3계층형 시스템 : 웹서버, AP서버, DB 서버가 한 세트다. 웹에서 요청을 받으면 AP서버가 Query(질의)를 통해 DB서버에서 원하는 정보를 찾아준다. 웹 데이터 흐름을 알기 위해선 이 개념을 숙지해야 한다.
- Port forwarding(포트 포워딩) : '공유기(router)'를 사용하는 컴퓨터에 접속하려면 공유기를 거쳐서 와야 한다. 따라서 공유기 IP로 접속을 하는 모든 신호에 대해서 내 컴퓨터로 연결시켜 줘야 한다. ex) 친구들이 우리 집에 놀러 오면 내 방으로만 데리고 간다.
-참고자료
+서버에 대한 기본 개념
https://www.quora.com/How-do-I-make-my-computer-a-server
+리눅스 환경 기본 개념
https://www.youtube.com/watch?v=TZjB94sA3IU&list=PLq8wAnVUcTFU9zLWK-dHWrvTJ0PF8Y0Sf
-해놓은것
HTML + CSS로 웹사이트를 만들고 -> Apache로 서버를 연 후 -> Localhost를 웹브라우저에 입력하면 웹사이트가 열린다
-하고픈것
외부 사용자가 도메인 이름을 입력하면 -> DNS 서버에 등록된 IP로 와서 -> 실시간으로 소통하는 웹사이트를 읽고 -> 나는 입력된 데이터를 받아서 관리한다.
-문제점과 해결방안
1. 세상에 공짜는 없다. DNS 서버에 아이피를 등록하려면 또 돈을 내야 한다. 물론 서버 비용보다 저렴하지만 나는 공짜로 하고 싶다. -> 실제 웹사이트가 이익을 내는 서비스라는 확신이 들면 돈을 내고 쓰자
2. 안 쓰는 컴퓨터는 이유가 있다. 너무 느려서 VisualStudio 랑 Apache, Tomcat 설치하는데 너무 오랜 시간이 걸린다. 이 정도면 서버를 운영해도 의미가 없을 것 같다.
-느낀 점
: 대기업에서 Cloud 서비스를 만들고 사람들이 이용하는 이유는 그만큼 보안 문제가 심각하기 때문인 것 같다. 서버를 만들 수 있고 없고의 문제가 아니라 '만들어서 지키는 게' 문제였다. 내 서버가 Zombie machine이 되지 않기 위해선 더 공부해야 한다.
'개인 프로젝트' 카테고리의 다른 글
#Project '마스크 알리미' (0) 2020.06.10 #Project '파이썬으로 엑셀 크롤링하기' (0) 2020.03.22 #Project '당직표 프로그램 만들기' (2) 2020.03.09