보글보글 개발일지
반응형
왜 싱글톤 패턴을 사용할까?
코딩기록/CS 2023. 11. 13. 01:44

면접 질문으로 받았는데... 제대로 대답하지 못했다. 싱글톤 패턴이란? 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나. 최초 생성 이후 호출된 생성자는 최초의 생성자가 생성한 객체 리턴. 싱글톤 패턴은 단 하나의 인스턴스를 생성해 사용하는 디자인 패턴 사용 이유? 1. 메모리 측면 싱글톤 패턴을 사용하게 된다면 한개의 인스턴스만을 고정 메모리 영역에 생성하고 추후 해당 객체를 접근할 때 메모리 낭비를 방지할 수 있다. -> 고정된 메모리 영역, 한번의 new로 인스턴스 사용 2. 속도 측면 생성된 인스턴스를 사용할 때는 이미 생성된 인스턴스를 활용하여 속도 측면에 이점이 있다. 객체 로딩 시간 감소 3. 데이터 공유 전역으로 사용하는 인스턴스이기 때문에 다른 여러 클래스에서 데이터를 공유하..

article thumbnail
[Java] Final 키워드
코딩기록/CS 2023. 5. 25. 12:39

Final의 정의 자료형에 값을 단 한번만 설정할수 있게 강제하는 키워드 즉, 값을 한번 설정하면 그 값을 다시 설정할 수 없다 public class Sample { public static void main(String[] args) { final int n = 123; // final 로 설정하면 값을 바꿀수 없다. n = 456; // 컴파일 에러 발생 } } 한 번만 할당 가능하다는 선언. 재할당하려고 하면, 컴파일 오류가 발생하여 바로 확인이 가능. final은 프로그램 수행 도중 그 값이 변경되면 안되는 상황에 사용한다. Final 변수 변수에 final을 붙이면 이 변수는 수정할 수 없다는 의미. 수정될 수 없기 때문에 초기화 필수. final 키워드가 붙은 변수는 초기화 후 변경 불가. ..

article thumbnail
[운영체제] 메모리의 연속 할당 방식
코딩기록/CS 2023. 4. 13. 10:46

연속할당 연속할당이란? 물리적 메모리의 한곳에 연속적으로 적재 고정 분할 방식 의미 물리적 메모리를 정해진 개수만큼의 영구적인 분할로 나누어두고 각 분할에 하나의 프로세스를 적재하는 방식 특징 동시에 메모리에 올릴 수 있는 프로그램의 수 고정. 하나의 분할 공간에는 하나의 프로세스만 들어갈 수 있으므로 다른 프로그램 들어갈 수 없다 → 메모리 낭비 문제점 외부 단편화: 프로그램 크기보다 분할의 크기가 작은 경우 해당 분할이 비어있는 경우에도 프로그램 적재 못함 내부 단편화: 프로그램 크기보다 분할의 크기가 큰 경우 해당 분할에 프로그램을 적재하고 남는 현상 가변 분할 방식 의미 메모리에 적재되는 프로그램의 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식 → 프로그램의 크기를 고려해서 메모리를 할당..

article thumbnail
[네트워크] DHCP(Dynamic Host Configuration Protocol)
코딩기록/CS 2023. 4. 5. 11:25

DHCP(Dynamic Host Configuration Protocol) DHCP는 Host IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다. 쉽게 말해서 DHCP 서버가 클라이언트의 IP주소, 서브넷 마스크, DNS 서버 IP주소, 임대 기간 등 다양한 네트워크 정보를 자동으로 할당해주는 프로토콜이다. OSI Layer 7계층 중 Application Layer에 속한다. “Plug and Play(PnP) protocol”이라고 불린다. 꽂기만 하면 사용할 수 있는 ‘즉시 시작’이라는 뜻이다. 연결 후 작동하는 프로토콜이다...

article thumbnail
[네트워크] [모든 개발자를 위한 HTTP 웹 기본 지식(김영한)] 1
코딩기록/CS 2023. 3. 22. 16:56

인터넷 네트워크 IP(인터넷 프로토콜) IP의 역할 지정한 IP주소에 데이터 전달. 패킷이라는 통신 단위로 전달. IP 패킷 정보 출발지 IP, 목적지 IP 등 담아서 전달 IP 프로토콜의 한계 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성: 중간에 패킷 사라지거나 순서대로 안오면..? (패킷 소실) 프로그램 구분: 같은 IP 사용하는 서버에서 통신하는 앱 둘 이상이면? TCP/UDP IP 패킷 안에 TCP 정보 있다. 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 -> 이 안에 전송 데이터가 들어 있다. TCP 특징 전송 제어 프로토콜 (Transmission Controal Protocol) 연결 지향 - TCP 3 way handshake (가상 ..

article thumbnail
[OS] 프로세스 스케줄링 알고리즘
코딩기록/CS 2023. 3. 13. 20:35

CPU 스케줄링이 필요한 경우 Running→Blocked(예: I/O요청하는 시스템 콜) Running→Ready(예: 할당시간 만료로 timer interrupt) Blocked→Ready(예: I/O완료 후 인터럽트)(선점형일 때) Terminate→Running→Blocked와 Terminate에서의 스케줄링은 nonpreemptive(비 선점형)→나머지 경우는 preemptive(선점형)→ 현대적인 cpu 스케줄링은 대부분 선점형 스케줄링을 사용 Scheduling Criteria (Scheduling Algorithm 의 성능 척도) CPU utillization(이용률)→시스템 입장에서 성능척도(cpu 하나가지고 최대한 일을 많이 시키면 좋음) 전체 시간중 cpu 가 놀지 않고 일한 시간 비..

article thumbnail
[OS] 단기, 중기, 장기 스케줄러
코딩기록/CS 2023. 3. 9. 17:45

스케줄러 한정적 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중에 하나를 선택하는 역할 프로세스들은 자신이 종료될 때까지 수많은 큐들을 돌아다닌다. OS는 이 큐 안에 있는 프로세스 중 하나를 선택해야 하며, 이러한 일을 스케줄러(Scheduler)가 담당한다. 프로세스 스케줄링 위한 Queue의 종류 작업 큐(Job Queue) : 현재 시스템 내의 모든 프로세스의 집합 준비 큐(Ready Queue) : 현재 메모리 내에 있으면서 CPU를 할당받고 실행되기 위해 기다리는 프로세스의 집합 장치 큐(Device Queue) : 각각의 장치마다 서비스를 기다리며 줄 서 있는 프로세스의 집합 스케줄러의 목적 - CPU나 자원을 효율적으로 사용하기 위함 - ..

article thumbnail
[OS] 프로세스 메모리 구조
코딩기록/CS 2023. 3. 9. 00:22

프로세스 메모리 구조 Code(Text) 영역 : 읽기만 가능 소스코드. 실행할 프로그램의 코드가 저장. 수정 불가능한 기계어로 저장되어 있음 코드영역은 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등이 여기에 지정 컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only 로 지정돼있다. Data 영역: 읽고 쓰기 가능 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역 프로그램이 구동되는 동안 항상 접근 가능한 변수가 저장되는 영역 전역변수, static 값을 참조한 코드는 컴파일 하고 나면 Data 영역의 주소값을 가르키도록 바뀐다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸 실행 중도에 전역변수가 변경 될 수도..

article thumbnail
[OS] 프로세스
코딩기록/CS 2023. 3. 8. 23:24

프로세스를 이해하기 위해서는, 프로그램, 프로세스, 스레드를 모두 이해해야 한다. 프로그램 실행파일. 어떤 일을 수행하기 위해 만들어진 명령 모음 (정적) 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 프로세스 프로세스 간에는 메인 메모리 공간 분리 생성될 때 각각 별도의 주소공간에 할당되며 코드, 데이터, 힙, 스택 영역을 가지고 있다 멀티 프로세스의 장점으로는, 각 프로세스간 독립적으로 동작하기 때문에 서로 영향을 끼치지 않습니다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 한다. (Ex. 파이프, 파일, 소켓 등을 이용한 통신 방법 이용) 프로세스 단점 멀티 프로세싱의 방식..

article thumbnail
[OS] 인터럽트
코딩기록/CS 2023. 3. 8. 22:37

인터럽트란? CPU가 프로그램 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외사항이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말함 예외 발생 → CPU의 정상적인 동작 방해한 상태 인터럽트 방식은 하드웨어 지원을 받아야 하는 제약이 있지만, 폴링에 비해 신속하게 대응하는 것이 가능 실시간 대응이 필요할때 필수적 기능 발생시기를 예측하기 힘든 경우에 컨트롤러가 가장 빠르게 대응할 수 있는 방법 인터럽트 수행 과정 process A를 실행하는 중 디스크에서 어떤 데이터를 읽어오라는 명령을 받았을 경우 process A는 system call 을 통해 인터럽트를 발생시킴 CPU 는 현재 진행 중인 기계어 코드를 완료함 현재까지 수행중이었던 상태를 해당 Proce..

반응형