전체 글

전체 글

    자바스크립트의 동작 원리

    자바스크립트의 동작 원리

    자바스크립트 동작 방식 ​ 자바스크립트는 단일 스레드 방식으로 한 번에 하나의 작업만 처리 가능 ​ 자바스크립트 엔진 V8 구조 ​ Memory Heap 메모리 할당이 일어나는 곳 ​ Call Stack 코드 실행에 따라 스택이 쌓이는 곳(후입 선출 LIFO) ​ 자바스크립트 동작환경(Runtime) ​ Web APIs DOM, AJAX, Timer 등 브라우저에서 제공하는 API ​ Callback Queue 콜백 함수들이 대기하는 곳(선입 선출 FIFO) ​ 호출 스택(Call Stack) 웹 브라우저의 자바스크립트 인터프리터 역할 현재 함수의 동작 및 다음 함수 호출 부분 등을 제어 ​ Event Loop Call Stack이 비워질 때마다 Collback Queue에 대기중인 콜백함수가 있을 경우..

    MariaDB(MySQL) 덤프 떠서 DB 이동하는 법

    DB 덤프 - 데이터베이스의 내용을 외부 파일로 백업하는 과정 - 데이터 베이스의 중요한 정보를 안전하게 보호 가능하며, 장애 복구, 데이터 마이그레이션, 테스트 및 개발 환경 설정 등 다양한 용도에서 사용 가능 // 덤프를 뜰 DB의 이름 확인 mysql -u root - p // 모든 데이터베이스 조회 show databases; // DB덤프 뜨기 mysqldump -u root -p [데이터베이스명] > [파일명].sql // 새로운 DB생성 create database [복구할 DB명] // DB덤프 복구 mysql -u root -p [복구할 DB명] < [저장한 DB명].sql

    [JavaScript] 디바운싱과 쓰로틀링

    디바운싱 - 연속적으로 호출되는 함수들 중에서 처음 or 마지막에 호출되는 함수만 실행하는 방식(함수는 한 번만 실행) - 주로 이벤트 핸들러에 적용 // #1 타이머 예제 let timer; document.querySelector('#input').addEventListener('input', function(e) { if(timer) { clearTimeout(timer); } timer = setTimeout(function() { // 실행할 코드 내용 }, 200); }); // #2 텍스트 입력 예제 function debounce(func, delay) { let timeoutId; return function() { const context = this; const args = argum..

    MariaDB(MySql)와 Oracle 문법 차이점

    1. 널 체크 함수 MariaDB SELECT IFNULL('컬럼명', '') FROM DUAL; ORACLE SELECT NVL('컬럼명', '') FROM DUAL; 2. 현재 날짜시간 MariaDB NOW() Oracle SYSDATE 3. 날짜포맷 MariaDB DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') Y: 4자리 년도, y: 2자리 년도 Oracle TO_CHAR(SYSDATE, 'MMDDYYYYHH24MISS')

    npm build가 안될 때 해결 방법(node, node-sass 버전 호환 문제)

    잘 쓰고 있는 npm을 최신 버전으로 업그레이드 하라는 문구가 계속 떠서 node 20 버전을 설치했다 여기서 계속 리액트 프로젝트가 빌드가 안되는 현상이 발생.. 로그를 보니 node-sass라는 라이브러리가 window에서는 8.0 이상은 지원이 안되는 것 같다 그래서 node-sass는 7.0 버전을 설치하고 node는 17버전으로 다운그레이드 했더니 빌드가 잘됐다 node-sass는 node 환경에서 sass -> css 코드로 변환해주는 스타일 전처리기라고 한다. 아무튼 그렇다 https://www.npmjs.com/package/node-sass node-sass Wrapper around libsass. Latest version: 9.0.0, last published: 8 months a..

    백준 11047 (동전 0)

    import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); int[] arr = new int[N]; for(int i=0; i=0; i--) { int kk = K / arr[i]; if(kk > 0) { K = K % arr[i]; count += kk; } } System.out.println(count); } }

    백준 11399 (ATM)

    import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; for(int i=0; i

    백준 17219 (비밀번호 찾기)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] s = br.readLine().split(" "); int N = Integer.parseInt(s[0]); int M = Integer.parseInt(s[1]); ..