일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디자인 패턴
- c언어
- C
- 알고리즘
- redis
- Spring
- Data Structure
- react
- 네트워크
- 컴퓨터구조
- JavaScript
- Galera Cluster
- IT
- Algorithm
- mongoDB
- 파이썬
- 운영체제
- 자료구조
- Heap
- Java
- OS
- design pattern
- 백준
- JPA
- Kafka
- spring webflux
- Proxy
- 자바
- MSA
- MySQL
- Today
- Total
목록분류 전체보기 (214)
시냅스
DOM 문서 객체 모델, HTML, XML 문서의 프로그래밍 interface 문서의 구조화된 표현(structured representation)을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다 API (web or XML page) = DOM + JS (scripting language) Serverless 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델 개발자는 배포를 위해 코드를 컨테이너에 패키징만 하면 됨! 서버리스는 클라우드 인프라와 애플리케이션의 스케일링을 모두 관리 필요할 때만 리소스를 할당하여 운영 비용을 줄일 수 있다. BaaS (Back..
Hook 함수 컴포넌트에서 React state와 생명주기 기능(lifecycle features)을 연동(hook into)할 수 있게 해주는 함수 사용규칙 최상위에서만 사용해야 한다 React 함수 컴포넌트 내에서만 호출해야 한다 State Hook useState state, setState 함수를 쌍으로 제공 이벤트 핸들러나 다른 곳에서도 호출 가능 const [state, setState] = useState(() => { const initialState = someExpensiveComputation(props); return initialState; }); 위와 같이 렌더링 초기에만 initialState를 사용할 수 있음 초기렌더링이 고비용일 때 이용 가능, 렌더링 이후 initialSt..
Thread cpu 점유의 기본 단위 구성 : tid, PC, 레지스터 집합, 스택 cpu 점유는 pid 내부의 tid가 한다. 스레드 간에는 코드, 데이터 파일을 공유한다. Multithreading 장점 응답성 : 봉쇄되거나 긴 작업이 수행돼도 쓰레드를 생성해 명령 수행 자원 공유 : code와 data, file을 공유해 사용 가능 경제성 : 프로세스를 여러개 만드는 것보다 경제적, context switching에 있어서도 마찬가지이다. 확장성 : 멀티 프로세스 아키텍쳐에서 병렬처리 가능 멀티코어, 멀티프로세싱 안에서의 멀티쓰레딩 병행성 양상 쓰레드가 여러개인 상황을 가정 싱글코어 : 시간에 따라 인터리빙(사이사이 끼어 넣는다 e.g. 시분할) 멀티코어 : 병렬적 수행 멀티코어에서 도전과제 iid..
Code splitting : 번들이 거대해져 로드 시간을 줄이기 위해 코드를 분할한다. (lazy init...?) import import("./math").then(math => { console.log(math.add(16, 26)); }); Webpack 이 위 구문을 만나면 앱의 코드를 분할함, CRA를 사용한다면 WebPack에서 구성 되어 있음 React.lazy : 서버 사이드 렌더링에서는 불가, Loadable Components 사용해야 함. const OtherComponent = React.lazy(() => import('./OtherComponent')); import 를 동적으로 호출, Promise로 반환 import React, { Suspense } fro..
POSIX 공유 메모리 : 메모리 - 사상 파일을 사용하여 구현된다, 메모리 - 사상 파일은 공유 메모리 특정 영역을 연관 시킨다. Mach 메세지 전달 대부분의 통신은 메세지로 수행된다. Port로 메세지를 주고 받는다. 포트는 크기가 정해져 있고 단방향이다. 양방향 통신의 경우, 메세지가 한 포트로 전송되고 응답이 별도의 응답 포트로 전송된다. 각 포트에는 여러 송신자가 있을 수 있지만 수신자는 오직 하나. 포트를 사용하여 태스크, 스레드, 메모리 및 프로세서와 같은 자원을 나타낸다. 각 포트에는 그 포트와 상호 작용하는데 필요한 자격을 식별하는 포트 권한이 필요 태스크가 생성되면 Task self 포트와 Notify 포트 생성 커널은 Task Self 포트에 대한 수신 권한이 있어 태스크가 커널에 ..
프로세스 간 통신 (Interprocess Communication) 독립적 : 프로세스 간 데이터 통신 X 협력적 프로세스 간 영향을 주거나 받음 프로세스 간 통신 기법 IPC 공유 메모리 시스템에서의 프로세스 간 통신 (IPC in Shared-Memoty Systems) 공유 메모리 영역을 통해 통신한다. 공유 메모리 공간을 사용하기 위해선 자신의 주소 공간에 포함시켜야 한다. 일반적으로 운영체제는 한 프로세스가 다른 프로세스의 메모리에 접근하는 것을 금지해야하지만 이 제약 조건을 제거한다. Producer - Consumer Problem 생사자는 정보를 제공하고 소비자는 소비하는 모델 Compler(생산) -> assembly code -> Assembler(소비) Browser(소비) Web ..
ECMAScript ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어 자바스크립트를 표준화 하기 위해 만들어졌다. Ecma international TC39 committee 에서 표준 기술 제정 TC39 에는 Microsoft, Google, Apple 등 참여 중 현재는 ES2021이 가장 최신 버전, ES2022를 앞두고 있다. 그럼에도 불구하고 우리가 아직도 ES6를 외치는 이유는... ES6 (ES2015) let const Spread syntax Destructuring Assignment let a, b, rest; [a, b] = [10, 20]; console.log(a); // expected output: 10 console.log(b); // exp..
프로세스 : 실행 중인 프로그램 작업의 단위 필요한 자원 CPU time memory files I/O device 기본적으로 쓰레드 하나지만 여러개도 있음 프로세스의 메모리 레이아웃 text section : 실행 코드 data section : 전역 변수 heap section : 프로그램 실행 중 동적으로 할당되는 메모리 stack section : 함수를 호출할 때 임시 데이터 저장소(함수 매개변수, 복귀 주소, 지역 변수) 프로세스의 러닝 주기 new : 프로세스 생성 중 running : cpu에 명령어를 실행하는 상태 waiting : cpu 점유를 기다리는 상태 (I/O 관련, 신호의 수신) ready : cpu 점유 직전 대기 상태 teminated : 끝! 프로세스 관리법 : PCB(p..
운영체제 정의 : 컴퓨터 시스템을 운영하는 소프트웨어 컴퓨터 : 정보를 처리하는 기계 bit : 정보의 기본 단위 {0, 1} => 8bit(2^8) => 1byte 정보의 저장 : 플립플롭 정보의 전송 : 데이터 버스 덧셈 : 반가산기, 뺄셈 : 2의 보수 표현법 곱셈 and 나눗셈 : 덧셈과 뺄셈의 연속 실수연산 : 부동 소수점 표현법 Kernal bootstrap : 컴퓨터가 켜지자마자 운영체제를 메모리에 할당 interupt : cpu I/O device 간 통신방법 ( 시스템 버스로 cpu에 signal 보냄) DMA : cpu를 거치지 않고 디바이스 간 연결 cpu 명령어 처리 processor - cpu 하나 or 여러개 갖고 있는 물리적 칩 core : cpu 기본 단위 multicore ..
JWT 나의 언어로 요약하자면... 서버에서 결정한 시크릿 키를 토대로 해쉬함수 돌려서 헤더를 통해 전달 구조는 총 3블락으로 이뤄지는데, 헤더 alg : '알고리즘 명세' type : '토큰 타입' payload : 토큰에 담을 정보 signature : 서명(인코딩 된 값) API 마찬가지로 나의 언어로 요약하자면... API는 OS에서 쓰는 System Call 을 어원으로 한다 알고 있는데, 비슷한 맥락으로 Open API 라고 통칭하는 것 같고, Open API는 웹사이트에서 가진 기능을 이용할 수 있도록 공개한 프로그래밍 인터페이스다. 사실 나는 그냥 '명령' 정도로만 쓰고 있다. 몇몇의 회고 밀도있는 계획이 필요하다. meta한 것에 집중할 필요는 없지만, meta한 것을 조금 더 단단히 다..