목록전체 글 (90)
Post-IT
언어는 스트링들을 원소로 갖는 집합이다. 유한 언어의 경우에는 그 집합에 속한 모든 스트링을 열거함으로써 쉽게 표현 할 수 있지만, 무한 언어는 그 언어의 유한 표현을 찾아야 한다. 이러한 유한 표현의 방식으론 다음과 같이 세가지가 존재한다. 조건제시법 문법 인식기 이 중에서도 문법을 다루고자 한다. 문법은 다음과 같이 네가지 요소로 정의 할 수 있다. G = (Vn, Vt, P, S) Vn : nonterminal 심벌의 유한 집합 Vt : terminal 심벌의 유한 집합 P : 생성 규칙(production rule)의 유한집합 S : Vn에 속하는 심벌로서 다른 nonterminal들과 구별하여 시작 심벌(start symbol) 또는 문장 심벌(sentence symbol)이라 한다 처음에는 "..
컴파일러에 관해 공부하기 위해서는 우선, 컴퓨터 분야에서의 언어를 알아야한다. 이번에 공부할 형식언어의 정의는 다음과 같다. 형식 언어란, 특정한 법칙들에 따라 적절하게 구성된 문자열들의 집합을 말한다. 언어에 관한 이론을 체계적으로 전개하기 위해서는 잘 정의된 언어를 필요로한다. 이와 같이 잘 정의된 언어를 형식언어(formal language)라고 부르며 보통 문장의 집합으로 정의된다. 형식언어에 대해 알기 전에 언어의 기본 단위 및 용어부터 정의해볼 필요가 있다. 알파벳(Alphabet) : 알파벳이란 문장을 이루는 기본적인 심벌로 심벌들의 유한집합을 얘기한다. 기본적인 내용이지만 예제를 통해서 살펴보자. 다음과 같이 집합 T1, T2, T3가 존재한다고 할때, 세 집합 모두 알파벳이라 칭할 수 있..
우리는 컴퓨터를 사용할 때 Window, Mac, Linux와 같은 운영체제를 사용한다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 한다. 운영체제의 목적은 사용자가 프로그램을 편리하고 효율적으로 수행할 수 있는 환경을 제공하는 데 있다. 운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어이다. 하드웨어는 컴퓨터 시스템의 정확한 동작을 보장하고 프로그램이 시스템의 정상적인 동작을 방해하지 않도록 하는 적합한 메커니즘 제공을 목표로하고 있다. 운영체제의 사전적 정의는 다음과 같다.운영체제(OS)란 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 집합을 말한다.위 사진은 컴퓨터 시스템의 구조이다. 컴퓨..
컴파일러는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말한다. 다음은 컴파일러에 대한 정의이다. 쉽게 설명하자면 우리가 아는 C언어와 같은 High-Level Language를 실행 프로그램으로 만들기 위해 어셈블리언어, 기계어와 같은 Low-Level Language로 바꾸는 프로그램을 말한다. 컴파일러의 동작 방식을 살펴보면 다음과 같다. 1. 어휘 분석 : Lexical Analyzer 어휘 분석은 프로그래밍언어를 처리하는 최초의 단계로 lexer, Tokenizer, Scanner 라고 불린다. 어휘 분석 단계에서는 문장을 토큰 단위로 쪼개는 일을 한다. token : 문법적으로 의미를 갖는 최소 단위 2. 구문 분석 : Syntax Analyze..
웹 크롤링 혹은 컴파일러를 공부해본 사람이라면 파싱이라는 단어를 한번 쯤은 접해봤을 것이다. 언어학에서 구문 분석 / 파싱은 문장을 구성 성분으로 분해하고, 그들 사이의 관계를 분석하는 것을 말한다. 컴퓨터 과학에서도 비슷한 의미로 사용되고 있다. 파싱(Parsing)이란 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 파스 트리를 만드는 과정을 말한다. 즉, 파싱은 문서 혹은 코드를 여러 성분으로 나누는 것을 말합니다. 대표적인 예시로 소스코드를 컴파일하는 과정에서 해당 언어의 문법을 지키면서 작성하였는지 검사하는 과정 역시 파싱이라는 과정을 거칩니다. 파서(Paser)는 원시 프로그램의 명령문이나 온라인 명령문, HTML 문서 등에서 Markup Tag 등을 입력으로 받아들여서..
플랫폼이란? 플랫폼은 어플리케이션을 구동시키는 데 필요한 소프트웨어 환경으로 동일 플랫폼 내에서는 상호 호환이 가능하도록 만들어진 결합체를 의미한다. 플랫폼은 유형별로 크게 세가지로 분류된다. Single Side Platform : 제휴 관계를 통해 소비자와 공급자를 연결하는 형태 Two Side Platform : 두 그룹을 중개하고 모두에게 개방하는 형태 Multi Side Platform : 다양한 이해관계 그룹을 연결하여 중개하는 형태 1. 플랫폼 기능 / 성능 분석 플랫폼은 소프트웨어 개발과 운영비용을 감소시키고 생상성이 향상되도록 도와준다. 플랫폼의 기능의 정도를 분석할 필요가 있는데 분석하는 절차는 다음과 같다. 현행 플랫폼 자료 수집 : 현행 시스템 담당자 제시 자료와 인터뷰를 통해 자료..
시계열 데이터 시계열 데이터 베이스(Time Series Database)를 알아가기 위해서 먼저 시계열 데이터가 무엇인지 알아야 할 필요가 있다. 시계열 데이터는 시간에 따라 저장된 데이터를 말한다. 이러한 데이터들은 동일한 소스로부터 시간의 흐름에 따라 만들어진 데이터들로 구성되므로, 시간 경과에 따른 변화를 추적하는데 용이하다. 평소 정의하지 않았을 뿐이지, 사실 시계열 데이터는 우리 일상 생활에서 쉽게 찾아볼 수 있다. 아래와 같이 날씨만 하더라도 시계열 데이터라고 할 수 있다. 시계열 데이터 베이스 : Time Sereis Database 시계열 데이터 베이스는 이러한 데이터들을 처리하기 위해 고안된 데이터 베이스이다. 실제로 빅데이터, 인공지능의 발달과 함께 데이터 베이스에도 많은 관심이 쏟아..