Posts


Acme Editor for Windows

먼저 상기의 화면이 Acme 에디터이다!! 사전에 설명할것이 너무나 많은 에디터중 하나이며, 필자가 가장 좋아하는(?) 에디터이기도 하다. 데니스리치, 켄톰슨, 롭

Setup Blog with Hugo with Github Pages

Github에서 제공하는 Pages기능을 이용해서, 블로그를 무료(??)로 이용하는 방법에 대해서 설명합니다. 최초 설치 github.com 에서 컨텐츠를 생성할 계정을 생

Snorkel Embedded Webserver with C Language

Snorkel Embedded Web Compile on x64 Linux Snorkel Library는 32bit 이므로, 필수 라이브러리 설치 yum install glibc.i686 glibc-devel.i686 libzip.i686 libzip-devel.i686 gcc -m32 -lsnorkel32 -lrt -lm -lnsl -lpthread src.c 로 컴파일!! Snorkel Example #include <stdio.h> #include <stdlib.h> #include <snorkel.h> void syntax(char *pszProg) { fprintf(stderr, "Syntax Error:\n"); fprintf(stderr, "%s [-i <index_file_directory>] [-p

Install BMC Control-M on Redhat Enterprise Linux

Install BMC Control-M Minimal 설치(개발툴 모두 설치: 추가적으로 Java Developement는 설치) /etc/hosts 파일 생성(반드시!!) groupadd dba useradd -g dba -s /bin/csh ctmuser useradd -g dba -s /bin/csh emuser chmod 755 /home/ctmuser chmod 755 /home/emuser /BMC/setup.sh

Running HUGO Server with GitHub

HUGO Server Mode Start & Option cd /root/Hugo/xenostream nohup hugo server --baseURL=http://192.168.0.10/ --port=8088 --bind=192.168.0.10 & (192.168.0.10서버에서 실행중이며, 포트는 8088로 실행하며 기본 URL은 http://192.168.0.10/ 작동) HUGO Post Add /xenostream/contents/post 디렉토리에서

Make Bootable USB with diskpart

diskpart로 부팅 USB만드는 순서 윈도우에서는 모든 디스크 관련 작업을 내장된 diskpart 툴로 처리할 수 있습니다. 과거 fdisk + format툴의 합체본이라고 생각

Go Oracle Driver Setting - Linux

Go Oracle Driver Setting How To Go - Lang : Oracle Access used by go-oci8 on Linux Official URL #1. Instant Client 설치 instantclient-basic-linux.x64-11.2.0.4.0.zip instantclient-sdk-linux.x64-11.2.0.4.0.zip unzip 으로 모두 압축해제 ( tar xvpf ) #2. root권한으로 심볼릭 링크 생성 cd /home/pjkwon/Go/instantclient_11_2 ln -s libclntsh.so.11.1 libclntsh.so #3. root권한으로

Go Web Programming: Perface

Go언어로 웹 프로그램 만들기 Perface Go언어를 학습함에 있어서 주제를 하나 정한 후, 여러가지 기술을 사용해서 학습하는 방법이 가장 효율적이라 생각되며, 이에, 웹 응

Go Web Programming: [01/00] Intro

Intro 먼저, Go언어의 세계로 오신걸 환영합니다!! 21세기 C언어라고 불리는 Go언어는 빠른 컴파일 시간과, 실행파일 내에 가베지 컬렉터를 내장하고 있으며, 동

Go Web Programming: [01/01] Installation

Installation 3가지 설치 방법 개발자의 컴퓨터에 Go언어를 위한 개발환경을 구축하는 방법에는 여러가지가 존재합니다. 그중 대표적인 3가지 방법에 알아보도록 하겠습니다.


Go Web Programming: [01/03] GO Command

Go Command Go 명령어 Go 언어는 명령어로만 모든 작업을 할 수 있는 환경을 제공 합니다. 바로, go 명령어로 수행합니다. 명령창에서 go 명령을 입력하면 다음과 같습니다. &l



Go Web Programming: [02/00] Basic Knowledge

Basic Knowledge Go 언어는 C언어를 매우 닮은 시스템 프로그래밍이 가능한 컴파일형 언어 입니다. 컴파일 속도가 C언어보다 빠르며, 언어에서 사용하는 키워드도 겨우 25개뿐 입

Go Web Programming: [02/01] Hello, Go!!

Hello, Go!! Go언어를 이용해서 응용 프로그램을 작성하기 전에 먼저 기본이되는 프로그램으로 시작 하도록 하겠습니다. 집을 짓기 전에 건물의 기초를 알아야 하듯이, 프로그

Go Web Programming: [02/02] Go Foundation

Go Foundation 이 장에서는 변수, 상수, 기본타입과 Go 프로그램의 여러가지 기본적인 기법에 대해서 소개 합니다. 변수 Go 언어에서 변수는 여러가지 방법으로 선언될 수 있습니다


Go Web Programming: [02/04] Struct

Struct Go 언어는 C나 다른 언어와 마찬가지로 서로 다른 형태의 속성이나 필드의 컨테이너로 새로운 형태를 선언 할 수 있습니다. 예를 들어, 개인의 엔티티를 나타내는 person 형을

Go Web Programming: [02/05] Object Oriented

Object Oriented 앞의 두 장에서 함수와 struct를 설명 했습니다. 함수를 struct의 필드로 처리할 수 있습니다. 이번장에서는 함수의 또 다른 형태에 대해서 설명 합니다

Go Web Programming: [02/06] Interface

Interface interface Go언어에는 아주 섬세하게 설계된 interface라는 것이 있습니다. 이 기능은 객체지향 프로그래밍과 효율적인 프로그램 구성시에 매우 편리하게 사용 됩

Go Web Programming: [02/07] Concurrency

Concurrency Go언어를 21세기의 C언어라는 사람도 있습니다. Go 언어는 설계가 간단하고, 21세기 환경에서 가장 중요한 것은 멀티 스레드이기 때문 입니다. Go는 언어차


Go Web Programming: [03/00] Web Foundation

Web Foundation Web 프로그래밍의 기초를 공부하는 것이 이 책을 읽는 주요 목적입니다. 사실 Go언어를 사용해서 Web 응용 프로그램을 프로그래밍하는 것이 책의 목적입니다. Go언

Go Web Programming: [03/01] Web Working Principles

Web working Principles 일반적으로 웹페이지를 방문할 경우 웹 브라우저를 열고 해당 주소를 입력한 후 엔터키를 누르면, 당신이 보고 싶은 콘텐츠가 브라우저 화면에 표시 됩니다. 이러한

Go Web Programming: [03/02] Build a Simple Web Server

Build a Simple Web Server 앞 절에서 Web은 http 프로토콜에 기반한 서비스라고 설명 했습니다. Go 언어에서는 net/http 패키지를 통해서 웹에 대한 전반적인 기능을 제공하고 있습니다. http 패

Go Web Programming: [03/03] How Go Works with Web

How Go Works with Web 앞 절에서는 Go 언어를 이용해서 Web 서비스를 작성하는 방법에 대해서 설명했습니다. 바로 net/http 패키지를 사용하면 쉽고 간편하게 작성 할 수 있을을 알게 되었습니

Go Web Programming: [03/04] Get into http Package

Get Into http Package 앞 절에서 Go 언어에서 Web 작업환경을 제공하는 것과 개발 흐름에 대해서 설명했습니다. 이 절에서는 http 패키지에 대해서 좀더 알아보도록 하겠습니다. net/http 패키지

Go Web Programming: [03/05] Summary

Summary 이 장에서는 HTTP 프로토콜과 DNS 이름 확인 과정 어떻게 처리하고, go언어를 이용해서 간단한 web server를 구현 하는 방법에 대해서 설명했습니다. net/http 패키지의 소

Go Web Programming: [04/00] HTTP Form

HTTP Form Form은 Web 응용 프로그램을 작성할 때 가장 자주 사용되는 도구 입니다. Form을 통해서 편리하게 사용자가 서버와 데이터를 교환 할 수 있습니다. 만약 Web 개발

Go Web Programming: [04/01] Process FORM Inputs

Process form inputs 먼저 사용자가 입력한 양식 전송의 예를 살펴 보겠습니다. 다음과 같은 양식의 내용이 있다고 가정 합니다. 다음의 내용을 login.gtpl파일로 생성합니

Go Web Programming: [04/02] Validation of Inputs

Validation of inputs 사용자가 입력한 어떤 정보도 믿지말라!! Web 개발시에는 상기와 같은 원칙이 있습니다. 따라서 사용자가 입력한 정보를 검증하고 필터링하는 것은 아주 중요한 작

Go Web Programming: [04/03] Cross Site Scripting

Cross Site Scripting 현재의 홈페이지는 대량의 동적컨텐츠를 포함해서 사용자의 반응에 민감하게 처리할 수 있도록 되어 있습니다. 예전에 비하면 아주 복잡하게 처리되고 있는 실정입

Sublime Text3 + GoSublime Installation

Sublime Text3 3101 Portable ctrl +` (Tilde)터미널 오픈 패키지컨트롤 설치 import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h))

Vim Go - Linux

Vim Go Plugin Installation Guide vim-go 기능 syntax highlighting gocode를 이용한 자동완성 gofmt를 이용한 자동 포멧팅 godoc를 이용한 go 언어 도움말 GoRUN, GoBuild등의 명령을 이용해서

about

권필진의 개인적인 블로그 입니다. 본 블로그는 별도의 메뉴가 없습니다. 먼저 사이트 상단의 아이콘으로 조작합니다. 먼저 상단 그림에서 3개의 아이콘이 존재합니다

Go by Example: Perface

Go by Example - Kor Edition Go언어는 프로그램을 단순하게 작성하고, 빠르고, 안정적인 오픈소스 프로그래밍 언어입니다. Go by Example(영문)은 예제를 통해서 빠르

Go by Example: [01] Hello World

Hello World 첫 번째예제는 화면에 Hello world메세지를 출력하는 예제입니다. 다음은 코드입니다… package main import "fmt" func main() { fmt.Println("Hello world") } 프로그램을 실행하려면, 상기

Go by Example: [02] Values

Values Go언어는 다양한 데이터값을 다룰수 있습니다. 문자열, 정수형, 실수형, 불 등을 지원합니다. 몇가지 예를 통해서 알아보겠습니다. package main import "fmt" func main() { fmt.Println("go" + "lang") //

Go by Example: [03] Variables

Variables Go언어에서는 반드시 명시적으로 변수를 선언해서 사용해야 합니다. 또한 선언만 하고 사용하지 않는다면 컴파일 에러가 발생합니다. 번거로울 수 있겠지만, 이것

Go by Example: [04] Constant

Constants Go언어에서는 문자열, 불, 숫자에 대하여 상수형 변수를 지원합니다. 상수는 선언시에 초기화 해야하며, 한번 값을 지정하면 값을 변경할 수 없는 변수를 의미합니

Go by Example: [05] For

For for 키워드는 Go언어에서 제공하는 유일한 반복문입니다. 3가지 형식으로 사용할 수 있습니다. package main import "fmt" func main() { i := 1 for i <= 3 { // [1] fmt.Println(i) i = i + 1 } for j := 7;

Go by Example: [06] If / Else

If / Else Go에서는 다른 언어와 같은 방법으로, if문과 else문으로 분기를 수행할 수 있습니다. 하지만, 다른언어와는 향상된 방법으로 사용할 수 있습니다. 예

Go by Example: [07] Switch

Switch switch문장은 여러개의 조건 분기를 처리할 경우에 사용하면, 읽기도 편하고 이해하기도 쉽습니다. package main import "fmt" import "time" func main() { i := 2 fmt.Print("write ", i, " as ") switch i { // [1] case

Go by Example: [08] Arrays

Arrays Go언어에서 배열은 크기가 정해진 동일한 타입의 변수의 집합니다. package main import "fmt" func main() { var a [5]int // [1] fmt.Println("emp:", a) a[4] = 100 // [2] fmt.Println("set:", a) fmt.Println("get:", a[4]) fmt.Println("len:", len(a)) // [3] b := [5]int{1, 2, 3, 4, 5} // [4] fmt.Println("dcl:", b) var twoD[2][3]int

Go by Example: [09] Slices

Slices Go언어에서는 슬라이스라는 특수항 데이터 타입이 존재합니다. 배열과 유사하지만 좀더 유연하게 데이터를 처리할 수 있습니다. package main import "fmt" fucn main() { s := make([]string, 3) // [1] fmt.Println("emp:",

Go by Example: [10] Maps

Maps 맵(Map)은 Go언어에서 기본적으로 제공하는 연관된 데이터를 다룰 수 있는 자료구조입니다. 이 자료형은 다른언어에서는 해쉬(hash)값이나 사전(D

Go by Example: [11] Range

Range range키워드는 복합데이터구조(배열,슬라이스, 맵등)의 데이터를 나열할때 유용하게 사용할 수 있는 키워드입니다. 이미 배운 이러한 데이터구조의 항목

Go by Example: [12] Functions

Functions 함수는 Go언어의 핵심중의 핵심 입니다. 몇가지 예제를 통해서 간단하게 함수에 대해서 알아보도록 하겠습니다. package main import "fmt" func plus(a int, b int) int { // [1] return a + b // [2] } func

Go by Example: [13] Multiple Return Values

Multiple Return Values Go언어에서는 다수개의 결과값을 리턴 할 수 있는 기능을 기본적으로 제공합니다. 이 기능이 Go언어를 특징짓는 기능 중 하나이기도 합니다. 예를들면, 특정

Go by Example: [14] Variadic Functions

Variadic Functions 가변함수라는 것은, 함수를 호출할때 불특정 다수개의 인자를 전달할 수 있는 기능입니다. 대표적인 것이, 지금까지 무심코 사용해왔던, fmt.Printl

Go by Example: [15] Closures

Closures Go언어는 익명함수를 지원하며, 이것을 클로저(Closures)라고 부릅니다. 익명함수는 함수 내부에서 이름없는 1회용 함수를 임시로 만들어서 사용하

Go by Example: [16] Recursion

Recursion Go언어는 재귀함수(Recursive Function)를 지원 합니다. 고전적인 예제인 팩토리얼값을 구하는 예제로 설명하겠습니다. package main import "fmt" func fact(n int)

Go by Example: [17] Pointers

Pointers Go언어는 c/c++언어와 같이 포인터를 언어차원에서 지원합니다. 프로그램에서 값이 저장된 실제 주소값(Reference`)을 전달할 수 있으며, 함

Go by Example: [18] Structs

Structs Go언어에서는 필드의 집합체인 구조체(struct)를 지원합니다. 레코드 단위로 데이들을 한개의 단위로 다뤄서 처리할 경우 아주 유용한 자료 구조입니다.

Go by Example: [19] Methods

Methods Go언어에서는 객체지향 프로그래밍언어에서 지원하는 메소드를 구조체와 함께 사용해서 처리할 수 있도록 지원합니다. package main import "fmt" type rect struct { width, height int } func (r *rect) area() int {

Go by Example: [20] Interfaces

Interfaces 인터페이스(Interfaces)는 메소드 집합에 붙여진 이름이라고 생각하시면 됩니다. package main import "fmt" import "math" type geometry interface { // [1] area() float64 perim() float64 } type rect struct { // [2] width, height float64 } type

Go by Example: [21] Errors

Errors Go언어에서는 에러또한 명시적으로 사용하는 하나의 형태입니다. 암시적으로 함수의 반환값으로 포함되기도 합니다. Java / Ruby와 같은 언어의 예외와 C언어

Go by Example: [22] GoRoutines

Goroutines goroutine은 경량적인 실행 스레드이며, Go언어차원에서 지원하는 병렬실행 기능입니다. package main import "fmt" func f(from string) { for i := 0; i < 3; i++ { fmt.Println(from, ":", i) } } func main() {

Go by Example: [23] Channels

Channels 채널(Channels)은 동시 실행중인 두개의 고루틴사이에 연결된 통신용 파이프라고 생각하시면 됩니다. 특정값을 채널을 통해서 동시 실행중인 고루틴간에

Go by Example: [24] Channel Buffering

Channel Buffering 기본적으로 채널은 버퍼를 사용하지 않습니다. (unbuffered) 이말은 특정값을 채널에 보낸 후(chan <-), 정상적으로 수신할때만(<- chan) 다른 메세지를 전송할 수 있

Go by Example: [25] Channel Synchronization

Channel Synchronization 고루틴들 간에 동기화를 채널을 통해서 제어할 수 있습니다. 다음예제는 특정 고루틴이 작업을 완료할때까지 대기하는 방법에 대해서 설명합니다. package main import "fmt" import "time" func

Go by Example: [26] Channel Directions

Channel Directions 함수의 인자로 채널을 전달할때는, 채널로부터 메세지를 받는 용도인지 보내는 용도인지를 정할 수 있습니다. 이것은 프로그램의 용도를 분명하게하고 보다 안전하

Go by Example: [27] Select

Select Go언어에는 채널이라는 고루틴간의 통신수단이 제공됩니다. select문은 이러한 채널에서 어떤채널에 어떠한 메세지가 오면 처리할 수 있는 채널전용 분기문

Go by Example: [28] Timeouts

Timeouts Timeouts은 외부자원에 접근하거나 특정시간을 대기할 경우에 중요하게 사용됩니다. Go언어에서 Timeouts은 select와 channel


Go by Example: [30] Closing Channels

Closing Channels Closing Channels은 더이상 채널을 이용한 작업을 하지 않는다는 표시를 하는 것입니다. 이 기능은 채널 수신자에서 더이상 채널통신을 하지 못하게 할때 유용하게

Go by Example: [31] Range Over Channels

Range Over Channels for 및 range 장에서 기본적인 데이터 구조에서 요소를 반복적으로 나열해서 처리하는 것을 배웠었습니다. 이제는 같은 기술을 채널에서 사용하는 방법에 대해서 설명하

Go by Example: [32] Timers

Timers 프로그램을 작성하다 보면, 간혹 특정 시간 이후에 Go Code가 실행되길 원할때가 있습니다. 또는, 특정시간 대기 후에 계속적으로 실행할 경우도 존재합니다. G

Go by Example: [33] Tickers

Tickers Timer는 특정시간 뒤에 무엇인가를 처리할때 사용하는 자원입니다. 이에반해 Tickers는 특정 시간차를 두고 계속적으로 무엇인가를 처리할때 사용하는

Go by Example: [34] Worker Pools

Worker Pools 다음의 예제는, channel과 goroutine을 이용해서 Worker Pool을 구현하는 예제 입니다. package main import "time" import "fmt" func worker(id int, jobs <-chan int, results chan<- int) { // [1] for j := range jobs

Block Country with iptables

iptables로 국가별로 차단 Linux iptables 환경에서 다음의 스크립트를 생성후 실행 아프카니스탄과 중퀴벌레를 차단하고 있습니다. /root 디렉토리에서 하기의 내용을 Bl

+++ tags = [“tools”] title = “Xeno Markdown Editor “ date = “2017-09-19T13:18:23+09:00” +++ XME [ Xeno Markdown Editor ] 먼저 마크다운(Markdown)에 대한 사항은 건너띄고 시작하겠습니다. http://plan9.tistory.com/14 <== 마크다운 문법 가이드를 참고 하시기 바랍니다. 간단히, 일반텍스트에 HTML과 같은 최소한의 서식을 적용할 수 있는 문서화 시스템을 마크다운 문서라고 부르며, 의미는 없지만 확장자 .md 나 .markdown 으로 끝나는 문서를 뜻합니다. 마크다운으로 문서를 작성 할려면 메모장이나 전문 편집기등으로 작성할 수 있습니다. 하지만 결론적으로는 일반 텍스트형태로 저장된 마크다운 문서를 웹브라우저에서 서식이 적용된 상태로 보여주어야할 시스템이 필요합니다.