부모 클래스에 객체들을 생성할 수 있는 인터페이스를 제공하지만, 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴이다. new 연산자를 사용한 객체 생성 직접 호출들을 특별한 팩토리 메서드에 대한 호출들로 대체하라고 제안한다.객체들은 new 연산자를 통해 생성되지만 팩토리 메서드 내에서 호출된다. 참고로 팩토리 메서드에서 반환된 객체는 종종 제품이라고 불린다. 생성자 호출을 프로그램의 한 부분에서 다른 부분으로 옮기는 변경은 무의미해 보이지만, 이런 변경은 자식 클래스에서 팩토리 메서드를 오버라이딩하고 그 메서드에 의해 생성되는 제품들의 클래스를 변경할 수 있게 된다. 약간의 제한으로 자식 클래스들은 다른 유형의 제품들을 해당 제품이 공통 기초 클래스 또는 공통 인터페이스가 있는 ..
전체 글
https://sundaland.tistory.com/153 UML(Unified Modeling Language) sundaland.tistory.com UML은 다이어그램을 사용하여 시스템이나 데이터베이스를 시각화하는 방법이다.소프트웨어 시스템을 계획하기 위해 자주 사용된다. UML Class DiagramUML 클래스 다이어그램은 소프트웨어 시스템의 클래스들과 그들 간의 관계를 시각적으로 표현되는 도구이다. UML 클래스 다이어그램은 주로 객체 지향 소프트웨어 개발 과정에서 사용되며, 시스템의 구조를 분석하고 설계하는데 중요한 역할을 한다.클래스 다이어그램은 시스템의 초기 설계 단계에서 매우 유용하며, 개발자들이 시스템의 구조를 명확하게 이해하고, 객체 간의 상호작용을 쉽게 파악할 수 있게 도와준다..
https://sundaland.tistory.com/53 POJO(Plain Old Java Object) sundaland.tistory.com 자바에서 사용되는 용어로, 특별한 제약이나 종속성을 가지기 않고 일반적은 자바 객체를 말한다.해당 용어는 자바 기술의 복잡성을 줄이기 위해 코딩 시 간단하고 투명한 방법을 사용하자는 개념에서 유래하였다. 단순성 : 복잡한 프레임워크 인터페이스나 클래스를 상속받지 않는다. 대신 표준 자바 클래스로서 필요한 필드, 메서드를 가지며, 다른 일반 자바 객체처럼 작동한다.재사용성과 테스트 용의성 : 의존성이 적기 때문에 다른 환경에서 재사용하기 쉽고, 단위 테스트하기에도 간편하다.투명성 : 특정 프로토콜이나 환경에 종속되지 않기 때문에 코드의 명확성과 이해하기 쉬움을..
https://sundaland.tistory.com/273 [ ▶ JDBC ]JDBC API는 특히 관계형 데이터페이스에 저장된 데이터를 포함하여 모든 종류의 표 형식 데이터를 액세스할 수 있는 자바 API이다. JDBC는 아래 세 가지 프로그래밍 활동을 관리하는 자바 애플리케이션을 작성하는데 도움이 된다.Data Source(데이터베이스)에 연결데이터베이스에 쿼리와 업데이트 문을 전송쿼리에 대한 응답으로 데이터베이스에서 받은 결과를 검색하고 처리▼ 위 세 가지 프로그래밍 활동을 간단하게 보여주는 예시public void connectToAndQueryDatabase(String username, String password) { Connection con = DriverManager.getCon..
용어설명modifiedunmodified 상태에서 수정된 파일, staged가 되기전의 상태stagedstaging 영역에 적재된 파일, commit이 되기전의 상태.gitignoreGit에게 여기에 해당하는 파일은 추척하지 말라고 알려주는 파일Snapshot현재 작업 폴더의 상태를 저장한 공간 branch생성 가능한 독립적인 작업 공간. branch들은 서로 영향을 끼치지 않는다.HEAD현재 작업 중인 brach의 최근 commit을 가르키는 포인터, 그리고 현재 위치Fast Forwadbranch를 merge할때 전자가 후자의 최근 commit을 포함하고, 추가적인 commit이없으면, 병합 commit이 생성되지 않고 branch 포인터(HEAD)만 이동한다.3 way merge3개의 branch가..
단순히 여러 엘리먼트들을 단일 단위로 그룹화하는 객체이다. 때때로 컨테이너라고도 한다. 컬랙션은 Aggregate 데이터를 저장, 검색, 조작 및 전달하는데 사용된다.일반적으로 포커 핸드, 메일 폴더 또는 전화반호부와 같이 자연스러운 그룹을 형성하는 데이터 아이템들을 나타낸다. 컬렉션 프레임워크는 컬렉션을 표현하고 조작하기 위한 통합 아키텍처다. 모든 컬렉션 프레임워크엔 다음이 포함된다.인터페이스 : 컬렉션을 나타내는 추상 데이터 타입이다. 인터페이스를 사용하면 표현(Representation)의 세부 사항과 관계없기 컬렉션을 조작할 수 있다. 객체 지향 언어에서 인터페이스는 일반적인 계층 구조를 형성한다.Implementations : 컬렉션 인터페이스의 구체적인 구현체로, 본질적으로 재사용 가능한 d..
https://sundaland.tistory.com/163 [ ▶ 타입 소거 (Type Erasure) ]제너릭은 컴파일 타임에 더 엄격한 타입 체크를제공하고 제너릭 프로그래밍을 지원하기 위해 자바 언어에 도입되었다.제너릭을 구현하기 위해 자바 컴파일러는 타입 소거를 다음에 적용한다.제너릭 타입에 제한(Bounds)이 있다면 제한 타입으로, 타입 파리미터가 없다면 Object로 대체한다. 따라서 생성된 바이트코드는 일반 클래스, 인터페이스, 메서드만을 포함한다.타입 안전을 유지하기 위해 필요한 경우 타입 케스트를 삽인한다.확장된 제너릭 타입에서 다형성을 유지하기 위해 브리지 메서드를 생성한다.타입 소거는 파라미터화된 타입에 대해 새 클래스가 생성되지 않도록 한다. 결과적으로 제너릭은 런타임 오버헤드를..
https://sundaland.tistory.com/162 [ ▶ 와일드카드 (Wildcards) ]일반 코드에서 와일드카드라고 하는 물음표(?)는 알 수 없는 타입을 나타낸다. 와일드카드는 다양한 상황에서 사용할 수 있다. 때로는 리턴 타입으로 사용된다.와일드카드는 제너릭 메서드 호출, 제너릭 클래스 인스턴스 생성 또는 상위 타입에 대한 타입 아규먼트로 사용되지 않는다. [ ▷ 상한 와일드카드 (Upper Bounded) ]상한 와일드카드를 사용하여 변수에 대한 제한을 완화할 수 있다. 예를 들어 List, List 및 List에서 작동하는 메서드를 작성한다고 가정한다. 상한 와일드카드를 선언하려면 와일드카드 문자 (?), extends 키워드, upper bound를 차례로 사용한다. 이 컨텍스트에..