알파벳 순서 외우기 앱

이미지
 영어 단어 외우는 것과 별개로 알파벳 순서를 중간에서 바로 떠올리려고 하면 버벅댈 때가 있습니다.  특히 알파벳 오름차순이나 내림차순으로 되어있는 목록을 찾을 때(예를 들면 책으로 된 영어사전이라던가...) 바로 떠오르지 않아 답답한 경우가 있어서 앱을 하나 만들었습니다.  표시되는 알파벳을 보고 다음이나 이전 알파벳을 선택하는 단순한 게임입니다. https://play.google.com/store/apps/details?id=com.nextcharactergamenew1cm  ***아이폰 개발 환경은 갖추고 있지 않아서 안드로이드만 올라가 있습니다.***

자신을 제외한 최대 약수 구하기

 코딩테스트에서 자신을 제외한 최대 약수가 필요한 부분이 있어 구글 검색 후 만들어본 javascript 함수입니다. function getLastDivisor(num) { var divisor = 1; if (num > 1) { for (var i = 2; i <= Math.sqrt(num); i++) { if (num % i === 0) { divisor = num / i; break; } } } return divisor; }  구글 검색에서 나온 약수를 구하는 방식은 다음과 같습니다.  어떠한 수의 제곱근을 가지고 1차로 약수를 구합니다. 1차로 구한 약수로 입력한 수를 나누어 나머지 약수를 구합니다.  위 방법에서 자신을 제외한 최대 약수가 필요했기에 1차 약수에서 1을 제외하여 입력한 수 자신을 제외하고, 그 다음으로 큰 약수를 구하면 바로 반복문을 나오도록 했습니다.

띄어쓰기 간격, 영어의 자간이 크게 벌어지는 경우

이미지
 텍스트 에디터나 브라우저에서 글을 쓸 때 한글의 띄어쓰기 간격이 넓어졌거나 영어의 자간이 넓어졌다면, [ Alt ] + [ = ] 단축키를 눌러보자.

자바스크립트 초기화된 배열 만들기

 자바스크립트에서 특정한 값으로 초기화된 배열을 만드는 방법은 아래와 같습니다. const arr1 = new Array(10).fill(0); // [0,0,0,0,0,0,0,0,0,0] const arr = new Array(10).fill().map((value, index, array) => index + 1); // [1,2,3,4,5,6,7,8,9,10]  'new Array(10)'를 사용해 길이가 10인 비어있는 배열을 만들 수 있습니다.  '.fill()'을 사용하면 단일 값으로 배열 내부를 채울 수 있습니다. '.fill(0)'이나 '.fill(null)'처럼 원하는 값을 넣을 수 있습니다.  단일 값이 아니라 순차적으로 변하는 값으로 초기화를 하기 위해서는 이어서 '.map()'을 사용하면 됩니다. 인자값에 함수를 정의하면 함수의 반환 값으로 새로운 배열을 만들어 반환합니다.  주의할 점은 'new Array()'를 사용해 만들어진 빈 배열은 '.map()'이 돌아가지 않습니다. '.fill()'을 사용해 어떤 값이라도 먼저 초기화를 해야 '.map()'이 돌아갑니다.

한컴 한글 문서 작성 시 곧은 따옴표 고정하기

이미지
 한컴2020 프로그램을 사용하면 한글과 영어 입력에 따라 따옴표의 모양이 다릅니다.  한글, 영문 상관없이 모두 곧은 따옴표로 나오게 하기 위해서는 입력기 환경 설정에서 현재 글자판, 제 1 글자판, 제 2 글자판 을 '윈도우 입력기'로 설정하면 됩니다.  해당 창 단축키는 Alt + F2 입니다.

Node.js로 윈도우 바로가기 실행

 Node.js의 child_process.spawn을 사용해 외부 프로그램을 실행할 때 실행파일의 바로가기를 사용하려고 합니다.  하지만, 바로가기 파일을 그냥 호출하면 오류가 발생합니다. 그때는 아래 코드와 같이 'shell: true'옵션을 설정해야 합니다. // Node.js v14.x const { spawn } = require('child_process'); spawn('C:/Users/my/Desktop/Program.lnk', args, { shell: true });  윈도우 바로가기의 파일 확장자인 '.lnk'를 꼭 붙여야 하며, 실행시 인자값이 없는 경우는 args에 null을 넣으면 됩니다.  관련된 질문 페이지 :  https://stackoverflow.com/questions/41497183/spawning-a-lnk-windows-shortcut-with-node-js-gives-unknown-error  child_process.spawn 공식 문서 :  https://nodejs.org/dist/latest-v14.x/docs/api/child_process.html#child_process_child_process_spawn_command_args_options

브룩(Brook) 어댑터 배터리 교환

이미지
 브룩(Brook) 어댑터를 닌텐도 스위치에 사용하고 있습니다.  마이크로 5핀을 사용하는 xbox one 컨트롤러에 결합하여 사용하는 물건입니다.  오래된 물건이라 며칠 전부터 충전 선을 뽑으면 1~2분 있다가 전원이 나가버리더군요.  인터넷을 검색하니 배터리 교환이 가능한 것 같아서 저도 시도해 봤습니다.  분해는 간단해서 양옆에 나사만 돌리면 됩니다.  조심스럽게 분해를 하면, 기존 배터리가 나옵니다. 적힌 내용은 IP652540 3.7V 800mAh 2.96Wh LB  입니다.  크기를 재보니 무언가 어중간한 수치입니다. 검색하면서 보니까 이름에 있는 652540이라는 숫자가 정해진 치수 같더군요.  65는 두께로 0.1mm 단위로 6.5mm, 25는 1mm 단위로 25mm, 40은 1mm 단위로 40mm입니다.  배터리의 어디를 가로로 봐야 하는지 모르겠지만 전선이 붙어있는 기판이 있는 부분을 위로 향하고 봤을 때, 두께 6.5mm, 가로 25mm, 세로 40mm 배터리를 찾으면 됩니다.  요즘은 취미로 작은 장치를 만드는 사람들이 많아서 그런지 ‘리튬폴리머 배터리’를 검색하면 다양한 크기를 팔고 있더군요.  하지만 해외는 같은 크기가 있는 것 같은데, 국내는 찾지 못했습니다.   해외 물건은 배송 기간도 그렇고, 뭔가 불안하기도 해서 용량은 작아도 국내에서 비슷한 크기의 배터리를 찾아봤습니다.  좀 찾아보니 602540 550mAh 제품을 찾았습니다. ( https://smartstore.naver.com/powerland/products/2466362502 )    3.7V 전압은 같고,  550mAh라 기존에 있던 800mAh보다 40% 정도 용량이 작네요.  250쯤이라고 생각했는데, 지금 보니 무시할만한 수치는 아니군요. 그래도 그냥 샀습니다. 비슷한 크기에 다른 용량은 못 찾았고, 국...