📚 관련 독서

🧩 RAM의 특징과 종류 ○ 메모리 - 주기억장치 : 휘발성 저장 장치. ▷ RAM (→ 메모리), ROM - 보조기억장치 : 비휘발성 저장 장치 ○ RAM 특징 - 휘발성 저장 장치 (전원 꺼지면 내용 날아감) - 많은 프로그램들 동시 실행에 유리 ○ RAM 종류 1. DRAM (Dynamic RAM) - 저장된 데이터가 동적으로 사라지는 RAM - 데이터 소멸 막기 위해 주기적으로 refresh해야 - 일반적으로 메모리로 사용되는 RAM └ 상대적으로 소비전력이 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이하므로 2. SRAM (Static RAM) - 저장된 데이터가 정적인 (사라지지 않는) RAM - DRAM보다 더 빠름 └ 상대적으로 소비전력이 높고, 비싸고, 집적도가 낮아 '대용량 ..
🧩 빠른 CPU를 위한 설계 기법 1. 클럭 컴퓨터의 모든 부품을 움직이게 하는 시간 단위 속도 : Hz 단위로 측정 Hz : 1초에 클럭이 반복되는 횟수 클럭 속도 높이는 방법 외, 코어 수/스레드 수 늘리는 방법 있음 2. 코어와 멀티 코어 코어 (Core) : CPU 내에서 명령어를 실행하는 부품 (여러 개 가능) - 멀티코어 프로세서 : 여러 개의 코어를 포함하고 있는 CPU 3. 스레드와 멀티 스레드 스레드 (Thread) : 실행 흐름의 단위 1) HW 스레드 하나의 코어가 동시에 처리하는 명령어 단위 (= 논리 프로세서) 멀티 스레드 프로세서, 멀티스레드 CPU 멀티 스레드 프로세서 설계 시 가장 큰 핵심 : 레지스터 2) SW 스레드 하나의 프로그램에서 독립적으로 실행되는 단위 🧩 명령어 ..
🧩 ALU와 제어장치 1) ALU : 계산 장치 - 받아들이는 정보 | 피연산자, 제어신호 - 내보내는 정보 | 결괏값(숫자, 문자, 주소 등), 플래그(연산 결과에 대한 부가 정보) 2) 제어 장치 : 제어 신호 발생시키고 명령어 해석하는 장치 - 받아들이는 정보 1) 클럭 : 컴퓨터의 모든 부품을 일사불란하게 움직이게 하는 시간 단위 2) 해석할 명령어 3) 플래그 4) 제어 신호 - 내보내는 정보 CPU 내부에 전달하는 제어 신호 (to 레지스터, ALU) CPU 외부에 전달하는 제어 신호 (to 메모리, 입출력장치) 🧩 레지스터 CPU 내부의 작은 임시 저장 장치 - 프로그램 속 명령어&데이터는 실행 전후로 레지스터에 저장 ⭐ 반드시 알아야 할 레지스터 1. 프로그램 카운터 : 메모리에서 가져올 ..
🧩 소스 코드와 명령어 ○ 소스 코드와 명령어 ▪ 소스 코드 | 고급 언어. 개발자가 이해하고 실행하는 언어 ( =원시 코드) ▪ 명령어 | 저급 언어. 컴퓨터가 이해하고 실행하는 언어 ㄴ1) 기계어 : 0과 1 ㄴ2) 어셈블리어 : 기계어를 읽기 편한 형태로 번역한 저급 언어 ○ 컴파일 언어 vs 인터프리트 언어 컴파일 언어 ▪ 소스 코드 > 컴파일러 > 목적 코드 (고급 언어 저급 언어) ▪ 컴파일러 : 컴파일 언어로 작성된 소스 코드를 저급 언어로 변환 ▪ 한꺼번에 실행 인터프리트 언어 ▪ 인터프리터에 의해 한 줄씩 실행 Compiler Explorer godbolt.org 🧩 명령어의 구조와 주소 지정 방식 ○ 명령어 구조 ① 연산 코드, ② 오퍼랜드 1. 연산 코드 : 수행할 연산 ▪ 종류 1)..
🧩 0과 1로 숫자 표현하는 방법 1. 2진법 ▪ 0b ▪ 모든 숫자를 0과 1로 표현 ▪ 숫자가 9 넘을 때 자리올림 ▪ 음수 표현은 어떻게? : 2의 보수 → 모든 0과 1을 뒤집고 +1 (예 : 11 > 00 > 01) ▪ 양수/음수 구분은 어떻게? : CPU의 플래그 레지스터 통해 구분 2. 16진법 ▪ 0x ▪ 10부터는 A로 표현 🧩 0과 1로 문자 표현하는 방법 ○ 컴퓨터가 이해하는 정보 - 문자 집합 : 컴퓨터가 이해할 수 있는 문자 모음 - 인코딩 : 문자 > 기계어로 코드화 - 디코딩 : 기계어 > 문자로 해석 ○ 아스키코드 ▪ 7비트로 하나의 문자 표현 ┕ 8비트 중 남은 하나는 오류 검출 위한 parity bit ▪ 대문자 : 65-90 / 소문자 : 97-122 ○ EUC-KR ▪..
🧩 컴퓨터 구조를 알아야 하는 이유 - 문제 해결 능력 향상 - 컴퓨터 구조 분석 가능 - 성능,용량,비용 고려한 프로그래밍 가능 🧩 컴퓨터 구조의 큰 그림 1. 컴퓨터가 이해하는 정보 1) 데이터 - 정적 정보 (숫자, 이미지, 문자, 동영상) 2) 명령어 - 컴퓨터를 움직이는 정보 2. 컴퓨터의 4가지 핵심 부품 - CPU, 메모리, 보조기억장치, 입출력장치 ③ CPU : 메모리에 저장된 값 읽고, 해석하고, 실행하는 장치 - ALU : 계산기 - 레지스터 : CPU 내부 작은 저장 장치 (임시 저장 장치) - 제어장치 : 제어 신호 내보내고, 명령어 해석 장치 ④ 메모리 (= RAM) -"현재 실행되는 프로그램"의 명령어와 데이터 저장 (주소) ⑤ 보조기억장치 - 전원이 꺼져도 보관될 프로그램 저장..
📗 API 와 REST API API : 클라이언트-서버 간 상호작용하기 위한 매개체 ⇨ 클라이언트 요청을 서버에 전달 ⇨ 서버 결과물을 클라이언트에게 전달 📍 REST API (참고) 자원을 이름으로 구분해 자원의 상태를 주고받는 API 방식 - 웹 장점을 최대 활용한 API - REST : Representational State Transfer ▷ 특징 - 서버/클라이언트 구조 - 무상태 - 캐시 처리 가능 - 계층화 - 인터페이스 일관성 ▷ 장단점 👍 - URL만 보고도 무슨 행동하는 API인지 확인 가능 - 클라이언트와 서버 역할이 명확히 분리 (∵ 상태가 없으므로) - HTTP 표준 사용하는 모든 플랫폼에서 사용 가능 👎 - HTTP 메소드 개수에 제한 있음 (GET, POST) - 설계 위해..
📗 데이터베이스란? DB : 데이터를 효율적으로 보관하고 꺼내볼 수 있는 곳 ⇨ 장점 : 많은 사람이 안전하게 데이터를 사용하고 관리 가능 (동시 접근할 수 있어야 함) 📍 DBMS - DB를 관리하기 위한 SW - 분류 : 관계형, 객체-관계형, 도큐먼트형, 비관계형 등 (관리 특징에 따라) - 예) 관계형 ; ORACLE, MySQL ▷ RDBMS (관계형 DBMS) - 테이블 형태로 이뤄진 데이터 저장소 - 관계형 모델 기반 ▷ H2, MySQL - H2 : 스프링 부트가 지원하는 인메모리 관계형 DB. (JAVA로 작성, 테스트용) - MySQL : 실제 서비스 올리는 용 ➕ DB 기초 용어 - 테이블 : DB에서 데이터 구성하기 위한 가장 기본적 단위 - 행 : 테이블의 가로로 배열된 데이터 집..
📗 테스트 코드 개념 익히기 📍 테스트 코드란? - test 디렉토리에서 작업 - 다양한 패턴 있음. - 그 중 given-when-then 패턴 사용 ⇨ given : 테스트 실행 준비 ⇨ when : 테스트 진행 ⇨ then : 테스트 결과 검증 📗 스프링 부트 3와 테스트 스프링 부트 스타터 테스트 목록 • JUnit | JAVA 위한 단위 테스트 프레임워크 • AssertJ | 검증문인 Assertion을 작성하는 데 사용되는 라이브러리. JUnit과 함께 사용해 검증문의 가독성을 높임! • Spring Test & Spring Boot Test | 스프링 부트 애플리케이션을 위한 통합 테스트 지원 📍 JUnit이란? - JAVA를 위한 단위 테스트 프레임워크 - 특징 • 테스트 방식 구분할 수 ..
imname1am
'📚 관련 독서' 카테고리의 글 목록 (2 Page)