Programming
-
[백준]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..
-
[MySQL, MariaDB] Transaction에 대하여Programming/Database 2022. 4. 13. 23:56
트랜잭션: 쪼갤 수 없는 업무 처리의 최소 단위를 말한다 / 데이터 부정합을 방지하기 위하여 사용 •작업 완료시 커밋 •오류 발생 시 롤백 •트랜잭션은 디비 서버에 여러개의 클라이언트가 동시에 액세스하거나 프로그램이 갱신을 처리하는 과정에서 중단 될 수 있는 등 데이터 부정합을 방지하고자 할 때 사용한다. •ACID(4가지 조건): 1)Atomicity(원자성) : 하나의 트랜잭션이 더 이상 쪼갤 수 없는 최소 업무 단위, 트랜잭션이 디비에 전부 반영되거나 반영 안되거나, 중간에 문제 발생하면 중단이 아닌 모두 성공, 실패로 되어야함 100개의 명령으로 구성된 트랜잭션이 99개 성공하고 1개 실패해도 실패로 하고 트랜잭션 시작 전 상태로 롤백 되어야함 *원자성 보장: 수행하고 있는 트랜잭션에 의해 변경된..
-
[백준]1065번 한수 with Node.jsProgramming/Algorithm 2022. 4. 7. 15:03
// const input = require('fs').readFileSync('/dev/stdin').toString().trim().split(' '); const input = require('fs').readFileSync('./testInput.txt').toString().trim().split(' '); const N = Number(input[0]); function solution(N) { //한수란, 어떠한 양의 정수가 한개 있을때 그 수의 각 자릿수가 등차수열을 이루는 것이다. //따라서 문제 해결의 핵심은 수를 자릿수 별로 분해하여 등차수열을 이루는지 확인하는 것이다. let result = 0; for(let i=1; i
-
Node.js와 이벤트루프Programming/NodeJs 2022. 4. 4. 09:49
•노드js는 C++로 작성된 자바스크립트 런타임(언어가 구동될 수 있는 환경)이며 내부에 V8 엔진과 libuv를 가지고 있다. 그래서 브라우저가 아닌 로컬에서 자바스크립트를 실행 가능/자바스크립트 런타임은 노드가 있다. *구성 Node.js -------------------------------------------- Node.js core Library | Node.js Bindings -------------------------------------------- V8 Engine | libuv •싱글 스레드 논 블로킹 = 하나의 스레드로 동작하지만 I/O 발생시 비동기로 처리 가능 / 이는 이벤트 루프의 덕분으로 싱글 스레드로 여러 비동기 작업을 논블로킹으로 수행 할 수있다. •libuv는 C+..