CS 5

디자인 패턴

목차싱글톤 패턴팩토리 패턴전략 패턴옵저버 패턴프록시 패턴이터레이터 패턴노출 모듈 패턴MVC 패턴MVP 패턴MVVM 패턴1. 싱글톤 패턴 (Singleton Pattern)특징싱글톤 패턴은 하나의 클래스에 하나의 인스턴스만 존재하도록 보장하는 패턴입니다. 주로 전역적으로 접근 가능한 자원이 필요한 경우에 유용합니다. 장점과 단점 • 장점: 메모리 절약과 인스턴스 생성 비용을 줄일 수 있습니다. • 단점: 의도치 않게 멀티스레드 환경에서 문제를 일으킬 수 있습니다. 사용 사례로깅, 설정 관리, 데이터베이스 연결 등에서 많이 사용합니다. Java 예제 코드public class Singleton { private static Singleton instance; private Singleton() {..

CS 2024.10.28

IP 주소

목차ARP홉바이홉 통신라우팅 테이블게이트웨이IP 주소 체계클래스 기반 할당DHCPNAT1. ARPARP(Addreess Resolution Protocol)는 주로 하드웨어 통신에서 사용됩니다.IP 주소를 물리적 네트워크 주소(MAC 주소)로 변환해 주는 역할을 수행하며, 동일 네트워크 내에서 IP 패킷을 전송할 때 사용됩니다.IP 주소는 소프트웨어 계층에서, MAC 주소는 하드웨어 계층에서 사용되므로 ARP는 물리적 네트워크에서 중요한 역할을 합니다. ARP는 로컬 네트워크 내에서만 사용되며, 라우팅과 같은 상위 계층 통신에서는 사용되지 않습니다. ARP 통신 순서 1. 요청(ARP Request) : 송신자는 IP 주소를 기반으로 MAC 주소를 알아내기 위해 네트워크에 ARP 요청을 브로드캐스트로 보..

CS 2024.10.13

메모리 구조 (Stack, Heap)

- 목차 -1. 메모리 구조의 개요2. 스택 (Stack) 영역3. 힙 (Heap) 영역4. 스택과 힙의 차이5. 스택과 힙 메모리 관련 오류1. 메모리 구조 / 스택(Stack)과 힙(Heap) 영역프로그램이 실행될 때, 프로그램이 사용하는 메모리는 크게 스택(Stack)과 힙(Heap) 두 가지 영역으로 나눌 수 있습니다.이 두 영역은 메모리를 관리하는 방식이 다르며, 각각의 역할과 특성이 다릅니다. 이를 이해하는 것은 프로그램의 성능, 메모리 관리, 그리고 오류 방지를 위해 매우 중요합니다.1.1 메모리 구조의 개요프로그램이 실행될 때 사용하는 메모리 공간은 일반적으로 다음과 같이 나뉩니다  1. 코드(Code) 영역 : 실행할 프로그램의 코드(명령어)가 저장되는 영역입니다. 컴파일된 바이너리 코드..

CS 2024.09.29

메모리

- 목차 -1. 메모리 계층2. 메모리 관리3. 메모리 할당1. 메모리 계층  • 레지스터 : CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠르며 기억 용량이 가장 적다.• 캐시 : L1, L2 캐시를 지칭하며 휘발성, 속도 빠름, 기억 용량이 적다. • 주기억장치 : RAM을 가리키며, 휘발성, 속도 보통, 기억 용량도 보통이다.• 보조기억장치 : HDD, SSD를 일컬으며 비휘발성, 속도 낮음, 기억용량이 많다.1.1 캐시(cache)데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리이다. 지역성의 원리캐시 계층을 두는 것 말고 캐시를 직접 설정할 때는 자주 사용하는 데이터를 기반으로 설정해야 하는데 그 근거가 되는 것이 바로 ..

CS 2024.09.29

운영체제 (System Call, Modebit, Trap, Interrupt, DMA Controller)

- 목차 -1. 운영체제의 역할과 구조2. System Call3. Modebit4. Trap5. Interrupt6. DMA Controller1. 운영체제의 역할과 구조2. System Call운영체제가 Kernel에 접근하기 위한 인터페이스Kernel 함수를 호출할 때 사용유저 프로그램에서 수행하는 작업이 Kernel에서 동작해야 하는지 판단 (하드웨어 자원에 접근하는 작업)2.1 System Call 동작방식유저 프로그램에서 시스템 호출 요청 : 유저 프로그램은 라이브러리 함수(예: C의 printf, open, read 등)를 통해 시스템 호출을 요청합니다.시스템 호출 트랩(Trap) : 유저 모드에서 커널 모드로 전환하는 방식은 트랩(Trap) 명령어를 사용하여 이루어집니다. 트랩은 특별한 종..

CS 2024.09.29