Blocking과 관련해서 받은 면접 질문을 정리한 포스팅입니다. 제가 경험한 면접 질문에 대한 대답을 정리하다보니 저만의 대답 방식으로 인해 간결할 수 있는 점 양해바랍니다. 포스팅에 앞서 Java와 JavaScript 언어를 모두 사용해보신 분들에게는 필수 질문으로 여겨집니다. 면접관이 두 언어의 차이점을 먼저 물어본 뒤, 이 질문을 할 가능성이 높으니 꼭 본인만의 대답을 만들어두면 좋을 것입니다. Blocking I/O vs Non-Blocking I/O 블록킹 I/O는 I/O 작업을 처리하는 동안 호출한 스레드가 작업이 끝날 때까지 대기하는 방식입니다. 이 방식은 I/O 작업이 완료될 때까지 대기하므로, 호출한 스레드가 블록되어 다른 작업을 수행할 수 없게 됩니다. 따라서 여러 개의 I/O 작업이..
카프카와 관련해서 받은 면접 질문을 정리한 포스팅입니다. 제가 경험한 면접 질문에 대한 대답을 정리하다보니 저만의 대답 방식으로 인해 간결할 수 있는 점 양해바랍니다. Kafka의 장점(특징) (출처) 프로듀서와 컨슈머의 분리하고, 하나의 토픽에 여러 프로듀서와 여러 컨슈머들이 접근 가능합니다. 또한 메시지를 디스크에 영속적으로 저장하여 유실을 방지할 수 있고, 높은 처리량을 자랑하는 걸로 알고 있습니다. 프로듀서와 컨슈머의 분리 각자 역할이 완벽하게 분리되면서, 어느 한쪽 시스템에서 문제가 발생하더라도 연쇄작용이 발생할 확률이 낮아집니다. 멀티 프로듀서와 멀티 컨슈머 하나의 토픽에 여러 프로듀서 또는 여러 컨슈머들이 접근 가능한 구조입니다. 메시지를 디스크에 영속적으로 저장 이는 메시지 유실을 방지하고..
인덱스와 관련해서 받은 면접 질문을 정리한 포스팅입니다. 제가 경험한 면접 질문에 대한 대답을 정리하다보니 저만의 대답 방식으로 인해 간결할 수 있는 점 양해바랍니다. 인덱스는 보통 왜 사용하나요? 인덱스는 데이터베이스의 성능 향상 수단으로 사용되는 가장 일반적인 방법입니다. 응답 시간이 늦은 SQL이 발견되면 우선 인덱스로 해결할 수 없는지를 검사하는 것이 튜닝의 제 1선택입니다. 인덱스의 장점으로는 SQL 문을 변경하지 않아도 성능을 개선할 수 있다는 점과 테이블의 데이터에 영향을 주지 않는다는 점이 있습니다. 보통 INDEX를 어느 컬럼에 걸어주나요? (⭐) 보통 Cardinality(카니널러티)가 높은 열에 만듭니다. Cardinality란 값의 분산도를 나타내는 단어로, 특정 열에 대해 많은 종..
요새 ChatGPT가 유행이어서 백엔드 면접 예상 질문에 대해서 물어봤습니다. 백엔드란 무엇인가요? 백엔드는 웹 애플리케이션의 서버 측 영역을 말합니다. 사용자의 요청을 받아 처리하고, 데이터베이스와 통신하여 필요한 정보를 제공합니다. 백엔드에서 사용하는 언어와 기술은 무엇인가요? 백엔드에서 자주 사용하는 언어는 Java, Python, Ruby, PHP 등이 있습니다. 기술로는 Node.js, Spring, Django, Flask, Ruby on Rails 등이 있습니다. RESTful API에 대해 설명해주세요. REST는 Representational State Transfer의 약자로, 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일입니다. RESTful API는 이 REST 아키텍처를 따르..
더 깔끔한 노션을 원한다면 기본형(Primitive type)과 참조형(Reference Type) 자바의 데이터타입은 primitive type(기본형)과 reference type(참조형)으로 나뉜다. www.notion.so 자바의 데이터타입은 primitive type(기본형)과 reference type(참조형)으로 나뉜다. Primitive type 비객체형 타입으로 자바 언어에 내장된 기본 유형이다. 기본값이 있기 때문에 Null이 존재하지 않는다. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용한다. 실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다. Wrapper 기본형 대응 래퍼 클래스 기본형 대응 래퍼 클래스 byte Byte short Short int ..
더 깔끔한 노션을 원한다면 Vector, ArrayList, LinkedList Collection 인터페이스를 확장한 자료형 www.notion.so Collection 인터페이스를 확장한 자료형 ArrayList와 Vector는 AbstractList, LinkedList는 AbstractSequentialList을 확장한 자료형이다. 동기화 부분 Vector가 동기화가 된다면 ArrayList는 동기화가 되지 않는다. Vector는 한번에 하나의 스레드만 접근 가능하며, ArrayList는 동시에 여 러 스레드가 작업할 수 있다. Vector Vector는 공유 자원이나 복수의 사용자가 존재할 때 안전하게 프로그램을 작성 가능하다. 하지만 하나의 스레드가 하나의 자원을 이용하는 경우에는 오히려 성능..
public 어떤 클래스에서라도 접근이 가능하다. protected 클래스가 정의되어 있는 해당 패키지 내 그리고 해당 클래스를 상속받은 외 부 패키지에서 접근 가능하다. private 해당 클래스에서만 접근 가능하다. default 클래스가 정의되어 있는 해당 패키지 내에서만 접근 가능하다. 출처 JAVA 강좌 18편. 접근 지정자(Access Modifiers) 1. 접근 지정자 오늘은 자바의 접근 지정자에 대해서 배워보려 합니다. 접근 지정자는 그대로 클래스 내에서 멤버의 접근을 제한하는 역할을 합니다. 우리가 오늘 배울 접근 지정자에는 private, blog.hexabrain.net
- Total
- Today
- Yesterday
- BOJ
- 객체지향
- 프로그래머스
- Olympiad
- 정규표현식
- 디자인 패턴
- programmers
- 이펙티브 자바
- AWS
- Java
- kotest
- BAEKJOON
- 클린 코드
- node.js
- Spring Boot
- 코테
- 알고리즘
- Algorithm
- 클린 아키텍처
- 백준
- Kotlin
- 테라폼
- Effective Java
- 이팩티브 자바
- MSA
- JPA
- C++
- kkoon9
- 디자인패턴
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |