본문 바로가기
Android

안드로이드 - PHP - MYSQL (포트포워딩이란)

by 유혁. 2017. 6. 24.


안드로이드<->PHP<->MYSQL


질문들이 많아 서버에 접근하는 방식을 설명드리겠습니다.


우선 서버라는 기본 개념이 고정 IP가 필요합니다. 서버가 IP가 변동되면 만들어진 Client들은 다시 서버의 IP주소를 변경해야합니다. 상당히 번거롭죠

과제를 위한것이나 한번 연습을 하시는 분들에게는 이번기회에 이해하고 넘어가시는게 좋은 기회가 될 것이라 생각합니다.




1. Server : 공유기 고정 IP or 자동 IP 할당



윈도우 로고 + R(실행) 창을 띄워 CMD 를 입력합니다.

ipconfig를 입력합니다.

현재 연결되어 있는 주소가 192.168.0.~~ 로 되어 있으면 공유기 내의 

IP를 사용하는 것입니다. 


이런 경우에 포트포워딩이라는 작업이 필요합니다.


포트포워딩 검색하면 잘 설명된 곳 많습니다.

통신사 업체에서 가정에 할당해주는 IP주소는 대부분 하나만 할당받고 

인터넷을 사용합니다. 하나 할당받은 랜선을 이용해 컴퓨터를 사용하신다면

서버에 포트포워딩이라는 의미가 없어집니다.

하지만 집에 컴퓨터를 2대 3대를 쓴다고하면 통신사 업체에 

"컴퓨터를 샀으니 IP를 더 할당해 주세요"

라고 말할 순 있습니다.



하지만 고정IP를 추가하면 IP수 마다 돈이 따블이 되는겁니다.

하나의 고정IP가 5만원이면 2개면 10만원 3개면 15만원 돈이 너무 많이 들어갑니다.

이러한 과소비는 낭비입니다.


낭비하지 않기위해 사용한 것이 공유기입니다. 

공유기 주 포트에 고정IP의 랜선(주선)을 꽃으면 공유기는 고정아이피가 할당됩니다.

공유기는 여러개의 포트(허브?)가 있습니다. 이 여러개의 허브에 랜선을 꽃아 사용하면 공유기 내의 IP를 사용하여 인터넷 사용이 여러대 가능합니다.


ex)204.160.234.12 의 고정IP

랜선 주 케이블에 연결


 

 


이런 형식으로 뿌려주는 방식입니다.

CMD에서 IP확인시 192.168.0.XX 로 나온다면 공유기를 이용한 네트워크 방식입니다.


예를들어 나는 192.168.0.12 를 사용한다고 하고

외부(집 이외의 PC)에서 나의 PC서버에 접근한다고 하면 

외부에서 URL에 http://192.168.0.12/~~~~/~~.php 주소를 입력해도

페이지 주소를 찾을수가 없다고 나옵니다. 

이런 현상은 당연한겁니다.


외부에서 192.168.0.12라는 주소는 공유기 내의 주소이기에 외부 HTTP 서버에서는

알 수가 없습니다. 


외부에서 나를 알수 있는것은 고정 IP인 204.160.234.12 라는 주소만 

알 수가 있는것입니다.


외부에서 접근을 하기위해서는 고정 IP를 이용해 내부 IP에 접속을 허용하는 방식은

포트번호를 이용하여 특정 내부 네트워크 204.160.234.12 주소내의

포트번호 5000번은 192.168.0.12 라고 설정해주는 것이 포트포워딩입니다.


이렇게 포트포워딩을 해주어야 내가 설정한 특정 포트번호로 외부에서 나의

개인PC 서버로 접근이 가능합니다.







2. AVD(가상 머신) 이 아닌 USB를 이용한 실제 디바이스로 컴파일을 이용할 때



서버가 위의 방식처럼 공유기에 물리고 휴대폰 와이파이가 서버에 물려있는

공유기에 접속된다면 포트포워딩 없이 같은 내부 네트워크 망에 있으므로 통신이 가능합니다.

이런 방식은 실제 서버를 개발하는 데에 있어서 많이 제한적이라 테스트용으로

사용합니다. (외부접근 불가)






3. 네트워크와 PC가 직접 연결되어있을때 (공유기 X)




고정 IP를 사용하기에 안드로이드에서 고정IP 그냥 넣어주면 됩니다.



서버 오픈 방법입니다..

궁금하신점 있으시면 댓글 주시고

잘못된 점은 알려주시면 감사하겠습니다.