전체 글
-
IT의 미래 ; Web 3.0Web 2011. 10. 2. 18:36
출처 : http://blog.daum.net/mungcle.chan/18 인류는 끊임없이 새로운 가치를 생산해내면서 발전한다. 지난 50년의 역사동안 인류 생활에 가장 큰 가치를 만들어준 분야는 바로 IT분야이다. IT는 가치를 만들어냈을뿐아니라 앞으로 그 누구라도 손쉽게 가치를 만들어 낼 수 있는 환경과 생태계를 만들어냈다는 점에서 더욱 그 중요성이 크다. 역사는 IT를 가르키고 있고, IT는 역사를 만들어나가고 있다. 그렇다면 미래의 흐름을 읽기 위한 중요한 IT의 화두는 무엇일까. 많은 논의가 있지만 일반적으로 다음의 keyword들이 많이 거론되고 있다. 그것들은 바로 [Web 3.0 / Clouding service / Open Architecture / Social Networking Ser..
-
Thread(스레드)의 Life Cycle(생명 주기), 그리고 관련 메소드JAVA 2011. 10. 2. 17:04
스레드는 생성되어 소멸될 때까지 여러 형태의 생명주기를 가진다. 스레드가 생성된 후의 상태는 크게 alived와 dead의 두 가지로 나누어진다. dead 상태는 스레드가 자신의 run() 메소드를 완전히 수행하여 더 수행할 코드가 남아 있지 않거나 stop() 메소드에 의하여 종료되는 경우이다. 나머지 모든 상태는 alive 상태인데 이 상태는 실행 가능 상태, 실행 상태, 대기 상태로 나눌 수 있다. 실행 상태 - 스레드가 CPU를 차지하여 코드를 수행하는 단계 실행 가능 상태 - Runnable pool이라고 하는 특정 장소에 실행 상태로 들어가기 위하여 스레드들이 모여있는 모습 대기 상태 - sleep pool, wait pool, join pool, I/O blocking pool 등 대기 상태..
-
자바에서 Thread 만들기JAVA 2011. 10. 2. 15:19
Thread 만들기 쓰레드 만들기 스레드 만들기 JAVA에서 스레드를 만드는 방법에는 extends Thread 를 사용하는 방법과 implements Runnable을 사용하는 방법이 있다. 스레드를 상속하는 방법은 간단하게 사용할 수 있지만 다중 상속을 지원하지 않는 자바의 특성상 스레드로 만들려고 하는 클래스가 이미 다른 클래스의 후손 클래스라면 적용할 수 없다. 반면에 Runnable 인터페이스를 사용하는 방법은 어떤 경우에도 적용할 수 있다. 그러나 클래스 자체가 스레드가 아니기 때문에 스레드를 생성하면서 Runnable 인터페이스를 인자로 전달하여 run() 메소드를 빌려주는 형식으로 작성해야 한다. public class FirstThread extends Thread {... ...} pu..
-
리눅스 커널 구조, 그리고 시스템 콜과 라이브러리 함수의 차이OS 2011. 10. 1. 23:06
운영체제(OS)란 컴퓨터를 작동시키고 자원을 관리하여 사용자의 응용프로그램이 효율적으로 실행될 수 있는 환경을 제공하는 자원 관리 프로그램을 말한다. 이때 운영체제가 관리해야 할 자원은 크게 물리적인 자원과 추상적인 자원으로 구분할 수 있다. 물리적인 자원 : CPU, 메모리, 디스크, 터미널, 네트워크 등 시스템을 구성하고 있는 요소와 주변 장치 추상적인 자원 : 물리적인 자원을 운영체제가 관리하기 위해 추상화시킨 객체. 즉, CPU를 추상화 시킨 태스크(tesk)와 스레드(thread), 메모리를 추상화시킨 세그먼트와 페이지, 디스크를 추상화시킨 파일과 inode, 네트워크를 추상화시킨 통신 프로토콜과 패킷 등 리눅스에서 사용자가 명령이나 프로그램들을 실행하면 리눅스 커널에서 제공되는 시스템 콜이나 ..
-
HTTP Status CodeWeb 2011. 10. 1. 22:43
출처 : http://www.coolcheck.co.kr/upload/http_scode.asp HTTP Status Code(HTTP 1.1 : RFC 2616) 상태코드는 서버가 요구 메시지를 수신하여 처리한 결과를 알려주는 세 자리의 정수로 된 처리 결과 번호입니다. 첫 번째 자리 숫자는 응답의 종류에 대한 분류 기호이며, 나머지 두 자리 숫자는 일련번호입니다. 현재 첫 번째 자리 숫자에 대해 다섯 가지로 분류하여 쓰고 있습니다. Informatinal 1xx Success 2xx Redirection 3xx Client Error 4xx Server Error 5xx Informational 1xx 참고 정보로 클라이언트의 요청이 접수되었고 현재 처리하고 있다는 의미입니다. 클라이언트에서 첨부문서..
-
C로 구현한 Quick Sort (퀵 정렬)자료구조 & Algorithm 2011. 10. 1. 22:20
퀵 소트는 다른 정렬 알고리즘에 비해 상대적으로 속도가 빠르고 큰 배열에 대해서도 잘 동작하기 때문에 가장 널리 사용되는 정렬 알고리즘이다. 큰 배열을 일정한 기준값을 경계로 하여 기준값보다 큰 값들과 작은 값들로 구성된 작은 두 개의 배열로 분할한다. 그리고 분할된 각 배열을 똑같은 방법으로 다시 정렬하는 점진적인 방법을 사용한다. 배열을 분할하기 위해 먼저 기준값을 선정하는데 여기선 배열의 마지막 값을 key값으로 잡았다. 그리고 for 루프에서 배열의 왼쪽과 오른쪽에 각각 left, right 포인터를 두고 중앙으로 이동하면서 left에 기준값보다 큰 값, right에 기준값보다 작은 값을 찾는다. 그리고 두 값을 교환하여 기준값보다 작은 값은 배열의 왼쪽으로 보내고 큰 값은 오른쪽으로 보낸다. 이..
-
-
Binary Search - 이진 검색자료구조 & Algorithm 2011. 10. 1. 16:24
이진 검색은 범위를 계속 절반씩 줄여 가면서 검색하기 때문에 자료의 양이 커도 비교 회수가 많이 않은 것이 장점이다. 베열의 크기가 n일 때 최악의 경우라도 log2n 번 비교하면 원하는 값을 찾을 수 있다. 극단적인 경우 n이 40억이라 하더라도 기껏 32번만 비교하면 되므로 순차 검색과는 비교할 바가 아니다. 이진 검색이 이렇게 속도가 빠른 이유는 자료가 크기순으로 정렬되어 있기 때문이다. 그래서 이진 검색에 사용할 자료는 삽입할 때도 반드시 이 조건을 지키도록 해야 한다. 처음부터 순서대로 검색하는 것이 아니라 중간 부분을 쿡쿡 찔러보는 식이므로 키값이 중복될 경우 어떤 키가 검색될지 알 수 없는 맹점이 있다. 위 예에서 키를 21로 바꿀 경우 두 개의 21중 어떤 값이 검색될 것인가를 예측할 수 ..