728x90
전역변수도 매개변수로 하는 이유전역 변수를 직접 사용⸰ 장점 -간결함: 코드가 더 간단하고, 함수 호출 시 매개변수를 추가로 전달할 필요가 없음 -직관성: 빠르게 변수를 참조⸰ 단점 -테스트와 디버깅의 어려움: 함수가 외부 상태에 의존하게 되어 유닛 테스트가 어렵고, 코드의 이해도가 떨어짐 -부작용의 위험: 전역 변수를 수정하는 함수는 다른 부분에서도 영향을 미칠 수 있어, 부작용이 발생 매개변수로 전달⸰ 장점 -테스트와 디버깅의 용이성: 외부 상태에 의존하지 않으므로 테스트가 용이하고, 함수의 의도를 명확하게 파악 -부작용의 방지: 함수가 직접 수정하지 않고, 수정된 결과를 반환하기 때문에 함수의 부작용을 줄일 수 있음 -재사용성: 함수가 다양한 상태를 입력으로 받아 동작⸰ 단점 -코드의..
[SQLD]「3」(3.1) DML, TCL, DDL, DCL「1」 데이터 모델링의 이해「2」 SQL 기본 / 활용 > 「3」 관리 구문 > 1. DML> 2. TCL> 3. DDL> 4. DCL 1. DMLDML⸰ 입력된 데이터를 수정, 삭제, 조회하는 명령어 INSERT⸰ 테이블에 데이터를 입력하는 명령어√. 칼럼명 명시되지 않은 경우, 전체 데이터를 모두 삽입하여야 함INSERT INTO 테이블명 (칼럼명1, 칼럼명2, ... ) VALUES (데이터1, 데이터2, ... );⸰ 명시되지 않은 칼럼에는 NULL 값이 입력되는데, 해당 칼럼이 PK나, NOT NULL 제약조건이 걸린 칼럼인 경우 에러 발생 INSERT INTO 테이블명 VALUES (데이터1, 데이터2, 데이터3, ... );⸰ 순서가..
사용자에게 입력받기const readline = require('readline');const rl = readline.createInterface({ input: process.stdin, output: process.stdout});let input = [];function getInput() { console.log(); process.stdout.write("> YYYY-MM-YY 형식으로 날짜를 입력해주세요. "); rl.once("line", (line) => { input = line.trim().split("-").map(Number); if (isValid(input)) { rl.close(); main(input); } else { ..
StackStack⸰ 선형 자료형⸰ LIFO(Last In First Out)⸰ 이전의 작업 내용을 저장해 둘 필요가 있을 때 사용class Stack{ constructor(){ this.stack = [] } push(item){ this.stack.push(item) } pop(){ return this.stack.pop() } peek(){ return this.stack[this.arr.stack-1] }}const stack = new Stack();stack.push(1);stack.push(2);stack.push(3);stack.pop(); // 3push(): 데이터 삽입pop(): 데이터 추출..
random( )random( )⸰ 0부터 1 미만까지 무작위로 부동소수점의 난수를 추출Math.random() * (최댓값 - 최솟값) + 최솟값; ⸰ (최댓값 - 최솟값) : 원하는 범위의 숫자 개수⸰ + 최솟값 : 시작하는 숫자 ⸰ 자연수로 바꿔주려면,Math.floor(Math.random() * (최댓값 - 최솟값) + 최솟값); Math.floor(Math.random( ))0 0, 1Math.floor(Math.random( ) * (10 - 1) + 1)1 1 ~ 10Math.floor(Math.random( ) * (10 - 3) + 1)3 3 ~ 10
substr( ) / substring( ) / slice( )substr(startIdx, length)⸰ startIdx 부터 length 길이만큼 string 에서 잘라서 반환⸰ 기존 배열 업데이트 Xlet str = "네이버 부스트캠프";let result = str.substr(2, 5);console.log(str); // 네이버 부스트캠프 console.log(result); // 버 부스트substring(startIdx, endIdx)⸰ startIdx 부터 endIdx 전까지 string 에서 잘라서 반환⸰ startIdx > endIdx 인 경우 : startIdx 값과 endIdx 값을 바꾸어 처리 ⸰ startIdx ⸰ 기존 배열 업데이트 Xlet str = "네이버 ..
[SQLD]「2」(2.8) ROWNUM, 셀프 조인, 계층 쿼리「1」 데이터 모델링의 이해> 「2」 SQL 기본 / 활용「3」 관리 구문 1. 서브쿼리2. 뷰3. 집합 연산자4. 소계(총계) 함수5. 윈도우 함수> 6. Top-N 쿼리> 7. 셀프 조인> 8. 계층 쿼리 6. Top-N 쿼리Top-N 쿼리⸰ROWNUM: 순위 함수가 아닌, 각각의 칼럼에 순서대로 번호를 부여한 슈도 칼럼(존재하지 않는 가짜 칼럼)√. 항상 WHERE 절에서 √. ORDER BY 절을 사용하려면, 서브 쿼리로 안에서 정렬 후, 밖에서 WHERE 절을 사용해야 함(WHERE 절, ORDER BY 절이 있으면, ORDER BY 절이 나중에 수행되기 때문에 ROWNUM이 섞여서 출력됨)SELECT ROWNUM, 칼럼명1, 칼럼..
[SQLD]「2」(2.7) FIRST_VALUE/LEAD, RATIO_TO_REPORT/CUME_DIST/NTILE「1」 데이터 모델링의 이해> 「2」 SQL 기본 / 활용「3」 관리 구문 1. 서브쿼리2. 뷰3. 집합 연산자4. 소계(총계) 함수> 5. 윈도우 함수6. Top-N 쿼리7. 셀프 조인8. 계층 쿼리 5. 윈도우 함수행 순서 함수⸰FIRST_VALUE: 파티션별 가장 선두에 위치한 데이터를 구하는 함수SELECT 칼럼명1, 칼럼명2, FIRST_VALUE(칼럼명2) OVER(PARTITION BY 칼럼명1 ORDER BY 칼럼명2 [ASC|DESC]) AS FIRST_VALUE FROM 테이블명;칼럼명1칼..