본문 바로가기

공부 기록

(319)
(1부) DB MVCC 개념 설명합니다 ! MVCC가 각각의 isolation level에서 어떻게 동작하는지도 MySQL & postgreSQL 예제와 함께 설명합니다 https://youtu.be/wiVvVanI3p4 MVCC(Multiversion Concurrency Control) - 커밋된 데이터만 읽는다. - 데이터를 읽을 때 특정 시점 기준으로 가장 최근에 커밋된 데이터를 읽는다.(MySQL에서는 Consistent read라고 함) - 데이터 변화(write) 이력을 관리한다. - read와 write는 서로를 block하지 않는다. Isolation level read committed : read하는 시간을 기준으로 그 전에 커밋된 데이터를 읽는다. repeatable read : 트랜잭션 시작 시간을 기준으로 그 전에 커밋된 데이터를 읽는다. serializable : MySQL => MVCC로 동작하기 보다는 lock으로 동작한다. PostgreS..
컨텍스트 스위칭 뽀개기! 의미와 종류와 왜 스레드 컨텍스트 스위칭이 더 빠르다고 하는지까지..! 이 모든 것을 시원~~하게 설명합니다!! https://youtu.be/Xh9Nt7y07FE 컨텍스트 스위칭(Context switching) : CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것(스레드 교체 => 다른 프로세스의 스레드로 교체) 컨텍스트(Context) : 프로세스/스레드의 상태, CPU, 메모리 등 컨텍스트 스위칭이 필요한 이유 : 여러 프로세스/스레드를 동시에 실행시키기 위해서 컨텍스트 스위칭은 언제 발생하는가? 주어진 time slice(quantum)를 다 사용했거나, IO 작업을 해야 하거나, 다른 리소스를 기다려야 하거나 ... 컨텍스트 스위칭은 누구에 의해 실행되는가? OS 커널(kernel). 각종 리소스를 관리/감독하는 역할 컨텍스트 스위칭은 구체적으로 어떤 과정으로 일어나는가?..
[10분 테코톡] 나봄의 CORS https://youtu.be/-2TgkKYmJt4 SOP(Same Origin Policy) : 다른 출처의 리소스를 사용하는 것에 제한하는 보안 방식 출처(Origin) => URL의 Protocol, Host, Port를 통해 판단 가능 https://github.com:443 => Protocol(https://), Host(github.com), Port(:443) Same origin / Cross origin CORS(Cross-Origin Resource Sharing) : 다른 출처의 자원을 공유. 추가 HTTP 헤더를 사용하여 한 출처에서 실행중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 CORS 접근 제어 시나리오 프리플라..
[10분 테코톡] 멍토의 Blocking vs Non-Blocking, Sync vs Async https://youtu.be/oEIoqGd-Sns Blocking : 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작 Non-Blocking : 다른 주체의 작업과 상관없이 자신의 작업을 하는 것 Synchronous : 작업을 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작 Asynchronous : 시작, 종료가 일치하지 않으며, 끝나는 동시에 시작하지 않음 Blocking/Sync => 응답 대기 & 응답이 나오면 바로 처리 Non-blocking/Sync => 응답 대기X but 중간중간 응답이 나왔는지 확인 & 응답이 나오면 바로 처리. Blocking/Sync와 큰 차이는 없다. Blocking/Async => 응답 대기 ..
[10분 테코톡] 제이의 Spring AOP https://youtu.be/Hm0w_9ngDpM 인프라 로직 => 부가 기능 - 애플리케이션의 전 영역에서 나타날 수 있음 - 중복 코드를 만들어낼 가능성이 있어 유지보수가 힘듦 - 비즈니스 로직과 함께 있으면 비즈니스 로직을 이해하기 어려워짐 AOP(Aspect-Oriented Programming) - OOP와 대비되는 개념이 아닌 보완하는 개념 - AOP 구현체 - Transactional, Interceptor, Filter ... AOP 용어 - Target : 어떤 대상에 부가 기능을 부여할 것인가 - Advice : 어떤 부가 기능을 부여할 것인가 - Before, AfterReturning, AfterThrowing, After, Around - Join point : 어디에 적용할 것..
[10분 테코톡] 하루의 실행 컨텍스트 https://youtu.be/EWfujNzSUmw Record로 JS 호이스팅 이해하기 - 선언문이 마치 최상단에 끌어올려진 듯한 현상. 선언 이전에도 에러가 나지 않고 변수를 참조할 수 있다. => 자바스크립트 엔진이 먼저 전체 코드를 스캔하면서 변수와 같은 정보를 실행 컨텍스트 어딘가에 기록해놓기 때문 => 환경 레코드(Environment Record), 식별자와 식별자에 바인딩된 값을 기록 - 생성 단계(Creation Phase) : 실행 컨텍스트 생성, 선언문만 실행해서 환경 레코드에 기록 - 실행 단계(Execution Phase) : 선언문 외 나머지 코드 순차적 실행, 환경 레코드를 참조하거나 업데이트 - 일시적 사각지대(Temporal Dead Zone) : let 또는 const로 ..
[10분 테코톡] 쿨라임의 HTTP/1.1, HTTP/2, 그리고 QUIC https://youtu.be/xcrjamphIp4 HTTP : 웹 상에서 클라이언트와 서버 간 통신을 위한 프로토콜 TCP(Transmission Control Protocol) => 3 Way Handshake. 신뢰성은 높지만 전송 속도가 느리다.(지연 불가피) UDP(User Datagram Protocol) => 신뢰성은 낮지만 전송 속도가 빠르다. HTTP/0.9 ~ /2 : TCP 사용 HTTP/1.0까지 => 커넥션 당 요청 1 & 응답 1. 매번 새로운 연결로 성능 저하, 서버 부하 비용 증가 HTTP/1.1 - Persistent Connection => 지정한 timeout 동안 커넥션을 닫지 않는다. - Pipelining => 하나의 커넥션에서 응답을 기다리지 않고 순차적인 여러 ..
[10분 테코톡] 코일의 Web Socket https://youtu.be/MPQHvwPxDUw 웹 소켓 - 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나 - W3C와 IETF에 의해 자리잡은 표준 프로토콜 중 하나 - 현재 인터넷 환경(HTML5)에서 많이 사용된다. - 웹 소켓을 지원하는 브라우저의 경우 웹 소켓 프로토콜을 지원 특징 1. 양방향 통신(Full-Duplex) - 데이터 송수신을 동시에 처리할 수 있는 통신 방법 - 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받을 수 있다. - 통상적인 Http 통신은 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신 2. 실시간 네트워킹(Real-Time Networking) - 웹 환경에서 연속된 데이터를 빠르게 노출 - ex. 채팅, 주식, 비디오 데이터..