본문 바로가기

분류 전체보기149

DocumentFragment를 이용한 JavaScript 성능 최적화 자바스크립트의 DOM 객체는 연산을 수행할 때마다 DOM tree라는 자료구조에 접근해야 하기 때문에 자바스크립트의 성능을 저하시키는 주된 요인 중 하나이다. 따라서, 자바스크립트의 성능을 최적화하기 위해서는 DOM 객체 접근을 최소화하도록 코드를 작성해야 한다. [그림 1] DOM tree의 구조 직관적으로, id가 list인 DOM 객체 내의 한 요소에 접근하여 해당 객체에 div 태그를 추가하는 코드를 작성하면 아래의 [코드 1]과 같이 작성할 것이다. 12345678910function addElements() { var target = document.getElementById('list'); for (var i = 0; i 2016. 4. 4.
ChartJS Content: chart libraryLanguage: JavascriptOfficial home page: http://www.chartjs.org/Download link: https://github.com/nnnick/Chart.jsDownload file: none 2016. 3. 13.
2016년 1~2월 프로그래밍 언어 순위 및 순위표별 특징 TIOBETIOBE Programming Language Ranking은 전 세계의 프로그래머, 프로그래밍 강좌, 프로그래밍 그룹 수와 Google, Bing, Yahoo, Wikipedia, Amazon, YouTube와 같은 검색 엔진을 통해 검색되는 프로그래밍 언어의 종류를 분석하여 프로그래밍 언어 순위를 결정한다. 프로그래머, 프로그래밍 강좌, 프로그래밍 그룹 수를 순위에 반영하기 때문에 현재 주류를 이루고 있고, 프로그래밍 입문자가 가장 먼저 접하는 C/C++, Java와 같은 전통적인 프로그래밍 언어의 순위가 높게 랭크되는 경향이 있다. [2016년 2월 TIOBE 프로그래밍 언어 순위, 출처 : TIOBE] RedMonkRedMonk Programming Language Ranking은 Gi.. 2016. 2. 23.
[golang] - 함수 선언과 함수의 기본적인 특징 C/C++, Java 등의 언어처럼 Go 언어에서도 함수 선언 및 호출이 가능하다. 그러나 Go 언어에서는 C/C++, Java 처럼 매개변수의 존재 유무로 함수와 변수를 구별하는 것이 아니라, func 키워드를 이용하여 함수 선언을 나타낸다. 또한, 함수의 리턴 타입은 매개변수 뒤에 명시한다. 따라서, Go 언어에서는 'func' '함수명' '(매개변수)' '리턴 타입'의 형태로 함수를 선언한다. 아래의 소스 코드는 add라는 함수를 정의하여 main에서 호출하는 예제이다. package main import "fmt" func add(x int, y int) int { return x + y } func main() { fmt.Println(add(55, 11)) } 함수의 리턴 타입을 매개 변수 뒤.. 2016. 2. 22.
[golang] - import 키워드 Go 언어에서는 개발에 필요한 수학 연산, 입출력 등의 기능과 각종 라이브러리를 패키지의 형태로 제공한다. 이러한 패키지를 프로그램 개발에 이용하기 위해서는 C/C++ 에서와 같이 import 키워드를 이용한다. import 키워드는 import "패키지 이름" 형태로 이용한다. 아래의 소스 코드는 입출력 패키지인 fmt를 이용하여 "Hello World!"를 출력하는 Go 언어 소스 코드이다. package main import "fmt" func main() { fmt.Println("Hello World!") } Go 언어에서는 fmt 패키지 이외에도 math, zip, json 등의 다양한 패키지를 제공하고 있으며, Go 언어에서 제공하는 패키지 목록과 구현 사항은 이 문서에 정리되어 있다. 아래.. 2016. 2. 22.
[머신 러닝] - 인공신경망 (Artificial Neural Network, ANN)과 역전파 (Backpropagation) Algorithm Artificial neural network (ANN)는 딥 러닝의 가장 핵심적인 기술로써, 신경 세포인 neuron을 추상화한 artificial neuron으로 구성된 네트워크이다. ANN은 일반적으로 어떠한 형태의 function이든 근사할 수 있는 universal function approximator로도 알려져 있다. 이 글에서는 ANN을 구성하는 가장 작은 요소인 artificial neuron부터 multi-layer ANN과 이를 학습시키기 위한 algorithm에 대해 서술한다. 1. Neuron과 artificial neuronNeuron은 생물체의 신경계를 이루는 신경 세포를 말하며, artificial neuron은 생물체의 neuron을 구성하는 dendrite, soma, a.. 2016. 2. 21.
[OpenMP, C/C++] - OpenMP 환경설정 OpenMP는 'OpenMP Architecture Review Board'라는 비영리 단체가 개발 및 표준화를 진행하고 있는 병렬 프로그래밍 표준이다. OpenMP Architecture Review Board에 참여하는 주요 구성원으로는 Microsoft, AMD, HP, IBM, Intel, Oracle 등이 있다. OpenMP의 초기 버전은 Fortran 용으로 개발되었으며, 이후 C/C++ 버전이 개발되었다. 먼저, Windows 환경에서 C/C++ 언어를 기반으로 OpenMP를 이용하는 방법을 설명한다. OpenMP를 이용하기 위해서는 Microsoft Visual Studio 2005 버전 이상, 또는 Intel 컴파일러 8.0버전 이상의 툴을 설치해야 한다. 이 글에서는 Microsoft .. 2016. 2. 21.
XMLBuilder.java Content: XML builder Language: Java Official home page: none Download link: none Download file: 2016. 2. 19.
Java에서 문자열을 XML 파일로 변환하기 이 글에서는 Java를 이용하여 문자열을 XML 파일로 변환하는 방법에 대해 서술한다. 아래의 [코드 1]에 구현된 XMLBuilder.buildXML 객체에 정의된 buildXML 메소드는 "XML 파일 이름"과 "소스 문자열"을 인자로 받아서 프로젝트 폴더에 "XML 파일 이름.xml"을 생성한다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import java.io.File;import java.io.IOException;import java.io.StringReader;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.Do.. 2016. 2. 19.
공공데이터를 이용한 어플리케이션 개발 2014년 상반기 4억 2천만원의 매출액을 달성한 굿닥과 2015년 다음카카오가 626억에 인수한 김기사는 모두 공공데이터를 활용한 어플리케이션이다. 각각의 어플리케이션은 정부에서 제공하는 위탁병원 위치정보, 한국도로공사 교통정보 등의 공공데이터를 이용한 것으로 알려져있다. 이렇듯 어플리케이션 개발자에게 공공데이터는 활용가치가 무궁무진한 또 다른 자원이다. 정부에서 제공하는 공공데이터를 이용하기 위해서는 몇 가지 회원가입과 인증이 필요한데, 이 글에서는 공공데이터를 어플리케이션 개발에 이용하기 위한 방법을 소개한다. 1. 공공데이터포털(https://www.data.go.kr)에 접속한다. 2. 공공데이터포털의 안내에 따라 회원가입을 진행한다. 3. 이용하고자 하는 공공데이터를 검색한다. 4. 활용신청을.. 2016. 2. 17.
[머신러닝] - 단층 퍼셉트론(Single-layer Perceptron) 1. 개요 퍼셉트론은 1957년 코넬 항공 연구소(Cornell Aeronautical Lab)의 프랑크 로젠블라트(Frank Rosenblatt)에 의해 고안된 인공신경망이다. 로젠블라트에 의해 제안된 것은 가장 간단한 형태의 단층 퍼셉트론(single-layer perceptron)으로 입력 벡터를 두 부류로 구분하는 선형분류기이다. 2. 용어 정의 임계치(threshold): 어떠한 값이 활성화되기 위한 최소값을 임계치라고 한다. 가중치(weight): 퍼셉트론의 학습 목표는 학습 벡터를 두 부류로 선형 분류하기 위한 선형 경계를 찾는 것이다. 가중치는 이러한 선형 경계의 방향성 또는 형태를 나타내는 값이다. 바이어스(bias): 선형 경계의 절편을 나타내는 값으로써, 직선의 경우는 $y$절편을 나.. 2016. 2. 15.
[golang] - 데이터 타입과 변수 선언 Go 언어에서는 전통적인 컴파일 언어에서 구문의 끝을 나타내는 세미콜론(;)을 생략한다. 세미콜론은 한 줄에 여러 구문을 작성할 때, 구문을 구분하기 위한 구분자로 사용된다. 1. 데이터 타입 Go 언어에서는 불, 바이트, 포인터, 정수, 실수(부동소수점), 복소수, 룬, 문자열 총 7개의 데이터 타입을 지원한다. 정수 타입은 부호가 없는 정수와 부호가 있는 정수를 포함하며, 실수 타입은 IEEE-754 정의를 따른다. char 타입의 배열로 문자열을 표현하는 C/C++와는 다르게, Go 언어에서는 string 키워드로 문자열 데이터 타입을 선언할 수 있다. 자료형 저장범위 설명 uint8 0 ~ 255 부호 없는 8비트 정수형 uint16 0 ~ 65,535 부호 없는 16비트 정수형 unit32 0 .. 2016. 2. 14.