
어플리케이션이 시작될 때 어떤 하나의 클래스가 최초 한 번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴이다. 하나의 인스턴스를 만들어놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용한다.
객체의 인스턴스 생성 없이 바로 호출할 수 있으므로 편리하다. 클래스 수준에서 호출되므로, 인스턴스 변수나 인스턴스 메서드에 종속되지 않는다. 클래스의 인스턴스와 독립적으로 동작하므로 객체의 상태에 영향을 주지 않는다.

모든 클래스는 Object 클래스를 상속받고 있음의 표시가 생략되어 있다. 따라서, 모든 클래스는 toString() 메서드를 사용할 수 있다. toString() 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴한다.
객체를 생성하는 클래스를 따로 두는 것을 의미한다.상속 관계에 있는 두 클래스에서 상위 클래스는 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정한다.객체 생성 로직이 따로 떼어져 있기 때문에 코드를 리팩터링할 때, 하위 클래스 내의 로직

많은 객체들이 모여서 상호 협력하면서 데이터를 처리하는 방식입니다. 설계에 많은 시간이 소요되며 처리 속도가 다른 프로그래밍 패러다임에 비해 상대적으로 느립니다.하지만, 그만큼 프로그램을 묶음 단위로 잘게 쪼개어 추후에 가져다 쓰기 편하게 만들어 놓은 프로그래밍 방식입

프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 합니다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게

면접 예상 질문캐시히트와 캐시미스에 대해 설명해주세요.가상 메모리 (Virtual Memory)란 무엇인가요 ?페이징의 장점과 단점은 무엇인가요 ?세그먼테이션(Segmentation) 이란 무엇인가요 ?페이지 교체 알고리즘에 대해 설명해주세요.페이징 기법으로 메모리를

CPU core가 하나라면 한 번에 하나의 프로세스만 실행 가능합니다. 이 때 필요한 것이 CPU 스케줄링입니다.즉, CPU 스케줄링은 언제 어떤 프로세스에 CPU를 할당할지 결정하는 작업입니다. 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준

데이터베이스(DB, DataBase)란?일정한 규칙/규약을 통해 구조화되어 저장되는 데이터의 모입니다.해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS
시간(T)과 입력값(input size, N)의 관계를 나타낸 것을 시간 복잡도라고 합니다.빅오 표기법은 복잡한 시간 복잡도를 간단히 표기하기 위해 최고 차수만 이용해 표기한 것을 말합니다.Big -O는 시간 복잡도를 간단히 나타낼 수 있는 점근 표기법 중 하나로 시간

캐시 메모리는 속도의 차이를 극복하기 위한 중요한 역할을 합니다. 속도가 빠른 장치와 느린 장치 사이에서 병목 현상을 줄여줍니다.장점: 빠른 속도단점: 적은 용량, 비싼 비용위치에 따라 속도와 크기가 다르게 구성되어 있습니다.L1: CPU 내부L2: CPU와 RAM 사