[카테고리:] 기술 탐방
-
[Spring Error] Could not resolve all files for configuration ‘:classpath’.
Spring Error Could not resolve all files for configuration ‘:classpath’. 프로젝트 Open 시에 발생하는 에러입니다. 에러 대표 메시지를 확인해보면, Gradle이 spring-boot-gradle-plugin을 찾지 못하고 있다는 것을 알 수 있습니다. 다양한 이유가 있을 수 있지만, 포스팅 전체 에러에서 아래 부분을 보면, Gradle이 Java 11과 호환되는 것을 찾고 있지만, Java17과 호환되려 한다는 것을 알 수 있습니다. 즉, 실행…
-
[기술 면접] 10. Error와 Exception의 차이점이 무엇인가요?
저번 시간에 이어, 이번엔 Error와 Exception의 차이점이 무엇인가에 대한 면접 질문을 알아보겠습니다. 이 질문은 Spring을 다루는 직무 면접에서 자주 나오는데요, 서비스 플랫폼 회사 K사에서 받았던 기억이 납니다. Q: Error와 Exception의 차이점이 무엇인가요? Error는 Unchecked Type으로 컴파일 시점에 알 수 없고, 런타임에서 발견됩니다. 코드로 핸들링 할 수 없는 오류입니다. Exception은 Checked Type과 Unchecked Type으로 나뉘며, 코드로…
-
[기술 면접] 7. JVM이 무엇인가요?
저번 시간에 이어, 이번엔 JVM에 대한 면접 질문을 알아보겠습니다. JVM에 관련된 질문은 서비스 플랫폼 회사인 K사와 게임 회사 C사에서 마주했던 기억이 있습니다. 중요한 내용이니 반드시 숙지하고 가시길 권해드립니다. Q: JVM이 무엇인가요? Java Virtual Machine으로, 자바 프로그램이 실행되는 가상 컴퓨터입니다. Java는 OS에서 실행되는 것이 아닌, JVM에서 실행됩니다. Q: JVM의 주요 구성 요소는 무엇인가요? JVM은 총 5가지로…
-
[JAVA] 3. 큐(Queue) 직접 구현하기
큐(Queue) 직접 구현하기 지난 시간에서는 큐(Queue)와 스택(Stack)에 대해 사용법 및 간단한 예시를 살펴봤습니다. 이번 시간에서는 Queue를 직접 구현해보는 시간을 가져보도록 합시다. 연결 리스트(LinkedList)를 활용한 큐 구현하기 연결 리스트란, 유연하게 크기 변경이 가능한 자료구조를 일컫습니다. 이 자료구조는 리스트와 노드로 구성되어있는데, 집합의 단위를 리스트(List), 각 요소의 단위를 노드(Node)라고 생각하시면 됩니다[연결 리스트에 대한 설명은 다음 시간에 더 자세히…
-
[JAVA] 2. Stack 설명 및 예시
Stack이란? 저번 시간에서는 선입선출(FIFO)인 Queue에 대해 알아봤습니다. 이번 포스팅에서는 Stack에 대해 알아보도록 하겠습니다. 자바에서 스택(Stack)은 데이터를 일렬로 나열하여 관리하는 자료 구조 중 하나로, “후입선출” (Last-In-First-Out, LIFO) 원칙을 따릅니다. 쉽게 말해, 스택에 쌓인 데이터들 중 가장 최근에 들어온 데이터가 가장 먼저 빠져나가는 형식입니다. 그럼 자바에서 스택(Stack)을 어떻게 사용하는지 알아보겠습니다. Stack 사용법 자바에서 Stack을 선언하려면 java.util 패키지로부터…
-
[JAVA] 1. Queue 설명 및 예시
Queue란? 자바에서 Queue란, 간단히 말해 데이터를 일렬로 나열하여 관리하는 자료 구조 중 하나로, “선입선출” (First-In-First-Out, FIFO) 원칙을 따릅니다. FIFO란 쉽게 말해, 큐에 쌓인 데이터들 중, 먼저 들어온 데이터가 먼저 빠져나가게 되는 형식을 일컫습니다. 그럼 JAVA에서 큐(Queue)를 어떤 식으로 사용하는지 알아보도록 하겠습니다. Queue 사용법 우선 Queue를 사용하기 위해서는 Queue와 LinkedList 모두 Import가 필요합니다. Queue 주요 함수 일부 주요한 Queue 인터페이스의…
-
[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas)
지난 시간에 이어, 아파치 카프카의 ISR(In-Sync-Replicas)에 대해 알아보겠습니다. ISR은 리더 파티션과 팔로워 파티션이 모두 Sync된 상태를 의미합니다. 복제 개수가 2인 토픽(리더 파티션 1개와 팔로워 파티션 1개가 존재)으로 가정해보면, 팔로워 파티션에 리더 파티션의 모든 오프셋이 존재해야 동기화가 완료된 상태라고 할 수 있습니다. ISR이 완전하지 못하다면? 팔로워 파티션이 리더 파티션의 오프셋을 모두 복제하지 못한 상태로 서비스가 지속된다면,…
-
[카프카] 3. 아파치 카프카의 복제(Replication)
지난 포스팅에 이어서, 아파치 카프카에서 가장 중요한 개념인 복제(Replication)에 대해 알아보겠습니다. 복제는 카프카를 장애 허용 시스템(Fault Tolerant System)이라고 할 수 있는 원동력입니다. 장애가 발생해도 데이터를 유지하고 안전하게 사용할 수 있게 해주죠. 카프카 브로커의 복제(Replication) 카프카의 데이터 복제는 파티션 단위로 이루어집니다. 토픽 생성 시 파티션의 복제 개수 (Replication factor)도 같이 설정 되는데, 디폴트로 브로커에 설정된 옵션…
-
[Coding Test] 1. Binary Gap
1. Binary Gap 문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps:…