분류 전체보기 704

vector와 array의 처리 성능 높이는 방법 (실험)

C++에서 일반적으로 크기가 정해지지 않은 배열을 사용하기 위해 vector를 사용하고, 크기가 정해진 배열을 사용하기 위해 array를 사용합니다. 그리고 vector와 array의 원소를 for문을 통해 접근할 때 다음과 같은 코드를 작성합니다. vector vec; int length = vec.size(); for (int i = 0; i < length; i++) { vec[i] = i; } 그리고 문득 vector의 인덱스 접근 방식과 일반 배열 []의 처리 성능이 얼마나 차이나는지 궁금하여 반복문으로 값을 할당하는 실험을 진행하였습니다. 시간 측정 도구는 제가 이전에 작성한 HourMeter 클래스 객체를 사용하여 진행하였습니다. vector와 array 그리고 일반 배열[]을 크기 1,00..

Node.js 함수 내 함수를 통한 코드 정리 예시

function test(){ let a = 1; let b = 2; const func1 = () => { if(a == 1){ throw new Error("a = 1"); } console.log('func1 success'); } const func2 = () => { if(b == 2){ throw new Error("b = 2"); } console.log(`func2 success`); } try{ func1(); func2(); } catch(ex){ console.error(`test failed - ${ex.message}`); return; } } test(); 하나의 작업을 수행하는 함수 내에서도 다양한 추상화 수준의 코드들이 존재할 수 있기 때문에 이들을 다시 내부 함수로 분리하여..

도커 node 이미지 변종 소개

node: ───────────────────────────── 실제 이미지입니다. 여러분이 필요한 것이 불확실하다면 이것을 사용하세요. 이 이미지는 버리는 컨테이너용 (소스코드를 마운트하고 앱을 실행하기 위한 컨테이너)로 사용되기도 하고 이미지 추출 용으로 사용될 수도 있습니다. 이 태그는 buildpack-deps의 기반이 됩니다. buildpack-deps는 본인 시스템에 많은 이미지를 가진 도커 사용자를 위해 설계되었습니다. 이는 극도로 많은 데비안 패키지를 갖고 있습니다. 이는 설치할 곳의 패키지 수를 감소시켜주며 따라서 시스템의 모든 이미지 크기를 전체적으로 감소시킵니다. 이 태그들의 몇몇은 buster, jessie, 또는 stretch와 같은 이름을 갖습니다. 이들은 데비안 차기 코드명이고..

컴퓨터 공학 2019.11.14

코스 그레인드 (coarse-grained)와 파인 그레인드 (fine-grained)

코스 그레인드와 파인 그레인드는 우리말 한마디로 옮기기에는 무척 버거운 개념이다. Grain은 원래 보리나 밀 같은 곡식을 낟알로 만드는 작업이나 표면을 우둘투둘하게 하는 일을 뜻하는 데 그때 아주 곱고 섬세하게 하느냐, 아니면 듬성듬성 크게 하느냐에 따라 Fine와 Coarse라는 형용사를 붙인다. 이것에 소프트웨어 공학에 도입되어 어떤 프로세스를 잘 게 쪼개느냐 아니면 굵게 쪼개서 뭉뚱그려 놓느냐를 표현할 때 쓰게 되었다. ◆ 책 "모던 C++ 입문" 에서 ◆

컴퓨터 공학 2019.11.14

N-API 관련 자료 수집

*N-API 공식 홈페이지: https://nodejs.org/api/n-api.html *N-API 관련 예제: https://github.com/nodejs/node-addon-examples *node-gyp 설치: https://github.com/nodejs/node-gyp ◆ 팁 *node 모듈을 실행하기 위해서는 해당 컴퓨터의 터미널에서 "yarn global add windows-build-tools"를 입력하여 윈도우 빌드 툴을 설치해야 합니다. (node-gyp 설치 페이지 참고) *클래스를 생성하기 위해 .cc 파일과 .h 파일을 추가할 경우 binding.gyp에서 targets -> sources에 해당 .cc 파일을 추가해야 합니다. 예를 들어, player 클래스를 추가할 경우..

[초간단] Visual Studio Code에서 Vue.js 설치하기

● vue-cli 설치하기 ▶터미널에서 "npm install -g @vue/cli" 입력 (반드시 @ 붙여야 함) 또는 "yarn global add @vue/cli" 입력 ●vue-cli로 프로젝트 생성하기 ▶터미널에서 "vue create my-project" 입력 ◆Please pick a preset 항목에서 default(babel, eslint) 선택 ▶터미널에서 "cd my-project"를 입력하거나, visual studio code의 폴더를 my-project로 이동 ▶터미널에서 "npm run serve"를 입력하면 웹에서 최종 실행 화면을 볼 수 있음 [오류처리] 터미널에서 "vue create" 명령어 입력시 아래와 같은 오류가 발생할 수 있습니다. vue : 이 시스템에서 스크..

Node.js UTF-8 데이터 CSV 파일 저장시 한글 깨짐 문제

서버로부터 UTF-8 형식의 문자열을 받아 file-saver 모듈을 사용하여 CSV 파일로 저장할 때 엑셀에서 열람하면 글자가 깨지는 현상이 있습니다. 이때 문자열 앞에 BOM을 추가해주면 CSV 파일을 정상적으로 열 수 있습니다. Office 2007 이전에는 ANSI 1252 인코딩을 기본 값을 사용하였습니다. BOM을 추가하면 Office 2007 이후 버전부터 정상적으로 CSV 파일을 열 수 있습니다. var BOM = "\uFEFF"; var csvData = BOM + csvData; var blob = new Blob([csvData], { type: "text/csv;charset=utf-8" }); saveAs(blob, "myFile.csv"); 참조: https://github.co..