분류 전체보기
-
[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+..
-
[백준]2884번 알람시계 with Node.jsProgramming/Algorithm 2022. 3. 31. 23:16
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split(" "); // const input = require('fs').readFileSync('./testInput.txt').toString().trim().split(" "); function solution(H, M) { // let hour = Number(H); let minute = Number(M)-45; if(0 > minute){ //45를 뺀 값이 음수이면 시간을 빼고, 이때 시간이 음수가되면 24를 더해준다, 분 또한 음수면 60을 더해준다. hour--; if(hour < 0)hour += 24; minute += 60; console.log(ho..
-
Garbage Collector, Garbage Collection에 대하여Programming/etc. 2022. 3. 29. 23:20
가비지 콜렉터를 통하여 수집된 가비지 컬렉션은 스택 메모리 영역의 원시타입과 힙 메모리 영역의 참조타입 간의 차이를 고려하여 레퍼런스 카운팅, 메뉴얼 기법인 타임 베이스 혹은 이벤트 베이스 방식으로 수집되어 메모리에서 해제되게 된다. Garbage Collector: 메모리의 힙 영역에 할당 된 더 이상 사용되지 않는 객체를 제거하는 역할 Garbage Collection: 더 이상 필요없는 오브젝트, 참조하지 않는 오브젝트의 경우 가비지라 부르며, 수집이 가능하다. •래퍼런스 카운터를 이용하여 참조하는 오브젝트의 개수가 0이되면 수집한다. •순환 참조 되는 변수들은 메모리에서 해제가 되지 않으니(메모리 누수,릭) 특정 timeline(시간대) 안에서 참조가 안된 변수는 해제하는 방식도 있다. •Manu..
-
Twelve-Factor(트웰브 팩터) 방법론Programming/etc. 2022. 3. 28. 22:10
트웰브 팩터(Twelve-Factor App,방법론) 아래의 특징을 가진 SaaS 앱을 만들기 위한 방법론 1.설정 자동화를 위한 절차(declarative)를 체계화하여 새로운 개발자가 프로젝트에 드는 시간과 비용을 최소화한다. 2.OS에 따라 달라지는 부분을 명확히하고, 실행 환경 사이의 이식성을 극대화한다. 3.최근 등장한 클라우드 플랫폼 배포에 적합하고, 서버와 시스템의 관리가 필요없게 된다. 4.개발 환경과 운영 환경의 차이를 최소화하고 민첩성을 극대화하기 위해 지속적인 배포가 가능하다. 5.툴, 아키텍처, 개발 방식을 크게 바꾸지 않고 확장(scale up)을 할 수 있다. 트웰브 팩터 방법론은 어떤 프로그래밍 언어로 작성된 앱에도 적용 할 수 있고 백엔드 서비스(데이터베이스, 큐, 메모리 캐..
-
[백준]1904번 01타일카테고리 없음 2022. 3. 26. 20:49
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n"); // const input = 5; //주어진 조건 만큼 길이의 값이 0인 배열 생성 const memo = Array.from({length: input},() => 0); // N은 1,2,3일때 만들 수 있는 식의 개수는 정해져있다. memo[1] = 1; memo[2] = 2; memo[3] = 3; //4 이상 부터는 그 값이 유동적으로 변하기 때문에 점화식을 이용하여 계산한다. for (let i = 4; i
-
[백준]1003번 피보나치 함수 with Node.jsProgramming/Algorithm 2022. 3. 19. 17:05
//피보나치함수 // const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n"); const input=[8,0,1,2,3,4,5,6,22];//첫번째 값은 테스트 케이스의 개수 T const T = input.shift(); for (let i = 0; i < T; i++) { //배열 맨 앞의 값을 가져와 그 크기 만큼 반복 //최소값은 0을 넣었을 때 0이 한번 나오기 때문에 디폴트 1로 세팅 let one = 0, zero = 1; for (let j = 1; j