java (19) 썸네일형 리스트형 2020.11.5 일자 수업 : DAO interface, 커넥션 객체 공유, 로그인 실습 - DAO Interface MariaDB를 사용하는 dao.mariadb 패키지와 Oracle을 사용하는 dao.oracle 패키지를 만들었다고 가정할 때, 기존에 사용하고 있는 패키지 클래스에서 다른 패키지의 클래스들로 사용 DAO를 변경할 때마다 DAO를 사용하는 코드를 모두 수정해야 한다. 이 불편함을 해소하기 위해 DAO 클래스에 대한 사용 규칙, 즉 인터페이스를 정의하여 클래스 대신 인터페이스를 사용하도록 한다. 일단, mariaDB를 사용하고 있는 DAO 클래스는 com.eomcs.pms.dao.mariaDB에 모두 집어넣고, com.eomcs.pms.dao 패키지에는 DAO 인터페이스를 집어넣을 것이다. 일단 BoardDao를 인터페이스로 바꾸어 com.eomcs.pms.dao에 넣어.. 2020.10.20 일자 수업 : 스레드 풀, ExecutorService, DBMS 실습 - 스레드 풀 구현하기 git/eomcs-java-project/mini-pms-36-a 먼저 자바에서 제공하고 있는 ExecutorService 대신, 직접 ThreadPool를 구현하여 사용할 것이다. 일단 com.eomcs.pms.util.concurrent 패키지에 ThreadPool 클래스를 정의한다. ThreadPool에는 다음과 같은 멤버들이 있다. Worker : Thread를 상속받아 정의한 스레드 클래스 workers : Woker 객체들을 저장할 컬렉션 객체 execute(Runnable) : 스레드가 실행할 코드를 run메서드로 갖고 있는 Runnable을 파라미터로 넘겨받아 풀에서 Worker 하나를 꺼내어 실행시킨다. public class ThreadPool { boole.. 2020.10.13 일자 수업 : 옵저버 패턴, 네트워크 프로그램 실습 실습 - 발행자와 구독자의 데이터 공유 git/eomcs-java-project/mini-pms-33-b 옵저퍼 패턴과 자바에서 제공하는 Servlet 클래스들의 관계는 유사하므로 옵저버 패턴을 확실히 익혀야 한다. ServletContextListener 웹 어플리케이션을 실행하는 데 필요한 초기화 작업이나 웹 어플리케이션이 종료된 후 사용된 자원을 반환하는 등의 작업을 수행하는데 사용된다. 이를 통해 웹 어플리케이션이 시작되고 종료될 때 특정한 기능을 실행할 수 있다. 출처 : ServletContextListener 이벤트 처리| 작성자 원종천 구체적으로는 Servlet의 context의 변경 사항이 생길 때마다 그에 따른 수행 작업을 하는 클래스이다. 이번 실습에서는 발행자에서 옵저버에게 파라미터.. 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.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이다. 텍스트 포맷과 바이너리 포맷의 차이점 가독성 바이너리 포맷은 사람이 보기가 불편하지만 텍스트 포맷은 사람이 직접 보고 편집할 수 있다. 전용 애플리케이션 바이너리 포맷은 그 포맷을 이해하는 애플리케이션을 이용해야만 읽고 쓸 수 있지만, 텍스트 포맷은 메모장과 같은 텍스트 에디터만 있으면 읽고 쓸 수 있다... 이전 1 2 3 다음