일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 혼자 공부하는 SQL
- 데이터 모델링
- 이것이 오라클이다
- 컴퓨터 활용 능력 1급
- delete
- 클러스터형 인덱스와 보조 인덱스
- 뷰
- 혼자 공부하는 컴퓨터 구조 + 운영체제
- 혼자 공부하는 컴퓨터 구조 및 운영체제
- mysql 설치 방법과 정상 작동 확인하기
- INSERT
- 데이터모델링
- 컴퓨터 활용 능력
- Update
- github에 새 리포지토리 추가하기
- 인덱스의 개념과 장단점
- gitkraken을 통한 프로젝트 올리기
- sqld
- 웹 디자인 기능사
- 친절한 SQL 튜닝
- oracle
- 2025-02-13
- 열거형
- 혼자 공부하는 네트워크
- 명령 프롬프트
- 컴퓨터 구조
- youtube review
- 운영체제
- 리눅스 마스터 2급
- 첫 프로그래밍
- Today
- Total
목록2024/10 (199)
코딩 브이로그

들어가며"명령어가 어떻게 생겨야 명령어 파이프라이닝에 유리할까요?"[연산 코드] [오퍼랜드]명령어 집합"CPU는 명령어를 실행한다"... 근데 이 세상의 모든 CPU가 똑같이 생긴 명령어를 실행할까?명령어의 세세한 생김새, 연산, 주소 지정 방식 등은 CPU마다 다르다.x86-64 CPU는 ARM CPU를 이해할 수 없다.명령어 집합 (구조): CPU의 언어인 셈명령어가 달라지면 그에 대한 나비효과로 많은 것들이 달라진다명령어 해석 방식, 레지스터의 종류와 개수, 파이프라이닝의 용이성...명령어 집합의 두 축: CISC & RISCCISC(Complex Instruction Set Computer)복잡한 명령어 집합을 활용하는 컴퓨터(CPU)x86, x86-64는 CISC 기반 명령어 집합 구조명령어의 ..

이를 방지하기 위한 분기 예측 (branch predictoin) 기능이 있다.데이터 위험, 제어 위험 또는 구조적 위험이 발생 시 명령어 병렬 처리를 위한 파이프라이닝이 제대로 동작하지 않는다.비순차적 명령어 처리를 통해, 순차적으로 명령어를 처리할 시 발생할 수 있는 오류를 방지할 수 있다.예를 들어 3번이 맨 마지막에 처리됨으로 인해 M(100)과 M(101)의 값이 결정된 이후에 M(102)의 결괏값을 도출해낼 수 있다.

들어가며- 클럭- 코어 & 멀티 코어- 스레드 & 멀티 스레드CPU의 속도를 빠르게 만들어보자1. 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다.2. CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.-> 클럭 신호를 빠르게 반복된다면 명령어 사이클도 빠르게 반복될 것이라는 기대를 할 수 있다. 클럭 속도- 클럭 속도: 헤르츠(Hz) 단위로 측정- 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수- 클럭이 "똑-딱-" 하고 1초에 한 번 반복되면 1Hz- 클럭이 1초에 100번 반복되면 100Hz클럭 속도를 늘리면 꼭 속도가 빨라질까? 필요 이상으로 클럭을 높이면 발열이 심각해짐코어와 멀티 코어- 클럭 속도를 늘리는 방법 이외에는?- 코어 수를 늘리는 방법 ("듀얼 코어",..

정해진 흐름대로 명령어를 처리해야지! CPU 인터럽트 (잠깐만!) 명령어 사이클프로그램 속 명령어들은 일정한 주기가 반복되며 실행이 주기를 명령어 사이클이라고 함 메모리에 저장된 명령어를 실행하려면?cpu 인출 사이클: 가장 먼저 CPU로 갖고 와야 한다실행 사이클: 갖고 왔으면 실행해야 한다 명령어는 인출 - 실행 - 인출 - 실행 - ...반복되면서 실행됩니다. 그런데 CPU로 명령어를 가지고 와도 바로 실행이 불가능한 경우도 있다. 메모리의 접근이 더 필요한 경우 간접 사이클이 추가될 수 있다. 이와 같은 정해진 흐름을 끊는 것이 바로 인터럽트이다. 방해하는 신호이다. 인터럽트인터럽트 (interrupt) : 방해..

DI (Dependency Injection)- 의존성 주입 - 한 객체가 다른 객체를 사용할 때 의존성이 있다고 함- 런타임 시 의존 관계를 맺는 대상을 외부에서 결정하고 주입해 주는 것- 스프링 프레임워크는 DI 기능을 지원해주는 프레임워크DI 장점- 의존성 주입을 인터페이스 기반으로 설계하면, 코드가 유연해짐 - 느슨한 결합도 (loose coupling)- 변경에 유연해짐 - 결합도가 낮은 객체끼리는 부품을 쉽게 갈아끼울 수 있음예를 들어 A가 직접 B에 의존하도록 하기 보다는 중간에 Interface를 두어서 결합도가 느슨해지도록 하여 변화에 영향을 덜 받게 되도록 설계를 하기도 합니다.Runtime시 의존관계를 맺는 대상을 외부에서 결정하고 주입해 주는 것을 의미합니다.또한 변경에 유연해..

스프링 웹 MVC 프레임워크요청을 DispatcherServlet이 해당 요청을 받아서 HandlerMapping을 통해서 적절한 핸들러를 찾게 됩니다.여기에서 핸들러라고 하면 컨트롤러라고 이해하시면 좀 더 이해가 쉬울 것 같습니다.그리고 나서 핸들러 어댑터를 통해서 적절한 어댑터에서 컨트롤러를 시행합니다.그리고 컨트롤러는 해당 리턴 값으로 뷰 네임을 리턴하게 됩니다.그러면 DispatcherServlet이 해당 뷰 네임을 가지고 뷰 리절브를 통해서 뷰 객체를 리턴 받게 됩니다.그런 다음에 최종적으로 뷰 렌더를 통해서 응답 값을 리턴하게 됩니다.애노테이션 기반 MVC 프레임워크- DispatcherServlet- AnnotationHandlerMapping- HandlerAdapter- ViewResol..

프런트 컨트롤러 패턴- 모든 요청을 단일 handler(처리기)에서 처리하도록 하는 패턴, 그렇기 때문에 중앙 집중식 요청 처리 매커니즘을 가지고 있습니다.- 스프링 웹 MVC 프레임워크의 DispatcherServlet(프런트 컨트롤러의 역할)이 프런트 컨트롤러 패턴으로 구현돼 있음 Forward- 서블릿에서 클라이언트(웹 브라우저)를 거치지 않고 바로 다른 서블릿(또는 JSP)에게 요청하는 방식, URL주소가 달라지지 않음- Forward 방식은 서버 내부에서 일어나는 요청이기 때문에 HttpServletRequest, HttpServletResponse 객체가 새롭게 생성되지 않음(공유됨)- RequestDispatcher dispatcher = request.getRequestDispatcher(..
Reflection 소개- 힙 영역에 로드돼 있는 클래스 타입의 객체를 통해 필드/메소드/생성자를 접근 제어자와 상관 없이 사용할 수 있도록 지원하는 API (class.class, instance.getclass, class.fullname)- 컴파일 시점이 아닌 런타임 시점에 동적으로 특정 클래스의 정보를 추출해낼 수 있는 프로그래밍 기법이기도 합니다.- 주로 프레임워크 또는 라이브러리 개발 시 사용됨사용법 링크 : https://www.baeldung.com/reflections-library* 참고로 jvm의 클래스 로더는 클래스 파일에 대한 로딩이 끝나면 클래스 타입의 객체를 생성해서 메모리 힙 영역에 저장합니다.Reflection 사용하는 프레임워크/라이브러리 소개- Spring 프레임워크 (..

들어가며레지스터는 CPU 내부의 작은 임시저장장치프로그램 속 명령어 & 데이터는 실행 전후로 레지스터에 저장 CPU 내부에는 다양한 레지스터들이 있고, 각기 다른 역할을 가진다 반드시 알아야 할 레지스터1. 프로그램 카운터 : 메모리에서 가져올 명령어의 주소(메모리에서 읽어 들일 명령어의 주소) - Instruction Pointer (명령어 포인터) 라고 부르는 CPU도 있다.2. 명령어 레지스터 : 해석할 명령어 (방금 메모리에서 읽어 들일 명령어) - 제어장치가 해석3. 메모리 주소 레지스터 : 메모리의 주소를 저장 - CPU가 읽어 들이고자 하는 주소를 주소 버스로 보낼 때 거치는 레지스터4. 메모리 버퍼 레지스터 : 메모리와 주고받을 값 (데이터와 명령어) - CPU가 정보를 데이터 버스로 주..

ALU는 계산하는 장치제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치 ALU - 받아들이는 정보계산을 하기 위해서는 피연산자의 수행할 연산이 필요 레지스터 -> (피연산자) -> | ALU | -> (플래그) -> 플래그 레지스터제어장치 -> (제어신호) -> | | -> (결괏값) -> 레지스터 플래그 레지스터 - 음수, 0 (부가 정보가 담김), 연산 결과가 결과를 담을 레지스터에 비해 너무 클 시 오버플로우라고 하는데, 오버플로우 발생 시 이를 표시하여 나타낸다. ALU - 내보내는 정보플래그 종류의미사용 예시부호 플래그연산한 결과의 부호를 나타낸다1은 음수, 0은 양수를 의미제로 플래그연산한 결과가 0인지 여부를 나타낸다1은 0, 0은 0이 아님캐리 플래그연산 결과..