It,develop 21

[메모리 관리] 콜 스택 & 힙

Call Stack & Heap : 자바스크립트에서 메모리를 할당하고 관리하는 방식- 둘 다 메모리를 저장하는 공간이지만 용도와 동작 방식에 차이가 있다.  스택(Stack) → 고정된 크기의 메모리, 빠른 할당 & 해제함수 실행 시 지역 변수와 콜 스택(Call Stack)이 여기에 저장됨(예) 함수 호출 시 변수 저장, 실행이 끝나면 자동 해제힙(Heap) → 동적 메모리 할당, 크기가 유동적객체(Object), 클로저, 참조 타입 데이터가 저장됨(예) new Object(), new Array() 같은 동적 할당된 데이터  # 콜 스택 (Call Stack): 함수 실행을 관리하는 메모리 영역- 프로그램 실행 중 함수 호출을 관리한다.- 함수 실행 컨텍스트(execution context)를 저장하..

It,develop 2025.03.18

[알고리즘] 탐색

# 탐색: 주어진 데이터에서 특정 값을 찾는 방법 알고리즘언제 사용하면 좋을까?시간복잡도순차 탐색 (Linear Search)정렬되지 않은 데이터에서 특정 값을 찾을 때O(N)이진 탐색 (Binary Search)정렬된 데이터에서 빠르게 찾을 때O(log N)해시 탐색 (Hash Search)특정 키에 대한 값을 빠르게 찾을 때O(1)DFS (깊이 우선 탐색)그래프에서 경로를 찾거나 미로를 탐색할 때O(V + E)BFS (너비 우선 탐색)최단 거리를 찾을 때O(V + E) 1. 선형 탐색 (linear search): 앞에서부터 하나하나 찾는다function linearSearch(arr, target) { for (let i = 0; i - find() , findIndex() 메서드const ..

It,develop 2025.03.12

Array 만들기

# 배열 만드는 방법 1. 그냥 만들기const arr = [1, 2, 3, 4, 5]; // 정적인 배열 생성 2. Array 생성자로 만들기# new Array( )- 초기화되지 않고 빈슬롯으로 생성된다.- 빈 슬롯(empty slots) 상태에서는 map,forEach 등 메서드 실행 불가- fill()로 값을 채워준 뒤에 가능const arr = new Array(5); // 길이가 5인 배열 [ empty * 5 ]const filledArr = new Array(5).fill(0); // 길이가 5이며, 0으로 채워진 배열 [0,0,0,0,0]# Array()- 일부 내장 생성자 (Array(), String(), Number(), Boolean(), Object()) → new 없이도 동작 ..

It,develop 2025.03.08

HTTP/ HTTPS

HTTP (HyperText Transfer Protocol): 클라이언트(브라우저)와 서버가 데이터를 주고받는 통신 규약(Protocol)- 브라우저가 서버에 요청을 보내고, 서버가 응답하는 방식을 정한 규칙  # HTTP 요청의 종류 (메서드): HTTP 요청을 보낼 때 어떤 동작을 할지를 정하는 메서드(method)메서드설명GET데이터를 요청 (조회)POST데이터를 생성 (등록)PUT데이터를 수정 (전체 업데이트)DELETE데이터를 삭제 # HTTP 응답 상태 코드1️⃣ 1xx (정보 응답)100 Continue: 요청이 진행 중2️⃣ 2xx (성공)200 OK: 정상적인 요청 성공201 Created: 새로운 리소스 생성 성공3️⃣ 3xx (리다이렉션)301 Moved Permanently: 영구..

It,develop 2025.03.06

XSS , CSRF

- 웹 어플리케이션의 취약점을 노리는 공격 # XSS (Cross-Site Scripting): 사이트 간 스크립팅 공격 [ 개념 ]- 악성 스크립트(JavaScript)를 삽입하여 사용자의 브라우저에서 실행되도록 유도하는 공격- 공격자가 악성 스크립트를 삽입하면, 피해자의 쿠키, 세션 정보, 로그인 정보 등을 탈취할 수 있다. [ 공격 방식 ]1. 공격자는 웹사이트의 '입력 필드' 에 악성 코드를 삽입2. 웹사이트가 이를 제대로 필터링하지 않으면 해당 스크립트가 사용자의 브라우저에서 실행됨3. 실행된 스크립트는 쿠키 탈취, 키로깅, 피싱 사이트로 리다이렉트 등을 수행 XSS 예제)  [ XSS의 종류 ]1. 반사형 (Reflected XSS)  - URL에 악성 스크립트를 포함하여 실행한다.2. 저장형..

It,develop 2025.02.16

access & refresh token

# Access Token: 인증된 사용자에게 API 또는 리소스에 대한 접근 권한을 부여하는 토큰- 일반적으로 로그인 후 발급된다.- 특정 기간 동안만 유효하다.- API 요청시 Access Token을 포함하면 인증이 완료된다. [ 특징 ]- 짧은 유효 기간 (보통 몇 분 ~ 1시간)- Authorization 헤더에 포함하여 API 요청시 인증에 사용- JWT가 Access token으로 사용될 수 있다.- 자체적으로 정보를 담을 수 있다. (ex. JWT)- 데이터베이스에서 조회할 수도 있다.- 만료되면 Refresh Token을 이용해 재발급 할 수 있다. [ 사용 과정 ]1. 사용자가 로그인2. 서버가 access token 발급3. 클라이언트가 API 요청시 access token을 포함4...

It,develop 2025.02.07

[알고리즘] 풀이 방식 모음

1. 이진법 변경 코드- 내장 메서드 사용function decimalToBinary(n) { return n.toString(2);}console.log(decimalToBinary(10)); // "1010"console.log(decimalToBinary(255)); // "11111111"  2. 틸드 (tilde, ~)= 비트 연산자(Bitwise NOT)console.log(~5); // -6 (5의 보수)console.log(~-1); // 0 (-1의 보수는 0) ~n은 비트 NOT 연산자로, -(n + 1)의 값을 반환함.~x가 0이 되는 경우, x는 -1임3. 이중 틸드 ( ~~ ) : Math.floor(x) 과 같은 효과를 내는 정수 변환(truncation) 기법console...

It,develop 2025.02.04

TDD

# TDD (Test-Driven Development, 테스트 주도 개발): 테스트 코드를 먼저 작성하고, 그 테스트를 통과하는 최소한의 기능을 구현하는 방식의 개발 방법론- "기능 구현 -> 테스트" 가 아닌, "테스트 -> 기능 구현" 순서로 진행하는 개발 방식 [ TDD 의 3 단계 ]Red- Green- Refactor 1. Red: 실패하는 테스트 작성- 원하는 기능을 검증하는 테스트 코드를 먼저 작성- 이때는 기능이 없기 때문에 실행하면 테스트가 실패 (Red) 2. Green : 테스트 통과하는 최소한의 코드 작성- 테스트가 통과할 수 있도록 최소한의 코드만 작성- 복잡한 최적화 없이, 단순히 "테스트를 통과하는 코드"를 먼저 작성 3. Refactor (코드 개선)- 기능이 정상적으로 동..

It,develop 2025.02.04

.env 파일

# .env 파일: 환경 변수를 저장하는 텍스트 파일로, 애플리케이션의 설정 값을 분리하여 관리할 수 있다.- key-value 형식( Key=Value ) 으로 값을 저장한다.-개발에서 설정값을 외부 파일로 관리할 때 사용한다. # 환경 변수 (Environment Variables): 운영 체제(OS)나 애플리케이션이 사용하는 설정값을 저장하는 변수- 하드코딩이 아닌, 외부 설정으로 동적인 값을 사용할 수 있도록 한다.- 특정 프로그램에서 공통으로 사용할 정보를 담을 수 있다. [ 환경 변수 예시 ]API_KEY=123456abcdefDB_HOST=localhostDB_PORT=5432NODE_ENV=development- API_KEY : API 사용을 위한 인증 키- DB_HOST : 데이터베이스..

It,develop 2025.02.03

MinIO Object Storage

# Object Storage: 데이터를 객체(Object) 단위로 저장하는 스토리지 시스템- 각 데이터가 메타데이터와 함께 객체 단위로 저장된다. [ 용도 ]1. 대용량 데이터 저장 (이미지, 동영상, 로그 파일 등)2. 클라우드 환경에서 확장성이 필요할 때3. 백업 및 아카이빙4. 데이터 공유 및 CDN(Content Delivery Network) 활용 # 대표적인 솔루션1. AWS S3 (Amazon Simple Storage Service)2. Google Cloud Storage3. Azure Blob Storage4. MinIO (오픈소스) # MinIO Object Storage: 고성능, 분산형 오브젝트 스토리지(Object Storage) 솔루션으로 AWS S3와 호환되는 API를 제공..

It,develop 2025.01.23