전체 글(355)
-
[컴퓨터 구조] 명령어 집합 구조, CISC와 RISC
각 명령어는 생김새, 연산, 주소지정방식이 다 다르다. 명령어 집합(구조) CPU가 이해할 수 있는 명령어들의 모음 명령어 집합이 다르기 때문에 같은 소스 코드를 컴파일 하더라도 다른 어셈블리어로 컴파일 된다. CPU의 언어라고 볼 수 있다. 명령어가 달라지면 많은 것들이 달라진다. 명령어 해석 방식 레지스터의 종류와 개수 파이프라이닝의 용이성 등등 CISC 복잡한 명령어 집합을 활용하는 컴퓨터(CPU) x86, x86-64는 CISC 기반 명령어 집합 구조이다. 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다. 다양하고 강력한 명령어를 활용한다. 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다. 하지만 명령어 파이프라이닝에 불리하다. 파이프라이닝은 명령어의 실행 주기(형태)가 일정..
2023.03.21 -
[에러] No value at JSON path "~~"
[Reason] 테스트 코드를 작성하고 MockMvcRequestBuilders에 post 형식으로 특정 api를 호출하여 매개 인자로 String 타입 변수로 변환한 Dto 객체를 넘겨주었다. 이후에 andExpect로 예상 값과 일치하는지 확인하는 과정에서 jsonPath로 앞서 doReturn의 예상 일치 결과 객체(ResponseEntity 객체) 안에 있는 특정 속성의 경로가 일치하지 않아 발생한 에러이다. ResponseEntity 결과 객체를 Json 형식으로 보면 data라는 속성 안에 다시 json 형식의 데이터가 들어가있었으므로 "email", "memberName" 으로 지정해주면 당연히 에러가 날 수 밖에.. [Solution] 올바른 경로를 지정해주어 해결하였다.
2023.03.17 -
[컴퓨터 구조] 명령어 병렬 처리 기법
명령어 파이프라인 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면 명령어 인출 명령어 해석 명령어 실행 결과 저장 여러 명령어가 수행될 때 각 명령어의 위와 같은 과정들이 겹치지 않는다면 CPU는 각 명령어 단계를 동시에 실행할 수 있다고 본다. 이처럼 겹치지않게 여려 명령어를 병렬적으로 수행하는 것을 명령어 파이프라인 이라고 한다. 명령어 파이프라인을 사용하지 않는다면? 한 명령어의 모든 단계가 끝날 때까지 기다리고 그 다음 명령어가 수행되므로 CPU의 속도가 느리다. 명령어 파이프라인 위험 명령어 파이프라인이 성능 향상에 실패하는 경우 1. 데이터 위험 : 명령어 간의 의존성에 의해 발생되는 위험 모든 명령어를 동시에 처리할 수는 없다. (이전 명령어를 완전히 수행해야지만 비로소 실행할 수 있는..
2023.03.17 -
[컴퓨터 구조] 빠른 CPU를 위한 설계 기법
CPU 속도를 늘리기 위한 방법에는 여러가지가 있지만 기본적으로 클럭 속도를 높이는 방법, 코어 수를 늘리는 방법(멀티 코어...), 스레드 수를 늘리는 방법(멀티 스레드...)이 있다. 클럭 컴퓨터의 모든 부품들이 움직일 수 있게 하는 동작 단위 클럭 속도 : Hz (헤르츠) 이론적으로 클럭 속도를 높이면 CPU 속도를 빠르게 높일 수 있다. 클럭 속도를 높이면 빠르긴 하지만 필요 이상으로 높이면 발열이 심각해진다. 코어 명령어를 실행하는 부품 CPU 내에서 명령어를 실행하는 부품으로 CPU(프로세스) 내에서 여러 개 존재할 수 있는 부품 기본적으로 CPU가 명령어를 해석하고 실행하는 부품이라고 하고 이전에는 이 CPU 하나 만으로 운영이 가능하였다. 하지만 오늘날에 와서는 이 ALU, 제어 장치, 레..
2023.03.16 -
[AWS] S3 생성 및 Spring Boot 연동
아마존 S3는 클라우드 형식으로 이미지나 동영상같은 미디어 자원들을 저장하고 관리할 수 있는 도구이다. 어플리케이션을 개발할 때 이미지를 업로드 하거나 다운받을 수 있도록 쉽게 관리할 수 있다. Spring Boot 와 연동하는 방법을 알아보자. (1) 아마존 계정 로그인 https://aws.amazon.com/ko/console/ AWS Management Console AWS Support 플랜은 AWS로 성공하는 데 도움이 되는 다양한 도구, 프로그램 및 전문 지식에 대한 액세스의 조합을 제공합니다. aws.amazon.com 아마존 사이트에 들어가서 로그인한다. 계정이 없다면 회원가입은 필수이다. (2) S3 버킷 생성 S3 항목에 진입한다. 버킷 이름 : 사용할 버킷의 이름을 지정한다. AWS..
2023.03.16 -
[컴퓨터 구조] 명령어 사이클과 인터럽트
CPU는 정해진 주기대로 명령을 수행하는데 그것을 명령어 사이클이라고 한다. 이러한 명령어 사이클의 흐름을 끊는 행위를 인터럽트라고 한다. 명령어 사이클 정해진 주기대로 명령을 수행 인출 사이클 : 가장 먼저 CPU로 갖고오는 사이클 주기 실행 사이클 : 인출 사이클을 통해 가지고온 명령을 실행하는 사이클 간접 사이클 : 인출 한 다음에 메모리 접근이 더 필요한 경우에 거치는 간접 사이클 예) 간접 주소 지정 방식, 레지스터 간접 주소 지정 방식 등 인터럽트 정해진 흐름대로 수행되는 사이클의 흐름을 끊는 행위 동기 인터럽트 (Exception, 예외) CPU가 예기치 못한 상황을 맞닥뜨렸을 경우에 발생 비동기 인터럽트 (하드웨어 인터럽트) 주로 입출력장치에 의해 발생되는 알림과 같은 역할을 수행 예) 세..
2023.03.16