CPU(Central Processing Unit) 제어장치, 레지스터, 산술논리연산장치로 구성되어 있다. 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행한다. 관리자 역할을 하는 운영체제의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 일꾼 역할의 CPU가 이를 처리한다. 제어장치(CU, Control Unit) 프로세스 조작을 지시하는 CPU의 한 부품이다. 입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정한다. 레지스터 CPU 안에 있는 매우 빠른 임시기억장치이다. CPU와 직접 연결되어 있어 연산 속도가 메모리보다 훨씬 빠르다. CPU는 자체적으로 데이터를 저장할 방법이 없어서 레지스터를 거쳐 데이터를 전달한다. 산술논리연산장치(ALU Ar..
운영체제(OS, Operating System)란? 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 하드웨어와 소프트웨어를 관리하고 한정된 메모리나 시스템 자원을 효율적으로 분배해준다. 운영체제의 역할 CPU 스케줄링과 프로세스 관리 CPU 소유권을 프로세스에 할당하고, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다. 메모리 관리 한정된 메모리를 프로세스에 할당한다. 디스크 파일 관리 디스크 파일을 어떠한 방법으로 보관할지 관리한다. I/O 디바이스 관리 마우스나 키보드같은 I/O 디바이스와 컴퓨터 간에 데이터를 주고 받는 것을 관리한다. 운영체제의 구조 유저 프로그램과 하드웨어 사이에 [GUI, 시스템콜, 커널, 드라이버]의 구조로 되어있다. GUI가 없고 CUI만 있는 리눅스 서버도 있..
네트워크 분류 네트워크는 규모를 기반으로 분류할 수 있다. 개인이나 사무실 정도 규모의 LAN(Local Area Network), 시 정도의 규모인 MAN(Metropolitan Area Network), 세계 규모의 WAN(Wide Area Network)으로 나뉜다. LAN 근거리 통신망을 의미하며 좁은 공간에서 운영되며 전송 속도가 빠르고 혼잡하지 않다. MAN 대도시 지역 네트워크를 나타내며 넓은 지역에서 운영된다. 전송 속도는 평균이고 LAN보다는 더 많이 혼잡하다. WAN 광역 네트워크를 의미하며 국가 또는 대륙 같은 더 넓은 지역에서 운영된다. 전송 속도는 낮으며 MAN보다 더 혼잡하다. 네트워크 성능 분석 명령어 네트워크 병목 현상의 주된 원인들은 다음과 같다. 네트워크 대역폭 네트워크 ..
네트워크란? 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다. 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장비를 말하고 링크란 유선 또는 무선을 말한다. 좋은 네트워크는 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적고 좋은 보안을 갖춘 네트워크이다. 처리량과 지연 시간 처리량(throughput)이란 링크를 통해 전달되는 단위 시간당 데이터양을 말한다. 단위는 bps(bits per second)이고 초당 전송 또는 수신되는 비트 수를 의미한다. 처리량은 트래픽, 네트워크 장치 간 대역폭, 네트워크 에러, 장치의 하드웨어 스펙에 영향을 받는다. 지연 시간(latency)이란 요청이 처리되는 시간을 말하며 어떤 메시지가 두 장치 사이..
프로그래밍 패러다임(Programming Paradigm)이란? 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론이다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 상호 작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각할 수 있게 해준다. 여러 패러다임을 지원하는 언어로는 C++, 파이썬, 자바스크립트가 있으며 자바의 경우 jdk 1.8 이전은 객체지향 프로그래밍을 지원하고 이후부터 함수형 프로그래밍 패러다임을 지원하기 위해 람다식, 생성자 레퍼런스, 메서드 레퍼런스를 도입했고 선언형 프로그래밍을 위해 스트림(Stream)과 같은 표준 API 등도 추가됐다. 프로그래밍 패러다임은 크게 선언형, 명령형으로 나누..
객체지향 프로그래밍(OOP, Object-Oriented Programming)이란? 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식을 말한다. 설계에 많은 시간이 소요되며 처리 속도가 다른 프로그래밍 패러다임에 비해 상대적으로 느리다. 객체지향 프로그래밍의 특징 추상화 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것을 의미한다. 캡슐화 객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것을 의미한다. 상속성 상위 클래스의 특성을 하위 클래스가 이어받아 재사용하거나 추가, 확장하는 것을 의미한다. 다형성 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것을 의미한다. 오버로딩과 오버라이딩 오버로딩 (Ov..
선언형 프로그래밍(Declarative Programming)이란? 무엇을 풀어내는가에 집중하는 패러다임이며, "프로그램은 함수로 이루어진 것이다."라는 명제가 담겨 있는 패러다임이다. 함수형 프로그래밍(Functional Programming)이란? 선언형 패러다임의 일종으로 '순수 함수'들을 블록 처럼 쌓아 로직을 구현하고, '고차 함수'를 통해 재사용성을 높인 프로그래밍 패러다임이다. 자바스크립트는 객체지향 프로그래밍보다 함수형 프로그래밍 방식이 선호된다. 순수 함수 출력이 입력에만 의존하는 것을 의미한다. const pure = (a, b) => { return a + b } pure 함수는 들어오는 매개변수 a, b에만 영향을 받는다. 만약 a, b가 아닌 다른 전역 변수 등이 출력에 영향을 준..
MVC 패턴(MVC Pattern)이란? Model(모델), View(뷰), Controller(컨트롤러)로 이루어진 패턴이다. 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다. MVC 패턴의 장단점 장점 재사용성과 확장성이 용이하다. 단점 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해진다. MVP 패턴(MVP Pattern)이란? MVC 패턴으로부터 파생되었으며 MVC의 C가 Presenter(프레젠터)로 바뀐 패턴이다. 뷰와 프레젠터는 일대일 관계이기 때문에 MVC 패턴보다 더 강한 결합을 지닌다고 볼 수 있다. MVVM 패턴(MVVM Pattern)이란? MVC의 C가 View Model(뷰 모델)로 바뀐 패턴이다. 뷰 모델..
반복자 패턴(Iterator Pattern)이란? 반복자를 사용하여 컬렉션의 요소들에 접근하는 패턴이다. 순회할 수 있는 여러 가지 자료구조와 상관 없이 반복자라는 하나의 인터페이스로 순회가 가능하다. 노출 모듈 패턴(Revealing Module Pattern)이란? 즉시 실행 함수를 통해 private, public과 같은 접근 제어자를 만드는 패턴이다. 자바스크립트의 경우 private, public 같은 접근 제어자가 존재하지 않기 때문에 노츌 모듈 패턴을 통해 private와 public을 구현하기도 한다. Reference http://www.yes24.com/Product/Goods/108887922
- Total
- Today
- Yesterday
- 연관매핑
- 정렬병합조인
- 선언형 프로그래밍
- 캐시매핑
- 직접매핑
- 디자인 패턴
- 자바
- 보이스코드정규형
- 스레드
- 프로세스와 스레드
- 네트워크
- 프로세스 컴파일
- 프로그래밍
- 세컨더리인덱스
- java
- 메모리 계층
- 프로세스
- 함수형 프로그래밍
- 스프링 WebFlux
- 네트워크 기초
- 클러스터형인덱스
- 직접연관매핑
- Design Pattern
- 스프링 R2DBC
- 인덱스최적화
- 프로그래밍 패러다임
- 중첩루프조인
- 대수확장성
- 코틀린
- 불연속할당
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |