하면 된다!!!

네트워킹 - Jumbo Frame 사용하도록 셋팅하기 (Mac, Windows PC)

트랜드/사과이야기

네트워킹 - Jumbo Frame 사용하도록 셋팅하기 (Mac, Windows PC)


우리가 사용하는 네크워크는 파일 전송시 한번에 전체 데이터를 전송하는 것이 아니라 특정 단위로 짤라서 보내게 됩니다.

이때 MTU (Maximum Transmission Unit : 최대로 전송 단위)라는 개념을 적용하게 되는데요. 일반적으로 우리가 사용하는 네트워크 (Ethernet v2) 는 MTU가 1500으로 설정되어 있습니다.


오늘 여기서 설정하려는 점보 프레임 (Ethernet Jumbo Frames) 은 1501 ~ 9216 대역의 MTU를 지원합니다. 


그러면 이렇게 MTU가 커지면 얻는 효과는 무엇인가요?

내부 네트워크가 gbps 단위를 지원하고, 큰 용량의 파일을 자주 주고 받는 다면 MTU값이 크면 더 빠르게 많은 데이터를 전송할 수 있습니다. 다만 작은 단위의 정보나 텍스트 정도를 주고 받는 다면 MTU를 높이면 오히려 역효과가 나올 수도 있습니다.


네트워크를 적용하는데 있어서 쌍방향이 동일한 MTU를 사용할 수 있도록 지정되어있어야 합니다. 두 장비의 MTU 설정값이 다르다면 서로 프로토콜이 일치하지 않아 1500 으로 지정되어 통신이 이루어지거나 통신이 안되는 상태가 될 수도 있습니다.


뭐 저는 네트워크 전문가도 아니고... 줏어들은 이야기를 길게 써봐야... 의미 없어 보입니다. 참고하시라고 요기로... 이렇게 슬쩍 넘어갑니다.


Windows PC에서는 네트워크 환경 설정에서... 다음과 같이 누르시면 됩니다.

아래의 화면은 예를 들어서 캡쳐한 것입니다.



위의 화면 우측에 구성 버튼을 누르시면... 아래의 팝업이 뜹니다.

여기서 고급 탭안에 속성 목록 중에 Jumbo Frame 을 선택합니다. 그리고 우측에 값을 선택하면 됩니다.




Jumbo Frames 라고 보이시죠? 랜카드가 지원하지 않으면 MTU를 올려서 사용하실 수 없습니다. 참고하세요.


그럼 맥에서는???

커맨드 라인에서 networksetup 이라는 커맨드를 사용해서 처리합니다. (networksetup 커맨드 설명)


우선 설정하고자 하는 네트워크 카드의 장비명을 ifconfig 커맨드를 이용해서 찾아냅니다.

ifconfig 를 해보면 장비에 있는 네트워크 카드 리스트를 볼 수 있습니다. 제 맥북은 (en4 가 저의 맥북의 유선 랜 카드이더군요.

그러면 이 랜카드가 사용할 수 있는 MTU의 대역폭이 얼마인지를 알아봐야겠지요?

맨뒤에 랜카드의 이름만 바꿔서 사용하시면 결과값을 보실 수 있습니다.

> networksetup -listValidMTURange en4

Valid MTU Range: 1280-9000


이렇게 나오면 9000 (9K) 까지 MTU를 지원하는 군요.


현재 셋팅된 MTU 값이 얼마인지 볼까요?

> networksetup -getMTU en4

Active MTU: 1500 (Current Setting: 1500)


1500으로 셋팅되어있군요. 그럼 9000으로 올려볼까요?

> networksetup -setMTU en4 9000


잘 셋팅이 변경되었는지 다시 한번 MTU 값이 얼마인지 볼까요?

> networksetup -getMTU en4

Active MTU: 9000 (Current Setting: 9000)

이렇게 변경된 것을 확인할 수 있습니다.


인터넷 공유기를 통해서 네트워크를 사용하고 있다면 공유기도 점보 프레임을 지원해야합니다.

네트워크 케이블 역시 일반적인 랜선이 아니라 Category 6 케이블을 사용해야 합니다.


이렇게 셋팅하고 나면 끝입니다. ^^


윈도 PC쪽 설명을 잘 해주신 분이 계셔서 여기다 남깁니다. http://whadam.tistory.com/250




윈도우 파일 소유권 / 사용 권한 관리

프로그래밍/기타

얼떨결에 PC에 윈도우 10을 설치하고 나서...

맥북에서 카피한 파일들이 파일 권한 등이 꼬이는 경우들을 자주 겪고 있어서 알아보았습니다.


우선 윈도우상에서 간단하게 파일의 소유권과 사용권에 대한 관리를 할 방법이 없는지 검색을 하다가 다음과 같은 방법을 발견하여 공유합니다.


1. 윈도우의 명령 프롬프트 창 열기 - 관리자 권한으로 여셔야 합니다.
    명령 프롬프트 메뉴에서 우클릭 하셔야 우측에 메뉴가 뜹니다.




2. takeown 명령어를 이용하여 파일의 소유권 가져오기

명령 프롬프트에서 작업을 원하는 폴더로 이동하시구요... 이동하지 않고 풀 경로를 입력하셔도 무방합니다.

>> takeown /F "파일명 또는 적용할 경로" /R /D Y

/R : 리커시브 입니다. 해당 경로 하위의 모든 파일 이나 폴더에 함께 적용시켜줍니다.

/D Y : 적용시 적용할꺼냐고 묻는 프롬프트가 뜨게 되는데 이걸 자동으로 Y로 대답해줘서 따로 Y 를 누르지 않아도 일괄 반영해줍니다.


3. icacls 명령어를 이용하여 파일의 사용권한 가져오기

명령 프롬프트에서

>> icacls "파일명 또는 적용할 경로" /GRANT 유저명:F /T /Q

/GRANT : 권한

유저명 : 윈도우 유저명으로... Everyone 으로 하면 누구나로 지정됨

:F : 모든 권한

/T : 리커시브 입니다. 해당 경로 하위의 모든 파일 이나 폴더에 함께 적용시켜줍니다.

/Q : 성공 메시지를 화면에 표시하지 않도록 지정합니다.


이렇게 하면 끝~~~ 입니다.


파일이 권한이 없다는 둥하면서 나오는 메시지는 안뇽~


더 자세한 옵션을 알고 싶으시면... /? 옵션을 이용하시면 모든 옵션에 대해서 설명이 나옵니다.


>> takeown /?

>> icacls /?




Mac - Win 키보드 마우스 공유 프로그램

프로그래밍/기타

사무실에서 맥과 윈도우 장비를 한대씩 사용하고 있습니다.

두대를 쓰다보니 왔다갔다 키보드 마우스를 사용하는게 여간 불편한게 아니었습니다.

시너지 라는 프로그램이 있기는 한데 잘 안되는 경우도 많고 셋팅이 어려워서 고생도 참 많이 하게 됩니다.

그리고 시너지가 일방적인 컨트롤만 가능합니다. 쌍방으로 컨트롤 되는건 없을까... 간단한 셋팅으로 되는 것은 없을까... 

그러던 중 검색해보니 재미난 어플이 있었네요.


간단하게 아래의 URL로 들어가셔서 OS에 맞춰서 각각의 장비에 설치를 합니다.

양쪽에 설치 후 한대에서 다른 장비의 클라이언트 아이피로 등록을 하면 됩니다. 

화면 이동을 하는 것은 간단하게 마우스를 화면 왼쪽이나 오른쪽 끝까지 이동해보세요. 그럼 자연스럽게 넘어갑니다.


맥, 윈도우 왔다갔다 하면서 원하는 키보드 마우스를 골라서 사용하면 됩니다.


http://www.keyboard-and-mouse-sharing.com/index.html



호스트 파일 컨트롤 해주는 확장프로그램 (애드온)

프로그래밍/기타

개발을 하다보면 호스트 파일 정보를 수시로 바꿔가면서 개발을 해야하는 경우가 많다.

이런 경우 hosts 파일을 열어놓고 수정해가면서 작업을 해야하는데... 불편함이 이만 저만이 아니다.

이런 부분을 쉽게 해결해주는 웹 브라우저의 똑똑한 확장 프로그램이 있다.


HostAdmin 이라는 툴이며 구글 크롬과 파이어폭스를 지원한다.


구글 코드에 프로젝트가 있는데...  https://github.com/tg123/chrome-hostadmin


크롬은 아래의 URL로 접근하면 바로 설치가능하다.

https://chrome.google.com/webstore/detail/hostadmin/oklkidkfohahankieehkeenbillligdn


파이어폭스도 HostAdmin 이라는 이름으로 애드온을 검색하면 바로 설치 가능하다.



설치를 하고 나면 화면 상단에 다음과 같은 아이콘이 나타나는데...



클릭을 하면 Hosts 파일에 등록된 내역들이 도메인별로 주루룩 그루핑 되어 나타난다.

특정 도메인을 지정 아이피로 선택을 할 수 있다.

원하는 아이피를 선택해가면서 사용하시면 됩니다. 이 경우 DNS 리프레시를 자동으로 해주기 때문에 브라우저에 다른 작업을 하실 필요가 없다.


다만 각 OS별로 hosts 파일은 사용 권한이 제한되어있다.

따라서 다음과 같이 권한 처리를 해주셔야 제대로 구동을 시킬수 있다.

아래 URL에 들어가면 상세한 내용이 나타난다.


https://code.google.com/p/fire-hostadmin/wiki/GAIN_HOSTS_WRITE_PERM


요약하면 아래 내용...

Windows Vista/7

To Users group

cacls %windir%/system32/drivers/etc/hosts /E /G Users:W

Custom User account

cacls %windir%/system32/drivers/etc/hosts /E /G "User Account Name":W

Linux (Ubuntu Fedora ...)

sudo chmod og+w /etc/hosts

Mac OS X

sudo chmod og+w /etc/hosts





[Android] 안드로이드 오픈소스 게임 개발 프레임워크 1. LibGDX

프로그래밍/Mobile
안드로이드 개발 프레임워크들을 좀 알아봐야한다. 
자료 조사 겸 포스팅 조사 순서는 필자 맘데로... 별로 머... 우선순위 개념 없이 조사하는데로 올린다. 

제가 조사하지 않은 것들 중에 괜찮은 것이 있으시면 댓글로 추천해주시면 좋겠네요. 아직 이쪽 바닥은 잘 몰라서요. 

 첫 번째는 LibGDX 


 Crossplatform 을 지원한다. 
게임이나 앱을 한번 만들어서 여러개의 플랫폼에서 사용할 수 있도록 해주는데 아래의 OS를 지원한다. 
iOS뿐 아니라 GWT (Google Web Toolkit)을 이용해서 웹 서비스도 가능하다. 
  • Windows
  • Linux
  • Mac OS X
  • Android (1.5+)
  • iOS (requires a MonoTouch license, 79$ for students, 399$ otherwise) << 돈내고 사야하는데... 서비스 해야 할 경우만
  • Javascript/WebGL (GWT) 

오픈 소스 프로젝트는 문서가 잘 안나와서 문제가 되는데 관련 문서와 샘플 소스들이 잘 갖춰져 있다. (상용화 하려는 듯) 

대부분 영문자료들이 많아서 고생하시는 분들을 위해서 몇몇 블로거들이 정리를 잘 해두셨구나. (졸라 땡큐~ ^^)
한글로 정리를 잘해주신 블로그 및 사이트들 링크를 남겨본다. 

호루루님의 블로그 : http://starkapin.tistory.com/474

공부 좀 더 해서 자료 정리해서 올려야겠네요.



Postgresql 설치 정리

프로그래밍

Postgresql 설치 관련해서 정리해봅니다.

아래의 원문을 기반으로 작업을 해보면서 다시 정리를 한 내용입니다.

환경에 따라서는 에러가 나는 경우가 있어서 제 환경에 맞게 다시 정리해본 내용입니다.


* 필자의 OS 환경 : Windows 7 Home premium k, Service pack 1, 64bit 운영 체계

* 원문 : http://blog.naver.com/westminstor.do?Redirect=Log&logNo=80023975150


굳이 Postgresql의 장단에 대해서는 논하지 않겠습니다. 이미 다들 정보들을 입수하여 알고 계실테니...

글을 작성하는 현재의 최신 버전은 9.1.3 이군요.


1. Postgresql 다운받기

다운 경로 : http://www.postgresql.org/download/

사용하는 OS 환경에 맞추어 최신 버전을 다운 받는다.

필자는 윈도우 환경에서 설치해야 하기 때문에 윈도우 64비트 버전을 zip archive를 다운 받았다.

먼저 installer 버전을 다운 받았으나 설치시 에러가 발생하여 zip archive로 다시 다운 받았다. 


* 리눅스/유닉스 관련 설치 정보 : http://richlino.egloos.com/1816137

* Windows Installer Version 설치 정보 : http://specialguy.tistory.com/70


2. 설치해 볼까나~

1) C:\pgsql 폴더 아래에 zip 파일의 압축을 해제


2) 윈도우 사용자 만들기

제어판에 들어가서 사용자 추가

postgres 유저를 생성한다. 샘플이니 비밀번호는 1234로 생성


3) 도스 커맨드 창을 띄우고... runas 실행

>runas /user:postgres cmd

postgres의 암호 입력:

cmd을(를) 사용자 "JSYOON-PC\postgres"(으)로 시작하려고 합니다...


이와같은 메시지가 나타나고 도스 커맨드 창이 새로 뜨게 된다.


4) DB 초기화

c:\> cd \pgsql

c:\pgsql> bin\initdb -D data -E unicode --no-locale



5) Config 변경
생성된 data 폴더 하부에 postgresql.conf 파일과 pg_hba.conf 파일을 이용하여 설정을 수정할 수 있다.
여기서는 일단 localhost 에서만 접근하지만 다른 아이피 등으로 접근하는 사용자를 위해서 변경하는 방법을 간단히 소개한다.

C:\pgsql\data\postgresql.conf 파일을 오픈하면 중간에 아래와 같은 내용이 있다.
# - Connection Settings -
#listen_addresses = 'localhost'
=> listen_addresses = '*'
localhost 뿐 아니라 다른 아이피로도 DBMS에 접근 가능하도록 설정하는 것이다. 필자는 로컬 테스트만 진행하기에 변경하지 않았다.
포트 변경도 이 파일에서 가능하니 매뉴얼 참조~ (꼭 자기 필요 없으면 설명도 않한다.. 하지만 그게 내 신조임)

6) 서비스 등록
> c:\pgsql\bin\pg_ctl register -N postmaster -U postgres -P 1234 -D c:\pgsql\data
여기서 
-U 다음에서는 윈도우 사용자. 앞에서 생성한 postgres
-P 다음에는 postgres 유저의 비밀번호

7) 서버 실행/종료 테스트
a. 서비스로 실행하기
C:\Windows\system32>net start postmaster
postmaster 서비스를 시작합니다..
postmaster 서비스가 잘 시작되었습니다.

b. 커맨드 창에서 실행하기
실행
C:\pgsql>bin\pg_ctl -D data -l logfile start
server starting
아... 이 단촐한 메시지... 시작되었단다.
종료
C:\pgsql>bin\pg_ctl -D data stop
waiting for server to shut down.... done
server stopped
역시 단촐하게 두줄... 서버 멈췄다~ 끝

참 쉽죠잉???

이제 함 누려보입쉬다...

Android 앱을 Window에서 사용할 수 있는 블루스택

트랜드/Mobile

안드로이드 앱을 윈도우즈에서 구동할 수 있는 서비스가 출시되었다.

재미지다... 테스트 해봐야지~ 흑... 다운 받는데 117메가나 된다. 

안드로이드 VM이 다 올라와야 하니.. 귀엽게 넘어가준다 ^^



☞ 다운받는 주소 : http://www.bluestacks.com/download.html

☞ 참고 기사 : http://www.bloter.net/archives/79197


MacBook Pro에서 윈도우즈 데스크탑 이용하기에 도전하다~!!!

트랜드/사과이야기
맥북에서 윈도우즈 데스크탑을 이용하는 방법이 없을까 찾아보니 MS에서 해당 유틸리티를 배포하고 있더군요.
생각보단 참 간단했습니다.

다음 URL 로 접속하시면 맨 아래쪽에 아래와 같은 화면이 있습니다.
1. 맨 왼편에서 Remote Desktop
2. 두번째 칸에서 버전을 선택하시고...
3. 세번째 Details 칸에서는 언어를 선택하시는데... 한글은 없더군요. 그래서 English를 선택해서 다운 받으세요.

URL : http://www.microsoft.com/mac/downloads.mspx?pid=Mactopia_RDC&fid=CD9EC77E-5B07-4332-849F-046611458871#viewer


설치 부분은 머 다들 잘 아실테니... 다운 받으신 dmg파일... 따블 클륵을 사정없이 해주시면... 설치를 하실 수가 있구요.

그다음에 어플리케이션 폴더에서 Remote Desktop Connection이란 것을 사정없이 따블로다가 눌러주시면 아래와 같은 화면이 뜹니다.
이 화면에서 접속하고자 하시는 윈도우 머신의 아이피 또는 도메인을 입력하시면...
로그인 정보를 입력하라고 뜨구요... 거기서 로그인 하시면...



짜잔~!!!
울집에 있는 PC를 원격으로 붙은 화면입니다.
바탕화면에 비밀 스러운 것들이 많아서... 쿨럭... 로그인 화면을 캡쳐해서 올립니다.
아직 맥북에 익숙하질 못해서 제대로 관리를 못하네요... 훔

다른 어플들도 테스트를 좀 많이 해보려고 노력하는 중입니다.
해보고 도움이 되실만한 내용을 잘 찾아서 올려놔보겠습니다.... 휴우~

진땀이 그냥...



Window 환경에서 Java Heap Size 제한

프로그래밍/Java
다들 아시는 내용일지 모르겠으나... 제가 예전에 삽질했던 기억도 있고....
궁금해하시는 분들이 좀 있는 것 같다.

Java 어플을 만들어 돌리다 보면 메모리를 많이 사용함으로 인해서 JVM 옵션을 이용해서 heap memory size를 키워서 구동을 시키게 된다.

abcd 클래스를 구동시킬 경우 아래와 같이 말이다.
$ java -Xmx512m abcd

저 안에 있는 Xmx는 Maximum Memory 값이다... 512m 은 512 메가바이트의 메모리를 할당해주라는 말이다.
그럼 한없이 큰 프로그램도 돌릴 수가 있을까? 내 PC는 1기가 램 밖에 안꽂쳐있는데... 1기가 짜리 프로그램은 어찌 돌린단 말인가? 라는 쓸데 없는 고민은 하지 마시고...
여기서 말하는 메모리는 물리적인 램의 사이즈를 지정하는 것이 아니라 시스템의 메모리 공간을 사용하는 것이므로 windows에서 Hdd를 paging 하여 사용하는 가상메모리 조차도 메모리 공간으로 간주한다. 따라서 그런 걱정은 마시고...
그렇다고 무한대로 메모리를 늘려서 어플을 돌릴 수가 있을까?
그렇지 않다. 제약이 있다. 어플을 돌리는 서버의 환경에 따라서 다르다.

32 bit 버전의 windows에서는 1.5~1.6GB 까지로 메모리 사용이 제약된다. 필자의 PC에서는... 1.4기가 정도까지 구동이 된다. 그거보다 키우면 확~ 안돌아간다. ㅠㅠ
따라서 더 큰 메모리 환경에서 구동하고 싶을 경우에는 windows 64 bit 머신에서 작업을 하던지... 리눅스 환경에서 사용하면 된다.
리눅스 환경에서는 4GB로 잡고 돌려봐도 잘~ 돌아가고 문제 없이 결과를 받아볼 수 있었다.

참고로 아래 URL을 보시면... 도움이 되실 듯하다.

아~참 여기서 언급한 JVM은 Sun사의 JVM을 기준으로 이야기 한 내용이므로 오해 없으시길 바랍니다.

http://sinewalker.wordpress.com/2007/03/04/32-bit-windows-and-jvm-virtual-memory-limit/
http://stackoverflow.com/questions/171205/java-maximum-memory-on-windows-xp