데이터는 컴퓨터 시스템에서 처리되고 조작되어 결과를 얻기 위해 저장되어야 하며, 이에 필요한 구조와 방법들이 존재합니다.
1) 데이터 표현 방식:
이진 표현: 컴퓨터는 모든 데이터를 이진(binary) 형태로 표현합니다. 모든 정보는 0과 1로 표현되며, 비트(bit) 단위로 조합되어 숫자, 문자, 이미지 등의 데이터가 표현됩니다.
비트와 바이트: 비트는 0 또는 1을 나타내는 최소 단위이고, 8개의 비트가 모여 바이트(byte)를 형성합니다.
2) 정수 표현:
부호 없는 정수: 숫자의 크기만을 나타내며, 이진수로 직접 표현합니다.
부호 있는 정수: 부호 비트를 사용하여 양수와 음수를 표현합니다. 2의 보수 표현은 음수의 덧셈과 같은 연산을 간단하게 처리할 수 있도록 도와줍니다.
3) 부동 소수점 표현:
실수는 부동 소수점 방식으로 표현됩니다. IEEE 754 표준은 32비트와 64비트 형식으로 실수를 저장하는 방식을 규정합니다.
4) 문자 표현:
5) 배열과 구조체:
데이터를 보다 복잡한 형태로 구성하기 위해 배열과 구조체를 사용합니다. 배열은 동일한 타입의 데이터를 순차적으로 저장하며, 구조체는 서로 다른 타입의 데이터를 묶어 하나의 단위로 만듭니다.
6)파일과 데이터베이스:
파일 시스템은 데이터를 파일로 저장하고 조직하는 방식입니다. 파일은 이름, 위치 및 크기 등의 정보와 함께 디스크에 저장됩니다.
데이터베이스는 구조화된 데이터의 집합을 관리하는 시스템입니다. SQL 데이터베이스나 NoSQL 데이터베이스 등 다양한 형태가 있습니다.
나의 답변 😄
DI (Dependency Injection)와 IoC (Inversion of Control)는 소프트웨어 디자인 패턴으로, 객체 간의 결합도를 낮추고 유지보수성을 향상시키는 데 목적이 있습니다.
DI (Dependency Injection): DI는 객체들 간의 의존성을 외부에서 주입하는 패턴입니다. 이로써 코드의 유연성과 테스트 용이성이 증가하며, 객체가 필요한 의존성을 직접 생성하는 것이 아니라 외부로부터 주입받게 됩니다.
IoC (Inversion of Control): IoC는 제어의 역전을 의미하며, 소프트웨어 컴포넌트들의 제어 흐름을 역전시키는 패턴입니다. 일반적으로 프레임워크나 컨테이너가 객체의 라이프사이클을 관리하고 생성, 의존성 주입 등을 처리하며, 개발자는 이를 통해 컴포넌트를 더 집중적으로 개발할 수 있습니다.
간단히 말해, DI와 IoC는 객체 간 의존성과 제어 흐름을 역전시킴으로써 코드의 유지보수성과 확장성을 높이는 디자인 패턴입니다.