티스토리 툴바


PC 이야기2010/01/28 12:20


지난 글에 이은 또다른 해결책을 이야기 해 봅시다.

  지난글에서 3가지 해결책을 이용한 방법을 간략하게 다시 정리하자면 크롬, 파이어폭스를 이용하면 웹서핑에 전혀 지장이 없다는 것과 URL에 TAG 값을 넣어서 해결하는 방법 2가지가 있었습니다.

그런데 이게 무슨 날벼락인지 오늘 다시 인터넷 사용이 제한이 돼 버렸습니다.

크롬, 파이어폭스 등의 웹브라우저는 아직도 무난하게 사용이 되지만 URL 태그를 넣어서 사용하는 방법은 다 막혀버렸습니다.
(ISP..진짜 이렇게 까지 할꺼임?)


그래서 새로운 방법을 알려드리도록 하겠습니다.


"나 대신 심부름을 해줄 녀석을 구하자."

  말 그대로 입니다. 나 대신 사이트에 접속할 컴퓨터를 구해서 쓰면 되는 방법으로써 이를 "프록시 서버"라고 합니다. 인터넷 사용제한에 있어서 LAN영역(근거리 통신망) 영역에서 웹브라우저를 이용하는 경우에는 전혀 제한이 없지만 외부 네트워크에 연결되는 웹브라우저(익스플로러를 이용한 포털사이트 접속)를 실행할 경우에는 인터넷 사용제한 페이지가 출력되버리고 맙니다.

  하지만 프록시 서버를 사용하게 되면 그런 문제가 발생하지 않습니다. 네이버에 연결하면 프록시 서버를 경유하기 때문에 ISP의 인증을 피해가는 것이지요.

  원리는 대충~ 이런 방식입니다. 프록시 서버는 지가 웹서핑을 하고 그리고 그 후에 클라이언트(본인 컴퓨터)와 통신을 하는 방식이기 때문이죠. (본인 컴퓨터가 다른 컴퓨터 뒤에 숨는거라고 하면 더 쉽겠네요.)

물론 이 방법도 약간의 문제가 발생할 우려가 있기는 합니다.


설정 방법은 다음과 같습니다.(익스플로러 8 기준입니다. 6, 7 버젼도 크게 다르지는 않을 듯 합니다.)

도구 > 인터넷옵션 > 연결 > LAN 설정

위 그림에서 프록시 서버를 선택하고 프록시 서버 주소와 포트를 입력하면 됩니다.


  그럼 여기서 프록시 서버 주소를 모른다면..? 찾아봐야겠지요. 직접 검색으로 찾는 방법도 있고 프록시 서버 검색을 해주는 프로그램도 있으니 본인 취향이나 좋다 하는 프록시 검색 프로그램을 다운 받아서 설치해서 쓰면 됩니다.

제가 사용하는 프록시 서버 검색 프로그램은 "ProxySwitcher Standard" 입니다.
(프로그램은 검색을 통해서 구하시면 되겠습니다.)

서버 주소, 상태, 서버위치국가, 리스폰 등등 표시가 되기 때문에 빠른 프록시 서버를 선택해서 사용할 수 있습니다.



 뒷 이야기..
  엑스피드에 문의 연락을 하니 "우리는 제한 없는 상품 있어~" 라고 답변이 왔습니다.(그냥 콱 바꿀까..?) 현재 ISP들끼리 제한을 걸자고 합의를 본 상태지만 LG쪽에서만 제한을 하지 않는다고 하더군요. 그리고 이번 PC 제한이 1월 27일 부터 시행되고 나니 발 빠르게 LG쪽에선 2월 1일 부터 인터넷 제한이 없는 신규상품도 출시한다고 합니다. 
(LG쪽에선 다른 ISP들과는 조금 다른 생각을 하고 있는 듯..배신일까?)



그럼 이만 끝!
감사합니다.
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by M.Daisy
PC 이야기2010/01/27 12:54

  오랜만에 글을 씁니다. 취직을 한 뒤로 여러가지 핑계로 블로그를 운영하지 않다가 오랜만에 글을 쓰려니 어색한 감이 있네요.

  그럼 바로 본론으로 들어가보도록 합시다. 한 보름 전부터 쿡 인터넷 사용자들은 웹페이지를 띄울 때 마다 인터넷 사용제한에 관한 팝업창을 보게 됐었습니다. 

  대학에서 네트워크를 전공한 저로써는 무슨 수를 쓰려고 하는지 궁금했습니다. 공부를 열심히 한 것은 아니지만 OSI 7계층에 대해서는 어느정도 지식이 있는데 MAC주소(물리주소)를 어떻게 ISP 쪽에서 알수 있는지가 말이죠. 그래서 D-Day당일 까지 기다려봤습니다. 

 결과는...?

  정말 막혔습니다. 그런데 뭔가 조금 요상하게 막혔더군요. 웹페이지만 안될 뿐 파일전송, FTP, 메신저 등은 다 원활하게 되는겁니다. 그래서 분명 이것은 꼼수다. 라는 생각이 들어 해결책을 생각해봤고 찾아냈고 이렇게 꼼수지식을 공유하고자 합니다.


  그럼 세가지 꼼수를 이용해 ISP업체들의 꼼수를 뚫어봅시다.


첫번째 방법!
  http://www.naver.com, http://www.nate.com, http://www.daum.net 등 국내 대표 포털사이트를 주로 기본페이지로 두고 사용하는 것이 일반적인 웹페이지 설정입니다.

  이 주소들은 기본 URL이라고 합시다. 이 주소로 접속을 하게 되면 메인페이지가 잠깐 출력 되다가 인터넷 제한이 걸린다는 페이지가 뜨면서 블라인드 처리가 되지요.
(인터넷 사용 PC가 2대 이하일 경우에는 뜨지 않습니다.)

그런데 이 페이지는 MS사에서 제공하는 Internet Explorer에서만 출력이 됩니다.
그렇다면 해결방법은...!?

  구글 크롬과 파이어폭스 등의 웹브라우저 입니다. 이 웹브라우저들은 무료이기 때문에 사용에 제한이 없고 다수의 PC를 이용해도 자신이 원하는 웹페이지가 블라인드 되지도 않지요.

그리고 기존에 사용하던 MS사의 익스플로러보다도 빠르다는 느낌을 받게 됩니다.
(단점, 엑티브엑스 컨트롤 이슈가 발생하는 점 때문에 특히 금융권 사이트에서는 정상동작이 어렵습니다.)

이것이 첫번째 방법입니다.



두번째 방법!
  두번째 방법은 딱히 뭔가를 설치하거나 그렇지는 않습니다. 단지 좀 불편한 방법이라고 할 수 있고 조금 황당할 수도 있습니다.

예를 들어 네이버에 접속한다고 합시다.

  http://www.naver.com으로 접속을 시도하면 블라인드 돼 버립니다. 그러나 http://www.naver.com 뒤에 index.html을 붙이게 되면 뜨지 않습니다.

 예) http://www.naver.com/index.html

다시 말해 URL 주소가 도메인 뒤에 뭔가 더 붙어 있다면 블라인드 되지 않는다는 것 입니다.

  정확하게 어떤 방식으로 PC수를 제한 하는지는 모르겠지만 URL을 통해 웹페이지에 접근할 때 MAC주소 가지고 장난질을 하는 것 같습니다. 그렇기 때문에 해당 서버에 존재하는 웹페이지 경로를 직접적으로 접근하게 되면 전혀 블라인드가 되지 않습니다.

그리고 베너 등을 이용해서 접근할 때도 이 방법은 유효합니다.
(URL 주소창에 기본 도메인을 이용한 접근만 아니면 되는 방법입니다.)

약간 불편할 수도 있는 방법이지만 어쨋든 해결책입니다.



세번째 방법!
  세번째 방법을 알려드리기 전에 특정 회사에 제품을 광고하고자 하는 것은 아니라는 것을 알려드립니다.

  IPTIME 회사의 공유기에는 URL을 이용한 PC제한을 못하도록 하는 설정이 있습니다. 아마 다른 회사 공유기 제품도 이 기능이 있을 것이라 예상 되지만 현재 제가 사용하는 공유기가 IPTIME 제품이기 때문에 알려드리는 방법입니다.

공유기를 설치하게 되면 공유기에 물려 쓰는 PC들은 가상의 IP주소 192.168.x.x의 주소를 사용하게 됩니다. 이 주소 중에서

192.168.0.1 또는 192.168.1.1 주소로 접속을 하게 되면 공유기 설정을 할 수 있습니다.
(공유기를 사용자 임의로 설정하게 되면 주소가 다를 수도 있습니다.)

그 후
  "관리도구 > 고급설정 > 시스템관리 > 기타설정" 메뉴를 클릭한 뒤 "HTTP URL TAG" 설정을 볼 수 있습니다. 이 설정은 기본적으로 중단으로 돼 있지만 텍스트 박스에 "aaa" 문자 또는 2글자 이상의 문자를 넣은 후 실행 설정으로 적용을 하게 되면 PC제한에 대한 문제를 해결 할 수 있습니다.

이 방법에 대한 기사 자료도 있으니 원본 기사를 참고하셔도 됩니다.
(특정 모델에서만 가능한 것으로 예상됩니다. 신형 IPTIME 제품들이라면 모두 해결이 되는 듯 합니다.)

원본주소
http://news.danawa.com/News_List_View.php?nModeC=1&sMode=news&nSeq=1500690



주의사항!!!
위에 방법 중에 그 어떤 것도 쿡 인터넷 사용약관을 피해갈 수 있는 방법이라고 생각하지는 않습니다.
이 말 즉슨 위약금 폭탄을 맞을 수도 있다는 것이지요.

그리고 PC 사용제한에 관한 것은 다른 ISP 쪽에서도 진행하는 것 같습니다. 사실인지 아닌지는 정확하게 알고 있는 바는 아니지만 이미 오래전부터 준비해온 것이며 ISP 업체들 끼리 그렇게 하자고 합의를 본 것으로 알고 있습니다.


끝으로..
  현재 인터넷을 사용하는 각 가정의 PC들은 공유기를 이용하게 되면 물리주소(MAC)를 ISP 쪽에서 알아낼 방법은 없습니다. 그러나 꼼수를 쓴다면 알아낼 수도 있겠지요. 그러나 가정에서 사용하는 각 PC의 맥주소를 ISP쪽에서 모른다고 한들 인터넷 사용량(트래픽)을 보고 다수의 PC를 사용하고 있다고 추측을 할 수 있습니다. 분명 일정한 트래픽 사용 패턴을 보고 분명 "저 사용자는 다수의 PC를 사용할 것이다." 라는 심증으로 잡아내려고도 하겠지요. 참으로 골치 아픕니다. 쫓기는 자와 쫓는자의 상황이 돼 버린 것 같습니다.(우린 도망자가 아닌데..)

아무래도 인터넷이 당분간 이 문제로 조금은 뜨거운 이야기가 펼쳐질 듯 합니다.
그럼 끝까지 읽어주신 것에 대해서 감사드리며 이만 글을 마치도록 하겠습니다.

감사합니다.


저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by M.Daisy
JAVA 공부방2009/05/29 14:41

  얼마전 취직을 했다는 핑계거리로 블로그 운영에 있어서 주 목적이었던 자바에 관한 이야기를 너무 오랬동안 하지 못했네요. 반성을 해야 겠습니다. 자 그럼 짧게나마 자바에 관한 이야기를 해보려 합니다.

  이번 글에서는 getter와 setter에 관해서 이야기를 해 보도록 합시다.

  자바에서 getter와 setter은 무엇을 하는 것일까요?

  자바에서 이 단어들은 예약어나 클래스 등의 개념이 아닙니다. 이것은 프로그래밍을 하는데 있어서 기본적으로 지켜주면 좋은 규칙이기에 사용을 하는 것 입니다. getter와 setter를 패턴으로 봐도 되겠지만 그 정도로 생각하기에는 너무 단순하고 패턴 같지도 않기 때문에 그냥 이렇게 하자 라는 규칙 또는 약속이라고 하는게 좋을 것 같습니다.
(자바 관련 서적을 많이 읽어 보지 않았지만 getter와 setter에 관해서 따로 이야기 하는 책은 없었습니다.)

  객체지향 프로그래밍에서는 클래스의 개념이 중요합니다. 그리고 클래스의 구조는 맴버 변수와 생성자 및 메소드로 구성 돼 있습니다.
public class Test{
        private String str; // 맴버변수(자바에서 정식으로 불리는 명칭은 필드 입니다.)

        public Test(){} // 생성자

        public void setStr(String str){
                this.str = str;
        } //setter 메소드

        public String getStr(){
                return str;
        } //getter 메소드
}

  위 예제 코드를 보시면 맴버 변수 str에 대해서 2개의 메소드가 존재하는 것을 볼 수 있습니다. 그것이 바로 getter와 setter 입니다.
 
  왜 이렇게 하는 것일까요? 

  이유는 간단합니다. 누가 봐도 set 단어를 통해서 "값을 넣는다.", "대입을 한다.", "셋팅을 한다." 라고 예상 할 수 있기 때문입니다. 마찬가지로 get 단어를 통해서 "값을 반환한다.", "가져온다.", "내용을 본다." 라고 예상 할 수 있기 때문입니다.

  이는 단순히 메소드의 이름을 쉽게 짓기 위함 뿐만 아니라 메소드가 하는 역할에 대해서 잘 파악할 수 있기 위함입니다. 이렇게 하면 프로그래밍 과정에서 각 메소드에 대해서 일일이 파악을 하지 않아도 메소드의 역할을 쉽게 예상을 할 수 있습니다.

  그럼 getter와 setter를 잘 사용하기 위한 규칙에 대해서 이야기 해 봅시다.

set 단어를 이용해서 메소드를 만들 때는 그 반환형이 void로 해야 하고 맴버 변수와 동일한 형식의 인수가 있어야 한다.
get 단어를 이용해서 메소드를 만들 때는 그 반환형이 맴버 변수와 같은 형식이여야 하고 인수는 없다.
만약 getter와 setter형식으로 메소드를 만들었는데 반환형과 인수가 위 규칙과 다르다면 그 메소드는 getter와 setter의 역할을 하는 것이 아닐 확률이 높다.

  위 규칙은 단순한 규칙입니다. 물론 메소드의 역할에 따라 조금씩 달라질 수도 있지만 보통 set의 경우 반환형이 void가 아니라면 그 메소드는 setter 메소드가 아닐 확률이 높습니다. 

  set는 입력 이라고 생각하는 편이 좋습니다. 그럼 다음으로 get 단어를 이용할 경우를 이야기 해봅시다.

  get 단어로 시작하는 메소드는 반환형이 맴버 변수의 것과 같은 형식일 확률이 높습니다. get을 이용했지만 인수가 존재한다면 그것은 getter가 아니라고 하는 것이 옳을지도 모릅니다. 물론 특성에 따라 다를지도 모릅니다.

  그러므로 get는 출력이라고 생각하도록 합시다.

  그리고 is 단어로 메소드 이름이 시작하는 메소드들도 많습니다. 이 메소드는 인수를 통해서 전달 된 맴버 변수에 대해 참/거짓을 분별하기 위한 메소드 이기 때문에 반환형은 boolean 일 확률이 높습니다. 이 외에도 enable/disable, to, print 등의 규칙도 있습니다.


  setter와 getter은 어디에 많이 사용할까요?

  예를 한가지 들어 도서관리 프로그램을 만든다고 생각해 봅시다. 그럼 책에 해당하는  Book 클래스가 존재할 것입니다. 이 클래스는 책에 정보를 담는 클래스일 확률이 높습니다. 그럼 Book 클래스는 다음의 구조를 갖고 있을 것 입니다.

클래스명 : Book
맴버 변수 : 제목, 지은이, 출판사, 가격, 출판날짜
메소드 : ???

  Book의 맴버 변수는 전부 책에 정보를 담고 있습니다. Book 클래스는 정보를 담는 정보 클래스 또는 데이터 클래스라고 해둡시다. 그럼 여기에 입출력을 담당하는 메소드가 필요합니다. 그럼 생각을 해야 합니다. 메소드는 어떻게 만들어 줘야 할 것인가?

  기본적으로 생성자가 setter를 대신 할 수는 있습니다. 그러나 생성자는 일반적인 메소드와는 다른 특징을 갖는 메소드이므로 setter와 getter의 특징을 갖는 메소드가 필요합니다. 이 규칙대로 메소드를 만들게 되면 클래스를 사용하게 될 때 상당히 효율이 좋아지는 것을 프로그래밍 과정에서 느낄 수 있습니다.

 메소드
 set제목, get제목, set지은이, get지은이, set출판사, get 출판사, set가격, get가격, set출판날짜, get출판날짜...

  이게 setter와 getter의 본래의 목적입니다. 별게 아니지만 이를 무시한다면 자바를 막 공부하는 새내기 개발자에게는 많은 어려움을 느끼게 됩니다. 아주 간단한 것이니 몸에 잘 익히기 바랍니다.


추가 보충 팁!
 setter와 getter 뿐만 아니라 자바 API 문서를 보다 보면 규칙이 있는 메소드 이름이 많습니다. 본문에서 언급했던 is의 경우도 setter와 getter 처럼 일종의 규칙대로 사용하는 단어입니다. 입/출력, 참/거짓, 보이다/감추다 등의 규칙이므로 클래스의 메소드를 파악 하는데 이름 염두해 두면 좋습니다..

  그리고 자바 외에 객체지향 프로그래밍에서도 큰 차이는 없을 것 입니다. 그런데 C#에서는 setter와 getter를 구분하지 않습니다. 그 이유는 C# 기초 교재를 보면 충분히 알 수 있습니다.
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License

'JAVA 공부방' 카테고리의 다른 글

getter와 setter  (0) 2009/05/29
AWT의 확장 - Swing.  (0) 2009/02/19
AWT - Canvas와 Graphics.  (0) 2009/02/18
AWT - CardLayout  (0) 2009/02/17
AWT - 이벤트.  (1) 2009/02/17
AWT - 배치 관리자.  (0) 2009/02/17
Posted by M.Daisy