본문 바로가기

분류 전체보기

(180)
SingleTon 디자인 패턴 [싱글톤 패턴] 소프트웨어 디자인 패턴 중 하나인 #싱글톤 패턴 은, 생성자가 여러차례 호출되어도 실제로 생성되는 객체는 하나이며, 최초 생성 이후 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴하는 것. 즉, 하나의 클래스에 하나의 객체를 생성하도록 하는 패턴. [장점] 1. 메모리 측면의 이점 > 1개의 인스턴스만을 고정 메모리 영역에 생성하므로, 메모리 낭비를 방지 가능 2. 객체의 유일성을 보장 3. 속도 측면의 이점 > 생성된 인스턴스를 사용할 때는 이미 생성된 인스턴스를 활용하므로 속도에 있어서 빠르다. 4. 데이터 공유의 이점 > 싱글톤이 적용된 클래스의 인스턴스는 #전역 인스턴스라 다른 클래스의 인스턴스들과 데이터 공유가 쉽다. [단점] 1. #전역 인스턴스 이므로 다른 클래스의 인스턴..
컴파일(Compile)과 런타임(Runtime) Java에서 개발 언어로 작성된 소스 코드를 실행 가능한 코드로 변환하고 실행하는 과정에는 #컴파일과 #런타임이라는 두 가지 주요 단계가 포함된다. 컴파일 (Compile) 컴파일 이란, 개발언어로 작성된 소스 코드(.java 파일들)를 컴퓨터가 인식 가능한 기계어 코드 (바이트코드 = .class파일)변환하여 실행가능한 프로그램이 되는 과정 Java, C, C++ 등의 언어는 #컴파일 언어이며, 실행(Runtime)을 위해서 반드시 #컴파일 과정을 거쳐야 한다. 반면, JavaScript, Php, Python 등의 언어는 #스크립트 언어이며, #컴파일 과정 없이 기계어로 번역되는 즉시 동작하도록 되어 있다. 그래서 컴파일 언어와 비교하면 스크립트 언어는 실행할 때 마다 번역과정을 거쳐야 하므로 속도가..
Java - Generic 제네릭이란 ? 제네릭(Generic) Java에서 Generic은, 클래스나 메서드에서 사용할 데이터 타입을 내부가 아닌 외부에서 지정하는 방법이다. 즉, 데이터 타입을 미리 지정해주는 대신 타입의 경계만 지정하고, #컴파일 때 필요한 타입으로 캐스팅하는것 [장점] 1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 #컴파일 단계에서 방지할 수 있다. 2. 클래스 외부에서 타입을 지정해, 내부에서 따로 타입을 체크하고 변환해줄 필요가 없다. = 관리가 편함 3. 비슷한 기능을 지원하는 경우, 타입이 정해지지 않았으므로 코드의 재사용성이 높아진다. [사용 방법] 타입 설명 Type Element Key Value Number 정해진 규칙은 아니지만, 일반적으로 위와 같이 사용하고 있다. #1. 클래스 및 인터페이..
컬렉션과 스트림의 차이 #컬렉션 프레임 워크 #컬렉션은 여러 데이터들의 집합을 나타내며, #컬렉션 프레임워크는 특정 자료 구조에 데이터를 추가하고, 검색하고, 수정하고, 삭제하는 등의 메서드들을 미리 정의해놓고 이를 제공하는 기능이다. #스트림 배열, 컬렉션의 저장 요소를 하나 씩 참조해서 '람다식'으로 처리할 수 있도록 해주는 반복자. 즉 List, Set, Map, 배열 등의 데이터들을 흐름에 따라 우리가 원하는 결과로 가공하고 처리할 수 있다. #데이터 처리 연산을 지원하도록 #소스(컬렉션(List, Set), 배열)에서 추출된 #연속된 요소로 정의 한다. #데이터 처리 연산 filter, map, reduce, find, match, sort 등의 메서드를 통해 데이터를 조작할 수 있다. #소스 컬렉션(List, Set..
자료 구조에서 Array VS List [Array (배열)] 배열이란, 같은 특성을 갖는 원소들이 순서대로 구성된 집합으로 #선형 자료 구조이다. 메모리 상에 연속적으로 데이터가 저장된 #연접 리스트(순차 리스트)에 해당하며 순차적으로 저장된 데이터를 #Index를 사용하여 관리한다. [특징] #1. 데이터를 index로 관리한다. > 데이터에 접근이 빈번할 경우, 효율이 높다. > 연속적인 만큼 인덱스를 통해 random access가 가능하다. #2. 연속된 메모리의 공간으로 이루어져 있다. > 논리적 저장 순서(#Index)와 물리적 저장 순서(메모리 주소)가 일치한다. #3. 고정된 크기를 갖는다. > ex) 생성할 때 배열 크기를 10으로 지정하여 생성하고, 해당 배열에 실제 데이터 5개를 넣어도 메모리에서 차지하는 크기는 10 이..
List, Set, Map 의 차이점 [컬렉션 프레임 워크] 컬렉션이란, 여러 데이터의 집합 혹은 여러 데이터를 그룹으로 묶어놓은 것을 나타낸다. 컬렉션 프레임워크는 이러한 컬렉션을 다루는데 필요한 메서드들을 미리 정의해 놓은 것을 나타낸다. 즉, 특정 자료 구조에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 동작을 수행하는 편리한 메서드들을 미리 정의해 놓고 이를 제공하는 기능을 #컬렉션 프레임워크 라고 한다. #컬렉션 프레임워크에서 제공하는 주요 인터페이스로는 #List, #Set, #Map이 있으며, 이 중 #List와 #Set은 유사한 점이 많아 #Collection 이라는 인터페이스로 분류된다. #Collection 공통 인터페이스 (List와 Set 모두 사용 가능) 기능 리턴 타입 메소드 설명 객체 추가 boolean ad..
생성자란 ? [생성자] 객체를 생성하는 역할을 하는 클래스의 구성 요소. 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드라고 정리할 수 있다. new 키워드를 사용해 객체를 생성할 때 호출되는 것이 생성자이다. [규칙] 1. 생성자의 이름은 반드시 클래스 이름과 일치해야 한다. 2. 생성자는 리턴 타입이 없다. [생성자 종류] 1. [기본 생성자 = 매개변수가 없는 생성자] A. 생성자를 따로 만들지 않으면, 자바 컴파일러가 기본 생성자를 자동으로 추가한다. B. new 키워드를 사용하여 생성자를 호출하여 인스턴스를 생성할 때, 인스턴스에 원하는 필드 값을 설정 2. [매개변수가 있는 생성자] A. 클래스의 인스턴스 생성과 동시에 필드 값을 설정하여 편리하게 인스턴스 생성이 가능. B. 매개 변수가 없는 생성자..
이너 클래스의 장점 Java Inner Class (내부 클래스) 자바 이너 클래스 혹은 내부 클래스는 하나의 클래스로, 클래스나 인터페이스 내부에 선언한다. 코드를 더 읽기 쉽고, 더 오래 유지하기 위해, 논리적인 그룹과 인터페이스에서 이너클래스를 사용한다. 추가로, 이너 클래스는 외부 클래스의 private 멤버, 메서드를 포함한 모든 멤버들에 접근이 가능. 단 static 내부 클래스는 외부 클래스의 static 멤버 외에는 접근할 수 없다. [내부 클래스 장점] 1. 클래스를 논리적으로 그룹화 할 수 있다. 객체의 특성을 고려하여 연관된 단일 클래스와 관계를 맺는다면, 내부 클래스와 외부 클래스를 그룹화하여 함께 관리할 수 있다. 2. 캡슐화의 효율 상승 외부 클래스에서 private 제어자를 사용하여 외부에서의 접..