객체지향 프로그래밍과 SOLID원칙
SOLID는 객체 지향 프로그래밍과 설계에서 중요한 다섯가지 원칙을 나타내는 약어이다. 각 글자는 특정한 설계 원칙을 의미하고, 이 원칙들을 통해 더 유지보수가 쉽고, 확장 가능하며, 이해하기 쉬운 코드를 작성할 수 있도록 도와준다. Single Responsibilty Principle단일 책임 원칙으로써 클래스는 하나의 목적을 가져야하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다.SRP를 위반하는 예와 준수하는 예를 한번 살펴보자SRP를 위반하는 예class UserManager { func createUser(name: String, age: Int) { // 유저 생성 로직 } func sendWelcomeEmail(email: String) { ..
- ◽️ Programming/◽️ Computer Science
- · 2024. 6. 24.
비트와 바이트 ( CS 50 강의 )
비트 정보를 저장하고 연산을 수행하기 위해 컴퓨터는 비트 라는 측정 단위를 사용한다. 비트는 이진 숫자라는 뜻을 가진 binary digit 의 줄임말이며, 0 과 1, 두가지 값만 가질 수 있는 측정 단위이다. 디지털 데이터를 여러 비트들로 나타냄으로써 두 가지 값만을 가지고도 많은 양의 정보를 저장할 수 있으며, 컴퓨터는 저장되어 있는 데이터를 수정하기 위해 비트에 수학적 연산을 수행할 수 있다. 비트열 하나의 비트는 0과 1, 이 두가지의 값만 저장할 수 있다. 컴퓨터 내부에서 물리적 표현될 때는, 켜고 끌 수 있는 스위치라고 생각할 수 있다. (켜기 = 1, 끄기 = 0 ) 하지만 비트 한개는 많은 양의 데이터를 나타내기에 턱없이 부족하다. 그렇기 때문에 여러 숫자 조합을 컴퓨터에 나타내기 위해 ..
- ◽️ Programming/◽️ Computer Science
- · 2024. 4. 19.
기억장치 ( CS 50 강의 )
기억장치 컴퓨터가 계산을 수행하기 위해서는 비트와 바이트의 형태로 기억장치에 저장할 수 있어야 한다. 컴퓨터가 나중에 데이터를 검색할 수 있도록 보관을 하는 것인데, 하지만 기억장치는 종류마다 서로 다른 속도를 내고 내부에 저장할 수 있는 양에 차이가 있어 서로 다른 장단점을 가지고 있습니다. CPU 캐시 , 하드디스크 , RAM CPU는 용량이 매우 큰 파일이나 데이터를 처리해야 하지만, 한번에 32 또는 64bit의 블록 단위로 굉장히 적은 양의 데이터를 조작하고 계산한다. 하지만 중앙처리장치는 이러한 비트들을 굉장히 빠른 속도로 처리할 수 있다. 하드디스크는 CPU 보다 훨씬 많은 양의 데이터를 저장할 수 있다. 하드디스크는 기가바이트나 테라바이트 단위의 데이터를 저장할 수 있다. 엄청나게 많은 양..
- ◽️ Programming/◽️ Computer Science
- · 2024. 4. 8.
하드웨어 (CS 50 강의)
하드웨어 하드웨어는 컴퓨터를 물리적으로 구성하는 요소이며, 컴퓨터에 연결되어 추가적인 기능을 수행한다고 합니다. 하드웨어는 다양한 형태와 구성 요소가 있고 소비자들은 다양한 하드웨어의 기능과 차이점을 잘 알수록 필요한 하드웨어를 추가할 수 있을 것이기 때문에 이 강의에 시작인 것 같습니다. 컴퓨터 내의 하드웨어 컴퓨터의 하드웨어는 크게 중앙처리장치, 기억장치, 입출력 장치로 구성되어 있습니다. 중앙처리장치(CPU) 는 프로세서 라고 불리기도 하는데, 입력장치에서 받은 명령을 실제로 처리 합니다. CPU가 1초에 얼마나 많은 연산을 할 수 있는지 속도를 측정하는 단위는 기가 헤르츠(GHz) 입니다. 기억장치는 입력된 명령이나 데이터가 저장되는 공간으로, 주기억장치와 보조기억장치로 나눠집니다. 주기억 장치에..
- ◽️ Programming/◽️ Computer Science
- · 2024. 3. 27.
캐시 메모리의 개념과 종류, 역할
캐시 메모리는 컴퓨터 시스템에서 중요한 역할을 하는 메모리 유형 중 하나입니다. 주로 CPU와 메인 메모리 간의 속도 차이를 보완하여 시스템의 전반적인 성능을 향상시킵니다. 역할 : 캐시메모리는 CPU가 자주 사용하는 데이터나 명령어를 임시로 저장하는 고속의 메모리입니다. CPU가 메인 메모리보다 빠르게 데이터에 접근할 수 있어 전체적인 시스템 성능이 향상됩니다. 저장 위치 : 캐시 메모리는 CPU내부에 위치하거나 CPU와 메인 메모리 사이에 위치합니다. 물리적으로는 CPU와 가까운 위치에 있어서 접근 속도가 빠릅니다. 종류 : 캐시 메모리는 레벨에 따라 L1, L2, L3 캐시로 나뉩니다. 각 레벨은 CPU 코어와의 거리에 따라 구성되어 있으며, L1이 가장 빠르고 작고, L3이 가장 크고 느립니다. ..
- ◽️ Programming/◽️ Computer Science
- · 2024. 3. 19.
CPU, RAM, 저장장치의 역할과 상호 작용
CPU (중앙 처리 장치) : CPU는 컴퓨터의 핵심으로 모든 연선과 제어를 수행합니다. 프로그램이나 명령어를 실행하고, 데이터를 처리하며, 입력/출력을 관리합니다. CPU는 제어장치(Control Unit) 와 연산장치(ALU, Arithmetic Logic Unit)로 구성됩니다. 제어장치는 명령어를 해독하고 실행하는 역할을 수행하며, 연산 장치는 산술 및 논리 연산을 수행합니다. CPU는 메모리에서 데이터 및 명령어를 읽어들여 처리하고, 결과를 다시 메모리에 저장합니다. RAM (랜덤 엑세스 메모리) : RAM은 컴퓨터가 현재 사용하는 프로그램 및 데이터를 일시적으로 저장하는 곳 입니다. CPU가 실제로 작업하는 데이터를 보관하는 주 기억 장치 입니다. RAM은 데이터를 랜덤하게 읽고 쓸 수 있으며..
- ◽️ Programming/◽️ Computer Science
- · 2024. 3. 19.