본문 바로가기
반응형

전체 글135

김영한 스프링 부트 - 핵심 원리와 활용 강의로 스프링 부트 시작하기 스프링 부트 - 5가지 핵심 기능1. 내장 서버(WAS) : 별도의 서버 설치 필요 없음2. 자동 라이브러리 관리 손쉬운 빌드 구성을 위한 스타터 종속성 제공스프링과 외부 라이브러리의 버전을 자동으로 관리 3.자동 구성(Auto Configuration) :복잡한 스프링 설정을 자동화프로젝트 시작에 필요한 스프링과 외부 라이브러리의 빈을 자동 등록4. 외부 설정환경에 따라 달라져야 하는 외부 설정 공통화 5. 모니터링과 관리 기능 강의 목차1. 스프링 부트 소개2. 스프링 부트와 웹 서버3. 스프링 부트 스타터와 라이브러리 관리4. 자동 구성 (Auto Configuration)5. 외부 설정과 프로필6. 모니터링과 활용스프링 부트 액츄에이터마이크로미터, 프로메테우스, 그라파나를 활용한 모니터링모니터링 .. 2024. 8. 27.
React 경고 메시지: DOM 요소에 유효하지 않은 속성 전달 방지하기 경고 메시지 정의: "React에서 사용자 정의 컴포넌트에 정의되지 않은 props가 DOM 요소로 전달될 때 발생하는 경고로, 이는 React가 유효하지 않은 HTML 속성을 감지했음을 의미한다."이 메시지는 React와 같은 라이브러리에서 사용자 정의 컴포넌트에 정의되지 않은 속성을 DOM 요소로 전달하려고 할 때 발생할 수 있습니다. 이 경우, btncolor라는 속성이 DOM에 직접 전달되지 않아야 하지만 전달되고 있어 경고가 발생한 것입니다. 수정 전 코드let YellowBtn = styled.button`    background : ${ props => props.btncolor };    color : ${ [props => props.btncolor == 'blue' ? 'white' .. 2024. 7. 26.
Each child in a list should have a unique "key" prop 오류를 해결해보자 리액트를 배우던 도중, 콘솔창을 보니 이런 에러가 뜨고 있었다.  React에서 "Each child in a list should have a unique 'key' prop" 오류 메시지는, 일반적으로 React 컴포넌트가 리스트를 렌더링할 때 각 항목에 고유한 key 속성이 필요할 때 발생합니다. 이 오류는 주로 다음과 같은 상황에서 나타납니다:리스트 렌더링: map() 메서드 등을 사용하여 배열을 반복 처리하면서 JSX 요소를 생성할 때, React는 각 항목을 구분하기 위해 고유한 key를 필요로 합니다. key 속성은 React가 각 항목을 식별하고, 나중에 변경, 추가 또는 삭제될 때 해당 항목을 효율적으로 업데이트할 수 있도록 돕습니다.고유하지 않은 키: key 속성에 고유하지 않은 값을 .. 2024. 7. 26.
캐시메모리 CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느리다 저장 장치 계층 구조 (memory hierarchy) CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다. 레지스터 vs 메모리(RAM) vs USB메모리 캐시 메모리 CPU와 메모리 사이에 위치한, 레지스터보다는 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치 CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시메모리로 가지고 와서 쓰자 계층적 캐시 메모리 일반적으로 L1 캐시와 L2 캐시는 코어(CPU) 내부에, L3 캐시는 코어 외부에 위치 분리형 캐시 L1캐시를 명령어만을 담기 위한 L1I.. 2024. 4. 15.
메모리의 주소 공간 메모리 내 주소체계 : 물리주소, 논리주소 메모리에 저장된 값들은 시시각각 변한다. 새롭게 실행되는 프로그램은 새롭게 메모리에 적재 실행이 끝난 프로그램은 메모리에서 삭제 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐 물리 주소 메모리 입장에서 바라본 주소 말 그대로 정보가 실제로 저장된 하드웨어상의 주소 논리 주소 CPU와 실행중인 프로그램 입장에서 바라본 주소 실행중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 물리 주소와 논리 주소의 변환 MMU(메모리 관리 장치)라는 하드웨어가 논리 주소와 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환 한계 레지스터 (limit register) 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음 베이스 레지스터가 실행 .. 2024. 4. 9.
RAM의 특성과 종류 주기억장치 종류 : RAM(random access memory) / ROM(read-only memory) '메모리'라는 용어는 RAM을 지칭하는 경우가 많다. RAM의 특성 RAM에 실행할 대상을 저장 저장한 내용은 전원이 꺼지면 잃어버림 (휘발성 저장장치) 보조기억장치에 보관할 대상을 넣어둠 (하드디스크, USB, CD룸 등) 비휘발성 저장장치 램의 크기는 컴퓨터 선정에 중요한 역할을 한다. 램이 작다면 램에 저장되어있지 않은 메모리를 보조 기억장치에서 가져와야 하는데, 램이 크다면 그 수고를 덜 수 있다. RAM의 종류 DRAM(Dynamic RAM) 저장된 데이터가 동적으로 사라진다. 데이터 소멸을 막기 위해 주기적으로 재활성화 해야한다.(다시 저장, refresh) 일반적으로 메모리로 사용되는.. 2024. 4. 5.
명령어 집합 구조, CISC와 RISC 명령어 집합(ISA - Instruction Set Architecture) : CPU가 이해할 수 있는 명령어들의 모음 CISC(Complex Instruction Set Computer) 복잡한 명령어 집합을 활용하는 컴퓨터 (CPU) x86, x86-64는 CISC기반 명령어 집합 구조 명령어의 형태와 크기가 다양한 가변 길이 명령어 활용 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다. 단점 명령어 파이프라이닝이 불리하다. 멸령어의 크기와 실행되기까지의 시간이 일정하지 않다 복잡한 명령어 때문에 명령어 하나를 실행하는 데에 여러 클럭 주기 필요 대다수의 복잡한 명령어는 사용 빈도가 낮다 RISC(Reduced Instruction Set Computer) 명령어의 종류가 적고, 짧고 규.. 2024. 4. 3.
명령어 병렬 처리 기법 명령어 처리되는 과정 명령어 인출 명령어 해석 명령어 실행 결과 저장 명령어 파이프라인 - 같은 단계가 겹치지만 않는다면 CPU는 '각 단계를 동시에 실행할 수 있다' 파이프라인 위험 : 명령어 파이프라인이 성능 향상에 실패하는 경우 1) 데이터 위험 : 명령어 간의 의존성에 의해 야기 모든 명령어를 동시에 처리할 수 없다. (이전 명령어를 끝까지 실행해야만 비로소 실행할 수 있는 경우) 2) 제어 위험 : 프로그램 카운터의 갑작스러운 변화 프로그램 카운터가 갑작스럽게 어떤 특정 메모리 주소로 바뀌는 경우 *분기 예측 : 프로그램 카운터가 어느 번지로 어디로 점프할 것인지 미리 예측하는 기술 3) 구조적 위험 : 서로 다른 명령어가 같은 CPU 부품(ALU, 레지스터)를 쓰려고 할 때 슈퍼스칼라 - CP.. 2024. 4. 3.
빠른 CPU를 위한 설계 기법 (코어, 클럭) 1. 컴퓨터 부품들은 '클럭 신호'에 맞춰 일시불란하게 움직인다. 2. cpu는 '명령어 사이클' 이라는 정해진 흐름에 맞춰 명령어들을 실행한다. 클럭 속도 : 헤르츠(Hz) 단위로 측정 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수 그러나 필요 이상으로 클럭을 높이면 발열 발생 코어 수를 늘리는 방법 / 스레드 수를 늘리는 방법 코어란? (core) 명령어를 실행하는 부품을 코어라는 용어로 사용 코어 수 프로세서 명칭 1 싱글코어 2 듀얼코어 3 트리플코어 4 쿼드코어 6 헥사코어 8 옥타코어 19 데카코어 12 도데카코어 코어마다 처리할 연산이 적절하게 분배되지 않으면 코어 수가 많더라도 연산 속도가 증가하진 않는다. 스레드 : 하드웨어적 스레드 / 소프트웨어적 스레드 하드웨어 스레드 : 하나의 코어.. 2024. 4. 2.
명령어 사이클과 인터럽트 (interrupt) CPU는 메모리로부터 명령어나 데이터들을 갖고 와서 실행하고, 필요하다면 값을 저장할 수도 있다. CPU는 메모리에 저장되어 있는 프로그램을 일정한 패턴(정해진 흐름)대로 실행한다. 간혹 그 정해진 흐름을 방해하는 신호가 CPU에게 올 수 있는데, 그 신호를 인터럽트라고 부른다. 명령어 사이클 프로그램 속 명령어들은 일정한 주기가 반복되며 실행 이 주기를 명령어 사이클이라고 함 메모리에 저장된 명령어를 실행하려면 메모리에 있는 값을 CPU의 레지스터로 갖고 와야한다.(인출) 그리고 이런식으로 인출을 하는 주기를 인출사이클 갖고 온 메모리를 실행시키는 것을 실행사이클 인출-실행-인출-실행 ... 그런데 CPU로 명령어를 갖고 와도 바로 실행이 불가능한 경우가 있음 (명령어 주소지정 방식) 몇번 더 인출을 .. 2024. 4. 2.
반응형