일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- VIM
- db
- react
- network
- DFS
- 리트코드
- 프로그래머스
- 다이나믹 프로그래밍
- git
- Graph
- CS
- Python
- 그레이들
- 안드로이드
- LeetCode
- DP
- frontend
- Algorithm
- java
- Data Structure
- 자바
- 동적 계획법
- TypeScript
- Database
- 알고리즘
- BFS
- vscode
- Redux
- 백준
- Javascript
- Today
- Total
목록전체 글 (390)
늘 겸손하게
함수 호이스팅 호이스팅이란 선언문이 코드 최상단에 끌어올려진 듯한 자바스크립트만의 현상을 의미한다. 함수 또한 호이스팅이 발생할 수 있는데 함수 선언문과, 함수 표현식 어떤 방식을 사용하여 함수를 선언했느냐에 따라 호이스팅이 발생할 수도, 발생하지 않을 수 있다. 차이점을 알아보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 함수 참조 console.dir(add); // f add(x, y) - 호이스팅 발생 console.dir(sub); // undefined // 함수 호출 console.log(add(2, 5)); // 7 - 호이스팅 발생 console.log(sub(2, 5)); // TypeError: sub is not a function // 함수 ..
문자열 메모리 사용량 문자열은 0개 이상의 문자(character)로 이뤄진 집합을 말하며, JS에서 1개의 문자는 2바이트의 메모리 공간에 저장된다. 따라서 문자열은 몇 개의 문자로 이뤄졌느냐에 따라 필요한 메모리 공간의 크기가 결정된다. 숫자 값은 1도, 100000도 동일한 8바이트가 필요하지만 문자열의 경우 1개의 문자로 이루어진 문자열은 2바이트, 10개의 문자로 이루어진 문자열은 20바이트가 필요하다. 문자열은 유사 배열 객체 문자열은 유사 배열 객체이면서 이터러블이므로 배열과 유사하게 각 문자에 접근할 수 있다. 유사 배열 객체 : array-like object 배열처럼 인덱스로 프로퍼티 값에 접근 가능하고, length 프로퍼티를 갖는 객체를 말함 1 2 3 4 let str = 'str..
[ LCS 정의 ] LCS는 Longest Common Substring, Longest Common Subsequence 두 가지를 의미합니다. Longest Common Substring는 최장 공통 문자열, Longest Common Subsequence는 최장 공통 부분수열. [ 둘의 차이점은? ] 둘의 차이점은 연결되는 문자열인가, 수열인가의 차이입니다. 최장 공통 부분수열은 수열을 찾는것이기 때문에 연결되지 않아도 문제없습니다. ABCDEF GBCDFE -> BCDF ABCDEF GBCDFE -> BCDE 하지만 최장 공통 문자열은 문자열이기 때문에 연결되어 있는 동시에 공통된 문자열을 찾아야 합니다. ABCDEF GBCDFE -> BCD 최장 공통 문자열 ( Longest Common Sub..
트랜잭션 DB에서 하나의 논리적 기능을 수행하기 위한 최소한의 작업의 단위. DB에 접근하는 방법은 쿼리이므로, 여러 개의 쿼리들을 하나로 묶는 단위를 말함. 트랜잭션에 대한 특징은 원자성, 일관성, 독립성, 지속성이 있으며 이를 ACID라고 부름. 원자성 (Atomicity) 트랜잭션 작업이 모두 수행되거나 아예 수행되지 않는 것을 의미. ( all or nothing ) 트랜잭션 작업이 취소되면 롤백(원상태로 돌리기)이 일어나는데 트랜잭션 도중에 취소가 발생하면 결과값에 오류가 발생할 수 있기 때문에 원자성을 꼭 띄어야함. [ 커밋과 롤백 ] 커밋 (commit) 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어. 트랜잭션 단위로 수행되며 변경된 내용이 모두 영구적으로 저장되는 것을 의미. 그래서 ..
Entity Relationship Diagram (ERD) 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것. 그림으로 릴레이션 간의 관계들을 표현한 다이어그램. ERD의 중요성 시스템 요구 사항을 기반으로 작성되며 ERD를 기반으로 데이터베이스를 구축. 데이터베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 함. 문제 상황 비정형 데이터를 충분히 표현할 수 없다는 단점이 있음. 비정형 데이터란 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보를 말함.
Database 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음 데이터베이스는 실시간 접근과 동시 공유가 가능 DBMS (DataBase Management System) 데이터베이스를 제어, 관리하는 통합 시스템 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어(query language)를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있습니다. Entity (엔티티) 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미. 하나의 엔터티는 다른 엔터티와 구분된다. 강한 엔터티와 약한 엔터티 A가 혼자서 존재하지 못하고 B에 종속적이라면 A는 약한 엔터티이고 B는 강한 엔터티가 됩니다. 예로 방은 건물 안에만 존재하기 때문에 방은 약한 엔터티라..
멀티 프로세싱 여러 개의 프로세스를 병렬로 실행 시켜 동시에 두 가지 이상의 일을 처리하는 일. 특정 프로세스에 문제가 생겨도 다른 프로세스에 작업을 맡길 수 있어 신뢰성이 높다. 웹 브라우저의 멀티 프로세스 구조 브라우저 프로세스 : 주소 표시줄, 북마크 막대, 뒤로 가기 버튼, 앞으로 가기 버튼 등을 담당하며 네트워크 요청이나 파일 접근 같은 권한을 담당 렌더러 프로세스 : 웹 사이트가 '보이는' 부분의 모든 것을 제어합니다. 플러그인 프로세스 : 웹 사이트에서 사용하는 플러그인을 제어합니다. GPU 프로세스 : GPU를 이용해서 화면을 그리는 부분을 제어합니다. IPC Inter Process Communication의 약자로 프로세스간 데이터를 주고 받고 공유 데이터를 관리하는 메커니즘을 말합니다..

프로그램 컴파일 과정 C 언어 기준으로 설명하겠습니다. 컴파일 과정은 크게 전처리 과정 -> 컴파일 과정 -> 어셈블리 과정 -> 링킹 과정을 거친다. 소스 코드 파일(*.c)이 전처리 과정 (Pre-processing)을 거치면 전처리된 소스 코드(*.i)가 되고 컴파일러를 거치면 어셈블리어 파일이 되고 어셈블리어 파일이 어셈블러를 거치면 목적 코드가 됩니다. 링커는 목적 코드와 프로그램 내에 있는 라이브러리 함수와 다른 목적코드들을 결합해 실행 파일(exe, out)을 만듭니다. 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환합니다. 컴파일 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환합니다. 어셈블리 어셈블리어는 목적 코드(object code)..