java
![[기술 면접] Java의 메모리 구조에 대해 이해하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyJvXI%2FbtsOswJDX5Q%2FoejGHRyVgsHzChk5VNvghk%2Fimg.png)
[기술 면접] Java의 메모리 구조에 대해 이해하기
Q1. 자바의 메모리 구조에 대해 설명해주세요. ■ 스택(Stack) 각 스레드마다 하나씩 존재하는 공간입니다. 메서드를 호출할 때마다 ‘스택 프레임’이라는 작은 상자가 생기고, 그 안에 지역 변수, 인자, 리턴 값을 저장합니다. 메서드 실행이 끝나면 해당 프레임은 즉시 사라집니다 (후입선출 구조). ■ 힙(Heap) 모든 스레드가 공유하는 공간으로, new로 생성한 모든 객체(Object)와 배열(Array)이 저장됩니다. 가비지 컬렉터(GC)가 주기적으로 더는 사용되지 않는 객체를 해제합니다. 힙은 효율적 GC를 위해 Young Generation과 Old Generation으..
[기술 면접] Garbage Collection 이해하기
Q. Garbage Collection에 대해 설명해주세요. A. 프로그래밍에서 객체나 변수를 만들면, 그 객체는 마치 책상 위에 물건을 올려두는 것처럼 메모리 공간을 차지하게 됩니다. 그런데 더 이상 사용되지 않거나 아무도 참조하지 않는 객체가 계속 메모리에 남아 있으면, 마치 쓰지 않는 물건이 책상을 차지하고 있어서 새로운 물건을 둘 자리가 없는 것과 같습니다. 이런 상태가 계속되면 메모리 누수가 발생하고, 프로그램의 성능이나 안정성에 치명적이며, 새로운 작업에 필요한 공간을 확보할 수 없어 메모리가 비효율적으로 낭비됩니다. 그래서 Garbage Collection(가비지 컬렉션)은 “더는 쓰지 않는 메모리를 자동으로 찾아서 비워 주는” 메모리 관리 기법입니다. 자바 같은 언어에서는 프로그래..
[기술 면접]Java Generic 이해하기2
밑의 Generic 이해하기1을 먼저 읽고 이 글을 읽는게 좋습니다. https://ujacheong2.tistory.com/entry/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91Java-Generic-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0 [기술 면접]Java Generic 이해하기1Q. 자바에서 제네릭(Generic)이 무엇인지 설명해 주세요.A.자바의 제네릭은 클래스나 메서드를 만들 때, 미리 구체적인 데이터 타입을 정하지 않고 나중에 객체를 사용할 때 타을지정할 수 있도록ujacheong2.tistory.com Q. 제네릭 배열을 만들 수 없는 이유는 무엇인가요? A. 보통 배열과 제네릭은 서로 잘 어울리지 않습니다. 그 이유는 배열은 런타임에..
[기술 면접]Java Generic 이해하기1
Q. 자바에서 제네릭(Generic)이 무엇인지 설명해 주세요.A.자바의 제네릭은 클래스나 메서드를 만들 때, 미리 구체적인 데이터 타입을 정하지 않고 나중에 객체를 사용할 때 타을지정할 수 있도록 해 주는 기능입니다. 즉, “이 클래스는 나중에 어떤 타입을 쓸지는 실행 시점에 알려줄게요”라는 식으로 코드를 작성할 수 있게 해 주는 거죠. 예를 들어, RPG 게임 속에서 ‘아이템 상자(ItemBox)’라는 객체를 만든다고 가정해 보겠습니다. 그런데 이 상자는 던전마다 담을 아이템 종류가 다를 수 있어요. 어떤 던전에서는 장비만 담아야 하고, 또 어떤 던전에서는 회복용 포션만 담아야 할 수도 있죠. 이럴 때 제네릭을 사용하면 다음처럼 타입 파라미터 T를 써서 아이템 상자를 일반화할 수 있습니다.publ..

윈도우에서 Kafka 로컬 환경 설정하기
이번에 개인 프로젝트를 진행하면서 Kafka를 활용한 SMS 알림 기능을 구현하려고 했다.매번 환경 설정하는 과정을 다시 찾는 게 어려워 나중에 다시 볼 수 있도록 Kafka 로컬 환경 설정 과정을 정리한다. 📌 Kafka 로컬 설치 및 설정1.Kafka 다운로드 및 압축 해제https://kafka.apache.org/downloads Apache KafkaApache Kafka: A Distributed Streaming Platform.kafka.apache.org 일단 Kafka 공식 사이트에서 받은 압축 파일을 해제해준다. tar -xzf kafka_2.13-4.0.0.tgz2.데이터 저장 디렉토리 준비Kafka가 로그 데이터를 저장할 디렉토리를 따로 만들어 둔다.(나는 C 드라이브 경로에 ..

💡 Kafka와 Spring Batch를 이용한 SMS 알림 서비스 구현 후기
이번 개인 프로젝트는 ToDo 리스트에서 마감 임박한 작업을 내 휴대폰에 SMS로 알려주는 기능을 구현했다. Spring Batch, Apache Kafka, Twilio API라는 기술 조합을 선택했는데, 각각의 역할과 연동 방식을 기록해두려고 한다. 🚩 구현한 전체적인 프로세스Spring Batch가 매일 새벽에 실행되어 마감이 임박한 Task를 조회한다.조회된 Task들을 Kafka로 메시지 형태로 발행한다.Kafka Consumer가 메시지를 받아 Twilio API를 이용해 SMS로 사용자에게 알림을 보낸다.📌 Spring Batch 로직 정리 및 피드백BatchConfig.java에서 Batch Job과 Step을 구성했다.Job은 Step을 실행하는 기본 단위이며, Step에서 Task ..