CS(6)
-
비트(bit)란?
1. 비트(bit) 문자 언어는 다음과 같은 세 가지 구성요소로 이루어져 있습니다.기호가 들어갈 상자상자에 들어갈 기호상자의 순서 이러한 구성을 통해 문자 언어의 기본 틀을 이해할 수 있습니다. 각 상자에 어떤 기호가 어떤 순서로 들어가느냐에 따라 완전히 다른 뜻이 형성된다는 점을 확인할 수 있습니다. 이와 같이, 우리가 일상 생활에서 사용하는 자연어에서는 이러한 '상자'를 문자(character)라고 부릅니다. 컴퓨터 언어에서는 '상자'를 비트(Bit)라고 부릅니다. 비트는 2진법을 사용한다는 뜻의 바이너리(ㅠinary)와 숫자를 뜻하는 디지트(digit)의 합성어로, 컴퓨터가 정보를 표현하고 처리하는 가장 기본적인 단위입니다. 각 비트는 0 혹은 1, 두 가지 상태만을 가질 수 있으며, 이러한 비..
2024.05.01 -
자바(JAVA) 컬렉션(Collection)
자바(Java) 프로그래밍 언어에서 데이터를 효율적으로 관리하고 처리하기 위한 구조체는 필수적입니다. 이러한 필요성을 충족시키기 위해 자바는 다양한 컬렉션(Collection) 자료구조를 제공합니다. 컬렉션 프레임워크는 데이터를 저장, 검색, 정렬, 조작 등 다양한 방법으로 관리할 수 있게 해주는 클래스와 인터페이스의 집합입니다. 이 글에서는 자바의 주요 컬렉션 자료구조들을 살펴보고, 각각의 특징과 활용 방법에 대해 알아보겠습니다. 컬렉션 프레임워크의 구조 자바의 컬렉션 프레임워크는 크게 세 가지 주요 인터페이스로 구분됩니다: List, Set, Map. 각 인터페이스는 데이터를 관리하는 특정 방식을 정의하며, 이를 구현하는 다양한 클래스를 포함합니다. List 인터페이스 List 인터페이스는 순서가 있..
2024.04.19 -
[JAVA] Garbage Collection(가비지 컬렉션)
Java의 가비지 컬렉션(Garbage Collection, GC)은 자동 메모리 관리의 한 형태로, 개발자가 직접 메모리를 관리하지 않아도 되게 해주는 매우 유용한 기능입니다. 이 기능은 사용되지 않는 메모리를 자동으로 회수하여, 메모리 누수(memory leak)를 방지하고 애플리케이션의 효율성을 유지하는 데 도움을 줍니다. Java의 가비지 컬렉션이 어떻게 작동하는지, 그리고 그것이 왜 중요한지에 대해 알아보겠습니다. 가비지 컬렉션이란? 가비지 컬렉션은 프로그램이 동적으로 할당한 메모리 중에서 더 이상 사용되지 않는 부분을 자동으로 찾아서 회수하는 과정입니다. Java에서는 개발자가 메모리 할당과 해제를 직접 관리하지 않아도 되기 때문에, 메모리 관리가 훨씬 간편해집니다. 작동 원리 Java의 가비..
2024.04.13 -
메모리의 구조
컴퓨터 프로그램이 실행되는 동안, 메모리는 여러 영역으로 분할되어 각기 다른 역할을 수행합니다. 이러한 메모리 영역의 구분은 프로그램의 효율적인 실행과 데이터 관리에 필수적입니다. 본 글에서는 스택, 힙, 코드, 데이터 영역이라는 네 가지 주요 메모리 영역에 대해 알아보겠습니다. 1. 코드 영역(Code Area) 코드 영역은 프로그램의 실행 파일에 포함된 기계어 코드가 저장되는 곳입니다. 즉, 프로그램이 실행될 때 CPU가 읽고 실행하는 명령어들이 위치하는 영역입니다. 이 영역은 읽기 전용으로 설정되어 있어 프로그램 실행 동안 코드가 변경되지 않도록 보호됩니다. 2. 데이터 영역(Data Area) 데이터 영역은 프로그램의 전역 변수와 정적 변수가 저장되는 영역입니다. 프로그램의 시작과 동시에 할당되며..
2024.04.09 -
CPU 스케줄링
지난 글에서는 프로세스와 스레드에 대해 알아보았습니다. CPU 스케줄링은 언제 어떤 프로세스에 CPU를 할당할지 결정하는 작업입니다. 이번에는 CPU 스케줄링의 중요성과 다양한 스케줄링 알고리즘에 대해 알아보겠습니다. 1. CPU 스케줄링의 중요성 CPU 스케줄링은 시스템의 전반적인 성능에 직접적인 영향을 미치는 핵심적인 역할을 합니다. 효율적인 스케줄링 없이는 시스템 자원이 낭비되고, 사용자 경험이 저하될 수 있습니다. 특히, 멀티태스킹 환경에서는 다양한 프로세스가 동시에 CPU 접근을 요구하므로, 어떤 순서로 요청을 처리할지 결정하는 것이 중요합니다. 2. 스케줄링 기준 CPU 스케줄링을 평가할 때 고려해야 할 주요 기준은 다음과 같습니다. 처리량(Throughput): 단위 시간당 처리할 수 있는 ..
2024.04.04 -
프로세스(Process)와 스레드(Thread)
1. 프로그램(Program) 프로세스와 스레드를 알기 위해서는 프로그램이 무엇인지 알 필요가 있습니다. 프로그램은 프로세스와 스레드에 비해 훨씬 친숙한 단어일 것입니다. 프로그램은 기본적으로 컴퓨터에게 수행할 작업을 알려주는 명령어들의 집합입니다. 이러한 명령어들은 C, JAVA, Python 등의 언어로 작성해서 완성됩니다. 아직 실행하지 않은 상태이기 때문에 정적 프로그램(Static Program)을 줄여서 프로그램이라고 부른 것입니다. 프로그램은 저장 매체에 저장되어 있지만, 이것이 실행되기 위해서는 CPU가 이러한 명령어들을 읽고 처리해야 합니다. 사용자가 프로그램을 실행하면, 프로그램은 디스크에서 메모리로 로드되며, 이때부터 프로그램은 프로세스의 형태로 컴퓨터에 의해 관리됩니다. 이러한 프로..
2024.04.01