기술 면접 준비 26

[운영체제] CPU 스케줄링 알고리즘 - 3/5

CPU 스케줄링이란? 운영체제가 프로세스들에게 CPU 자원을 배분하는 과정입니다. 그럼 어떤 기준으로 CPU 스케줄링을 해야 할까요? 프로세스는 우선순위가 존재합니다. 이는 사용자가 설정할 수도 있고 운영체제가 정할 수도 있습니다. 예를들어) 입출력 작업이 많은 프로세스 (= 입출력 집중 프로세스)의 우선순위는 CPU 작업이 많은 프로세스 (= CPU 집중 프로세스)의 우선순위보다 높습니다. 왜 그럴까요? 입출력 집중 프로세스는 CPU 집중 프로세스보다 대기하는 시간이 많습니다. 대기상태엔 CPU를 사용하지 않는 상태이므로 입출력 집중 프로세스의 우선순위를 높여서 빨리 처리를 해버림으로써 CPU 집중 프로세스에 CPU를 집중적으로 할당할 수 있게 됩니다. 즉, 입출력 집중 프로세스한테 먼저 CPU를 할당..

[운영체제] 프로세스와 스레드 - 2/5

프로세스란? 프로세스 종류 1. 포그라운드 프로세스(foreground process) 사용자가 볼 수 있는 공간에서 실행되는 프로세스로 사용자가 보는 앞에서 실행됩니다. 예: 게임, 메모장, 웹 브라우저 등이 있습니다. 2. 백그라운드 프로세스(background process) 사용자가 볼 수 없는 공간에서 실행되는 프로세스입니다. 사용자와 직접 상호작용이 가능한 백그라운드 프로세스 사용자와 상호작용하지 않고 정해진 일만 수행하는 프로세스 = 데몬(daemon), 서비스(service) 모든 프로세스는 실행을 위해 CPU가 필요하지만 CPU자원은 한정되어 있습니다. 따라서 프로세스들은 돌아가면서 자신에게 정해진 시간만큼 CPU를 이용하고 타이머 인터럽트가 발생하면 다른 프로세스에게 CPU차례를 양보하..

[운영체제] 운영체제는 프로그램이다?! - 1/5

면접 스터디 주제인 '운영체제'를 더 잘 이해하기 위해 도서와 영상을 통해 정리해 보고 마지막에는 핵심 질문을 뽑아보는 시간을 가져보도록 하겠습니다. 전공자 분들과 스터디를 하다 보니 간단한 대화 속에서도 배우는 점도 많고 저 또한 깊게 배우고 싶다는 의지가 활활 불타오르고 있습니다. 자리를 빌어서 감사 말씀드립니다. 지훈 님, 민지 님 감사합니다.👊 때리는 게 아닌, Hey~ Bro~ 느낌...... 그 중에서도 chapter 9 ~ chapter 13 부분을 다루어보도록 하겠습니다. 목차 Chapter 09 운영체제 시작하기 09-1 운영체제를 알아야 하는 이유 __운영체제란 __운영체제를 알아야 하는 이유 09-2 운영체제의 큰 그림 __운영체제의 심장, 커널 __이중 모드와 시스템 호출 __운영체..

[기술면접] 네트워크 - 2/2

1편에 이어서 작성해 보도록 하겠습니다. 😎 웹 동작방식 / www.google.com에 접속할 때 생기는 과정을 네트워크 관점에서 설명해 주세요. 사용자가 브라우저에 URL을 입력 브라우저는 DNS를 통해 서버의 진짜 주소(IP)를 찾음 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성함 TCP/IP 연결을 통해 HTTP요청이 서버로 전송됨 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메시지를 생성함 TCP/IP 연결을 통해 요청한 컴퓨터로 전송 도착한 HTTP 응답 메시지는 웹페이지 데이터로 변환되고, 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됨 😎 OSI 7 계층에 대해 설명해 주세요. 7 계층(응용 계층): 사용자와 직접 상호작용하는 응용 프로그램들이 포함된 계층 6 계층(표현..

[기술면접] 네트워크 - 1/2

네트워크 기술면접을 따로 정리해 둔 것이 있지만(저작권의 이유로 비공개글), 공부하면 할수록 욕심이 생겨 추가로 정리를 해보려 합니다. 참고한 좋은 글을 통해 오늘도 성장합니다. 네트워크 질문 다른 면접 스터디에서 네트워크 질문을 디테일하게 뽑아주셔서 출처를 남기고 가지고 오게 되었습니다. 쿠키 vs 세션 vs JWT 쿠키와 세션에 대해 설명해 주시고 둘의 차이점에 대해 말씀해 주세요. 쿠키와 세션이 등장한 이유(사용하는 이유) 쿠키란 무엇인가요? 쿠키의 동작 순서에 대해 설명해 주세요 쿠키가 실제로 사용되는 예시는 뭐가 있을까요 쿠키 설정 옵션에 대해 아시는 것이 있다면 말씀해 주세요 세션이 무엇인가요? 세션의 동작 순서에 대해 설명해 주세요 프로젝트에서 톰캣을 내렸다가 올렸을 때도 로그인 상태를 유지..

[기술면접] 데이터베이스

데이터베이스 기술면접을 따로 정리해 둔 것이 있지만(저작권의 이유로 비공개글), 사람의 욕심은 끝이 없다고... 추가로 정리를 해보려 합니다. 참고한 좋은 글을 통해 오늘도 성장합니다. DB 핵심 개념 NoSQL, RDBMS 차이 JOIN 정규화 무결성, 트랜잭션 Connection Pool 목차 DB 정규화 (갱신)이상 현상의 종류 DB락의 종류 클러스터링 vs 리플리케이션 데이터베이스를 사용하는 이유 데이터베이스 언어(DDL, DML, DCL) SELECT 쿼리의 수행 순서 JOIN에서 ON과 WHERE의 차이 group by SQL Injection Elastic Search의 키워드 검색과 RDBMS의 LIKE 검색의 차이 옵티마이저(Optimizer) DB 튜닝(Tuning) 커넥션풀 트랜잭션을..

[기술면접] JAVA - 4/4

[기술면접] JAVA - 4/4의 목차 제네릭에 대해 설명해주시고, 왜 쓰는지 알려주세요. final / finally / finalize 의 차이를 설명해주세요. 직렬화(Serialize) 가비지 컬렉션(G1GC) 메모리, 성능을 개선하기 위해 생각나는 방법은? 동일성과 동등성의 차이는 무엇인가? 어노테이션이란? 스트림이란? 😎 제네릭에 대해 설명해주시고, 왜 쓰는지 알려주세요. 제네릭이란? Data type을 특정한 type 하나로 정하지 않고 사용할 때마다 바뀔 수 있게 범용적이고 포괄적으로 지정한다 라는 의미입니다. Java 5부터 제네릭타입이 추가되었고 제네릭 타입은 을 가지는 클래스와 인터페이스를 말합니다. 안에는 참조자료형(클래스, 인터페이스, 배열)만 가능합니다. 기본자료형을 ..

[기술면접] JAVA - 3/4 (주로 컬렉션 프레임워크)

[기술면접] JAVA - 3/4 (주로 컬렉션 프레임워크)의 목차 컬렉션 프레임워크에 대해 설명해주세요. ArrayList란? LinkedList란? Vector란? HashSet이란? TreeSet이란? HashMap 이란? TreeMap이란? 프로세스와 쓰레드의 차이에 대해 설명해주세요. 멀티 프로세스와 멀티 쓰레드의 특징에 대해 설명해주세요. 스프링에서 멀티스레드를 어떻게 구현하는지 말씀해주세요. 😎 컬렉션 프레임워크에 대해 설명해주세요. 다수의 데이터를 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다. 자바 컬렉션에는 List, Set, Map 인터페이스를 기준으로 여러 구현체가 존재하고, 이에 더해 Stack, Queue 인터페이스도 존재합니다. ▶ 꼬리질문1..

[기술면접] JAVA - 2/4 (주로 예외처리Exception)

[기술면접] JAVA - 2/4의 목차 Inner Class(내부 클래스)의 장점 리플렉션(Reflection)이란 Error와 Exception의 차이 CheckedException과 UnCheckedException의 차이와 RuntimeException에 대해 설명해주세요. Optional API 😎 Inner Class(내부 클래스)의 장점에 대해 설명해주세요. 1. 내부 클래스에서 외부 클래스의 멤버에 손쉽게 접근할 수 있다. 2. 서로 관련 있는 클래스를 논리적으로 묶어서 표현함으로써, 코드의 캡슐화를 증가시킨다. 3. 외부에서는 내부 클래스에 접근할 수 없으므로, 코드의 복잡성을 줄일 수 있다. 😎 리플렉션(Reflection)이란 무엇인지 설명해주세요. 리플렉션이란 구체적인 클래스 타입을 ..

[기술면접] JAVA - 1/4

Java 핵심 키워드 JVM GC 1. 스탑더월드 / 마크앤스윕 동작원리 2. G1GC OOP SOLID 오버로딩 & 오버라이딩 제네릭 [기술면접] JAVA - 1/4의 목차 Java의 특징 Java의 실행 방식 JVM의 역할 Java의 컴파일 과정 Java에서 제공하는 원시 타입들에 무엇이 있고, 각각 몇 바이트를 차지하나요? 오버라이딩(Overriding)과 오버로딩(Overloading) 객체지향 프로그래밍(OOP) 불변 객체, 대표적인 Java의 예시를 설명해주세요. 추상 클래스와 인터페이스 설명 및 차이 싱글톤 패턴 가비지 컬렉션(Garbage Collection) 객체지향의 설계원칙 자바의 메모리 영역 클래스와 객체, 인스턴스 생성자(Constructor) Wrapper Class란 무엇이며,..