본문 바로가기

jQuery

자바 네트워크(Network) - Thread를 이용한 TCP/IP 예제 Thread를 이용한 TCP / IP예제이다. 복수의 클라이언트에서 요청 받은 것을 서버에서는 각각 쓰레드를 생성해서 에코형식의 메세지를 클라이언트에게 전달 해 준다. 우선 서버 프로그램 코드를 보자. 이전에 썼던 내용과 다를게 없다. 서버 소켓, 클라이언트용 소켓 생성해서 무한 루프 돌면서 클라이언트 요청을 받는다. 다만 while문에서 쓰레드를 각각 생성해서 쓰레드에서 에코가 되게 요청단위로 처리해 준다. 쓰레드를 구현한 소스를 보자. 쓰레드기 때문에 서버 프로그램에서 클라이언트 요청이 들어 왔을때 생성자로 요청을 읽고 다시 요청응답을 돌려주기 위해서 InputStream과 OutputStream을 생성하였다. 그리고 run에서는 요청 내용을 읽고 다시 클라이언트로 요청내용을 그대로 돌려 준다(에코,.. 더보기
JAVA I/O (자바입출력) - 객체 직렬화 (ObjectInputStream /ObjectOutputStream) 객체 직렬화는 생성한 객체를 바이트 형태로 다른 저장 장치등으로 내보내는 방법을 말한다. 예제로 확인하자. 우선 저장할 클래스를 하나 만들어 보자. 사원정보에 대한 클래스이다. 중요한것은 이 클래스를 직렬화 하겠다는것을 명시해야 하는데 이를 위해서 꼭 해당 클래스에 Serializable을 implements 받아야 한다. 그러면 사원정보 클래스를 직렬화하여 저장하는 클래스를 보자. 객체를 저장하는거지만 이것 또한 기본 바탕은 바이트 스트림이다. 따라서 저장할 파일을 지정하고 FileOutputStream 객체를 생성한 후 오브젝트 저장시 사용되는 ObjectOutputStream을 이용해서 객체 내용을 바이트 타입으로 파일로 내보낸다. 그리고 난후 writeObject(object reference)를.. 더보기
JAVA I/O (자바입출력) - CharacterStream 문자 스트림을 살펴보자. 실제 내부적으로는 바이트 스트림 방식으로 작동하지만 사용자 입장에서 문자 처리를 편하게 위해서 만들어 졌다. 우선 바이트스트림으로 쓸때 한글은 2바이트이기 때문에 깨져 보였는데 문자스트림을 쓰면 안깨지고 쓸 수 있다. reader와 writer를 잘 생각해보자. 예제를 살펴보자. 다른것 없다. 바이트 스트림으로 구현했던것을 문자 스트림으로 바꾸기만 하면 된다. 그러기 위해서는 InputStreamReader와 BufferedReader를 사용하자. 이는 스트림을 문자로 바꿔주는 역할을 한다. 그리고 예제를 보면 두가지 타입이 있다 InputStreamReader는 한글자씩 읽고 찍는다. BufferedReader는 한꺼번에 찍는다. 결과값을 보면 한글이 안깨지는것을 볼수 있다. 더보기
JAVA I/O (자바입출력) - ByteArrayInputStream 과 ByteArrayOutputStream ByteArrayInputStream 과 ByteArrayOutputStream는 역시 바이트 스트림 방식이다. 이름 그래도 ByteArray단위로 읽고 출력한다. 한 바이트를 단위가 아니고 우선 자바 API를 보자. 해당 클래스에 메소드를 확인하는건 중요하다. http://docs.oracle.com/javase/7/docs/api/ 예제로 보자 더보기
JAVA I/O (자바입출력) - DataInputStream 과 DataOutputStream 처음에 DataInputStream과 FileInputStream과의 차이점이 애매하다고 생각했다. 그냥 파일에 쓰는거 똑같은데 아무거나 쓰면 안되나하고. DataInputStream은 이진 데이터(0,1)를 입출력 할때 사용한다. 예를 들어 10이나 3.14를 입력할때 FileInputStream으로 하면 파일에 써지지만 만약 10은 int(4바이트)형으로 3.14는 double(8바이트)형으로 저장을 할때 쓴다. 결국 해당 value의 데이터형을 그대로 가지고 저장 된다. DataInput / Output Stream은 일종의 필터스트림이다. 참고로 상위 클래스가 FilterInputStream 이란 놈이다. 그리고 DataInputStream과 DataOutputStream은 각 타입(int, fl.. 더보기
JAVA I/O (자바입출력) - FileInputStream와 FileOutputStream를 이용한 파일 복사 이전글에 각각 FileInputStream과 FileOutputStream을 이용해 봤다. 모르면 아래 주소에서 http://happyourlife.com/77 그러면 이 두개를 이용하면 파일을 복사 할수 있다. 우선 FileInputStream으로 파일 내용을 읽어서 FileOutputStream으로 다른 파일에 읽어드린 내용을 쓰면 될것이다. 예제도 정말 간단하다. 기억하자. 별거 아니다. 위의 에제를 실행해보면 test.txt파일을 읽어서 test2.txt에다 읽은 내용을 쓴다. 일단 이 예제의 전제 조건은 test.txt파일안에 내용이 있을것 두번째는 test.txt와 test2.txt파일이 존재 할것이다. 사실 나중에 File클래스를 하다 보면 파일이나 폴더가 있는지 없는지 체크해서 생성후 쓰고.. 더보기
JAVA I/O (자바입출력) - FileInputStream 과 FileOutputStream FileInputStream 과 FileOutputStream은 둘다 InputStream과 OutputStream의 서브 클래스이다. 이 두 클래스는 이름 그대로 파일의 출력과 입력에 관한 클래스이다. 내용은 간단하다. 간단한 예제로 끝내자 1.FileInputStream 2. FileOutputStream 아큐먼트로 넣어준 주소로 가면 test.txt가 생성되있고 열어보면 입력한 값이 있다. 끝. 더보기
JAVA I/O (자바입출력) - InputStream과 OutputStream 자바 I/O중 바이트 스트림에 관련된 가장 최상이 클래스인 InputStream과 OutputStream 간단한 예제를 보자. (참고로 영문은 1바이트, 한글은 2바이트이다.) import java.io.IOException; public class ByteStreamTest { public static void main(String[] args) throws IOException{ byte data[] = new byte[20]; // 외부에서 읽어드린 데이터를 저장 하는 변수 선언.(바이트니까 바이트 객체로..20바이트만 읽음. 배열 갯수는 알아서) System.out.println("Input data : "); System.in.read(data); //System.in.read(data)를 쓰면.. 더보기
Jquery mobile(제이쿼리 모바일)에다가 구글광고 붙이기.(google adsense) 제이쿼리 모바일로 만든 모바일 웹페이지에 구글 광고를 붙이면 나는 에러가 있다. 구글 광고가 붙어있는 페이지를 로딩하면 구글 광고만 나오고 컨텐츠는 안나온다. 하다하다 검색을 하니 하나 찾긴 찾았다. 우선 이럴때는 링크 속성을 rel="external"로 주거나 data-ajax = "false"로 주고 처리를 하면 되는듯 하다. (사실 갤럭시1에서는 약간 안되는것도 있지만 2, 3는 잘됨.. 아무튼..) 잘된다. 우선 아래 소스를 js파일로 만들어서 넣고 (window).load(function(){ var ads_top = $("#adsense_top").find("iframe"); //This is where the ads will show when the page is first loaded $(.. 더보기
구글(google map) 맵 달기 (jquery, json) 구글 맵 달기 정리.(PHP, JAVASCIRPT, JQUERY, JSON) 위치 정보를 알려줄때 구글 맵을 많이 이용한다.. 아래는 소스 위주로 설명을 한다. 우선 구글 맵 api를 전반적인 설명은 아래 사이트 에서 참고 하면 된다. https://developers.google.com/maps/documentation/javascript/reference?hl=ko 참고로 자바스크립트 api를 이용하였다. 이건 구글맵 튜토리얼이다. 보고 원하는 지도에 대한 소스를 카피해서 홈페이지에 붙이면 된다. https://developers.google.com/maps/documentation/javascript/tutorial#api_key 사실 해당 홈페이지에서 제공하는 튜토리얼 만한것은 없다. 그러니 열심.. 더보기