* GOF의 Template Method 패턴 * 추상클래스 사용 전 * 추상 클래스 사용 후 - Generalization 수행 문제점 Sorter 클래스를 직접 사용할 것도 아닌데, 일반 클래스로 만드는 것은 바람직하지 않다. 해결 및 남은 문제점 Sorter를 추상클래스로 만들어서 직접 인스턴스를 생성해 사용할 수 없게 만들었다. 개발자에게 제약을 주어서 문제를 해결했다. 다만, 서브클래스가 오버라이팅 해야하는 문제는 아직 해결되지 않았다. 기존의 Sorter 클래스를 추상 메서드로 선언하면 모든 서브 클래스가 반드시 이 메서드를 구현해야하기 때문에 서브 클래스에게 구현을 강제하는 효과가 있다. 추상 메서드를 구현하지 않는다면 상속 받은 서브 클래스는 컴파일 오류가 발생한다 ! 추상 메서드를 통해 ..
* JSON 문서 데이터베이스란 무엇인가? 다양한 JSON 데이터 유형 및 JSON 지향 쿼리 언어를 사용하는 애플리케이션은 JSON 문서 데이터베이스에 저장된 데이터와 상호작용할 수 있습니다. JSON 문서 데이터베이스는 JSON을 위한 고유 지원을 제공합니다. JSON 문서 데이터베이스를 정의하는 특성은 다음과 같습니다: JSON 문서 데이터베이스는 JSON 문서로 저장 및 쿼리하기 위해 설계된 비관계형 데이터베이스입니다. 데이터베이스 내 JSON 데이터는 텍스트를 기반으로 하지만, 해당 텍스트는 BLOB, VARCHAR2, CLOB, 21c의 이진 JSON 데이터 유형을 사용해 저장될 수 있습니다. 데이터베이스에 저장된 JSON 데이터에 액세스하는 일은 OCI, .NET, JDBC를 사용한 다른 데..
* 32. 객체 출력하기 직접만든 클래스인 DataOutputStream 을 기존 java의 패키지인 ObjectOutputStream으로 교체해준다. 이렇게함으로써 형변한 과정을 코드로해주는 것이 아니라 java의 패키지가 진행해준다. 또한 인스턴스를 사용하지 않는 메소드라 해도 non-static으로 만들어주는 것이 좋다. 나중에 재사용할지도모르기 때문이다. * 버전 번호 명시 java.io.Serializable Serializable 은 버전 번호를 명시해주는 것이다. * serializableUID 스태틱 필드 만약 생성한 serializable UID의 버전번호와 읽어들일 데이터의 버전이 다르다면 오류가 발생한다. 이전 버전으로 serializable 한 데이터를 새 버전의 인스턴스로 읽어들이..
* 입출력에 버퍼 적용하기 ⓛ 버퍼 적용 전 파일을 읽을 때 바이트 개수만큼 읽으며 읽은 바이트 외에 나머지는 의미가 없다 ! 디스크가 나눠진 섹터(512 byte)를 다루는데 한 파일이 저장된 주소는 공간이 남아있더라도 다른 파일이 주소를 가질 순 없다 ! (* 크기와 디스크 할당이 다른 이유 - 섹터 단위로 주소를 저장하기 때문) ② 버퍼 적용 후 seek time 이 오래 걸리게 하는 요인이기때문에, seek time을 줄이기 위해서 읽는 byte를 증가시킨다. byte[] buf = new byte[8192]; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public ..