Post by Category

.NET (8) C (1) C++ (32) Cloud (1) ETC (3) Network (6) Node.js (3) Visual Studio (6) etc (5) threading (5) 모임 (2) 번역 (12) 사례 (1)

.NET (8)

.NET Core 2.0 봄에 출시 예정

January 18, 2017

원문 2017년 봄에 출시 예정. .NET Core 플랫폼에 있어서 큰 변화가 있는 버전이다. 버전 2이 되는 것으로 .NET Core 능력을 크게 확대하기 때문이다. .NET Standard의 버전이 2.0 이된다. .NET Standard 2.0 에서는 2배 가까운 AP...

.NET Core용 이미지 라이브러리

June 2, 2017

.NET Core를 사용하여 애플리케이션을 개발할 때 개발자가 알아야 할 결점 하나는 영상 기반 API가 없는 것이다. 보급된 API 중의 하나로 훌륭한 System.Drawing 이 있지만 이것은 Windows 기반의 GDI+ 인터페이스에 의존하고 있다. .NET Core에서는 ...

C# - 꼬리 재귀 최적화

April 19, 2017

// 꼬리 재귀가 아니다 long SumNormal(long n) { if (n <= 0) return 0; return SumNormal(n - 1) + n; } // 꼬리 재귀 long SumTailCall(long n) { return SumTai...

NLog - Fluentd 노드로 로그를 보내는 방법

May 3, 2017

NuGet에서 아래 2개를 설치한다 NLog NLog.Targets.Fluentd Fluentd 노드로 로그를 보내기 위한 설정은 NLog.config에서 지정할 수 없으므로 코드 상에서 설정해야 한다. public class Configurator { // ...

NLog - 기존의 설정을 사용하면서 파일 패스만 동적으로 변경하기

April 28, 2017

NLog.config 설정을 사용하지만 파일 패스만 바꾸고 싶다. 파일 경로는 프로세스나 인스턴스 마다 변경하기를 바란다. 프로세스나 인스턴스가 항상 일정하다면 NLog.config에 필요한 수만큼의 설정을 추가하면 되지만, 파일 패스만 다르므로 비슷한 설정 코드를 늘리는 것은...

NLog - 동적으로 로그 파일 이름 설정하기

April 26, 2017

NLog는 동적으로 파일 이름을 설정할 수 있는 기능이 있다. 아래의 방법은 커스텀 플레이스 홀더를 설정하고, 그 플레이스 홀더에 임의의 텍스트를 설정하는 방법으로 파일 이름을 변경한다. NLog.config <?xml version="1.0" encoding="utf-8...

SignalR .NET Core - Realtime cross-platform open web communication

July 3, 2017

MS Build2017에서 발표된 SignalR .NET Core: Realtime cross-platform open web communication 의 간단 요약 ASP.NET Core에 맞추어서 재 작성하고, 재 설계 HTTP 이외에서도 이용(AMQP,MQTT,TC...

rasberry pi zero + C#으로 카메라 조작

June 14, 2017

nuget의 아래 모듈을 받는다. https://www.nuget.org/packages/Unosquare.Raspberry.IO/ GPIO 에 더해서 카메라 모듈도 조작할 수 있다. 이것을 사용하여 public static async Task SendImage() { v...

C (1)

C99의 sizeof와 가변길이 배열

April 12, 2017

C99 에서는 배열의 사이즈 지정에 변수를 사용할 수 있다. void test1( int n ) { int fixed_array[10]; int varlen_array[n]; printf( "sizeof(fixed_array)==%ld\n", sizeof(fixed_...

C++ (32)

Boost.Asio 공부하기

March 17, 2017

나는 2007년부터 Boost.Asio를 온라인 게임 서버 개발에 처음 사용하였다(업무에 사용하는 것을 말한다.그전에 공부는 했었다) 당시 주위의 게임 개발자를 통해서 생각외로 사용하는 곳이 꽤 있었다. 이 후 한국 및 해외의 유명 회사들도 C++ 네트워크 프로그래밍에 사용하고 ...

C++ - 6-tips-to-supercharge-c11-vector-performance

May 19, 2017

NHN Next의 학생이 C++ Advance 수업의 과제로 번역 정리한 것이다. 원문 슬라이드 쉐어

C++ - A simple C++11 Thread Pool implementation

May 25, 2017

NHN Next의 학생이 C++ Advance 수업의 과제로 번역 정리한 것이다. Github의 코드 위 코드를 설명한 문서

C++ - PPL 병렬 컨테이너와 Asynchronous Agents

May 23, 2017

NHN Next의 학생이 C++ Advance 수업의 과제로 번역 정리한 것이다. PPL 병렬 컨테이너 슬라이드 쉐어 Asynchronous Agents 슬라이드 쉐어

C++ - Recommendations to speed C++ builds in Visual Studio

May 22, 2017

NHN Next의 학생이 C++ Advance 수업의 과제로 번역 정리한 것이다. 원문 슬라이드 쉐어

C++ - State 패턴으로 CSV 파일을 읽자

June 9, 2017

NHN Next의 학생이 C++ Advance 수업의 과제로 번역 정리한 것이다. [원문] State 패턴으로 CSV 파일을 읽자 슬라이드쉐어

C++ - The Observable C++ library

June 8, 2017

NHN Next의 학생이 C++ Advance 수업의 과제로 번역 정리한 것이다. [원문] The Observable C++ library – implementing the observer pattern Observable C++ expressions – using the Obs...

C++ - 메모리 영역

May 29, 2017

메모리 영역에 대해서 5 종류의 메모리 영역 C++ 에서는 다른 특성을 갖는 5 종류의 메모리 영역이 존재한다. (※ 단 c++ 규격에는 스택이나 힙은 명시 하지 않고 Free-Store는 명시 하고 있다) Const Data 컴파일 시 값을 알 수 있는 데이터(예를 들면 sta...

C++ - 오픈 소스 라이브러리 A better date and time C++ library

May 18, 2017

NHN Next의 학생이 C++ Advance 수업의 과제로 정리한 것이다. 슬라이드 쉐어 예제 코드

C++11 - _Pragma 전처리 연산자

December 22, 2016

개요 C99 에서 도입된 전처리 연산자 이다. _Pragma 연산자는 매크로에서 처리 계 정의 기능을 사용하기위한 기능이다. 처리 계 정의 기능을 사용하기 위해 기존에는 #pragma 지시자를 사용하여 왔지만 이 기능은 매크로 내에서는 사용할 수 없다. #pragma 지시자를 매...

C++11 - alignas

April 1, 2017

개요 alignas()은 컴파일러에 대한 변수를 메모리 상의 특정 위치에 배치(배열) 하도록 요구하는 키워드이다. 예를 들면 4바이트 경계 위치에 배치할 경우 변수는 4의 배수 주소로 배치되고, 8바이트 경계 위치에 배치할 경우 변수는 8의 배수 주소로 배치된다. 문법 alig...

C++11 - alignof

April 1, 2017

개요 alignof()는 지정한 타입이 메모리의 어느 위치에 배치될지를(배치) 얻는 연산자이다. sizeof()와는 다르고 alignof()는 변수에는 사용할 수 없다. 예를 들면 타입 int가 4바이트 경계 위치로 배치되는 시스템이라면 alignof(int)은 4를 반환한다. ...

C++11 - boost::shared_ptr 에서 std::shared_ptr로 변환 하는 가장 간단한 방법

March 8, 2017

#include <iostream> // std::shared_ptr #include <memory> // boost::shared_ptr #include <boost/shared_ptr.hpp> auto main() -> int { ...

C++11 - long long 타입

December 26, 2016

개요 C99 호환을 위해 long long 정수 타입이 추가 되었다. long long 과 unsigned long long 타입은 64비트 이상의 값을 표현할 수 있는 것을 보증한다. long long 타입의 최대 값 매크로는 LLONG_MAX 이다. long long을 뜻하는...

C++11 - noexcept

February 27, 2017

noexcept 키워드 목적. 1) throw 키워드에 의한 예외 사양 대체. 함수가 어떤 예외를 던질 가능성이 있는지를 열거하는 것이 아니라 예외를 던질 가능성이 있는지 없는지만 지정한다. 예외를 던질 가능성이 있는 함수에는 noexcept(false)을 지정하고, 예외를 던질...

C++11 - std::get_time

February 6, 2017

개요 » get_time(tmb, fmt) 식을 사용하여 현재 입력 스트림에서 전달 받은 로컬 시간 값을 변환 형식 문자열에 맞추어 tm 오브젝트로 변환한다. 문법 template< class CharT > /*unspecified*/ get_time( s...

C++11 - std::put_time

February 3, 2017

개요 날짜 서식을 출력한다. 문법 template <class CharT> unspecified put_time(const struct tm* tmb, const CharT* fmt); tmb 은 유효한 tm 타입 오브젝트를 가리키는 포인터 f...

C++11 - type_info와 type_index

March 23, 2017

C++에서는 RTTI(Run Time Type Infomation/Identification)라고 불리는 기능이 있다. ( 타 언어의 리플렉션과 좀 비슷한데 기능은 훨씬 떨어짐 ^^;) std::type_info는 타입 정보를 표현하는 클래스이다. type_info 객체는 type...

C++11 - 문자열 리터럴과 wide 문자열 리터럴 결합

January 23, 2017

C99 호환을 위해서 만들어진 기능으로 문자열 리터럴과 wide 문자열 리터럴을 결합하면 wide 문자열로 결합한다. 문자열 리터럴인란 멀티바이트 문자열을 뜻하고, wide 문자열 리터럴은 유니코드 문자열을 뜻한다. C++11 이전에는 문자열 리터럴과 wide 문자열 리터럴 결합에...

C++11 - 블럭 범위를 가진 static 변수 초기화는 스레드 세이프 하다

February 14, 2017

개요 static 변수의 초기화가 완료할 때까지 다른 스레드는 초기화 처리 앞에서 대기한다. class singleton { public: static singleton& get_instance() { static singleton instance; // ...

C++11 - 생성자 상속(inheriting constructors)

January 9, 2017

개요 부모 클래스에서 정의한 생성자들을 자식 클래스에서 그대로 사용할 수 있는 편의 기능이다. 문법 자식 클래스에서 using 키워드를 사용하여 부모 클래스 이름과 부모 클래스의 생성자 이름을 :: 구분으로 호출한다. 자식 클래스는 복수의 부모 클래스를 상속한 경우에도...

C++11 - 예외 지정

March 2, 2017

C ++에서는 함수에 예외 지정이라는 것을 작성할 수 있다. 이것은 C++98에서 부터 있는 기능으로 throw (T1, T2, …)라는 문법으로 함수가 밖으로 던지는 예외를 지정하는 기능이다. // C++98/03 void f() throw( int, double ); ...

C++11 - 우측값 참조. 함수의 가인수는 좌측값 참조이다

July 7, 2017

#include<iostream> using namespace std; void foo2( string& s) { cout << "lvalue" << endl; }; void foo2( string&& s) { co...

C++11 - 인라인 이름 공간(inline namespace)

January 2, 2017

개요 이름 공간 내에 있는 기능을 투과해서 접근할 수 있는 기능이다. 즉 이름 공간(my_namespace) 안에 또 다른 이름 공간(features)을 inline로 선언하고 있으면 features에 정의된 기능을 my_namespace를 통해서 접근 할 수 있다. #incl...

C++11 - 최근접 짝수 반올림 std::nearbyint

January 12, 2017

개요 실수를 정수로 변환할 때 ceil()로 소수점 올림하거나, floor()로 소수점 버림을 한다. nearbyint는 정수로 변환할 실수의 가장 가까운 짝수로 올림 혹은 버림을 한다. 이러한 방식을 “bankers’rounding” 이라고 부른다 문법 cmath ...

C++14 - recursive_(timed_)mutex의 재귀 lock 상한 수

April 7, 2017

C++11 표준 라이브러리의 recursive_mutex, recursive_timed_mutex 클래스는 동일 스레드에서의 재귀 lock 획득 횟수의 상한은 미정의로(unspecified) 되어 있다. 단 상한 회수를 넘는 try_lock 조작은 실패하고, lock 조작은 예외를...

C++14 - shared_(timed_)mutex가 지원하는 Reader 스레드 수

April 10, 2017

C++14 표준 라이브러리의 shared_timed_mutex 클래스는 적어도 10000 스레드 이상의 Reader 스레드에서의 공유 lock(shared lock) 동시 획득을 지원한다. 또 동시 획득 가능한 공유 lock 수 상한을 넘은 경우도 공유 lock을 획득 할 수 있을...

Win32API - CRITICAL_SECTION의 OwningThread

June 5, 2017

Windows Vista부터 CRITICAL_SECTION의 내부 구조가 바뀌었다고 한다. 이 중 눈여겨 볼 것은 CRITICAL_SECTION의 멤버 변수 중 OwningThread 인데 이 변수에는 CRITICAL_SECTION을 소유중인 스레드의 ThreadID가 설정된다....

std::codecvt_utf8로 wstring을 utf-8 문자열로 변환 하기

April 4, 2017

std::wstring을 utf-8 문자열로 변환 하는 방법은 아래와 같다. std::wstring wStr = L"우하하"; std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> utf8Conv; auto ...

tm 에서 time_t로 UTC로 변환 하는 함수

March 10, 2017

헤더 파일 time.h 혹은 헤더 파일 ctime 에서 time_t와 tm 구조체와의 변환을 하는 함수를 정리했다.   time_t→ tm 구조체 tm 구조체 → time_t 현지 시각 ...

멤버 변수에 대한 포인터를 이용하여 타입의 특성을 판정

April 21, 2017

멤버 변수에 대한 포인터라는 것은 우선, 예로서 단순히 정수를 래핑 한 클래스를 보자 class int_wrapper { public: int data; int_wrapper(int data) : data(data) {} }; 위 코드에서 int_wrapper::da...

클래스 멤버 함수 포인터 배열 사용하기

December 16, 2016

함수 포인터 관련 검색을 하면 C 버전이 많이 나오고, 배열 타입을 사용하는 경우는 별로 없어서 공유한다. (사실 최신 C++에서는 std::function을 사용하면 되기 때문에 이걸 사용하지 않아도 된다) 선언 bool(TEST::*m_pFunc[4])(const int, ...

Cloud (1)

Google Cloud Platform의 15개 서비스를 영구 무료 한도를 제공

March 17, 2017

구글은 2017년 3월 10일 Google Cloud Next 17의 3일째 기조 강연에서 15개 서비스의 영구 무료 쿼터를 발표. 영구 무료 한도 대상 서비스 이름과 월 제한은 다음과 같다(제품에 따라서는 아래 외에도 제한이 있다). Google Cloud Engine(...

ETC (3)

POCO를 이용한 C++ 네트워크 프로그래밍

June 29, 2017

e-book으로 나온 후 몇 주전에 종이 책으로 나왔습니다. yes24 POCO를 사용하면 C++로 네트워크 프로그래밍을 이전 보다 훨씬 쉽게 할 수 있으니 꼭 한번 공부 해보기를 추천합니다^^

ebook - POCO를 이용한 C++ 네트워크 프로그래밍

May 1, 2017

구입 며칠 전에 나왔습니다^^ NHN Next 에서 일하게 되면서 시간 여유가 생겨서 짧은 분량이지만 책을 집필 할 수 있었습니다. 책 내용은 제목 그대로 POCO 라이브러리 중 Net 부분의 라이브러리를 사용하여 네트워크 프로그래밍을 하는 방법을 설명하고 있습니다. 아직...

스터디 인원 모집 - Go로 게임 서버 만들기

July 21, 2017

프로그래밍 언어 Go로 게임 서버를 만들기 위해 필요한 기술과 경험을 서로 공유하기 위해 스터디를 시작하려고 합니다. 스터디를 만드는 큰 이유는 이 모임을 통해서 꾸준히 Go를 공부하고, 다른 사람들과 Go 관련 지식이나 경험을 공유하기 위해서 입니다. 아마 Go로 실제 일을...

Network (6)

Actor 프레임워크의 메시지 전달에서 사용하는 용어

July 14, 2017

at-most-once delivery는 메커니즘에 건네지는 각 메시지에 대해 해당 메시지가 0 번 또는 1 번 전달됨을 의미합니다. 보다 일반적인 용어로는 메시지가 손실 될 수 있음을 의미합니다. at-least-once(최소한 한 번 전달) 메커니즘에 전달 된...

C# - proto.actor 프레임워크

July 12, 2017

proto.actor Akka와 비슷한 프레임워크이다. Akka.NET의 개발자가 만든 것이다. Akka.NET 이 있는데 이것을 만든 이유는 Akka.NET은 처음부터 모든 것을 다 만들어서 점차 유지 보수가 힘들었다고 한다. proto.actor는 이미 검증 받은 라이브러리를...

NHN Next 게임서버 수업 실습용 채팅서버 소스 코드

April 17, 2017

NHN Next의 2016 ~ 2017년 게임서버 과정 수업에서 실습으로 만드는 채팅 서버 코드이다. Github Windows 플랫폼만 지원(Linux 지원 어렵지 않음) 64 비트 지원 C++ 로 구현 Visual Studio 2017 select 기반.동...

Windows에서 IOCP를 사용하는 경우의 설계에 관한 문제

July 10, 2017

MSDN에서… 개요 이 자료는 Windows NT IOCP(I/O Completion Port)의 입출력 모델에 대해서 이미 이해하고 관련된 API에 대한 자세한 지식이 있는 유저를 대상으로 하고 있다. IOCP에 대해서는 IOCP의 구현과, IOCP를 사용하기 위해서 필요한 A...

warning C4996 'inet_addr'

June 27, 2017

몇 년전에 만들어진 Winsock API를 사용한 코드를 최신 VC++로 빌드하면 아래와 같은 경고를 볼 수 있다. warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPREC...

잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback

February 19, 2017

C++ Korea와 함께하는 제3회 마이크로소프트 멜팅팟 세미나 에서 ‘잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback’ 라는 이름으로 했던 내 강연의 자료이다. 슬라이드쉐어 github github에는 문서와 예제 코드도 같이 ...

Node.js (3)

Debugging Node.js Performance Issues in Production

March 25, 2017

아래 강연의 내용의 일부를 정리 Debugging Node.js Performance Issues in Production 느리게 되는 이유 single thread CPU intensive code Slow I/O Event Loop saturation R...

Node 7.6 에서 async/await를 기본으로 지원

March 13, 2017

Node.js 7.6 이 출시 되었다. async/await 지원이 기본적으로 유효하게 되어 낮은 메모리 디바이스에서의 성능이 개선되었다. Node 7.6의 async/await 지원은 Chromium의 JavaScript 엔진인 V8를 버전 5.5로 업데이트한 데 따른 것이다....

네이티브 모듈의 ABI 호환성 문제 대처

April 5, 2017

2017년 3월 13일(미국)에 열렸던 ‘Node.js VM Summit’ 에서 Node의 네이티브 모듈의 ABI 호환성 문제에 대해서 회의를 하였다. 회의 동영상 Node의 네이티브 모듈 문제 Node의 네이티브 모듈은 C/C++로 만들었고 V8과 NAN API(Applicat...

Visual Studio (6)

VS2017 에 포함되어 있는 C++ 컴파일러 버전 매크로

March 20, 2017

VS2017 에 포함되어 있는 C++ 컴파일러의 버전 매크로는 _MSC_VER 1910 참고로 VS 2015는 1900. MSVC 런타임은 2015와 바이너리 호환. 그리고 VS 2017를 설치할 때 옵션 선택에 의해 VS 2015.3의 MSVC도 별도 추가할 수 ...

Visual Studio - VS2017의 성능 강화

July 24, 2017

프로젝트의 읽기를 경량화 하고, 로딩 시간을 단축: 100 종류등 많은 프로젝트가 포함 되어 있는 솔루션에서는 모든 파일이나 프로젝트가 동시에 사용되지 않는다. VS 2017에서는 모든 프로젝트를 읽기 전까지 기다리지 않고 편집과 디버깅을 시작할 수 있다. 확장 기능의...

Visual Studio - cpplint 사용하기

March 28, 2017

cpplint ? cpplint는 python으로 만든 C++ 소스 코드가 Google C++Style Guide를 지키고 있는지 검사하는 툴이다. cpplint 설치 python 2.7에서 pip로 설치한다. Visual Studio에 외부 툴로 cppl...

Visual Studio - 자주 사용하는 단축키

March 30, 2017

문자 검색/치환 Ctrl+F: 문자 검색 Ctrl+H:문자의 치환 직사각형 선택 Alt 키를 누른 상태에서 마우스로 원하는 직사각형 모양의 범위를 만든다. 자동 인덴트(indent) Ctrl+K, Ctrl+D: 파일 전체의 인덴트 조정 Ctrl+K, Ctrl...

Visual Studio - 툴 박스에 코드 보관하기

April 14, 2017

VS의 툴박스에 특정 코드를 보관하고, 이 코드를 선택하여 코딩 시 삽입할 수 있다. 툴박스에 보관하기 바라는 코드를 마우스로 선택 후 툴박스로 드래그 한다. 위에서 드래그한 코드가 툴박스에 들어가 있는 것을 볼 수 있다. 추가한 코드를 마우스 오른쪽 클릭하면 삭제, 수정 ...

Visual Studio 제거하기

March 15, 2017

MS가 만든 Visual Studio Uninstaller를 사용하여 제거하는 것이 좋다. 설치 파일은 아래 링크에서 얻을 수 있다. 다운로드 사용법 다운로드 -> 압축 해제 -> Setup.ForcedUninstall.exe 실행 -> 질문에 Y 답변 콘솔 ...

etc (5)

GitHub Awards

January 31, 2017

개요 Github 계정을 갖고 있다면 “GitHub Awards” 라는 Web 서비스를 사용할 수 있다. 자신의 레포지토리에 붙여진 “스타”의 수를 기준으로 전 세계 GitHub 사용자 중 자신의 “랭킹 순위”를 알 수 있다. http://github-awards.com...

Microsoft MVP가 되었습니다

April 3, 2017

Microsoft MVP 몇 년 전에 2009,2010,2011년 3년 연속으로 Visual C++ 부분 MVP로 선정된 적이 있습니다. 그러나 2012년부터는 MVP 신청을 하지 않았습니다. 이유는 당시에는 MVP 자격 조건이 MS 제품만을 다루고, MS가 운영하는 포럼에 답...

본인이 집필한 C++ 책 리스트

February 2, 2017

본인이 집필한 C++ 책 리스트. 모두 e-Book 이다. eBook 모던 C++ : C++14의 핵심 기능을 중심으로 (한빛미디어) 2015.03.31 eBook 당신의 프로그래밍에 디버깅 더하기 : Visual C++ 디버깅 기초에서 고급까...

이 블로그의 rss 피드 주소

December 15, 2016

나처럼 Feedly 서비스를 사용 중이라면 피드 추가에 이 블로그 url을 입력하면 된다. 이 블로그 주소로 rss 리더에 등록 되지 않는다면 아래의 주소를 사용해 보기 바란다. https://jacking75.github.io/feed.xml

티스토리 블로그에서 이사

December 14, 2016

네이버 블로그 -> 티스토리 블로그를 걸쳐서 이번에는 깃허브로 왔다. 티스토리에 있는 블로그 주소는 http://jacking.tistory.com/ 이다.

threading (5)

Cache Coherence

July 19, 2017

QPI(퀵패스 인터커넥트) 출처: http://www.slideshare.net/kumagi/ss-40688480

Lockless Programming Considerations for Xbox 360 and Microsoft Windows

July 17, 2017

Lockless Programming Considerations for Xbox 360 and Microsoft Windows 라는 글의 결론 플랫폼 별 동작 차이 InterlockedXxx 함수에서 CPU에 의한 읽기/쓰기 순서 변경을 방지할 수 있는 것은 Windows로...

lock-free 알고리즘 - 순차일관성

June 16, 2017

순차일관성(sequential consitency)이란? 순차일관성은 컴퓨터 시스템에 관한 메모리 일관성 모델의 하나이며 정의를 Wikipedia에서 인용하면 “어떤 실행 결과도 모든 프로세서가 어떤 순서로 차례적으로 실행한 결과와 동일하며, 또한 각각의 프로세서의 처리 순서가 프...

병렬프로그래밍 - SMP(Symmetrical Multi Processing) 와 AMP(Asymmetrical multi processing)

April 24, 2017

참고 http://monoist.atmarkit.co.jp/mn/articles/0812/18/news123_2.html

병렬프로그래밍 - 호모지니어스 CPU와 헤테로지니어스 CPU

May 8, 2017

참고 http://monoist.atmarkit.co.jp/mn/articles/0812/18/news123_2.html

모임 (2)

2017년 03월 ‘온라인 서버 제작자 모임’ 정기 세미나

March 26, 2017

한국 MS의 멜팅팟 프로그램 지원을 받고 온라인 서버 제작자 모임 에서 3월 정기 모임을 합니다. 날짜: 3월 30일 (목) 19시 30분 ~ 21시 30분 장소: 토즈 강남점 내용 최흥배: 해외 강연 해설 ‘여기까지 할수 있다! Visual Studio 2015-...

2017년 04월 ‘온라인 서버 제작자 모임’ 정기 세미나

April 20, 2017

한국 MS의 멜팅팟 프로그램 지원을 받고 ‘온라인 서버 제작자 모임’에서 4월 정기 모임을 합니다. 날짜: 4월 26일(수요일) 19시 30분 ~ 21시 30분 장소: 토즈 강남점 내용 Visual Studio 2017 Linux development with C++ (최...

번역 (12)

(일본)임베디드 개발자가에 인기 있는 언어와 OS

February 7, 2017

일본의 ‘fabcross for 엔지니어’ 라는 곳에서 제조업에서 임베디드 관련 프로그래밍을 하는 엔지니어를 대상으로 한 설문 조사에서 업무에서 자주 사용하는 언어는 C (36 %) C++ (32.5 %), Java (23.5 %), Visual Basic (21...

Amazon S3의 대규모 장애는 인위적 실수가 원인

March 6, 2017

미국 Amazon.com의 클라우드 사업 Amazon Web Services(AWS)는 “Amazon Simple Storage Service(S3)”서비스에서 발생한 대규모 장애에 관한 조사 보고를 현지 시간 2017년 3월 2일 공개하면서 인위적 실수가 원인이었음을 밝혔다. ...

C/C++에 죽음을

July 20, 2017

역자주: 제목이 자극적이라서 보았는데 핵심은 Rust 사용하자는 글이다. 그런데 아직은 Rust의 개발 환경은 덜 만들어져서 시기 상조라고 생각된다. 프로그래밍 언어 C는 역겹다. 물론 훌륭함 것도 있다. 우리가 사는 세계의 대부분은 C 위에 만들어졌다. 그리고 대부분의 컴퓨터 ...

Google에서 3DCG를 위한 압축 라이브러리 「Draco」를 GitHub에 공개

February 8, 2017

https://github.com/google/draco Chrome Media팀이 개발한 압축 라이브러리로 ZIP 형식보다 효율적으로 데이터 압축을 실행할 수 있는 오픈 소스이다. 압축한 Mesh 파일의 크기 100MB 일 때 ZIP으로는 30MB 이지만, Draco에서는 10...

여성 게이머가 가장 좋아하는 장르

February 10, 2017

해외 컨설팅 기업 Quantic Foundry는 27만명 이상의 세계 게이머를 대상으로 조사 하여 “여성 게이머들이 좋아하는 게임 장르” 라는 리서치 결과를 보고했다. Quantic Foundry의 보고에 따르면 27만명 이상의 샘플 중 여성 게이머는 18.5% 정도이고, 조사 ...

초보 프로그래머를 위한 9가지 조언

March 8, 2017

항상 하나의 일에 집중한다 나는 새로운 것을 배울 때는 언제든지 할 일을 분해하고 임한다. 프로그래밍을 할 때 작업에 따라서는 복잡하게 구조화하여 생각하는 것이 있을 것이다. 1개의 태스크를 소화하기 위해서도 다양한 방법이 있고 선택하는 것만으로 방황한다. 다만 무엇...

프로그래밍 어록 - Microsoft에서(또는 다른 곳에서) 일하기 위한 10가지 힌트

May 11, 2017

Omar Shahine 프로세스는 사고의 대용이 되지 않는다. 사무실에만 있지 않는다. 자신의 제품을 사용한다(당신의 고객이 사용하도록). 뭔가가 고장 나고 있으면 불평만 하지 않고 고친다. 행동은 불평보다 웅변이다. 어려운 문제를 쉽게 보이도록 한다. 간단한...

프로그래밍 어록 - egoless programming 10계명

May 11, 2017

Gerald Marvin Weinberg의 “The Psychology of Computer Programming” 에서 자신이 잘못을 저지른다는 것을 이해하고 받아들이기. 자신과 자신의 코드는 별개이다. 아무리 “가라데”를 배워도 언제든지 당신보다 더 잘 아는 사...

프로그래밍 어록 - 소프트웨어 프로젝트 실패의 10가지 징후

May 11, 2017

http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=a76eab63-70f0-48b4-8b75-66c366a651cd 첫번째 버전에서 너무 많은 것을 하려고 한다. 확립되지 않은 기술에 크게 의존하고 있다. 조직의 주 수입...

프로그래밍 어록 - 안드레 테일러의 10년간의 소프트웨어 개발에서 배운 10가지

May 11, 2017

http://www.globalnerdy.com/2007/03/22/andres-taylor-top-ten-things-ten-years-of-professional-software-development-has-taught-me/ 에서 객체 지향은 생각보다 어렵다. 소프...

함수의 적절한 길이는? 마틴 파울러씨는 길이보다 의도와 구현 분리 그리고 좋은 함수 이름이 중요하다고 지적

February 22, 2017

FunctionLength 내 경력에서 함수의 길이는 어느 정도여야지? 라는 논란을 자주 들었다. 이것은 더 중요한 물음으로 대체할 수 있다. 그것은 어느 정도 길이의 코드가 되면 그것을 함수로 삼아야 하느냐는 것이다. 몇 가지 가이드 라인에서는 한 화면에 잡히지 않는다면, 이...

해외 게임 업계의 아웃소싱

May 15, 2017

여러 인기 작품에 관련있지만 아무도 모르는 게임 회사 Blizzard Entertainment의 인기 작품 “오버 워치”를 조사하고 있을 때 어떤 게임 업체 사이트에 맞닥뜨렸다. 회사 이름은 SuperGenius로 사이트의 톱 페이지에는 “오버 워치”의 친숙한 아트 워크가 큼직하게...

사례 (1)

그랑 블루 판타지를 뒷받침하는 인프라 기술

July 5, 2017

일본의 데브서밋 컨퍼런스에서 그랑 블루 판타지에 대해서 특징 스마트 폰 RPG 브라우저 게임 협력 플레이, 멀티 플레이 시스템 규모 등록 유저 수 1400만명 월간 300억 PV 100만 query/sec 8만 req/sec 트래픽 12Gbps...