혼공 59

[혼공학습단 10기][혼공자] 객체 지향 프로그래밍

✏️ 객체 = 필드 (속성) + 메소드 (동작) 메소드는 객체들 사이의 상호작용 수단이다. 클래스는 객체를 생성하기 위한 필드와 메소드가 정의되어 있는 객체의 설계도이다. 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다 ✓ 객체 지향 프로그래밍 개발의 세 단계 ① 클래스 설계 ② 설계된 클래스를 가지고 사용할 객체를 생성(인스턴스화) ③ 생성된 객체를 이용 ⇨ 클래스 생성 "클래스이름.java"로 파일을 생성 (클래스 이름과 대소문자가 같도록) 일반적으로 소스 파일당 하나의 클래스를 선언하지만 2개 이상의 클래스 선언도 가능하다. (2개 이상의 클래스를 선언할 시에는 바이트 코드 파일(.class)이 클래스를 선언한 개수만큼 생성됨) public class Car { } ⇨ 객체 생성 new..

[혼공학습단 10기][혼공컴운] 메모리와 캐시 메모리

✓ RAM의 특징과 종류 1) 휘발성 저장 장치이다: 전원을 끄면 내용이 사라진다 (비휘발성 저장 장치: HDD, SSD, USB 메모리 등 보조기억장치) ✏️ CPU는 메모리(RAM)에만 접근 가능. 그래서 비휘발성 저장 장치에는 '보관할 대상'을 저장 휘발성 저장 장치에는 '실행할 대상'을 저장 2) RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다. ✓ RAM의 종류 1) DRAM (Dynamic RAM) : 시간이 지나면 저장된 데이터가 점차 사라지기 때문에 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장) 해야 한다. 일반적으로 사용되는 메모리 2) SRAM (Static RAM): 전원이 공급된다면 시간이 지나도 저장된 데이터가 사라지지 않는다. DRA..

[혼공학습단 10기][혼공컴운] 2주차 미션

✏️ 진도: Chapter 04 ~ 05 (CPU의 작동원리 / CPU 성능 향상 기법) 1. CPU의 작동원리 2. CPU 성능 향상 기법 📖 기본 미션: p. 125의 확인 문제 2번, p. 155의 확인 문제 4번 풀고 인증하기 📚 선택 미션: Ch.05(05-1) 코어와 스레드, 멀티 코어와 멀티 스레드의 개념을 정리하기 ✓ 클럭: CPU 속도 단위 (Hz) ✓ 코어: 명령어를 실행하는 부품 코어를 여러 개 포함하고 있는 CPU를 멀티코어 CPU(프로세서) 라고 부른다. ❗️ 코어가 많다고 연산 속도가 증가하는 것이 아니다. 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐가 중요 ✓ 스레드 1) 하드웨어적 스레드: 하나의 코어가 동시에 처리하는 명령어 단위 (논리 프로세서) 2) 소프트웨어적..

[혼공학습단 10기][혼공컴운] 빠른 CPU를 위한 설계 기법

✓ 클럭, 코어, 스레드 참고: 맥북의 작업관리자 열기: search에서 Activity monitor [혼공학습단 10기][혼공컴운] 2주차 미션 ✏️ 진도: Chapter 04 ~ 05 (CPU의 작동원리 / CPU 성능 향상 기법) 📖 기본 미션: p. 125의 확인 문제 2번, p. 155의 확인 문제 4번 풀고 인증하기 📚 선택 미션: Ch.05(05-1) 코어와 스레드, 멀티 코어와 멀티 hianzhi.tistory.com ✓ 명령어 병렬 처리 기법 1) 명령어 파이프라이닝 ✏️ 명령어 처리 과정 명령어 인출(Fetch) → 명령어 해석(Decode) → 명령어 실행(Execute) → 결과 저장(Write back) = CPU는 같은 단계가 겹치지 않게 각 단계를 동시에 실행 가능 그러나 파..

[혼공학습단 10기][혼공컴운] CPU의 작동 원리

1️⃣ ALU 1) 레지스터에서 피연산자를 받아들임 2) 제어 장치에서 제어 신호를 받아들여 연산 수행 3) 결괏값을 레지스터에 저장 4) 플래그 레지스터에 플래그를 내보냄 ✏️ 플래그 연산 결과에 대한 추가적인 정보 종류: 부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그, 슈퍼바이저 플래그 2️⃣ 제어장치 - 클럭 신호, 해석해야 할 명령어, 플래그 값, 제어 신호를 받아들인다. - CPU의 내/외부로 제어 신호를 보내고 명령어를 해석한다. ⇨ CPU 외부: 메모리, 입출력장치(값을 읽거나 쓰고 싶을 때) ⇨ CPU 내부: ALU(수행할 연산 지시), 레지스터(레지스터 간 데이터 이동, 저장된 명령어 해석) 3️⃣ 레지스터 1. 프로그램 카운터 PC (Program Cou..

[혼공학습단 10기][혼공컴운] 명령어와 주소 지정 방식

✓ 저급언어와 고급언어 - 저급 언어: 컴퓨터를 위한 언어 (기계어, 어셈블리어) - 고급 언어: 사람을 위한 언어 ✓ 컴파일 언어와 인터프리터 언어 - 컴파일 언어: 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어 (소스코드 → 목적코드). 소스 코드 내 오류가 하나라도 있다면 컴파일이 불가능하다. - 인터프리터 언어: 소스 코드가 한 줄씩 실행되는 고급 언어. 문법 오류가 나기 전 줄 까지는 올바르게 수행된다. ✓ 명령어의 구조 💡 연산 코드(명령어가 수행할 연산 / 연산자) + 오퍼랜드(연산에 사용할 데이터 혹은 데이터의 위치 / 피연산자) 각 필드를 연산 코드 필드, 오퍼랜드 필드(주소 필드)라고 부른다 명령어 길이 때문에 오퍼랜드 필드에 직접 데이터를 담는 게 아니고 주소를 담는다. ..

[혼공학습단 10기][혼공컴운] 컴퓨터 구조의 큰 그림 / 0과 1로 숫자 및 문자 표현하는 방법

✏️ 컴퓨터가 이해하는 정보: 데이터와 명령어 ✓ 컴퓨터의 4가지 핵심 부품 ① CPU 메모리에 저장된 명령어를 읽고 해석하고 실행 - ALU(Arthmetic Logic Unit): 연산 담당 - 레지스터: CPU 내부의 작은 임시 저장 장치 - 제어장치: 제어 신호라는 전기 신호를 보내고 명령어를 해석하는 장치 ② 메모리(주기억장치) RAM(Random Access Memory)와 ROM(Read Only Memory) 메모리라는 용어는 보통 RAM을 지칭. '현재 실행되는' 프로그램을 저장 가격이 비싸고 저장 용량이 적으며 전원이 꺼지면 저장된 내용을 잃는다 ③ 보조기억장치 메모리보다 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 메모리를 보조하는 저장 장치. '보관할' 프로그램을 저장한다. ..

[혼공학습단 10기][혼공자] 참조 타입과 참조 변수, 배열, 열거타입

✓ 기본타입과 참조타입 ⇨ Primitive type 기본 타입: 실제 값이 변수 안에 저장 됨 (정수, 실수, 문자, 논리 리터럴) ⇨ Reference Type (Non-Primitive Type) 참조 타입: 객체의 번지를 참조하는 타입. 메모리의 번지를 변수 안에 저장함 (배열, 열거, 클래스, 인터페이스, String) ✏️ 메모리 사용 영역 Runtime Data Area ① 메소드 영역 Method Area: JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역. 클래스가 분류되어 저장된다. ② 힙 영역 Heap Area: 객체와 배열이 생성되는 영역. 만약 참조하는 변수나 필드가 없는 객체라면 Garbage Collector가 실행되어 자동으로 제거 된다. (코드로 직접 개체를 제거할 ..

[혼공학습단 10기][혼공컴운] 1주차 미션

✏️ 진도: Chapter 01 ~ 03 (컴퓨터 구조 / 데이터 / 명령어) 1. 컴퓨터 구조 2. 명령어와 주소 지정 방식 📖 기본 미션: p. 51의 확인 문제 3번, p.65의 확인 문제 3번 풀고 인증하기 📚 선택 미션: p. 100의 스택과 큐의 개념을 정리하기 스택 Stack ⇨ 개념: 한쪽 끝이 막혀있는 통과 같은 저장 공간 ⇨ 데이터 관리 방식: LIFO(Last In First Out) - 나중에 저장한 데이터를 가장 먼저 빼내는 데이터 관리 방식 (후입선출) ⇨ 명령어: PUSH (데이터 저장하기), POP (데이터 꺼내기) 큐 Queue ⇨ 개념: 양쪽이 뚫려 있는 통과 같은 저장 공간 ⇨ 데이터 관리 방식: FIFO(First In First Out) - 가장 먼저 저장된 데이터부..

320x100