현재 제가 서버와 클라이언트 간의 통신 규격으로 사용하고 있는 JSON을 Java에서 라이브러리를 통해 사용하는 방법을 알아보겠습니다. ■ 데이터 교환 형식 - JSON우선, JSON이란 경량의 데이터 교환 형식으로 사람이 읽고 쓰기도 편하고, 기계역시 마찬가지 입니다.JSON은 JavaScript에서 객체를 만들 때 사용되는 표현식이지만 완전히 독립적이여서 어떠한 언어에서도 사용이 가능합니다. ● JSON 표기법JSON을 사용하기 위해 우선적으로 JSON의 표기법을 알아야 합니다. 형식도 모르고 그냥 라이브러리만 이용해서 사용한다면 JSON을 완벽하게 사용하지 못하는 것 과 마찬가지 입니다. 우선, JSON의 가장 큰 단위는 Object입니다. Object는 중괄호로 표기하고, 이 Object 안에 K..
안녕하세요 박스여우입니다.지난시간에 배웠던 배열 강좌에서 배열에 대한 아주 기초적인 것만 설명하고 넘어갔습니다. 이번에는 배열의 길이를 구하는 방법과 사용법에 대해 알아보겠습니다. ■ 배열의 길이를 구하는 length배열의 길이는 프로그램이 동작할때 상수로 주어줄 때도 있지만, 사용자가 원하는 만큼의 길이를 입력하거나, 다른 방법을 통해 배열의 길이를 정할 수 있습니다. 이럴때는 배열의 길이를 알 수 없겠죠? 하지만 length를 통해 알 수 없는 배열의 길이를 구할 수 있습니다.length의 기본적인 사용 방법을 알려드리기 위해 위의 코드를 살펴봅시다. 첫 라인은 int형배열 arr를 선언한 후 길이를 10으로 지정했습니다. 그리고 두번째 라인에는 배열의 길이를 출력했네요. 이러면 당연히 10이 출력되..
안녕하세요 박스여우입니다.연휴를 맞아 오랜만에 집에와서 작업을 하려하니 세팅이 않돼있더군요.. 개발환경 세팅하고 서버를 연결하기 위해 cmd에서 ipconfig를 쳐보니! 위처럼 명령어가 아니라면서 아이피를 확인할 수 없었습니다. 이럴때는 두가지 경우가 있는데, 하나는 실행 명령어 파일이 삭제되었거나, 환경변수 등록이 안되었거나 인데, 명령 파일이 삭제되었을리는 없고, 환경변수를 등록해 보기로 했습니다. 내컴퓨터를 우클릭해서 속성 - 고급 시스템 설정 - 환경변수 를 클릭하셔서 Path 변수에 C:\Windows\System32 이걸 추가합니다. 만약 다른 경로들이 있을시에는 구분을 하기 위해 ;(세미콜론)을 앞과 뒤에 붙이고 추가하시면 됩니다. 그러면 아래처럼 IP가 정상적으로 나오게 됩니다.
개발자로써의 첫 걸음을 땐 2015년 이였습니다. 이 블로그도 올해 초부터 시작하여 약100개의 포스팅을 하게 되었네요. 이번 포스팅은 그냥 1년동안 가꿔온 블로그와 개발자로써의 1년에 대한 이야기를 하려고 합니다. 제 개인적인 생각이지만, 제가 개발자가 되기 위해 가장 처음 배운 언어가 java였다는게 가장 잘한 선택이였다고 생각합니다. 제 동기들 중에는 학교가 가르치는 대로 c를 먼저 배우고 java를 후에 배워 객체지향의 개념을 잘 잡혀있지 못하는 경우들이 많았습니다. 제 주변의 많은 선배 개발자분들이 "c가 기초 언어니까 c먼저 배우는게 좋다"라고 하시지만, 저는 먼저 java를 통해 객체지향을 익힌 후에 절차지향인 c를 배웠기 때문에 객체지향의 개념이 흔들리지 않고 잘 잡혔다고 생각합니다. 그리..
안녕하세요 박스여우입니다.이번에는 다른 쓰레드 상에서 UI를 다루는 방법에 대해 다루도록 하겠습니다. 앱 개발을 하던중에 네트워킹을 요구하는 작업이 필요해 별도의 쓰레드를 사용하는데, 그 쓰레드에서 UI까지 호출했더니 골치아픈 일이 벌어졌습니다.123456789101112131415161718192021222324 TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView)findViewById(R.id.textview); new test().start(); } pri..
안녕하세요 박스여우입니다.Algorithm이번에는 선생님이 장난으로 내 주신 과제. 하노이탑에 대해 알아보도록 하겠습니다. 우선 하노이탑의 해결 과정을 알아내기 위해 Youtube의 여러 하노이탑 영상들을 찾아봤습니다. 저는 위의 두 영상을 보고 해결되는 규칙을 찾아냈습니다.위의 하노이탑 해결 과정에서 반복적으로 움직이는 블럭을 하나 찾아봅시다. 만약 위의 영상을 보고도 반복적인 모습을 찾지 못했다면 아래 영상을 통해 다시한번 살펴봅시다. 위의 영상에서 가장 작은 블럭의 움직임을 자세히 살펴보면,반복적으로 움직이고 있다는 모습이 보일 것 입니다. 가장 작은 블럭은 1번기둥, 2번기둥, 3번기둥 순으로 반복적으로 움직이고 있고,가장 작은 블럭이 한번 움직이면 가장 작은 블럭이 없는 다른 기둥의 둘중 ..
안녕하세요 박스여우입니다. 개인적으로 Java를 좋아하는 개발자로써 과연 Java의 순위가 어느정도되나 궁금해서 한번 2015년의 프로그래밍 언어 순위를 찾아 봤습니다. 출처 : http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages 여기는 Java가 1위, c가 2위, c++이 3위 입니다.아마 자바는 안드로이드 덕분에 가장 높은게 아닐까 싶습니다. 출처 : http://blog.codeeval.com/codeevalblog/2015#.Vns_IvmLS00= 음? 여기는 Python이 압도적으로 많게 조사 결과가 나왔네요.조사 기관마다 조사 방식과 표본 집단이 다르기 때문에 그럴 수 있다고 생각합니다. 출처 :..
안녕하세요 박스여우입니다.지난번에 작업하다 만 GCM구현을 마저 해보도록 하겠습니다. 우선 push message를 전송하는 서버 프로젝트를 이클립스에서 생성하고, 위의 Json과 GCM라이브러리를 다운받아서 Build Path를 해 주세요그리고 메인 클래스를 생성한 뒤에, 아래 코드를 작성합니다. 1234567891011121314151617181920212223 String regId = "Registeration ID!"; String Text = "Test Message"; List list = new ArrayList(); //클라이언트 registeration id 리스트 list.add(regId); try { Sender sender = new Sender("API Key"); Messag..
안녕하세요 박스여우입니다.이번에는 GCM(Google Cloud Messaging)을 사용해서 안드로이드의 Push Message(푸시 알람)을 구현해 보도록 하겠습니다.이번 프로젝트는 저도 2일 동안 헤메다가 겨우 완성한 프로젝트라 조금 쉽게 소개해 드리기 위해 2번에 걸쳐서 완성해 보도록 하겠습니다. GCM을 사용하는 이유는 앱마다 독자적인 push를 구현하면 배터리 소모가 증가하고, 데이터 처리량도 많아지기 때문에 안드로이드에서 기본적으로 내장되어 있는 push 기능을 사용하는 편이 사용자들에겐 훨씬 바람직 할 것입니다. 안드로이드에 내장되어있는 push 기능을 서비스 하는 게 GCM(Google Cloud Messaging)입니다. 1 - 구조우선 구현하기에 앞서, push 메세지의 동작 과정과 ..
운영체제(OS) 프로세스 스케줄링 *프로세스 스케줄링 프로세스 스케줄링은 준비 상태에 있는 프로세스 선정과 선정된 프로세스에게 CPU를 할당해 주는 것이며, 운영체제의 프로세스 관리자에서 프로세스 스케줄링 기능을 담당하는 부분을 프로세스 스케줄러(process scheduler)라고 일컫습니다. *프로세스 정책의 평가 기준 6가지 - 처리량(throuput)의 최대화 : 주어진 시간동안 최대한 많은양의 작업을 처리하는 것으로 간섭이 필요하지 않거나 처리 시간이 짧은 작업들을 우선적으로 처리합니다. - 응답시간(response time)의 최소화 : 예를 들어 빠른 처리 결과를 필요로 하는 대화식 작업을 우선적으로 처리하고, 일괄처리 작업은 대화식 작업들이 종료된 후에 처리합니다. - 작업 완료시간(tur..