
DB 데이터베이스란 여러 사람이 공유하여 사용할 목적으로 관리하는 관련있는 데이터의 집합이다. RDBMS 관계형 모델을 사용하는 DBMS(Database Management System: DB 관리 소프트웨어)이다. 트랜잭션(ACID의 특성)을 지원한다. 수직확장을 하는 경우가 대부분이다. 대부분 관계형 데이터 베이스를 많이 사용한다. NoSQL(Not Only SQL) 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용한다. 수평확장(서버를 병렬 추가)이 가능하며 고성능인 경우가 많다. 트랜잭션을 지원하지 않거나 약하게 지원한다. 빅데이터와 실시간 웹 애플리케이션은 NoSQL 데이터베이스를 사용하는 편이다. ACID와는 대조되는 궁극적 일관성(Eventual Consistency)의 개념..
동기(Synchronous)와 비동기(Asynchronous) 시간이 동일시 되는가의 여부(함께 시간을 맞춤) 동기는 대상간에 동시에 진행되는 느낌이다. 함수는 보통 결과값을 return 해주기 때문에 그 결과값을 동일하게 가져가는지 여부도 판단의 요소가 되는 듯 하다. 동기는 하나의 시간을 가지며 진행된다. 동기적으로 작성된 것은 하나의 시간을 가지고 흐른다. 하지만, 비동기로 작성된 것은 하나의 메인 시간이 흐르는 동안 비동기 함수의 시간도 흐른다. Block과 Non-Block 제어권의 여부 하던 일의 진행의 막히냐 그렇지 않냐의 여부이다. 다른 함수를 호출할 때, 내 일이 막히면 block 상태이고, 호출한 뒤 제어권이 바로 넘어와서 계속 진행된다면 non-block 상태이다. non-block으..

용어정리 프로세스 실행중인 프로그램을 의미한다. 메모리에 정보가 올라와 CPU가 실행 가능한 프로그램이 되어 OS가 관리하는 상태이다. 스레드 프로그램의 실행 단위이다. 프로세스에서 실제 작업을 수행하는 단위이다. (기본적으로 프로세스가 있다는 것은 1개 이상의 커널레벨 스레드를 가진다는 것과 동일하다.) 스레드는 같은 프로그램 내의 code, data, heap 영역 등 주소공간의 일부를 공유한다. PC(Program Counter), 레지스터셋, stack 영역을 독자적으로 가진다. 따라서 context switch가 일어날 때, 교체되는 자원이 적다. OS가 존재를 알고 관리하는 커널 레벨 스레드와 OS가 존재를 모르고 프로세스가 자체 관리하는 사용자 레벨 스레드로 나뉜다. Task 프로세스를 추상..
일급함수 일급함수란 값으로 함수를 다루는 것을 의미한다. 순수함수(Pure function) 동일한 input이 주어질 때, 동일한 output이 나오는 함수를 순수함수라고 한다. 순수함수는 함수 내부에서 외부값을 참조하지 않는다. 오직 주어진 인자에 대해서만 작업을 수행하기 때문에 결과 예측이 가능하다. 함수형 프로그래밍에서 가장 중요한 것은 순수함수를 만들어내는 것이라고 생각한다. 순수함수는 테스트하기에 매우 용이하다. 고차함수(Higher-order function) 함수를 인자로 전달 받거나, 함수를 return하는 함수를 의미한다. 쉽게 말해 중접되어 있는 함수이다. 함수형 프로그래밍에서는 함수를 값으로 다루기 때문에 parameter나 return 값으로 사용이 가능한 것이다. 함수형 프로그래..
*이 글은 객체지향과 관련된 개념을 지금 수준에서 제가 이해한 내용을 작성한 글입니다. 실제 내용과는 상당히 다를 수 있습니다~! 😀 클래스와 오브젝트, 인스턴스 - 클래스 : 내가 생각하는 클래스는 essence(본질)이다. 인스턴스로 만드려는 각 특성의 본질을 뽑아 정의한 것이다. - 오브젝트 : 객체는 구체화 된 실체(대상)이다. 자바에서는 인스턴스를 오프젝트라고 한다. - 인스턴스 : 클래스를 구체화한 대상이다. 상속과 다형성 - 상속 : 부모의 성질을 물려받는 것이다. 클래스가 essence였다면 상속되는 부모 클래스는 자식 클래스들의 essence이다. 한 번 더 클래스의 공통되는 본질을 뽑아낸 것을 부모 클래스로 만들어 상속하게 된다. - 다형성 : 말 그대로 다양한 형(타입)이 사용할 수 ..

Bash Communication 지난 시간에 셸 스크립트에 대해 학습했다. bash 커뮤니케이션이는 return 값이 존재한다! C언어로 예를 들면, 0는 시스템의 정상종료, 그외 정수 값은 비정상종료를 의미한다. $? 은 최근 실행한 함수의 return 값을 가진 변수를 출력해준다. 자료구조와 알고리즘 알고리즘은 2가지 특성을 가진다. 1. input, output이 있어야 한다. 2. 유한시간 안에 실행되어야 한다. 자료구조는 데이터를 담는 방식이다. 적절한 자료구조를 사용하는 것이 가장 중요하다. 배열+리스트가 90%, 해시맵까지 포함하면 99% 비율로 많이 사용된다. 하지만 트리 등의 구조도 꼭 알아두자! 알고리즘 성능표기 - 점근적 표기법 : 알고리즘에서 input이 커지면서(x > N, 임의..

쉘? 쉘이란 TUI(Text User Inferface - 옛날 버전), CLI(Command Line Interface - 지금 버전) 이라고 불린다. 쉘은 명령어로 프로그램을 실행할 때 사용하는 인터페이스이다. OS와 소통하는 가장 편한 방식은 system call이며, OS와 소통하는 것을 편하게 하려고 인터페이스인 쉘을 사용하는 것이다. 쉘을 왜 배우나? GUI(Graphic User Interface)를 사용할 수 없는 환경을 위해서 사용한다. GUI는 편하지만 무겁잖아! 그래서 일반적으로 서버에 gui를 올리지 않거든 쉘 스크립트? 쉘이나 CLI에서 돌아가도록 작성되었거나 한 운영체제를 위해 쓰인 스크립트다. (출처 : 나무위키) ✨✨✨유닉스, 리눅스에서는 모든 것을 파일 입출력으로 관리한다!..

리눅스를 왜 배워야 할까 리눅스는 IT 산업 전반에 사용되는 운영체제다. 수많은 네트워크, 어플레케이션, DB 등이 리눅스 기반 환경에서 동작한다. -> 동작환경을 이해하기 위해서 오픈소스 코드다. 운영체제 핵심 원리를 소스코드 분석으로 배울 수 있다. 왜 리눅스를 배워야 하는가 참고 글 리눅스의 역사 처음 미닉스 교육용으로 리누스 토발즈가 리눅스를 만들게 되었다. 미닉스란 유닉스 계열 운영체제로 유닉스 교육용으로 만들어 졌다. 유닉스란 처음으로 멀티 프로그래밍을 가능하게 하고, C언어로 만들어져 이식성이 높은 운영체제이다. C언어 전에는 어셈블리어로 OS를 만들었고, 어셈블리어는 정해진 CPU에서만 작동하는 단점이 있어 CPU 마다 다른 어셈블리어로 작성된 프로그램이 필요하다. 유닉스는 오픈소스이지만 ..
- Total
- Today
- Yesterday
- python
- 마스터즈코스
- 운영체제
- 월간회고
- React
- JPA
- 카카오
- 회고
- javascript
- java
- 내부코드
- 알고리즘
- TCP/IP
- 개발공부일지
- 코드스쿼드
- DB
- 인증
- 학습로그
- JS
- 글쓰기미션
- OS
- TIL
- Transaction
- 네트워크
- 우테코수업
- 우아한테크코스
- 객체지향
- CS
- 모의면접준비
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |