
🐙 팩토리 메서드 패턴이란 - 객체 생성 처리를 서브클래스로 분리하여 처리하도록 하는 패턴 (캡슐화) - 객체의 생성 코드를 별도의 클래스 / 메서드로 분리하여 객체 생성의 변화에 대비하는 것에 유용 - 특정 기능의 구현은 개별 클래스를 통해 제공되는 것이 바람직한 설계 🐙 팩토리 메서드 패턴의 활용성 - 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때 - 생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 때 - 객체 생성의 책임을 몇 개의 서브클래스 중 하나에게 위임하고, 어떤 서브클래스가 위임자인지에 대한 정보를 국소화하고자 할 때 🐙 팩토리 메서드 패턴의 구조 product - 팩토리 메서드가 생성하는 객체의 인터페이스 ConcreteProduct - produ..
🐙 싱글톤 패턴이란? - 객체의 인스턴스가 오직 1개만 생성되는 패턴 🐙 싱글톤 패턴을 사용하는 이유 1. 메모리 측면 - new 연산자를 사용해서 메모리 영역을 계속해서 사용하게 되면 메모리 낭비가 발생할 수 있음 2. 속도 측면 - 이미 생성된 인스턴스를 활용하기 때문에 속도가 향상됨 3. 데이터 공유 - 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용 가능 / 그러나 동시성 문제 발생 가능성도 존재 🐙 싱글톤 패턴의 활용성 어떤 클래스는 하나의 인스턴스만을 갖도록 하는 것이 좋음. 하나의 회사에는 하나의 회계 시스템만 존재해야 하는 것이 그 예시. - 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점으로 모든 사용자가 접근할 수 있도록 해야 할 때 사..
1. 자바에서의 입출력 스트림 데이터를 운반하는데 사용되는 연결 통로 단방향통신만 가능하기 때문에 입출력을 동시에 처리할 수 없음 따라서 두개의 스트림이 필요 바이트 기반의 스트림 - InputStream, OutputStream 입출력의 대상이 달라져도 동일한 방법으로 입출력이 가능하기 때문에 프로그래밍을 하기에 편리함. read 와 write 는 입출력의 대상에 따라서 읽고 쓰는 방법이 다를 것이기 때문에 추상메서드로 정의되어 있음. 보조스트림 보조스트림은 실제 데이터를 주고받지 않고 스트림의 기능을 향상시키거나 새로운 기능을 추가할 수 있음. 스트림을 먼저 생성한 다음 이를 이용하여 보조스트림을 생성해야 함 예를 들어, 스트림을 생성한 뒤에 성능을 향상시키기 위해 사용하는 버퍼스트림과 같은 경우. ..
날짜와 시간¶Calendar / GregorianCalendar¶ Calendar 은 추상클래스이기때문에 직접 객체 생성 불가능 => 메서드로 완전히 구현된 클래스의 인스턴스를 얻어야 함Calendar cal = Calendar.getInstance(); 지역에 따라서 다른 캘린더 반환 Date 와 Calendar 간의 변환¶ 용도 : Date 는 Calendar 의 추가 이후 잘 사용되지 않지만, 여전히 Date 를 필요로 하는 메서드들이 존재하기 때문 ```Java Calendar cal = Calendar.getInstance(); Date d = new Date(cal.getTimeInMillis()); // Calendar 를 Date 로 Date d = new Date(); Calendar c..
In [1]: from IPython.core.display import display, HTML display(HTML("")) /var/folders/hr/xt_zt4vn6rjg0vmqgyybsx9c0000gn/T/ipykernel_33558/1939805293.py:1: DeprecationWarning: Importing display from IPython.core.display is deprecated since IPython 7.14, please import from IPython display from IPython.core.display import display, HTML java.lang 패키지와 유용한 클래스¶java.lang 패키지¶ 가장 기본이 되는 클래스들이 포함되어 있음 i..
In [1]: from IPython.core.display import display, HTML display(HTML("")) /var/folders/hr/xt_zt4vn6rjg0vmqgyybsx9c0000gn/T/ipykernel_796/1939805293.py:1: DeprecationWarning: Importing display from IPython.core.display is deprecated since IPython 7.14, please import from IPython display from IPython.core.display import display, HTML 예외처리¶ 발생시점에 따른 오류의 분리 컴파일 에러 : 컴파일 시에 발생 런타임 에러 : 실행 시에 발생 논리적 에러..