키 페어는 무엇이며, 어떻게 생성 및 사용할까? 키 페어 --EC2의 인스턴스(컴퓨터)에 접근할 때아무나 접근할 수 없도록 키(비밀번호)를 지정하는 용도다. 비유하자면호텔에서 내 방에 들어가기 위해서는 카드 키가 필요하고해당 카드 키가 없으면 방에 들어갈 수 없다.바로 이 카드 키가 키 페어다.-- 키 페어 생성 버튼 위치 --EC2 -> 키 페어 -> 키 페어 생성 버튼-- 키 페어 생성 과정 -- 이름은해당 키 페어의 이름을 의미하는 것으로다른 키 페어와 구분되도록 짓는다. 키 페어 유형은해당 키 페어를 공개 키 암호화하는 방식이다.(성능은 ED25519가 좋지만 호환성을 위해 안전하게 RSA를 선택한다.) RSA (Rivest-Shamir-Adleman)는가장 오래되고 ..
메모리의 종류와 역할이 무엇일까? RAM --RAM은주기억장치 중의 하나로 일반적으로 "메모리"라고 지칭하기도 한다. RAM 특징휘발성 저장 장치CPU가 빠르게 접근 가능 (= 빠르게 데이터를 읽고, 쓰기 가능)현재 실행 중인 프로그램의 데이터 및 명령어를 임시로 저장 (= 보조기억장치에서 복사하여 저장) RAM 용량에 따른 성능 변화 용량이 작음 (하나의 프로그램의 데이터만 담을 수 있을 정도)A프로그램을 실행시키기 위해 "보조기억장치"에서 해당 데이터를 "RAM"에 복사A프로그램 실행 후 B프로그램을 실행시키기 위해 다시 해당 데이터 "보조기억장치"에서 "RAM"에 복사B프로그램 실행 가능 (= A프로그램 실행 불가능)동시에 실행할 수 있는 프로그램의 수 제한프로그램 간의 전환이 느려짐사용..
ISA, CISC와 RISC는 무엇인가? ISA (명령어 집합 구조, Instruction Set Architecture) --ISA는CPU가 수행할 수 있는 (이해할 수 있는) 명령어들의 집합 or 해당 집합의 아키텍처(구조)를 의미한다. 이는하드웨어와 소프트웨어 간의 인터페이스 역할을 하며,CPU가 지원하는 명령어의 종류, 데이터 형식, 레지스터, 주소 지정 모드 등을 포함한다. CPU의 제조사마다 CPU의 규격, 기능 만듦새가 다르기 때문에CPU마다 ISA가 다를 수 있다. 명령어의 기본적인 구조와 작동 원리는 비슷하지만명령어의 세부적인 생김새, 명령어로 할 수 있는 연산, 주소 지정 방식 등은 차이가 있을 수 있다. 사용하는 ISA가 다르다 => CPU가 이해할 수 있는 명령어가 다르다 ..
isUpperCase(), isLowerCase() --문자 타입의 해당 문자가 대문자인지 소문자인지 확인하는 메서드다. isUpperCase() : 해당 문자는 대문자인가?isLowerCase() : 해당 문자는 소문자인가? 형식Character.isUpperCase(문자); 예시char ch = 'a';String str = "Hello";boolean check1 = Character.isUpperCase(ch); // falseboolean check2 = Character.isUpperCase(str.charAt(0)); // true-- toUpperCase(), toLowerCase() --문자 또는 문자열 전체를 대문자 또는 소문자로 변경해 주는 메서드다. toUpperCase..
contains() --문자열 내에 다른 문자열이 포함되어 있는지 여부를 확인하는 메서드다. 가장 직관적이고 일반적으로 사용하는 메서드대소문자 구분 contains() 메서드 형식문자열.contains(특정 문자열); 예시 코드String str = "Hello, world!";boolean result1 = str.contains("world"); // trueboolean result2 = str.contains("www"); // false--
명령어를 병렬로 처리는 방법의 종류는 무엇이 있을까? 명령어 병렬 처리 기법 (ILP, Instruction-Level Parallelism) --속도가 빠른 CPU를 만들기 위해높은 클럭 속도, 멀티코어, 멀티스레드를 지원하는 CPU를 만드는 것도 중요하지만,CPU가 놀지 않고 시간을 알뜰하게 사용하며 동작하도록 하는 것도 중요하다. 바로 명령어 병렬 처리 기법이명령어를 병렬로 동시에 처리하는 방법으로CPU가 쉬지 않고 끊임없이 동작하게 하는 기법이다. 대표적인 "명령어 병렬 처리 기법"명령어 파이프라인(파이프라이닝)슈퍼스칼라비순차적 명령어 처리-- 명령어 파이프라인 --명령어 파이프라인은명령어 처리에 대한 과정을 각 단계로 분리하고해당 단계를 동시에 실행할 수 있도록 하는 기술이다. 비..
클럭, 멀티코어, 멀티스레드가 무엇이길래 CPU 성능 향상에 사용될까? 클럭 (Clock) --클럭은CPU의 제어장치와 전체 CPU가 동작하는 데 중요한 역할을 하는 신호로,해당 신호를 이용하여 CPU 내의 모든 동작을 동기화하는 데 사용된다. 조금 더 설명하자면일정한 주기로 반복되는 신호를 클럭이라고 부르며해당 신호의 각 주기는 CPU가 한 명령어를 처리하는 데 필요한 클럭의 단위로 구분 짓는 데 사용된다. 간단하게 컴퓨터의 모든 부품을 알맞게 동작할 수 있도록 하는 시간 단위라고도 할 수 있다. 그래서 CPU의 동작 속도를 나타내는 척도로CPU 내부에서 발생하는 전기적 펄스의 빈도를 의미한다.(해당 펄스는 CPU가 명령어를 처리하는 속도를 결정하게 된다.) 정리컴퓨터 부품들은 정해진 "클럭 ..
명령어 사이클은 무엇이고인터럽트는 무엇일까? 명령어 사이클 --CPU가 하나의 명령어를 처리하는 과정에는정해진 흐름이 존재하는데이렇게 정해진 흐름이 "명령어 사이클"이다. 즉, 프로그램 속에서 각 명령어들을 일정한 주기로 반복되며 실행되는데, 해당 주기를 의미한다. 명령어 사이클의 각 단계들인출 사이클 (Fetch Cycle)실행 사이클 (Execute Cycle)간접 사이클 (Indirect Cycle)이 외에도 해석 사이클(Decode Cycle), 쓰기 단계(Write Back Cycle) 등이 존재한다. 인출 사이클 (Fetch Cycle) 메모리에 존재하는 명령어를 CPU로 가져오는 단계를 의미한다. 실행 사이클 (Execute Cycle) "인출 사이클"을 통해 CPU로 가져온..