yunki Kim Blog

「Do What You Love」

Chapter3-4. 스레드

스레드의 개념 스레드의 정의   프로세스 작업 과정은 다음과 같다.   1. OS가 코드와 데이터를 메모리에 올린다.   2. PCB를 생성한다.   3. 작업에 필요한 메모리 영역을 확보한다.   4. 준비된 프로세스를 준비 큐에 삽입한다.(준비 상태)   5. CPU 스케줄러가 프로세스가 해야 ...

클린 코드가 정답인가?

  며칠 전에 즐겨보던 유튜브 채널인 "포프 티비"에서 "클린 코드 때문에 취업 실패한 썰"이라는 제목의 영상이 하나 올라왔습니다. 이 영상의 주된 내용은 지인이 클린 코드라는 개념에 대해 면접에서 책 "클린 코드"에 대해 많은 거론을 했고 그에 동의하는 것처럼 설명을 해서 탈락했다였습니다. 그러면서 북미 일부 기업은 본인 스스로 올바른 판단...

Chapter3-3. 프로세스의 연산

  프로세스의 생성과 복사를 이해하기 위해선 우선 시스템 프로그래밍을 이해해야 한다. 프로세스의 생성과 복사를 설명하기 전에 우선 프로세스의 구조를 파악하자. 프로세스의 구조   프로세스는 코드 영역, 데이터 영역, 스택 영역으로 구성된다. 데이터 영역은 다신 일반 데이터 영역과 힙 영역으로 구분된다.  영역 종류 설명...

Querydsl 구조와 mysql 무작위 데이터 조회하기

  프로젝트에서 홈 모듈 도메인을 맡아서 기능을 구현하던 도중 다음과 같이 native query를 사용한 코드를 발견했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 @Query(value =      ...

Item 31. 한정적 와일드카드를 사용해 API 유연성을 높이라

  매개변수화 타입은 불공변(invariant)이다. 즉, 서로 다른 타입 Type1과 Type2가 있을 때 List <Type1>과 List <Type2>는 서로의 상위 타입도 하위 타입도 아니다. 예컨대 List <String>은 List <Object>의 하위 타입이 아니다. 이는 List &l...

Item 26. 로 타입은 사용하지 말라

  클래스와 인터페이스 선언에 타입 매개변수(type parameter)를 쓰면, 이를 각가 제네릭 클래스와 제네릭 인터페이스라 한다. 이 둘을 통틀어 제네릭 타입(generic type)이라 한다.   각 제네릭 타입은 매개변수화 타입(parameterized type)을 정의한다. 예컨대 List <String>은 원소...

Chapter3-1. 프로세스의 개요

  OS에서 프로세스는 하나의 작업 단위다. 사용자가 프로그램을 실행하면 프로세스가 된다. 폰노이만 구조에서 프로그램을 실행한다는 것은 해당 코드가 메모리에 올라와 작업이 진행된다는 의미다. 프로그램은 저장장치에 저장되어 있는 정적 상태이고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태다. 프로그램에서 프로세스로의 전환   프...

Chapter 3-2. 프로세스 제어 블록과 문맥 교환

프로세스 제어 블록   PCB는 다음과 같은 구조를 가진다. 포인터   PCB를 연결해 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용한다. 대기 상태에서 빠르게 프로세스를 탐색하기 위해 같은 입출력을 요구하는 프로세스들끼리만 하나의 대기 큐에 모아놓는다. 이후에 입출력 매니저로 부터 인터럽트가 도착하면 PCB를 대기 큐에...

Chapter 8. 명명을 잘 하는 방법

  좋은 이름을 사용하면 LTM을 활성화하여 코드 도메인에 대해 이미 알고 있는 관련 정보를 찾을 수 있다. 반면, 나쁜 이름은 코드에 대한 잘못된 추측을 하게 하고 오개념을 유발한다. 이름이 중요한 이유   클래스나 자료구조가 수행하는 모든 작업을 모호하지 않은 하나의 단어로 표현하는 것은 쉽지 않은 일이다. 예루살렘 히브리 대학의...

Chapter 7. 생각의 버그

  버그는 오타와 같이 일을 엉성하게 처리했을 때 발생하기도 하지만, 많은 경우 생각의 착오로 인해 발생한다. 왜 두 번째 프로그래밍 언어가 첫 번째보다 쉬울까?   이미 배운 지식은 다른 영역에서도 유용하다. 이를 전이(transfer)라 한다. 지식 전달은 이미 알고 있는 정보가 새로운 것에 도움이 될 때 일어난다.  &...