분류 전체보기

    [기술 면접 tip] 스레드를 많이 쓰면 무조건 성능이 좋아질까요?

    이런 질문을 하는 이유 질문이 다소 추상적이고 넓은 느낌이 들죠 모호해 보이는 이런 질문은 여러 대답들이 나올 수 있기 때문에 지원자 분이 어느 정도까지 알고 있는지, 어떤 관점에서 문제를 바라보는지, 알고 있는 지식을 잘 정리해서 성능과 연결 지어 판단할 수 있는지 이런 것들을 확인하기 위한 목적이 있습니다 이런 다소 모호한 질문은 어떻게 접근하는 것이 좋은가? 이런 종류의 질문은 생각해 볼 여지가 있는 질문이라서 긴장하지 마시고 자신이 알고 있는 것을 잘 정리해서 논리적으로 대답하는 것이 중요합니다 동시성 측면에서 접근 자, 그러면 이런 질문에 어떻게 답변할 수 있는지 예를 들어 보겠습니다 당장 드는 생각은, '스레드를 많이 쓰면 쓸수록 동시에 더 많은 작업들을 실행할 수 있으니까 애플리케이션의 성능..

    [DB] key와 index의 차이

    key와 index는 무엇인가? key는 테이블에 있는 tuple을 유일하게 식별하는(uniquely identify) attributes 집합을 의미한다 index는 테이블에 있는 tuple을 빠르게 찾기 위해 테이블에 적용되는 추가적인 자료 구조다 (보통 candidate key를 줄여서 그냥 key라고 부른다. 즉 key = candidate key) primary key와 index의 관계 한 테이블에는 여러 key들이 존재할 수 있다. 그중에서 tuple을 식별할 목적으로 DB 설계자가 공식적으로 선택하여 지정한 key를 primary key라고 한다 primary key는 엄밀히 말하면 constraint다 테이블을 생성할 때 primary key를 지정하게 되면 해당 primary key에 ..

    멀티태스킹에서 CPU time slice는 고정일까?

    (멀티태스킹 개념을 아셔야 이해하실 수 있습니다) 👉 멀티태스킹 글 보러 가기 👉 컴공 맛집 백엔드 전문 채널 쉬운코드 유튭 구경 가기 멀티태스킹이란? 멀티태스킹 방식은 CPU 사용 시간을 아주 짧게 쪼개서 time slice 단위로 여러 스레드들이 번갈아 CPU에서 실행될 수 있도록 하는 방식이다 (스레드들은 같은 프로세스 소속일 수도 있고 다른 프로세스 소속일 수도 있다) time slice가 '고정'값일까? 결론부터 얘기하면 OS 마다 다르겠지만 적어도 리눅스에서는 고정이 아니다 time slice가 '고정'값이면 어떤 문제가 생길까? 아래 그림을 보자 멀티태스킹 방식으로 동작하는 세 가지 경우를 묘사한 그림이다 (1)번 스레드 t1, t2가 CPU에서 멀티태스킹으로 동작하는 방식이다 (2)번 ti..

    [OS] 멀티태스킹(multitasking)이란?

    멀티태스킹 ? 쉽게 설명하기 위해 싱글 코어 CPU로 예를 들겠다 한 컴퓨터에서 여러 프로세스나 스레드를 동시에 실행하고 싶은데 싱글 코어 CPU에서는 한 번에 하나의 프로세스 혹은 스레드만 실행될 수 있다는 제약이 있다 그러면 어떻게 동시에 실행하게 만들 수 있을까? 이 문제를 해결하는 방식이 멀티태스킹(multitasking) 방식이다 예를 들어 스레드 t1, t2, t3가 있다고 가정해 보자 (각 스레드가 같은 프로세스 소속인지 아닌지는 중요하지 않다) 멀티태스킹 방식은 (간단하게 설명해서) 이 세 개의 스레드들에게 아주 짧은 CPU 시간을 할당해 주고, 그 시간을 다 사용하면 다음 스레드가 실행될 수 있도록 하는 방식이다 그리고 이때 각 스레드마다 동일하게 부여되는 CPU 시간을 time slic..

    [DB] key와 functional dependency 차이

    Key? - super key : DB table의 각 튜플(tuple)을 유니크하게 식별(uniquely identify)할 수 있는 attribute(s)를 의미 - key (or candidate key) : super key인데, 이 key에서 attribute를 하나라도 제거하면 더 이상 튜플을 유니크하게 식별할 수 없는 super key Functional dependency? DB 테이블의 attributes로 이루어진 집합 X와 집합 Y 사이에 'tuple들의 X값이 같다면 Y값도 같다'는 의존 관계가 존재할 때 X와 Y 사이의 이런 관계를 functional dependency(FD)라고 부르며, 'X는 Y를 함수적으로 결정한다(functionally determine)' 혹은 'X는 Y..