분류 전체보기
-
레오폴드 FC660MBT 저소음 적축 리뷰리뷰 2022. 8. 21. 22:49
2주 전쯤 벼르고 벼르던 레오폴드 FC660MBT 모델을 구매하였다. 아무래도 책상이 지저분한게 싫다보니 유선 보다는 무선을 선호하는데 그렇다보니, 또 사용 중인 맥과 호환이 괜찮다고 생각했던 키크론 사의 K8 키보드 또한 앞서 구매하여 사용을 하였엇다. 하지만 생각보다 키감이 너무 좋지 못하고, 싸구려 느낌의 키캡과 무엇보다 타자를 입력하면 텅텅 거리는 스프링 소리가 너무 컷으며 적축임에도 예상외의 소음으로 인해 얼마 사용하지 못하고 가만히 냅두다 MX Keys Mini를 구매하게 되어 중고로 판매하였다. 그 뒤 몇개월 잘 사용하던 mx keys를 두고 갑자기 레오폴드 기계식 저소음 적축 키보드를 구매한 이유는, 바로 이전 직장에서 동료분이 사용하던 키보드였고, 당시 그분이 구매하자마자 타건을 했을 때..
-
try-catch와 비동기 작업에 대하여Programming/javascript 2022. 7. 24. 22:58
try catch문은 자바스크립트에서 예외처리에 사용된다. 이는 발생한 예외를 throw 했을 시 함수를 호출한 상위로 전파가 되는데 이 과정에서 예외처리를 하지 않는다면 컴파일러가 중단되며 만약 배포 서버에서 실행 중인 프로세스라면 중단될 수도 있기 때문에 반드시 이에 대비하여 예외 처리를 해둬야 한다. 하지만 이러한 예외처리 또한 아무때나, 아무 곳에서나 하면 곤란한 상황이 발생 할 수 있는데, 어떠한 Side Effect가 발생 할 수 있는 지 고려해 보자면 바로, 흔히 싱글 스레드인 자바스크립트에서 효율적인 작업 처리를 위하여 사용하는 비동기 시스템이다. 이는 동기 처리에서는 전혀 문제 없지만 비동기 처리는 앞서 말한 발생한 예외는 호출한 상위로 전파가 된다고 하였는데, 비동기 작업을 감싼 예외처..
-
[백준]1157번 단어 공부 with Node.jsProgramming/Algorithm 2022. 6. 25. 14:16
const input = require('fs').readFileSync('testInput.txt').toString().trim().toLowerCase().split(''); //입력 필드 중 중복 제거된 새 배열을 생성. const arr = input.filter((v,i) => input.indexOf(v) === i); //0으로 채운 카운팅용 배열 생성. let counting = new Array(arr.length).fill(0); //중복 제거된 배열과 입력 필드 간 중복 값 카운팅 배열에 저장 for(let i in input){ counting[arr.indexOf(input[i])]++; }; let max = counting[0]; //현재 값보다 이후 값이 높다면 갱신 for..
-
[백준]4101번 크냐? with Node.jsProgramming/Algorithm 2022. 6. 15. 22:28
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map( v => v.split(' ').map(Number)); let i = 0; while(true){ if(input[i][0] === 0 && input[i][1] === 0) { break; }else if(input[i][0] > input[i][1]){ console.log('Yes'); }else{ console.log('No'); } i++; }
-
RESTful API에 대하여Programming/etc. 2022. 5. 10. 22:43
Rest(Representational State Transfer)는 네트워크 아키텍처 원리의 모음이며 이 제약조건을 준수하는 애플리케이션 프로그래밍 인터페이스(API)를 뜻한다. = 일련의 지침 •6가지 제한 조건 1)인터페이스 일관성: 일관적인 인터페이스로 분리되어야 한다. 2)무상태(Stateless): 각 요청 간 클라이언트의 정보가 서버에 저장되어서는 안된다. 3)캐시 처리 가능(Cacheable): WWW에서와 같이 클라이언트는 응답을 캐싱 할 수 있어야 한다. 가):잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability(확장성)와 성능을 향상시킨다. 4)계층화(Layerd System): 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는..
-
Generator에 대하여Programming/javascript 2022. 4. 24. 22:06
제너레이터(Generator): 일반 함수는 하나의 값(혹은 0개의 값)만을 반환하지만, 제너레이터는 여러 개의 값을 필요에 따라 하나씩 반환(yield)할 수 있다. 제너레이터와 이터러블 객체를 함께 사용하면 데이터 스트림 생성 가능. 예)function* generateSequence(){ yield 1; yield 2; return 3; }; 일반 함수와 동작 방식이 다르다, 제너레이터 함수를 호출하면 코드가 실행되지 않고, 대신 실행을 처리하는 제너레이터 객체가 반환됨. 예)function* generateSequence(){ yield 1; yield 2; return 3; }; let generator = getnerateSequence(); alert(generator); --> 아직 함수 ..
-
[백준]9020번 골드바흐의 추측 with Node.jsProgramming/Algorithm 2022. 4. 14. 23:54
//골드바흐의 추측 const input = require('fs').readFileSync("/dev/stdin").toString().trim().split("\n").map(v => +v); input.shift(); const MAX = Math.max(...input); const answer = []; //배열 생성하고 차후 소수를 판별 위해 트루로 채워줌 let prime = new Array(MAX + 1).fill(true); //소수와 아닌수를 구한다. for (let i=2;i*i1;i--) { if (prime[i] && prime[v-i]) { //소수로만 이루어진 쌍을 찾기위함, 골드바흐의 파티션을 이루는 수를 찾기 위함 answer.push(`${i} ${v-i}`) break..