Post

2025-04-17-TIL

Today I Learned

JSR? JEP?

Java 생태계에서 자주 보게 되는 용어인 JEP, JSR은 모두 Java 플랫폼의 발전과 확장에 중요한 역할을 한다. 각각의 의미, 유래, 그리고 차이점까지 정리해보았다.

Jakarta EE

JCP에서 Eclipse로 Java EE의 관리 주체가 변경되면서 JSR이라는 용어는 더이상 사용하지 않게 되었다. 대신에 Jakarta EE의 명세를 참고하면서 JEP로 대략적인 기능을 미리 확인할 수 있다.

Vibe Coding

대략 이해하기로는 이미 실무에서 많이들 활용하는 방식의 코딩이다. 코파일럿 같은 에이전트를 IDE의 플러그인에 설치해두고, “이렇게이렇게 작성해줘”라고 명령한 다음, 입맛에 맞게 튜닝해서 사용하는 코딩방식을 말한다.

In simple words, vibe coding is a conversational way of building software using AI tools. Instead of typing all the code yourself, you talk to an intelligent assistant, explain what you want, and guide it step-by-step as it writes code for you.

It is not just asking for one-off code snippets. It is about having a flow where you collaborate with AI, adjust the outputs, and build something meaningful together. You are basically working like a team lead guiding a junior engineer, but that engineer happens to be an AI model.

source: Vibe Coding: The Future Every Software Engineer Should Embrace

Today I Interview

시스템 간 비동기 연동 방식에는 무엇이 있나요?

분리된 시스템 간의 비동기 연동은 시스템 간의 결합도를 낮출 수 있으며, 호출된 시스템의 응답을 기다리지 않으므로 더욱 빨리 사용자의 요청에 응답할 수 있다는 장점이 있습니다. 비동기 연동 방식으로 메시징 시스템 활용, 데이터베이스 활용, CDC 활용 방식을 알고 있습니다.

각 방식에 대한 설명과 고려 사항을 설명해 주세요.

메시징 시스템 활용 방식은 두 시스템 사이에 메시징 시스템을 두어 비동기로 연동하는 방식입니다. 해당 방식은 한 시스템에서 메시지를 생성해서 메시징 시스템에 송신한 이후, 다른 시스템에서 메시징 시스템으로부터 메시지를 읽어와 메시지를 처리합니다. KafKa, RabbitMQ가 주로 메시징 시스템으로 활용됩니다. 해당 방식은 처리량이 높은 것이 장점입니다. 하지만, 메시지 유실, 메시지 소비 순서, 트랜잭션에 대한 고민이 추가적으로 필요합니다. 트랜잭션에 대한 고민을 더욱 말씀 드리자면, 1개의 트랜잭션 내에 메시지 전송과 데이터베이스 삽입이 존재한다고 했을 때, 데이터베이스 삽입이 실패했는 데 메시지는 전송되거나, 데이터베이스 삽입은 성공했는데, 메시지 전송이 실패한 경우를 떠올려 볼 수 있습니다. 만약 이러한 상황이 존재한다면, 2개의 작업을 어떻게 원자적으로 수행할 수 있을 지 추가적인 고민이 필요합니다.

데이터베이스 활용 방식은 데이터베이스를 메시징 시스템처럼 사용하는 방법입니다. 한 시스템에서 데이터베이스 테이블에 필요한 메시지 레코드를 추가하고 연동 시스템이 테이블을 주기적으로 읽습니다. 만약 새로운 메시지가 추가되면 연동 시스템은 다른 시스템으로 메시지를 전송합니다. 해당 방식은 트랜잭션과 메시지 순서가 보장되며, 메시지 유실에 대한 걱정이 없다는 것이 장점입니다. 하지만, 해당 방식은 범용성이 떨어질 수 있습니다. 메시지에 대한 형식이 빈번히 변경될때마다 메시지 레코드에 대한 스키마도 변경해주어야하기 때문입니다. 추가적으로 해당 방식은 삭제 정책과 읽기 빈도 등 추가적으로 고민해야할 부분들이 존재합니다.

CDC(Change Data Capture) 활용 방식은 데이터베이스의 변경 사항을 조회하여, 이를 다른 시스템에 전파하는 방식입니다. 가령 별도의 시스템이 변경 감지 대상 데이터베이스의 바이너리 로그를 조회하여 변경을 전파하도록 구현할 수 있습니다. 해당 방식은 트랜잭션이 보장되며, 메시지를 생성하거나 별도로 저장할 필요가 없으니 상대적으로 애플리케이션 로직이 단순하다는 장점이 있습니다. 하지만, 변경 로그만 존재할뿐 왜 바뀌었는지에 대한 추가적인 정보가 없기 때문에 사용하는데 제약이 존재할 수 있습니다.

추가 학습 자료

출처: Copyright © 2025, 매일메일. All rights reserved.

This post is licensed under CC BY 4.0 by the author.