MVC Model-View-controller 패턴MVC(Model-View-Controller)는 소프트웨어 공학에서 사용하는 아키텍처 패턴 중 하나다. 패턴의 목적은 사용자 인터페이스로부터 비지니스 로직을 분리하는 것이다. 소프트웨어를 구성하는 컴포넌트를 분리하겠다는 의미다. 소프트웨어 컴포넌트를 분리하면(혹은 느슨하게 연결되도록 하면) 다른 구성요소...
Monwiki - couchdb 변환 작업 기록 정리Moniwiki를 couchdb기반으로 재 작성하는 과정을 기록으로 남긴다. 기반으로 바꾸려는 이유는 다음과 같다.Moniwiki가 가지는 문제의 핵심은 모든 정보를 파일기반으로 관리하는데 있다. 물론 파일기반이라서 가지는 장점도 있다. 데이터의 관리를 운영체제에 맡기는 거라서, 다른 소프트웨어를 설치...
kdevelopKDE 환경에서 개발 밑 배포되고 있는 통합개발환경(IDE)다. kdevelop는 그자체로 몇개의 서브 프로젝트를 가지고 있을 정도로 규모가 큰 독립적인 프로젝트다. CVS(kdevelop는 이미 개발 편리성과 강력함을 인정받고 있으며 emacs, eclipse와 함께 리눅스 최고의 개발툴로 사용되고 있다. 1. 1. ...
revel - Tutorial 이미 을 만든 것으로 가정한다. 우분투 리눅스 14.04 go 1.3.1 # go get github.com/revel/revel# go get github.com/revel/cmd/revelrevel cli 툴이 설치된다.# revel help~~ revel! http~usageThe commands are new cre...
XMLXML(Extensible Markup Language)은 데이터 구조의 저장과 직렬화를 위해서 사용하는 텍스트 기반의 마크업 언어다. XML은 문서의 내용을 나타내는데 강점을 보이지만, 인터넷 등에서 임의의 자료구조를 정의하기 위한 용도로도 널리 사용하고 있다.XML은 복잡한 데이터 구조를 저장하고 재현하기 위해서 널리 사용하고 있는 데이터 저장 ...
Go Template많은 언어들이 문서를 다른 형태로 변환하는 기능을 가지고 있다. Go는 컨텐츠에 포함된 특정 문자열을 변환하거나 삽입하는 템플릿 매커니즘을 제공한다. 템플릿은 특히 처리 결과를 HTML 문서로 표시하기 위해서 널리 사용한다. 많은 컨텐츠들은 고정된 부분과 동적인 부분으로 구성이 된다. 이름, 전화번호, E-mail, 주소 같은 것들은 ...
보안인터넷은 군사적인 공격에 견딜 수 있는 시스템을 구축하는 걸 목표로 설계를 했다. 이때의 공격은 외부에서 이루어지는 것으로 내부 네트워크는 신뢰 관계에 있는 것으로 가정을 했다. 그 시절의 인터넷은 어차피 허가 받은 조직(혹은 사람)만 접속할 수 있었으니, 내부 네트워크에서 발생할 수 있는 공격은 크게 신경쓸 필요가 없었다. 하지만 시대가 바뀌어서 인...
Go HTTPWWW(World wide web)은 수억명의 유저가 접근하는 (그리고 역시 수억의 컴퓨터가 연결하는) 가장 큰 분산 시스템다. 그리고 그 중 가장 성공한 서비스는 HTTP 기반의 웹 서비스일 것이다. 웹 브라우저라고 부르는 웹 클라이언트 프로그램을 이용해서 서핑이라는 행위를 하는 정보의 바다 말이다. 현재 HTTP(Hyper-Text Tra...
앞서 다루었던 HTTP 챕터의 연장이다. 이번 장에서는 go 언어를 이용해서 완전히 작동하는 웹 서버를 만들 것이다. 원문에서는 중국어 flash card(단어장)를 서비스하는 예제를 제공하고 있는데, 예제로 하기에는 좀 직관적이지 않다는 생각이 들었다. 그래서 단어장 서비스 대신에, 유저 정보를 관리하는 "유저 정보 데이터 베이스" 서비스를 만들기로 했다...
429 POSTS HERE
MVC Model-View-controller 패턴
MVC Model-View-controller 패턴MVC(Model-View-Controller)는 소프트웨어 공학에서 사용하는 아키텍처 패턴 중 하나다. 패턴의 목적은 사용자 인터페이스로부터 비지니스 로직을 분리하는 것이다. 소프트웨어를 구성하는 컴포넌트를 분리하겠다는 의미다. 소프트웨어 컴포넌트를 분리하면(혹은 느슨하게 연결되도록 하면) 다른 구성요소...
Monwiki - couchdb 변환 작업 기록 정리
Monwiki - couchdb 변환 작업 기록 정리Moniwiki를 couchdb기반으로 재 작성하는 과정을 기록으로 남긴다. 기반으로 바꾸려는 이유는 다음과 같다.Moniwiki가 가지는 문제의 핵심은 모든 정보를 파일기반으로 관리하는데 있다. 물론 파일기반이라서 가지는 장점도 있다. 데이터의 관리를 운영체제에 맡기는 거라서, 다른 소프트웨어를 설치...
libpcap
libpcaplibpcap는 패킷 캡춰를 위한 함수를 포함하는 라이브러리다. 이 라이브러리를 이용하면 RAW Socket를 이용하는 것보다 쉽게 패킷캡춰를 필요로 하는 프로그램을 개발할 수 있다. ...
kdevelop
kdevelopKDE 환경에서 개발 밑 배포되고 있는 통합개발환경(IDE)다. kdevelop는 그자체로 몇개의 서브 프로젝트를 가지고 있을 정도로 규모가 큰 독립적인 프로젝트다. CVS(kdevelop는 이미 개발 편리성과 강력함을 인정받고 있으며 emacs, eclipse와 함께 리눅스 최고의 개발툴로 사용되고 있다. 1. 1. ...
revel - Tutorial
revel - Tutorial 이미 을 만든 것으로 가정한다. 우분투 리눅스 14.04 go 1.3.1 # go get github.com/revel/revel# go get github.com/revel/cmd/revelrevel cli 툴이 설치된다.# revel help~~ revel! http~usageThe commands are new cre...
XML
XMLXML(Extensible Markup Language)은 데이터 구조의 저장과 직렬화를 위해서 사용하는 텍스트 기반의 마크업 언어다. XML은 문서의 내용을 나타내는데 강점을 보이지만, 인터넷 등에서 임의의 자료구조를 정의하기 위한 용도로도 널리 사용하고 있다.XML은 복잡한 데이터 구조를 저장하고 재현하기 위해서 널리 사용하고 있는 데이터 저장 ...
Go Template
Go Template많은 언어들이 문서를 다른 형태로 변환하는 기능을 가지고 있다. Go는 컨텐츠에 포함된 특정 문자열을 변환하거나 삽입하는 템플릿 매커니즘을 제공한다. 템플릿은 특히 처리 결과를 HTML 문서로 표시하기 위해서 널리 사용한다. 많은 컨텐츠들은 고정된 부분과 동적인 부분으로 구성이 된다. 이름, 전화번호, E-mail, 주소 같은 것들은 ...
보안
보안인터넷은 군사적인 공격에 견딜 수 있는 시스템을 구축하는 걸 목표로 설계를 했다. 이때의 공격은 외부에서 이루어지는 것으로 내부 네트워크는 신뢰 관계에 있는 것으로 가정을 했다. 그 시절의 인터넷은 어차피 허가 받은 조직(혹은 사람)만 접속할 수 있었으니, 내부 네트워크에서 발생할 수 있는 공격은 크게 신경쓸 필요가 없었다. 하지만 시대가 바뀌어서 인...
Go HTTP
Go HTTPWWW(World wide web)은 수억명의 유저가 접근하는 (그리고 역시 수억의 컴퓨터가 연결하는) 가장 큰 분산 시스템다. 그리고 그 중 가장 성공한 서비스는 HTTP 기반의 웹 서비스일 것이다. 웹 브라우저라고 부르는 웹 클라이언트 프로그램을 이용해서 서핑이라는 행위를 하는 정보의 바다 말이다. 현재 HTTP(Hyper-Text Tra...
Go를 이용한 Web 애플리케이션 개발
앞서 다루었던 HTTP 챕터의 연장이다. 이번 장에서는 go 언어를 이용해서 완전히 작동하는 웹 서버를 만들 것이다. 원문에서는 중국어 flash card(단어장)를 서비스하는 예제를 제공하고 있는데, 예제로 하기에는 좀 직관적이지 않다는 생각이 들었다. 그래서 단어장 서비스 대신에, 유저 정보를 관리하는 "유저 정보 데이터 베이스" 서비스를 만들기로 했다...