제 11 회공개 SW 개발자대회결과보고서 참가팀개요 구분 세부내용 팀명 TSTL 총인원 ( 1 명 ) 팀구성성명소속부서 / 학과직위 / 학년 팀장남정호아이지넷개발실대리급 부문 학생 일반 참가 지원 분야 학습용 SW 모바일 SW 클라우드 SW 빅데이터 SW 사물인터넷 S

Similar documents
Microsoft PowerPoint - Introduction to Google Guava.pptx

Microsoft PowerPoint - Lect07.pptx

[Brochure] KOR_TunA

07 자바의 다양한 클래스.key

슬라이드 1

PowerPoint Presentation

C# Programming Guide - Types

1

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

서현수

Spring Boot/JDBC JdbcTemplate/CRUD 예제

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

강창훈

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

초보자를 위한 자바 2 21일 완성 - 최신개정판

김기남_ATDC2016_160620_[키노트].key

2002년 2학기 자료구조

대규모 자바스크립트 웹어플리케이션개발하기 with BackboneJS and RequireJS 넷스루개발 2 팀이병주

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

PCServerMgmt7

Egretia_White_Paper_KR_V1.1.pages

gnu-lee-oop-kor-lec11-1-chap15

SW

1 SW

1

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack

DE1-SoC Board

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

슬라이드 1

PowerPoint Presentation

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

ETL_project_best_practice1.ppt

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

쉽게 풀어쓴 C 프로그래밍


Microsoft PowerPoint - 30.ppt [호환 모드]

[Brochure] KOR_LENA WAS_

Dialog Box 실행파일을 Web에 포함시키는 방법

MAX+plus II Getting Started - 무작정따라하기

라우터

슬라이드 1

슬라이드 1

Interstage5 SOAP서비스 설정 가이드

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

감각형 증강현실을 이용한

Slide 1

JVM 메모리구조

Google Maps Android API v2

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

untitled

2009년도 한국멀티미디어학회 춘계학술발표대회 논문집 12권1호 1. 서론 게임을 개발하는 과정에서 게임 엔진은 자동차의 엔진과 같은 역할이다. 자동차의 가치를 평가하는 요소 중에 어떤 엔진을 적용 했는가는 자동차를 평가하는데 중요하다. 게임도 게임 개발 기술 중 엔진

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

PowerPoint 프레젠테이션

Portal_9iAS.ppt [읽기 전용]

PowerPoint 프레젠테이션

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

소프트웨어개발방법론

Microsoft Word - KSR2014S042

Service-Oriented Architecture Copyright Tmax Soft 2005

Chapter_02-3_NativeApp

RHEV 2.2 인증서 만료 확인 및 갱신

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

2Q SWG Teleweb Business Plan & 1Q Recovery Plan April 2, 2003

분산처리 프레임워크를 활용한대용량 영상 고속분석 시스템

11강-힙정렬.ppt

슬라이드 1

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

chap 5: Trees

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

PowerPoint 프레젠테이션

consulting

chap x: G입력

SchoolNet튜토리얼.PDF

초보자를 위한 C++

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

MVVM 패턴의 이해

<4D F736F F F696E74202D2031C1D6C2F72D31C2F7BDC32028B0ADC0C7C0DAB7E D20C7C1B7CEB1D7B7A1B9D6BEF0BEEE20B0FAB8F1BCD2B

Microsoft PowerPoint - PL_03-04.pptx

<C0DAB7E120C7D5BABB2E687770>

15_3oracle

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Secure Programming Lecture1 : Introduction

TTA Journal No.157_서체변경.indd

슬라이드 1

DocsPin_Korean.pages

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

Microsoft Word - 김완석.doc

PowerPoint Template

10주차.key

Chap 6: Graphs

ESP1ºÎ-04

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

Short Presentation Title

제목

Microsoft PowerPoint - Chapter_03-1_DevEnv.pptx

Joseph Hwang, IBM Rational Software

Transcription:

제 11 회공개 SW 개발자대회결과보고서 참가팀개요 구분 세부내용 팀명 TSTL 총인원 ( 1 명 ) 팀구성성명소속부서 / 학과직위 / 학년 팀장남정호아이지넷개발실대리급 부문 학생 일반 참가 지원 분야 학습용 SW 모바일 SW 클라우드 SW 빅데이터 SW 사물인터넷 SW 응용 SW 보안 SW 기타 SW 출품작결과보고서 출품작명 TSTL (TypeScript-STL) 프로그램등록 URL https://github.com/samchon/tstl TypeScript 의 STL (Standard Template Library) 구현체 출품작소개 ( 요약 ) - Containers: 컬렉션프레임워크 - Iterators: 이터레이터패턴 - Algorithms: 알고리즘함수들 - Functors: 유틸리티객체들 TSTL (TypeScript-STL) 은, C++ 표준화위원회 (C++ Standard Committee) 가정의한, 표준템플릿라이브러리 (Standard Template Library) 를 TypeScript 에구현한오픈소스프로젝트입니다. 무분별한하드코딩과무질서한자료구조사용에지친당신, 오늘부터 TSTL 하십시오. C++ 계열언어들만의전유물이었던체계화된자료구조, 제네릭 & 함수형프로그래밍, 이젠웹 ( 또는 NodeJS) 에서도가능합니다.

1. 개발배경및목적 저는알고리즘개발자입니다. 저는알고리즘을구현할때, Script 언어로빠르게 Prototype 을만들어보고, 차후 C++ 로최적화하는방법을선호합니다. 아래는저의단골개발프로세스 ( 스타일 ) 입니다. - Fast Development by JavaScript o Prototyping o Simulation in data level - Proof & Visualize by HTML o Production o Demonstration with visualization o High-level Simulation - Optimization by Migration to C++ o Migration Consider efficiency Partial or Full migration o Integration with TS/HTML 그리고이렇게알고리즘을개발하면서, 느꼈던두가지의불편사항들로인해 TSTL 을개발하게됩니다. 1.1. JS 는기저라이브러리가너무부실하더라 JS 는기저라이브러리가너무나도부실합니다. 제공되는 Containers 는달랑 Array 와 Object (dynamic object) 뿐이며, 알고리즘을구현하기위한기본제공함수들도너무적습니다. 또한, 유틸리티객체들도너무나도단조로우며알고리즘의경우와마찬가지로기본으로제공되는 features 가너무적습니다. STL 을 TypeScript 에구현해놓으면 JS 에서도, 다채로운라이브러리를사용할수있게됩니다. 단순라이브러리도아니고 C++ 표준화위원회가십수년에걸쳐고민하고또고민하여정립한표준라이브러리입니다. - Containers & Iterators - Algorithms - Functors

1.2. Migration 이너무번겁더라 저는앞서언급한바와같이, Script 언어 (JS) 로빠르게 Prototype 을만들어보고, 차후 C++ 로최적화하는방법을선호합니다. 하지만, Prototyping 을끝내고, JS 로작성한코드를 C++ 로마이그레이션을하는과정은언제나지루하고고단합니다. 특히 JS 와 C++ 은기저라이브러리레벨에서인터페이스가서로상이하니, 이게더더욱불편하고고단한작업이아니었나싶습니다. 만일 JS 와 C++ 이기저라이브러리수준에서인터페이스가같다면, 동일한자료구조와동일한패턴을지닌다면얼마나편리할까? 그런생각에서제작하게되었습니다 ; TSTL. 2. 개발환경및개발언어 - 개발환경 o 설계도구 : Visio o 코딩도구 : Visual Studio Code o 배포장소 : GitHub, NPM Modules https://github.com/samchon/tstl https://npmjs.com/tstl - 개발언어 : TypeScript - 매뉴얼 o Class Diagram: http://samchon.github.io/tstl/design/class_diagram.pdf o API Documents: http://samchon.github.io/tstl/api/ o Guide Documents: https://github.com/samchon/tstl/wiki

3. 시스템구성및아키텍처 TSTL 의모듈구성은아래와같습니다. - Containers & Iterators o C++ 의 Collection Framework o 다양한 Containers 와 o 정규화된 Iterator Pattern 을제공함 - Algorithms o 알고리즘함수들 o sorting, mathematics, partitions 등 o Iterator Pattern + Functional Programming - Functors o 기타유틸리티객체들

4. 프로젝트주요기능 4.1. Containers Java 의 Collection Framework 격에해당하는모듈로써, 다채로운 Containers 와정규화된 Iterator Pattern 을제공합니다. 개인적으로 STL 의 Containers 가 Java Collection Framework 보다다음세가지관점에서더우수하다고생각합니다. - 일관성 - 적절성 - 확장성현재 TSTL 에서제공되는컨테이너는크게세가지 (Linear, Adaptor & Associative) 카테고리로나눌수있으며, 그것들의종류는아래와같습니다. - Linear Containers o o o vector list deque

- Adaptor Containers o stack o queue o priority_queue - Associative Containers o Atomic Containers set Set multiset TreeMultiSet unordered_set HashSet unordered_multiset HashMultiSet o Dictionaries map TreeMap multimap TreeMultiMap unordered_map HashMap unordered_multimap HashMultiMap 4.2. Algorithms 다양한알고리즘함수들의모음입니다. STL 의알고리즘함수들은일관된패턴을지니며 ( 일관적이며 ), 용이성과확장성이매우우수합니다. 또한, STL 에서제공되는알고리즘함수들은크게다음두가지특성을지닙니다. - Iterator Pattern - Functional Programming 제공되는알고리즘함수들의카테고리는아래와같습니다. - iterations - modifiers - sortings - heaps - binary_searches - partitions - union_sets - mathmatics

4.3. Functors 다양한유틸리티성객체들의모음으로써, 다르게표현하면기타항목이라할수있겠습니다. 제공되는 Feature 들은아래와같습니다. - exceptions o 예외사항객체들 o JS 에는예외사항을발생시키는객체가 Error 타입뿐이니, 이를보완코자구현함 - functional o binary functions o hash functions - utility - (fake) thread o Asynchronous Critical Section Objects 비동기이벤트간임계영역제어 JS 나름의스레드를흉내내어구현할수있다. o 제공되는클래스들은다음과같다. condition_variable mutex timed_mutex shared_mutex shared_timed_mutex experiments::semaphore STL 이개정될때마다이 Functors 모듈의규모가기하급수적으로커지는경향이있지만, TSTL 역시 STL 의개정에발맞춰, 신규기능들을계속추가해나갈것입니다. 현재차후 STL 개정을통해추가될것으로예상되는기능들은아래와같습니다. - File System (17) - Standard UI Library (20) - Standard Network Library (20)

5. 기대효과및활용분야 5.1. 기대효과 1) JavaScript 에풍부한라이브러리제공 JS 는기저라이브러리가너무나도부실합니다. 제공되는 Containers 는달랑 Array 와 Object (dynamic object) 뿐이며, 알고리즘을구현하기위한기본제공함수들도너무적습니다. 또한, 유틸리티객체들도너무나도단조로우며알고리즘의경우와마찬가지로기본으로제공되는 features 가너무적습니다. TSTL 을사용하면 JS 에서도, 다채로운라이브러리를사용할수있습니다. 단순라이브러리도아니고 C++ 표준화위원회가십수년에걸쳐고민하고또고민하여정립한표준라이브러리입니다. 일관성과적절성, 그리고확장성까지두루두루갖춘표준템플릿라이브러리를 JS 에서사용하십시오. - Containers & Iterators - Algorithms - Functors 2) C++ 과의연동효율증대 TSTL 을사용함으로써, JS 와 C++ 은기저수준에서같은인터페이스를지니게됩니다. 이제부터 JS 와 C++ 은 STL 의이름아래에동일한자료구조, 동일한인터페이스의컨테이너와라이브러리함수들을지니게됩니다. TS C++ 로마이그레이션을행하던, 혹은 TS 와 C++ 시스템을각기연동하던, 여러분은설계수준에보다더집중할수있게됩니다.

5.2. 활용사례 TSTL 은지난 3 년간다양한상용프로젝트들에적용하면서안정화를시키고, 꾸준히개선해왔습니다. 때문에 TSTL 의품질에대해서는매우자신있고, 스스로도자부심을느끼고있습니다. TSTL. 안심하고쓰십시오. - Nam-Tree o 간이 A.I. 모형 o 고차원적인라이브러리의필요 o Web 시각화 & C++ Migration - Samchon Simulation o 주식시뮬레이션 & 시스템트레이딩 o 고차원적인라이브러리의필요 o Web 시각화 & C++ Integration - Samchon Framework o OON (Object Oriented Network) Framework o Integration with C++ - 3D Bin Packing o 공간배치최적화 o Web 을통한시각화 (3D Modeling) o C++ Migration - Folding o 접지단가최적화 o Containers & Algorithms 의필요 - Button Finder o 이미지검색기 o Integration with C++ 프론트 : JS + HTML 분산처리 : NodeJS 이미지프로세싱 : C++ - Kiosk Editor o Cloud Project o 고차원의 Container 와 o Asynchronous Critical Section 필요

- Auto HL o Cloud 장비관리 o Kiosk Editor 와동일한이유 - Package Retriever o 보험검색엔진 o Collection Framework 와 Algorithms 및 o Asynchronous Critical Section 의필요