프론트엔드 27

[모딥다] JS (4) - 전역 변수의 문제점

1. 변수의 생명 주기1) 지역 변수의 생명 주기: 변수는 선언에 의해 생성되고 할당을 통해 값을 갖음. 그리고 소멸하는데 이러한 것을 생명 주기라고 함.: 만약 생명주기가 없다면 종료하지 않는 한 영원히 메모리 공간을 점유하게 된다.: 변수 선언은 선언문이 어디에 있든 상관 없이 가장 먼저 실행됨, 즉 한 줄 씩 순차적으로 실행되는 런타임 시점이 아닌 시작 전 자바스크립트 엔진에 의해 먼저 실행된다. => 전역 변수에 한정된 설명: 지역 변수는 함수 몸체의 다른 문들이 순차적으로 실행 되기 이전에 자바스크립트 엔진에 의해 변수가 선언되고 undefined로 초기화 된다. 그 후 함수 몸체의 다른 문들이 순차적으로 실행 될 때 값의 할당이 이루어진다. :  즉, 지역 변수의 생명 주기는 함수의 생명 주기..

[모딥다] JS (3) - 스코프

1. 스코프: 유효범위라고도 하며, 모든 식별자(변수 이름, 함수 이름, 클래스 이름)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되는 것을 스코프라고 한다. : 식별자가 유효한 범위를 말함 2. 식별자 결정: 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지를 결정해야 하는 것. 스코프 : 유효범위라고도 하며, 모든 식별자(변수 이름, 함수 이름, 클래스 이름)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되는 것을 스코프라고 한다. : 식별자가 유효한 범위를 말함   2. 식별자 결정: 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지를 결정해야 하는 것var x = 'global'..

BOJ - 10971 외판원 순회 2

1. 문제 링크 : https://www.acmicpc.net/problem/109712. 문제 유형 : 백트래킹3. 문제 티어 : 실버24. 문제 풀이  : 전형적인 모든 경우의 수를 완전 탐색하는 백트래킹 문제 : 모든 도시를 방문 후 다시 돌아와서 그 최소 경로를 구해야  함 : 이 과정에서 방문 처리 유무를 남겨놓아서 다시 방문하지 않도록 하여 연산 속도 빠르게 처리 : 도시 i부터 j까지 가서 그 비용을 현재 측정된 비용에 더한 후 기존에 있던 최솟값과 지속적으로 비교해서 최솟값을 갱신하는 재귀함수 호출하면서 최적의 값 찾음 5. 문제 코드 // 1. 값 입력 받기const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toStrin..

[모딥다] JS (2) - 함수

1. 함수란? : 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것: 매개변수 - 함수 내부로 입력을 전달 받는 변수: 인수 - 입력: 반환값 - 출력: 함수 정의를 통해 생성: 함수는 일급객체임 (값의 성질을 갖는 객체를 일급객체라고 함)function addNumber(x,y) { return x + y;} 2. 함수 리터럴: 함수는 객체 타입의 값이다 따라서 함수도 함수 리터럴로 생성할 수 있다. : 함수 리터럴은 function 키워드, 함수 이름, 매개변수 목록, 함수 몸체로 구성된다.var f = function add(x,y) { return x + y; }; * 함수 이름은 생략 가능, 이름이 없는 함수를 무명/ 익명 함수라 함* 매개변수 목록은 ..

[모딥다] JS (1) - 객체 리터럴

1. 객체란?: JS는 객체 기반의 프로그래밍 언어며 거의 모든 겂이 객체다. : 변경 불가능한 원시 값과 달리 객체는 변경 가능한 값이다.: 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다.: 이미 존재하는 프로퍼티 키를 중복 선언하면 나중에 선언한 프로퍼티가 먼저 선언한 프로퍼티를 덮어쓴다.let person = { name: "John" // 프로퍼티 키 : name , 프로퍼티 값 : "John" age: 22,} :  참고로 프로퍼티 값은 JS에서 사용할 수 있는 모든 값이 될 수 있다.: 프로퍼티 값이 함수인 경우 우리는 메서드라 부른다.var counter = { num = 0, // 프로퍼티 increase : function() { ..

백엔드 입문 (4) - NoSQL DB 알아보기 - 몽고디비

1. 데이터베이스 : 데이터를 체계화하여 관리하는 데이터의 집합 또는 해당 작업을 수행하는 응용 프로그램을 의미함.: 몽고디비는 NoSQL 데이터베이스. 그 중 도큐먼트 타입이다.: NoSQL 데이터베이스는 데이터 모델에 따라 키-밸류 , 컬럼, 도큐먼트 , 그래프 타입으로 분류할 수 있다.2. NoSQL 분류1) 키-밸류 타입 : 키를 기준으로 데이터를 조회하고 값으로 데이터를 저장한다.  ex) Redis, Amazon DynamoDB2) 도큐먼트 타입 : JSON과 유사한 형식의 객체를 담은 데이터를 저장함.ex) MongoDB , Couchbase , Firestore 3) 그래프 타입 : 노드를 사용하여 데이터를 저장하고, 에지를 사용해 데이터 관계를 저장한다.ex) ArangoDB , Amaz..

BackEnd Skils 2024.12.03

백엔드 입문 (1) - Node.js로 백엔드 시작해보기

Node.js와 Express에 대한 것은 간략하게 아래 글에서 작성했었다.https://november-itstime.tistory.com/80 Node.js + express로 백엔드 서버 구축 도전기 (1) - 소개회사에서 사내 랜딩 페이지 백엔드를 구축해보라는 과제를 받아서 도전해본 것들을 블로그에 정리하며 개념을 학습하고자 한다.사실 개발하면서 책과 각종 자료들을 참고하긴 했으나 개념 학november-itstime.tistory.com이번 포스팅에서는 조금 더 구체적으로 Node.js에 대해 살펴보고자 한다. 1. Node.js가 서버에서 자바스크립트를 실행하는 방법: Node.js는 V8 자바스크립트 엔진과 C/C++ 등에 의존성을 가진 자바스크립트 런타임이다. 이 때 런타임이란 자바스크립트..

BackEnd Skils 2024.11.27

BOJ - 7490 0 만들기

1. 문제 : https://www.acmicpc.net/problem/74902. 문제 티어 : 골드 53. 문제 유형 : 백트래킹 , 구현4. 문제 풀이 1) 백트래킹을 이용한 모든 경우 탐색 - 숫자 1부터 N까지의 사이에 가능한 연산자(+ , - , " ") 를 삽입하여 모든 경우의 수를 만든다. - 연산자를 삽입할 때마다 다음 숫자를 추가해가며 재귀적으로 탐색한다. - 이 때 수식은 사전순으로 해야하기 때문에 "-"보다 "+" 먼저 작성해줘야한다. 2) 수식 계산 - 만들어진 수식의 공백은 숫자를 이어붙이는 역할을 한다. - 수식을 계산하여 값이 0인지 확인하는 과정 3) 결과 출력 - 문제 요구사항에 따라 사전순으로 출력해야함 5. 문제 코드const fs = require("fs");let ..

BOJ - 10974번 모든 순열

1. 문제 : https://www.acmicpc.net/problem/109742. 문제 유형 : 백트래킹3. 문제 티어 : 실버34. 문제 풀이 1) 백트래킹으로 푸는 전형적인 문제2) N만큼 반복문 돌리면서 백트래킹 재귀 함수 호출 후 3) 이전 단계로 돌아가기 위해 visited와 current.pop() 해준다. 5. 문제 코드const fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let N = Number(input[0]);let visited = new Array(N+1).fill(false);let arr = [];// 재귀함수function recursive(current, visit..

BOJ - 15649 N과 M(1)

1. 문제 : https://www.acmicpc.net/problem/156492. 문제 유형 : 백트래킹 알고리즘3. 문제 티어 : 실버3 4. 개념 학습1) 백트래킹이란?백트래킹(backtracking)은 모든 경우의 수를 탐색하면서, 조건에 맞지 않는 경우에는 중간에 탐색을 포기하고 돌아가는 방법. 즉, 안되는 길은 가지 않고, 될 가능성이 있는 길만 계속 탐색하는 알고리즘이다. 보통 재귀 호출을 사용하며, 탐색의 효율성을 높이기 위해 조건에 맞지 않는 경우를 빠르게 배제하는 것이 핵심이다. 2) 백트래킹의 동작 원리 1. 결정 트리 탐색 :    - 가능한 선택지를 하나씩 시도하며 트리 형태로 탐색한다. 2. 조건 만족 여부 확인:     - 특정 조건에 부합하지 않으면, 더 깊이 탐색하지 않고..