«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

가로 정렬은 흔히 알려진 margin:0 auto; 만으로 간단히 해결이 가능하다.

그런데 세로로 정렬을 하려면?

브라우저 사이즈에 따라 유동적으로 움직이게 하려면?


$(document).ready(function(){ 


var currentHeight = $(window).height(); 


$("#wrapper").each(function(){ 

var wrapperHeight = $(this).css("height"); // wrapper의 height 구하기 

if (parseInt(currentHeight) > parseInt(wrapperHeight)){ 

var newHeight = parseInt(currentHeight) - parseInt(wrapperHeight); 

newHeight = newHeight/2; 

$(this).css('margin-top',newHeight); 

}); 

}); 


위 스크립트로 브라우저의 뷰포트(툴바, 창틀 등을 제외한 순수 컨텐츠 영역)의 사이즈를 구해 마진을 조절해 준다.

매 변동시마다 적용하려면 resize 함수를 사용해 보길 바란다.

혹은, body옵션으로 onresize도 있지만 적극 추천하진 않는다.

'컴퓨터 > jQuery & Ajax' 카테고리의 다른 글

jQuery Ajax로 특정 레이어에 페이지 가져오기  (0) 2013.03.20
,

사이트를 만들다보면 사이트 내용에 따라서 전체 페이지가 이동하는 것보단 일부분만 변경하는 것이 더 이득일 때가 있다.

특히, 이미지 자료가 많이 쓰이는 사이트의 경우 필요한 부분이 있을 수 있다.

아래 스크립트는 jquery 라이브러리에 포함된 jquery ajax를 통해 특정 레이어를 원하는 페이지로 변경하는 스크립트이다.


function open_url( type, url, data, target ){ 

$.ajax({ 

  type: type, 

  url: url, 

  data: data, 

  success: function(data){ 

    $("#"+target).html(data); 

  } 

})}; 


type에는 get, post 선택을, data에는 같이 넘겨줄 파라미터 값을 적는다.

ex) <a href="javascript:;" onClick="open_url('get', 'aaaa.php', 'num=1102&field=2', 'wrapper')">클릭</a>

위와 같이 사용하며 이렇게 하면 get 방식으로 aaaa.php에 num=1102와 field=2 값을 보내 나오는 결과페이지를 wrapper 레이어에 뿌려주는 것이다.

'컴퓨터 > jQuery & Ajax' 카테고리의 다른 글

페이지 세로 정렬  (2) 2013.03.20
,

MySQL에서 open_file_limit 값을 변경하려면 서비스(데몬) 구동시 인수로 —open_file_limit=값 을 넣어주거나 리눅스 my.cnf 윈도우 my.ini를 열어 mysqld항목 아래에 open_file_limit=값 한줄을 추가해주면 된다. 

윈도우의 경우 적용이 안된다면 data폴더의 my.ini도 같이 수정해 준다.(혹은 mysql 루트폴더에 없고 data 폴더에만 있기도 하다 - ex)APM_Setup7)




단, SHOW VARIABLES LIKE 'open_file%'; 했을 때 값이 0 이라면 변경이 불가능한 OS상태라는 것이고 일정수치가 있다면 변경이 가능하되 기본값 이하로는 조절할 수 없다.


서버마다 다르지만 기본값 622(혹은 755)이하로는 내릴 수 없다.

'Server > MySQL' 카테고리의 다른 글

서비스 시작 시 LSB 관련 에러  (0) 2017.09.06
MySQL 사용자 계정 추가  (0) 2016.04.25
,

국민 스크린 캡처 기능으로 사랑받고 있는 안카메라 개발사 이비즈네트웤스 및 대표 박기범도 결국은 개새끼네요..

프로그램이 인기가 좋아지니 돈을 벌고자 하는건 이해가 갑니다만 요즘 정보유출도 많이 많은 상황에 프로그램을 사용하려면

회원가입을 반드시 해야만 가능하게 하고, 제 3자에 대한 정보 제공등 개인정보 관리 방침에 관련된 약관만 확인하기 힘든 구조로 만드는 등 법에서 정해준 가이드 라인만 아슬아슬하게 지키는 회사로 전락했습니다.



위 스크린샷은 안툴즈 회원가입 페이지입니다.

위와 같이 이용약관은 그나마 보기 좋게 해두었음에도 불구하고 나머지 개인정보에 관련된 항목들은 넘겨보기 힘들게끔 만들어두었습니다.

한눈에 확인하기 힘들게 만든 이 회원가입 페이지에는 어떤 악의가 숨겨져 있을지 모릅니다.

더욱이 회원가입을 하지 않으면 향후 버전을 사용하지 못하게 한 점에서 의심을 더욱 증가됩니다.

현재 윈도우 7 기준 3.6버전 설치시에는 기존과 같이 사용이 가능합니다만 4버전부터는 자동으로 5버전으로 업그레이드 되면서(최초 실행시 4버전 인스톨러를 설치했음에도 5버전으로 인스톨 되어 있음을 확인하였습니다.)

회원가입을 강요하고 있습니다.

그 어떤 프리웨어도 회원가입을 강요한 적은 없습니다.

과연 이렇게 수집한 회원정보를 어디에 사용하려는 걸까요?


게다가 회원가입 시 공용pc에서의 피해 방지를 위해 주민번호 일부는 비공개 처리를 해야 맞습니다.

그런데 위 스크린샷을 보시면 번호가 그대로 노출됨을 아실 수 있습니다.

또한 13년 2월 18일 부터 금융 및 통신사를 제외한 주민번호 수집이 불가능 함에 불구하고 위 회사는 주민번호를 여전히 수집받고 있습니다.

이는 엄연한 불법이 아닌지 의구심이 들며 해당 회사가 관련 볍망 및 신뢰성 있는 서류를 내걸고 해명해 주시길 요청하는 바 입니다.


회원가입시 SSL 보안서버 사용은 이제 필수가 되어 있습니다. 이는 대한민국 국법으로도 정해져 현재 발효된 상태구요.

개인 홈페이지 에 한정하여 아직 적용기간이 남아 있는 것으로 알고 있습니다. 그런데 위 사이트에서 SSL 보안서버 및 인증서를 사용한 회원가입 방식 처리를 확인할 수 조차 없었습니다.

국민 프로그램으로 자리잡은 점을 악용하는 이비즈네트웤스에 이 부분의 해명을 요구하는 바 입니다.


아래는 위 회사의 회원가입 약관 중 목적외 사용 및 제 3자에 대한 제공 및 공유에 대한 약관이며 아래에 명시된 회사의 마케팅부로 회원가입하시는 분들의 회원정보가 팔려나가는 것입을 아시기 바랍니다.

스팸이 괜히 오는게 아닙니다. 이런 회사의 쓰레기 짓과 회원가입하는 호갱의 부주의에 의해 생기는 것입니다.



다음은 안툴즈 회원가입시 제대로 확인하기 힘든 제 3자에 대한 정보제공 약관 전문입니다.(13년 2월 25일자 갱신)

  • 목적외 사용 및 제3자에 대한 제공 및 공유

    가. 목적
    1) 안툴즈는 회원의 보다 향상된 서비스 제공 등을 위해, 회원의 동의하에 아래와 같이 개인정보를 활용할 수 있습니다.

    나. 수집 및 활용 관련 정보

    1) 개인정보가 제공되는 비지니스 파트너 사와 제공 정보, 제공된 정보의 이용 목적은 다음과 같습니다. 회원님들 중 개인정보의 제3자 마케팅활용에 동의하신 회원님들의 정보만이 제공되며, 제공된 정보는 명시된 이용목적을 벗어나 이용되지 않으며, 개인정보의 유출 등 사고가 일어나지 않도록 더욱 철저한 보안이 이루어지도록 노력하고 있습니다.

    2) 개인정보가 제공되는 비즈니스 파트너 사와 제공 정보 , 제공된 정보의 이용 목적은 다음과 같습니다.
    ㄱ. 보험사
    제공대상자 : 신한생명,동양생명,제일화재,흥국화재,LIG손해보험,그린손해보험,동부화재,AIA생명,에르고다음다이렉트,교보AXA,롯데손해보험,한화손해보험,메리츠화재,현대해상,라이나생명,미래에셋생명보험㈜,우리아비바생명,삼성화재,KDB생명,대한생명보험㈜,AIG손해보험㈜,흥국생명 (위 내용 모두 동의고객에 한함)
    제공정보 : 이름, 주민등록번호, 아이디, 닉네임, 비밀번호, 휴대폰번호, 통신사, 인증번호,
    일반전화번호, 주소, 이메일(메일수신동의), 가입 일자, IP 주소중 파트너사의
    요청 정보 제공
    이용목적 : 보험개발원 정보망을 통한 보험계약 및 사고관련정보 조회, 보험상품등의 안내를
    위한 이메일,전화,SMS서비스 제공 등 마케팅자료 제공
    이용기간 : 제공일로부터 5년

    ㄴ. 이동 통신사
    제공대상자 : SK텔레콤㈜, SK브로드밴드(주), ㈜케이티, 통합LG텔레콤 (위 내용 모두 동의고객에 한함)
    제공정보 : 이름, 주민등록번호, 아이디, 닉네임, 비밀번호, 휴대폰번호, 통신사, 인증번호,
    일반전화번호, 주소, 이메일(메일수신동의), 가입 일자, IP 주소 중 파트너사의
    요청 정보 제공
    이용목적 : 회사홍보 및 가입자유치, E-mail/모바일 청구서 신청 및 이벤트 안내 등의
    마케팅 자료로 활용
    이용기간 : 제공일로부터 1년

    ㄷ. 카드사
    제공대상자 : 현대카드,롯데카드,신한카드,BC카드,삼성카드,국민카드,외환카드 (위 내용 모두 동의고객에 한함)
    제공정보 : 이름, 주민등록번호, 아이디, 닉네임, 비밀번호, 휴대폰번호, 통신사, 인증번호,
    일반전화번호, 주소, 이메일(메일수신동의), 가입 일자, IP주소 중 파트너사의
    요청 정보 제공
    이용목적 : 제휴카드 TM 및 가입자유치, E-mail/모바일 청구서 신청 및 이벤트 안내 등의
    마케팅 자료로 활용
    이용기간 : 제공일로부터 1년

    ㄹ. 위탁대행사
    제공대상자 : SH미디어,㈜해피애드,㈜이아이테크,㈜애드프레임,㈜리컴넷,㈜이비즈네트웍스,웹마우스커뮤니케이션즈,㈜맥스카드시스템즈,티아스,㈜오에이치커뮤니케이션즈,㈜스위트브레인,(주)애니투솔루션,온오프웹,㈜씨존피플,㈜한비즈컨버젼스,애드미글로벌㈜,(주)YOU Communications,㈜메조미디어,티디엠커뮤니케이션즈㈜,넷씽크,㈜위버스아이앤비,위버스커뮤니케이션즈㈜,굿빌더스,두앤두커뮤니케이션 (위 내용 모두 동의고객에 한함)
    제공정보 : 이름, 주민등록번호, 아이디, 닉네임, 비밀번호, 휴대폰번호, 통신사, 인증번호,
    일반전화번호, 주소, 이메일(메일수신동의), 가입 일자, IP주소,
    이벤트신청 동의값중 파트너사의 요청 정보 제공
    이용목적 : 서비스제공에 따른 민원처리, 신규상품 및 이벤트 등 최신정보 안내 ,
    업무 제휴사 마케팅 프로모션 대행
    ㆍ카드사 회사홍보 및 가입자유치, E-mail청구서 신청 및 이벤트 안내 등의 마케팅(이메일,TM,sms) 자료로 활용 (“카드사” 함은 현대카드와 그 외 신용카드사가 포함될 수 있습니다. (주)한비즈컨버전스만 해당)
    이용기간 : 정보 제공일 부터 서비스 해지 또는 제공 계약 종료일 중 먼저 도래하는 시점
    까지 이용 하며, 이용 기간이 종료 한 시점에 파기. 단 ,다른 법령에 특별한
    규정이 있을 경우 관련 법령에 따라 보관

    다. 제3자 정보제공의 동의 철회

    1) 마케팅활용동의에 동의하고 가입하신 신규회원 중 제3자 정보제공을 철회하고 싶은 회원은 이미 제3자에게 제공된 개인정보라 하더라도, 언제든지 열람 , 정정,삭제를 요구할 수 있습니다. 열람,정정,삭제 및 정보제공 동의 철회는 전화와 팩스 등을 통하여 본인 확인 후 요청할 수 있습니다.

    2) 이미 제공된 회원정보를 철회하는 데는 일정 시간이 소요됩니다.활용 동의 철회를 요청하시더라도 위와 같은 이유로 마케팅에 활용 될 수 있음을 알려드립니다. 회사는 회원님의 소중한 정보를 보호하기 위하여 신속하게 처리되도록 최선의 노력을 다하겠습니다.

    라. 제3자 정보제공 예외사항

    1) 다음과 같은 사항에 대해서는 예외적으로 개인정보를 활용할 수 있습니다.
    ㄱ. 이용자들이 사전에 동의한 경우
    ㄴ. 법령의 규정에 의거하거나, 수사 목적으로 법령에 정해진 절차와 방법에 따라 수사기관의 요구가 있는 경우 

,

삼성 SDS 멀티캠퍼스 전임교수신 '천정아' 씨께서 쓰신 '개념을 콕콕 잡아주는 C 프로그래밍 초번 272쪽 예제 7-5는

visual studio 2010 및 2012에서 원래 안되는 겁니다.

복잡한 그런 프로그램도 아니고 기본서 배열 예시문에 특별한 연산도 없는 대소비교 프로그램인데 저자께서 사용하시는 visual c++ 6.0은 어떨지 모르겠으나 단순연산이 상위 버전에서 안된다는건 희안한 일입니다만, 결론은 오타로 인해 안되는게 아니라 원인을 알 수 없는 문제로 안됩니다.

 

그대로 구동하시면 값이 커졌다 작아졌다 할겁니다.

 

해당 소스의 9번째 줄에 , index 지우시고

14번째 줄 index = i; 삭제

17번째 줄 index를 i로

18번째 줄 index = j; 삭제

21,22번째 줄 index를 j로

 

바꾸셔야만 정상적으로 정렬됩니다.

 

 

 

공부하다 발견해서 저자분께 말씀 드리려 했는데 저자 연락처도 없고 출판사 회원가입을 안하면 문의를 안받네요. 전화도 안받고.

,



우리가 사용하는 많은 브라우저들은 다 각각의 단점과 버그를 안고 있다.

사용자들은 이 장단점을 비교하여 나에게 손해가 적으면서 능률을 올려주는 브라우저를 선택하게 된다.

(혹은 귀차니즘 200% 발동으로 각 시스템의 기본 브라우저를 사용하기도 한다.)

나는 내가 자주 쓰는 브라우저 중 하나인 Google Chrome(이라 '크롬')을 사용하고 있는데 나의 워크스테이션의 원격세션에 관한 설정을 만지던 도중 크롬 버그를 알아냈다.


사람들이 많이 애용하는 Teamviewer이나 RemoteCall(네이트온 원격제어도 이 프로그램 사용), VNC류 등의 원격제어 프로그램을 많이 사용한다.

하지만 이러한 원격제어 프로그램의 단점은 콘솔의 사용자와 클라이언트 사용자가 실시간으로 동일 화면을 보면서 작업을 한다는 점이다.

이 점은 기존의 원격제어에서는 구현되지 않은 기능이므로 장점이라고 볼 수도 있지만 작업 환경에 따라선 그렇지 않다.

만약 서로 다른 작업을 하는 사람이 서로 다른 화면을 개개로 작업을 해야하는 경우에는 어떻게 할 것인가?

나의 워크스테이션은 원격지에서도 작업을 하지만 때때로 나의 친구가 고용량 혹은 고처리 영상작업을 해야 하는 경우 ftp를 통해 소스 파일을 옮겨와 작업을 하는 경우가 허다하다.

하지만 이런 경우 콘솔의 사용자와 같은 화면을 공유하거나 콘솔의 사용자를 강제로 로그오프 시켜야만 접속이 되는 불상사가 생기게 된다.


 그래서 원격 세션을 사용하는 사람들은 엔터프라이즈 버전을 사용하거나 유니버셜 패치를 하는데 크롬은 동시에 두 사용자가 사용하면 다운되어 버린다.

구글에서 어서 수정해 주어야 할 문제이다..

,



저같은 경우 C언어를 공부중이라 C언어를 통해서 처리하려고 했습니다.


#include <stdio.h>

#include <stdlib.h>


우선 시스템에 직접 명령을 주려면 system()함수를  써야합니다.

이 함수를 위해 stdlib.h 라이브러리를 우선 인클루드합니다.

만약, PE모드에서 부팅했을 때 어떤 드라이브명인지 모를 경우를 고려한다면 io.h도 같이 인클루드 합니다.


파일의 존재 유무로 해당 파일이 있는 파티션을 찾아서 작업을 해야하는데 이 파일 유무를 체크해주는 함수가 access()함수입니다.

이 함수는 io.h에 들어있습니다.


access()함수에 대해서 여기서는 자세히 알 필요는 없습니다.

access()함수의 사용법은 다음과 같습니다.

access("const char* filename", int amode);

amode로는 여러가지가 있지만 우리는 여기서 0만을 사용합니다. 0은 해당 파일이 있는지 없는지 존재 유무를 체크하는 모드입니다.


저의 경우 파티션의 루트에 clean.vhd가 존재합니다.


int disk_chk;

disk_chk=access("C:\clean.vhd",0);

if(disk_chk==0)

system();


disk_chk=access("D:\clean.vhd",0);

if(disk_chk==0)

system();


disk_chk=access("E:\clean.vhd",0);

if(disk_chk==0)

system();


disk_chk=access("F:\clean.vhd",0);

if(disk_chk==0)

system();


파티션마다 다 찔러봐서 clean.vhd가 존재한다면 system()함수가 동작하게 합니다.

저의 경우 실력 미달로 저렇게 여러줄을 Ctrl + c, v 신공을..^^;


자기자신의 clean.vhd가 pe부팅시 어느 위치에 있는지 명확히 아신다면 위 과정은 생략합니다.(io.h또한 인클루드하지 않아도 됩니다)


이제 system()함수를 구성해야하는데 이것은 별다른 설명이 필요치 않습니다.

()사이에 "명령어"를 넣어주는 것으로 일은 끝납니다.


system("copy E:\clean.vhd E:\child1.vhd");


물론 각 if문에 맞춰서 드라이브문자열은 변경하시기 바랍니다. 파일 경로또한 본인에 맞게 쓰시면 됩니다.




#include <stdio.h>

#include <stdlib.h>


main()

{

int /*drive_check,*/menu;

//char path[] = "C:\clean.vhd";

//char drive = 'C';


printf("Optimized VHD Recovery Program on NAZUNA's Workstation\n\n");

printf("1 : HDD Recovery\n2 : HDD Parent Recovery\n3 : SSD Recovery\n0 : Skip\n");

printf("=>");

scanf("%d",&menu);


/* VHD 파일의 위치를 정확히 알 수 없을 때

for (; drive < 'Z'; ++drive) 

{

path[0] = drive;

drive_check = access(path, 0);

if (drive_check == 0)

break;

}

*/

switch(menu)

{


case 1:


printf("Child VHD CleanUp Start!\n");

system("copy E:\clean.vhd E:\child1.vhd");

printf("child1.vhd Clear\n");

system("copy E:\clean.vhd E:\child2.vhd");

printf("child2.vhd Clear\n");

system("bcdedit /default {232e6f06-175a-11e2-aa26-00190e10ed83}");

printf("Set default child1.vhd\n");

printf("\n Complete! \n");

system("pause");

break;


case 2:

printf("Parent VHD CleanUp Start!\n");

printf("HDD의 VHD 백업 파일의 용량에 따라 십수분 이상 걸릴 수 있습니다.\n");

system("copy E:\bkp\Windows7_Enterprise_K_MSDN.vhd E:\Windows7_Enterprise_K_MSDN.vhd");

printf("Add Parent VHD in bootloader...\n");

system("diskpart /s diskpart_script.txt");

system("bcdboot z:\windows /l ko-kr");

system("bcdedit /default {232e6f0f-175a-11e2-aa26-00190e10ed83}");

printf("\n Complete! \n");

system("pause");

break;


case 3:

printf("SSD OS CleanUp Start!\n");

printf("SSD의 VHD 백업 파일의 용량에 따라 십수분 이상 걸릴 수 있습니다.\n");

system("copy E:\Windows7_Enterprise_K_MSDN.vhd D:\Windows7_Enterprise_K_MSDN.vhd");

printf("\n Complete! \n");

system("pause");

break;


case 0:

break;


default:

system("cls");

printf("잘못된 선택입니다.\n");

main();

break;

}

}



주석이 달린 부분은 아직 미완성인 부분입니다.

컴파일러가 없어도 배포하는 프로그램만으로 스스로 파일을 찾아서 적용케 하려고 했지만 저도 아직은 배우는 입장이다보니 힘드네요 ㅠㅠ


추가.

파일을 찾아 적용하는 구문이 초기에 내가 문자열을 다루는 함수를 거의 몰라서 처리를 하지 못했는데 string.h 에 있는 strcat 함수를 응용하면 

system함수에 본인이 찾은 경로를 바로 입력이 가능하다.

그것을 구현하지 못해서 취소선을 그려두었는데 찾았으니 재 작업할 예정

,

참.. 많은 분들이 Enterprise 버전과 Ultimate 버전이 같다고들 하십니다.

많은 유명 블로그분들도 그렇구요.

MS에서 제공한 내용과 겉보기의 성능은 같지만 뜯어보면 다른 시스템입니다.

일반 유저로써는 못느끼겠지만 네트워크로 여러가지를 사용하는 사람이라면 깨달을 수가 있죠.


현재 제가 찾은 것은

첫째, 멀티세션(유니버셜 로긴)입니다.

네트워크 기능 중에서 원격제어 기능을 써보신 분은 아시겠지만 Starter~ Ultimate까지 전 제품은 멀티세션이 지원되지 않습니다.

원격제어로 잠시 일처리를 하고 싶은데 지금 앉아 있는 컴퓨터가 구형이라 오래 걸리고 파일도 집에있는 컴퓨터에 있다.

그런데 누군가가 로컬에서 사용중이라면 로컬 사용자는 바로 로그오프가 되어 버려 사용 불가 상태가 됩니다.

원격지에서 Disconnect 하거나 로그오프하지 않는 이상 계속 쓸수 없습니다.

엔터프라이즈는 이 기능이 지원됩니다.

그래서 고성능 PC 한대에 윈도우 및 각종 프로그램을 설치해서 여러사람이 멀티세션으로 동시에 이용할 수 있게끔 되어있죠.

Professional급 이상은 물론 Universal Patch를 통하여 멀티 세션 사용이 가능하지만 기능에 제약이 걸립니다.


둘째, Send Message 입니다.

이 기능은 쓰는 사람만 쓰는 기능이긴 합니다.

하지만 멀티 세션 사용자 끼리 이야기를 나눌때는 어느 특정 메신저를 사용할 필요없이 해당 PC내에서 모든 메시지 교환이 이루어 지기 때문에 PC자체가 바이러스가 감염되지 않는 한 밖으로 샐 우려가 없죠.

저같은 경우 이 기능을 통해 로컬에서 사용중인 사람과 자주 메시지를 주고받곤 합니다.

이 기능은 Universal Patch를 해도 사용할 수 없습니다.

패키지 자체에서 빠져있고 TechNet에 문의한 결과 엔터프라이즈 외에는 사용할수도 추가 설치 할 수도 없게 되어있다고 합니다.

그 외에도 몇몇 네트워크 관련 기능이 얼티메이트에는 빠져있습니다.


더 찾으면 추가하겠습니다만 아직 확실치는 않지만(제가 다시 얼티메이트를 설치해서 비교해봐야 하지만) 의심되는 부분도 몇군데가 더 있습니다.


확실한 것은 엔터프라이즈와 얼티메이트는 같은 것이 아닙니다. 오해하지 마세요.

,

공돌이 위주 보다는 여행이나 책 위주의 블로그로 개편하고자 합니다.

 

시험끝나고 개편에 들어갈테니 한달 후 다시 봅시다.

,

어느 블로거분이 그림대회 시상하면서 생각을 하셨는데 본인외에도 그림쪽으로 나아갈 그러나 형편이 어려운 아이들을 돕고싶어졋다고 합니다.

생각이나 방법 조언등을 주실 분들은 http://blog.naver.com/wg_gur/150147718548 을 확인해보세요.



,
프로필 이미지
It's the Only NEET Thing to do. written by 나즈나
분류 전체보기 (256)
포트폴리오 (2)
여러가지 (160)
Windows (26)
Linux (1)
Server (5)
컴퓨터 (48)
전자기기 (3)
자격증 (3)
모바일 (1)
공유기 (4)
초소형컴퓨터 (3)