공부 기록/영상 후기 (184) 썸네일형 리스트형 인터럽트와 시스템 콜을 설명합니다! 당연히 유저 모드, 커널 모드도 설명해야겠죠? 그런데 이 모든게 프로그래밍 언어와 무슨 상관이냐구요?? 상관있죠! 왜 상관있냐면요..! https://youtu.be/v30ilCpITnY User mode & Kernel mode - User mode : 우리가 개발하는 프로그램은 일반적으로 유저 모드에서 실행 - User mode => Kernel mode : 프로그램 실행 중에 인터럽트가 발생하거나 시스템 콜을 호출하게 되면 커널 모드로 전환 - Kernel mode : 프로그램의 현재 CPU 상태를 저장함. 커널이 인터럽트나 시스템 콜을 직접 처리. 즉, CPU에서 커널 코드가 실행됨. 처리가 완료되면 중단됐던 프로그램의 CPU 상태를 복원 - Kernel mode => User mode : 다시 통제권을 프로그램에게 반환 - User mode : 프로그램이 이어서 실행됨 커널(Kernel) - 운영체제의 핵심 - 시스템의 전반을 .. 스택과 큐 설명! 참 쉽죠~~? 기술 문서 읽다가 큐 만났을 때 팁과 스택/큐와 관련된 에러들 그리고 해결책도 설명드려요!! https://youtu.be/-2YpvLCT5F8 ADT, Abstract Data Type : 추상 자료형. 개념적으로 어떤 동작이 있는지만 정의. 구현에 대해서는 다루지 않음 DS, Data Structure : 자료구조. ADT에서 정의된 동작을 실제로 구현한 것 스택(stack) - LIFO(Last In First Out) 형태로 데이터를 저장하는 구조 - 주요 동작 : push, pop, peek - 사용 사례 : stack memory, stack frame 큐(queue) - FIFO(First In First Out) 형태로 데이터를 저장하는 구조 - 주요 동작 : enqueue, dequeue, peek - 사용 사례 : producer/consumer architecture - 기술.. 우선순위 큐와 힙의 개념과 차이, 사용 사례를 설명합니다! 힙이 어떻게 동작하는지도 예를 통해 자세히 설명합니다! https://youtu.be/P-FTb1faxlo 우선순위 큐(Priority queue) - 큐와 유사하지만 우선순위가 높은 아이템이 먼저 처리됨 - 주요 동작 : insert, delete, peek 힙(Heap) - 주로 이진 트리 기반으로 구현 -- 트리(tree) : 부모-자녀처럼 계층적인 형태를 가지는 구조 -- 이진 트리(binary tree) : 자녀가 최대 두 개인 트리 - max heap : 부모 노드의 키가 자식 노드(들)의 키보다 크거나 같은 트리 - min heap : 부모 노드의 키가 자식 노드(들)의 키보다 작거나 같은 트리 - 주요 동작 : insert, delete, peek Priority queue와 Heap의 관계 힙의 키를 우선순위로 사용한다면 힙은 우선순위 큐의 .. 변수와 객체와 메모리의 관계! 자바를 예로 들어 변수와 객체는 메모리에 어떻게 저장되는지 정말 쉽게 설명해요! https://youtu.be/GIsr_r8XztQ 애플리케이션은 어떻게 실행되는가? - 애플리케이션 : 일반 사용자가 사용할 기능을 제공하는, 컴퓨터가 실행할 수 있는 명령어들의 집합 - 메모리 : 실행된 애플리케이션이 상주하는 곳 => 애플리케이션이 실행되기 위해선 반드시 메모리에 올라가야 한다. - CPU : 명령어를 실행하는 주체 메모리 구조 - 애플리케이션에 할당되는 메모리는 내부적으로 여러 영역으로 나뉜다. - stack 메모리 : 함수나 메서드의 지역 변수와 매개 변수가 저장됨. 함수나 메서드가 호출될 때마다 스택 프레임이 쌓임 - heap 메모리 : 객체가 저장됨 * 참조 변수는 주소값을 가진다. => (내부적으로 어떤 형태로든 주소값을 갖고 있긴 하겠지만) C언어의 포인터처럼 주소값 자체.. CPU 스케줄러는 프로세스를 어떻게 스케줄링 하는 걸까요? 선점/비선점의 차이는 뭘까요? 디스패처는 또 뭐죠? https://youtu.be/LgEY4ghpTJI CPU Scheduler : CPU가 항상 일을 할 수 있도록 실행될 프로세스를 선택하는 역할 Dispatcher : 선택된 프로세스를 실제로 CPU에서 실행될 수 있도록 만드는 역할(선택된 프로세스에게 CPU를 할당). Context switching. 커널 모드에서 유저 모드로의 전환. 적절한 위치로 선택된 프로세스를 이동 - 여러 문서에서는 스케줄러가 둘의 역할을 다 하는 것처럼 설명하기도 함 스케줄링의 선점 방식 비선점(Nonpreemptive) 스케줄링 : 프로세스가 자발적으로 running 상태에서 빠져나간다(running -> terminated, waiting, ready). 운영체제가 적극적 또는 강제적으로 개입하지 않는다. => 신사적.. [10분 테코톡] 수달의 JPA N+1 문제 https://youtu.be/ni92wUkAmQI JPA N+1 문제 : 요청이 1개의 쿼리로 처리되길 기대했는데 N개의 추가 쿼리가 발생하는 현상 지연(Lazy) 로딩 : 엔티티를 조회할 때 사용할 때까지 데이터 로딩을 미룬다. Fetch join : 연관된 엔티티나 컬렉션을 한 번에 같이 조회하는 기능(연관된 엔티티까지 영속성 컨텍스트에 전부 올린다.) 즉시(Eager) 로딩 시에도 N+1 문제가 발생 => 최대한 지연 로딩 + fetch join을 사용한다. [10분 테코톡] 아마찌의 ORM vs SQL Mapper vs JDBC https://youtu.be/VTqqZSuSdOk Persistence : 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 == 영속성 JDBC(Java Database Connectivity) : 자바에서 DB에 접속할 수 있도록 하는 자바 API Persistence Framework : JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 DB와 연동되는 시스템을 빠르게 개발 SQL Mapper : SQL 문과 객체의 필드를 매핑하여 데이터를 객체화 패러다임 불일치 : 객체지향(추상화, 상속, 다형성) RDB(데이터 중심의 구조). 각각 지향하는 목적이 달라서 사용 방법과 표현 방식에 차이가 있다. ORM(Object Relational Mapping) : 객체와 관.. [10분 테코톡] 잉, 페퍼의Spring Data JPA 삽질일지 https://youtu.be/kJexMyaeHDs 비영속 -> 영속 : .persist 준영속 -> 영속 : .merge (merge 전과 후 객체는 명백히 다르다.) 삭제 상태의 엔티티는 ID값이 있고 영속성 컨텍스트와 연결되어 있으며 DB에서 제거되도록 예약되어 있다. 프록시 객체 : 엔티티를 상속 받은 가짜 객체 이전 1 ··· 9 10 11 12 13 14 15 ··· 23 다음