웹개발 14

알고리즘 설계 기법(Algorithm Design Paradigm)

알고리즘은 알고리즘 설계 기법을 기반으로 만들어진다. 퀵정렬과 병합정렬은 구체적인 정렬 방식은 다르지만, 큰 틀에서 정렬 대상 데이터를 둘로 나눠 각각 정렬한 후 그 두 데이터를 연결한다는 점에서 공통점을 가지고 있다. 내용도 다르고 성능도 다르지만 동일한 구조적 기반으로서 알고리즘 설계 기법을 공유하고 있다는 것이다. (퀵정렬과 병합정렬은 '분할정복'이라는 설계 기법을 기반으로 한다) 이처럼 알고리즘 설계기법은 특정 알고리즘이 만들어지는 기반이 된다. 즉, 알고리즘 설계 기법이란 '알고리즘을 어떤 식으로 만들 수 있는가?'에 대한 이야기인 것이다. 알고리즘 설계 기법은 새로운 알고리즘을 만드는데 도움을 준다. 세상에는 훌륭한 알고리즘들이 많이 알려져 있다. 문제를 만나면 그 알고리즘들을 사용해서 해결하..

웹개발 2021.01.26

불대수 / 부울대수

부울 대수(Boolean algebra) 또는 불 대수는 조지 불(George Boole)이 창안한 논리 대수입니다. 대수(代數)의 사전적 의미는 "숫자 대신에 그 숫자를 대표하는 문자를 써서 수학 법칙을 간명하게 나타내는 수학의 한 분야"로 부울 대수는 논리 문제로 기호로 설명하는 것이라 할 수 있습니다. 부울 대수는 값의 범위가 참(True)과 거짓(False)으로 한정되는 대수의 한 분야로 컴퓨터에서 부울 대수가 기본적으로 언급되는 이유는 바로 컴퓨터의 논리 회로가 1, 0만의 디지털 신호를 다루기 때문입니다. 부울 대수는 회로 뿐만아니라 소프트웨어와도 깊은 연관성을 가지는데 프로그래밍 언어에서 조건을 기술하는 if , for, while 등의 문장에서는 부울 대수와 연관성을 가지는 논리 연산이 수..

웹개발 2021.01.21

DMA

개념메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움 없이 DMA컨트롤러를 이용하여 데이터를 직접 메모리로 전송하는 입출력 방식 I. CPU의 도움없이 I/O 장치가 직접 메모리에 접근하는 방식, DMA의 개요 가. Direct Memory Access의 정의 메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움 없이 DMA컨트롤러를 이용하여 데이터를 직접 메모리로 전송하는 입출력 방식 CPU는 상태, 제어정보만을 교환하고 데이터 전송은 I/O와 메모리간에 직접 교환 DMA컨트롤러가 버스를 제어하고 I/O와 메모리가 정보를 직접 전송 중앙처리장치에게 PIO작업을 할당하지 않고 DMA라는 특수 프로세서에게 위임하여 메모리와 직접 데이터 전송할 수 있도록 하는 방법 나. ..

웹개발 2021.01.20

WebService

WebService란? 웹 서비스(Web Service)는 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다. 웹 서비스는 서비스 지향적 분산 컴퓨팅 기술의 일종으로 SOAP, WSDL, UDDI 등의 주요 표준 기술로 이루어진다. 웹 서비스의 모든 메시징에는 주로 XML이 사용된다. ▶ Web Service 주요 구성요소 -SOAP- SOAP (Simple Object Access Protocol) : XML과 HTTP등을 기본으로 하여 다른 컴퓨터에 있는 데이터나 서비스를 호출하기 위한 통신규약(Protocol)이다. SOAP을 지원하는 서버가 대중화가 되면서 대부분의 SOAP 서버들을 웹에서 Access가 가능해졌으며 다양한 프로그램언어에서도 쉽게 실행할 수..

웹개발 2021.01.15

트랜잭션(Transaction)이란?

트랜잭션(Transaction 이하 트랜잭션)이란? 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 간단하게 말해서 아래의 질의어(SQL)를 이용하여 데이터베이스를 접근 하는 것을 의미한다. SELECT INSERT DELETE UPDATE 착각하지 말아야 할 것은, 작업의 단위는 질의어 한문장이 아니라는 점이다. 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다. 게시판을 예로 들어보자. 게시판 사용자는 게시글을 작성하고, 올리기 버튼을 누른다. 그 후에 다시 게시판에 돌아왔을때, 게시판은 자신의 글이 포함된 업데이트된 게시판을 보게 된다. 이러한 상황을 데이터베이스 작업으로 옮기면, 사용자가 올리기 버튼을 눌렀을 시, Insert 문을 사용하여 사..

웹개발 2021.01.11

중앙처리장치 CPU

CPU 레지스터 : 중앙처리장치(CPU) 내에 위치한 기억장치로 많은 수의 레지스터를 CPU내에 포함시키는 것은 어렵기 때문에 특수 목적용 레지스터들과 몇몇 일반 목적용 레지스터만 존재한다. 대표적인 레지스터의 종류 : PC (Program Counter) : 다음 인출(Fetch) 될 명령어의 주소를 가지고 있는 레지스터 AC (Accumulator) : 연산 결과 데이터를 일시적으로 저장하는 레지스터 IR (Instruction Register) : 가장 최근에 인출된 명령어(현재 실행 중인 명령어)가 저장되어 있는 레지스터 SR (Status Register) : 현재 CPU 의 상태를 가지고 있는 레지스터 MAR (Memory Address Register) : PC 에 저장된 명령어 주소가 사용..

웹개발 2021.01.07

스터디 : 컴퓨터 구조

컴퓨터 시스템은 개념적으로는 하드웨어와 소프트웨어, 그리고 펌웨어의 결합으로 이루어진다. 하드웨어(Hardware) 하드웨어는 인간으로 비유하자면 눈, 코, 입, 뼈, 장기, 혈관과 같은 신체 기관과 같으며 가정용 PC의 각종 본체 부품(하드디스크, CPU, 그래픽카드 등등)과 모니터, 키보드 등이 모두 하드웨어에 속한다. 이는 컴퓨터의 기능을 수행하기 위해 전기적인 신호로 구성된 정보, 즉 데이터를 이동하거나 처리하는 물리적인 실체를 의미한다. 하드웨어의 품질은 컴퓨터의 정보처리 능력을 결정한다. (CPU의 클락이 몇 Hz이냐, 코어가 몇 개냐, RAM이 몇 GB냐, 하드디스크의 용량이 몇 TB냐 등등) 당연하지만 여기서 컴퓨터의 뇌에 해당하는 부분인 중앙처리장치(CPU)의 성능이 좋을수록 사람으로 치..

웹개발 2021.01.06

스터디 : node JS 기초

node JS란? 브라우저 밖에서 자바스크립트 코드를 실행할 수 있다. 크롬에서 사용하는 v8엔진을 사용한다. 이벤트 기반의 비동기 I/O 프레임워크 Common JS를 구현한 모듈 시스템 이벤트 기반의 비동기 I/O 프레임워크? --> 이벤트 기반의 프레임워크 이벤트: 클라이언트가 인입되면 이벤트가 발생함. 메인잡은 이벤트 루프에서 처리할 수 있지만 무거운 잡의 경우 다른 워커(worker)가 처리해야함. 메인이 되는 이벤트 루프가 하나의 thread 로만 구성됭어 있기 때문에 single thread 라고 함. --> 비동기? 요청이 들어오자마자 하나씩 진행하는걸 동기 프레임워크라함. (java / php) 노드의 경우 순차적으로 진행하긴 하지만 single thread 이지만 worker가 또 다른..

웹개발 2020.12.22

스프링 웹개발 용어정리:: Spring Interceptor

Interceptor란 컨트롤러에 들어오는 요청 (HttpRequest)와 컨트롤러의 응답(HttpResponse)를 가로채는 역할을 한다. 인터셉터는 관리자만 접근할 수 있는 관리자 페이지에 접근하기 전에 관리자 인증을 하는 용도로 활용된다. 물론 servlet의 앞, 뒤에서 HttpRequest와 HttpResponse를 가로채는 Filter와 그 역할이 유사한데, Filter와 interceptor는 분명히 다르다. Filter와 Interceptor 의 차이 호출시점 Filter는 DispatcherServlet 이 실행되기 전 Interceptor는 DistpatcherServlet이 실행된 후 설정위치 Filter는 web.xml Interceptor는 spring-servlet.xml 구현 ..

웹개발 2020.10.24