Docker 대신 Podman 으로 이미지 업로드 하기
·
기타/Docker
문제 상황- OS: MacOS M4 CPU (arm64)- Docker version: v29.1.3# arm 대신 amd 아키텍처 이미지 다운로드$ docker pull --platform linux/amd64 eclipse-temurin:25-jdk# 다운로드 결과 확인시 `Architecture` 가 빈 값으로 출력됨$ docker inspect eclipse-temurin:25-jdk | grep Architecture"Architecture": "",로컬 PC 는 Mac arm 아키텍처고 서버 PC 는 amd64 아키텍처를 사용한다.따라서 사용할 이미지 아키텍처를 linux/amd64 로 지정했으나 정상적으로 pull 되지 않는 현상이 있다. Podman 설치 절차 (1) Podman Des..
2025년 개발 회고
·
기타/잡동사니
카프카 내부 소스를 뜯어보다.2025년 1월 1일 Kafka Topic Replication , Compact 원리를 파악하기 위해 소스를 뜯어봤다.머릿속에서 많이 휘발되긴 했지만이 경험이 카프카 기반 서비스를 운영하다가 발생한 이슈를 해결하는데 큰 도움이 되었다. JVM 멀티스레드 학습미뤄왔던 JVM 진영에서 비동기 프로그래밍에 사용되는 기술(Completable)Future APIJVM GC, Heap Memory LayoutMulti Thread / ThreadPool등등을 학습했다.부끄럽지만 JVM 기반지식은 텅 비어있었는데 동료들과의 간극을 조금이나마 채울 수 있었다.가장 행복할 때사람들이 나를 불러줄 때 내가 존재하고 있음을 느낀다고 했다.첫 회사를 퇴사한 이유도 내가 만든 서비스를 아무도 사..
[Java] Decorator Pattern
·
JVM/Java
요구사항FileRepository 인터페이스는 파일 스토리지로부터 파일키를 입력받아 파일 InputStream을 반환한다./** * Get the file contents from a file storage (e.g. LocalFile System, S3, GCS, Azure Blob Storage, etc.) */public interface FileRepository { InputStream getFile(FileKey fileKey) throws IOException;}LocalFile 은 LocalFileRepository,AWS S3 File 은 S3FileRepository 클래스로 파일을 가져와 InputStream 을 반환한다.기존 기능에 다음과 같은 스팩이 추가되어야 한다.".zip, ..
[Java] JUnit Inner class 를 정의하는 팁
·
JVM/Java
PurposeInner class 로 static class 로 선언하는 방식과 class 로 선언하는 방식의 차이를 안다.static inner classclass Car { public static final Duration fixDuration; private final String name; static class Painting { private final String color; public void paint(){ }; }}ProsOutter 인스턴스 생성없이 바로 인스턴스 생성이 가능하다.Painting painting = new Painting("RED");painting.paint();ConsOutter 인스턴스의 내부 변수에 접근 불가능하다.오로지 static ..
[Error] TestContainers: Could not find a valid Docker environment. Please see logs and check configuration
·
JVM/Error
설정 정보OS: MacOS Tahoe 26.1Java Version: eclipse-temurin:25Docker desktop: v4.52.0Testcontainers: v1.21.3Docker CLI: v29.0.1build.gradledependencies{ testImplementation('org.junit.jupiter:junit-jupiter') testImplementation("org.testcontainers:testcontainers-localstack:2.0.2") testImplementation("org.testcontainers:testcontainers-junit-jupiter:2.0.2")}LocalStack Container 를 초기화하는 과정에 에러가 발생했다.@T..
[Java] Primitive 타입보다 VO 를 의존하라
·
JVM/Java
Kafka Record 에 들어갈 Record Key, Record Value 를 OffsetRecord 인터페이스로 추상화했다.OffsetRecord 는 오로지 오프셋을 저장하는 토픽에 쓰인다.예를 들면 이런식이다.Record KeyC:\\Users\M_Faclon\path\a.txtRecord value30/** * Domain interface used by OffsetManager and SourceConnector Producer. * Consists of object unique identifier and offset. * Stored in the Offset topic partition. */public interface OffsetRecord { /** * The unique ke..