자바 (36) 썸네일형 리스트형 2020.10.7 일자 수업 : 웹 서버, 채팅 프로그램, 스레드 실습 - 웹 어플리케이션 git/eomcs-java-basic/src/main com.eomcs.net.ex11.step13 원래의 계산기 서버는 자바 코드로 이뤄진 클라이언트가 직접 콘솔로 연결 요청해야 하는 어플리케이션이었다. 이 서버를 http 프로토콜 요청에 대해 적절히 응답할 수 있는 웹 서버 프로그램으로 바꿀 것이다. 이렇게 프로그램을 바꾸면 이 서버에 대한 클라이언트는 웹 브라우저가 된다. 기존 프로그램과 마찬가지로 클라이언트와 연결하는 역할만 수행하는 CalculatorServer와 클라이언트의 요청에 대한 응답을 하는 RequestProcessor 클래스를 그대로 사용한다. package com.eomcs.net.ex11.step13; import java.net.ServerSocket;.. 2020.9.21일자 수업 : 파일 입출력 도구들 파일 입출력 git/eomcs-java-basic/src/main/java com.eomcs.io.ex03.Exam0420 git/eomcs-java-basic/src/main/java com.eomcs.io.ex04 git/eomcs-java-basic/src/main/java com.eomcs.io.ex05 git/eomcs-java-basic/src/main/java com.eomcs.io.ex06 git/eomcs-java-basic/src/main/java com.eomcs.io.ex07 git/eomcs-java-basic/src/main/java com.eomcs.io.ex08 DataIntputStream / DataOutputStream FileInputStream / FileOutput.. 2020.9.18 일자 수업 : 캐릭터 스트림 파일 입출력 git/eomcs-java-basic/src/main/java com.eomcs.io.ex02.Exam0510~Exam0525 git/eomcs-java-basic/src/main/java com.eomcs.io.ex03 바이트 단위로 텍스트 입출력 바이트 단위로 텍스트 출력 바이트 단위로 원하는 텍스트를 출력하기 위해서는 출력될 바이트들의 인코딩 정보를 확실히 인지 후 출력해야 한다. 자바에서 String으로 표현되는 바이트들은 모두 UCS2 형식이지만, 이 String 객체를 getBytes()를 통해 바이트 배열로 변환하면, 그것은 UCS2 형식이 아니라, JVM의 환경 변수인 file.encoding에 설정된 문자집합으로 인코딩된다. 대부분의 웹 브라우저에서 텍스트 인코딩에 사용되는 .. 2020.9.17 일자 수업 : 파일 입출력, 바이트 스트림, 캐릭터 스트림 파일 입출력 git/eomcs-java-basic/src/main/java com.eomcs.io.ex01.Exam0710~0731.java git/eomcs-java-basic/src/main/java com.eomcs.io.ex02 git/eomcs-java-basic/src/main/java com.eomcs.io.ex03 하위 디렉토리 모두 조회하기 특정 디렉토리 안에 있는 파일과 하위 디렉토리의 리스트를 뽑는 훈련을 했다. 이제는 리스트안에 들어가는 디렉토리들의 하위 디렉토리들도 모두 검색하여 모든 파일과 디렉토리를 끝까지 출력하려고 한다. 이것은 다음과 같은 과정으로 프로그램을 짤 수 있다. 특정 폴더의 파일과 하위 디렉토리를 출력하는 메서드를 만든다. 그 메서드 안에서 배열 안에 들어있는 디.. 2020.9.8일자 수업 : 로컬 클래스 로컬 클래스 git/eomcs-java-basic/src/main/java com.eomcs.oop.ex11.d 메서드 안에 정의하는 클래스를 local class라고 하며, 중첩 클래스가 특정 메서드 안에서만 사용되는 경우 로컬 클래스로 정의한다. 로컬 클래스로 정의하는 이유는 외부의 노출을 방지함으로써 유지보수를 좋게 하기 위함이다. 즉, 메서드 안으로 사용 범위를 제한하는 캡슐화를 위한 문법이다. 로컬 클래스는 메서드 안으로 사용 범위를 제한할 뿐, 메서드를 호출할 때 클래스가 정의된다는 뜻이 아니다. class A { void m1() { class X { } X obj = new X(); } static void m2() { class X { } X obj = new X(); } } 로컬 클래스.. 2020.9.25 일자 수업 : JSON, 네트워크 실습 - JSON 형식 git/eomcs-java-project-2020/mini-pms-32 다양한 언어와 플랫폼에서 모두 호환되는 데이터 형식은 xml과 JSON 이 있다. 다만 xml는 메타데이터의 비중이 크기 때문에 메모리 낭비가 심하다. 따라서 JSON 형식에 따라 데이터 파일을 만들어보려고 한다. JSON이란? 속성-값 또는 키-값 으로 된 데이터 객체를 텍스트로 표현하는 개방형 표준 데이터 포맷이다. 예를 들어 다음과 같은 형식을 취한다. {속성:값, 속성:값, ...} {"no":1,"name":"1","email":"1","password":"1","photo":"1","tel":"1"} 텍스트 형식이기 때문에 프로그래밍 언어나 운영체제에 영향을 받지 않는다. 바이너리 방식에 비해 데이터.. 2020.9.24 일자 수업 : character stream class 실습 - character stream class git/eomcs-java-project/mini-pms-31-a 바이너리보다는 포맷이 가독성이 높아지고, 다른 언어와 플랫폼 간에도 호환성이 높아지는 장점이 있기 떄문에 이번에는 바이트 단위가 아닌 캐릭터 단위로 데이터를 파일에 입출력해볼 것이다. 이때 사용되는 data sink stream class는 FileWriter / FileReader이다. 텍스트 포맷과 바이너리 포맷의 차이점 가독성 바이너리 포맷은 사람이 보기가 불편하지만 텍스트 포맷은 사람이 직접 보고 편집할 수 있다. 전용 애플리케이션 바이너리 포맷은 그 포맷을 이해하는 애플리케이션을 이용해야만 읽고 쓸 수 있지만, 텍스트 포맷은 메모장과 같은 텍스트 에디터만 있으면 읽고 쓸 수 있다... 2020.9.23 일자 수업 : 파일 입출력 실습 - 파일 바이너리 입출력 git/eomcs-java-project/mini-pms-30-a 저번 실습에는 파일을 Filewriter와 FileReader와 Scanner를 통해 csv파일에 직접 문자를 입출력했으나, 이번에는 모든 데이터를 바이트 형식으로 입출력해볼 것이다. Data Sink Stream Class 중에서도 바이트를 입출력하는 도구인 FileInputStream과 FileOutputStream을 사용하여 save, load 메서드를 구현할 것이다. 프로젝트에서 다루는 boardList, memberList, ProjectList, taskList 에 저장되는 각 인스턴스들의 필드 정보를 .data 파일에 저장하려면 각 필드의 데이터 타입을 고려해서 이것들을 바이트로 적절히 변환해야 .. 이전 1 2 3 4 5 다음