팩토리 메서드(Factory method) 패턴 이란? 팩토리 메서드 패턴은 디자인 패턴 중 하나로, 객체지향 설계에서 자주 사용됨 객체 생성에 대한 책임을 서브 클래스로 분리하여 유연성을 높이는 것 인터페이스 안에 기본적인 구현이 있고, 구현부 중에 일부 바뀌어야 하는것 들을 추상 메서드로 분리해 하위 클래스에서 만드는것 기본적인 팩토리 메소드 패턴 예제 1.팩토리 인터페이스 정의 public interface SojuFactory { default Soju orderSoju() { Soju soju = createSoju(); return soju; } Soju createSoju(); } public class Soju { private String name; public String getName..
백엔드/Java
자바 싱글톤(Singleton) 패턴 싱글톤 패턴이란? 인스턴스를 오직 한개만 제공하는 클래스 조건 인스턴스를 오직 하나만 만들어야함 인스턴스에 글로벌하게 접근할 수 있는 방법을 제공해야함 싱글톤 패턴을 사용하는 이유 인스턴스가 오직 하나만 있을 때 유용하게 사용할 수 있음 여러 번 생성하지 않아 자원을 절약할 수 있음 글로벌 변수 사용을 줄이고, 코드를 관리하기 편해짐 예제 코드 public static void main(String[] args) { 클래스 클래스1 = new 클래스(); 클래스 클래스2 = new 클래스(); System.out.println(클래스1 == 클래스2); // false } 이렇듯 new 클래스();를 사용해 객체를 만들면 싱글톤 패턴을 만족할 수 없다. 그렇다면 ne..
우리가 쉽게 찾아볼 수 있는 스택과 큐의 활용 예 스택의 활용 예 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로 큐의 활용 예 최근 사용문서, 인쇄작업 대기목록, 버퍼(buffer) 스택과 큐의 활용 예제 package collectionsFramework; import java.util.Stack; //스택과 큐의 활용 예제 public class java221106_StackEx1 { public static Stack back = new Stack(); public static Stack forward = new Stack(); public static void main(String[] args) { goURL("1.네이트"); goURL("2.야후"); goU..
자바의 정석 을 읽으며 가장 기본적인 네트워킹 관련지식을 정리해 보았습니다. 네트워킹(Networking) 네트워킹 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(network)를 구성하는 것을 말한다. 전 세계의 많은 수의 컴퓨터가 인터넷이라는 거대한 네트워크를 구성하고 있다. java.net 패키지를 사용하면 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있으며, 간단한 네트워크 어플리케이션도 쉽게 작성이 가능하다. 클라이언트 / 서버(client/server) 컴퓨터간의 관계를 역할로 구분하는 개념 / 서버(server)는 서비스를 제공하는 컴퓨터 / 클라이언트(client)는 서비스를 사용하는 컴퓨터 서버 / 서비스 서버는 다수의 클라이언트에게 서비스를 제공 / 서비스를 제공하는 ..

도서 - 자바의 정석을 보며 공부한 내용 JDK1.8(자바8) 부터 추가된 람다식(lambda expression)의 도입으로 인해, 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식이란 ? 메서드를 하나의 식(expression)으로 표현한것 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해줌 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 익명 함수(anonymous function)라고도 한다. 람다식을 쓰는 이유 int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int) (Math.random()*5)+1); // 위의 람다식 ‘() → (int) (Math.random()*5)+1’ 을 메서드로 표현하면 int method(..

도서 - 자바의 정석을 보며 공부한 내용 열거형이란? 서로 관련된 상수를 편리하게 선언하기 위한 것, 여러 상수를 정의할때 사용하면 유용 JDK1.5부터 추가 C언어의 열거형보다 더 향상된것 -> 자바의 열거형은 타입도 관리 -> 논리적 오류 줄임 static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; enum Kind { CLOVER, HEART, DIAMOND, SPADE} // 열거형 kind를 정의 enum..