Kafka, 언제 그리고 왜 써야 할까?
·
Infra
Kafka란?Kafka는 서비스에서 발생한 이벤트를 전달하고 저장하는 분산 이벤트 스트리밍 플랫폼입니다. 주문, 결제처럼 서비스에서 발생한 일을 Kafka에 기록해두면, 필요한 다른 서비스가 이를 읽어 각자 처리할 수 있습니다.kafka의 개념 자체는 DB에 로그 테이블을 만들고 각 서비스가 폴링하는 방식으로도 흉내 낼 수 있습니다. 다만 이 경우 Consumer가 늘어날수록 테이블에 폴링 쿼리가 늘어나 DB에 부하가 쌓이고, Partition 같은 병렬 처리 구조나 보관 기간 삭제 정책도 직접 구현해야 합니다. Kafka는 이런 것들을 시스템 레벨에서 이미 구현해놓은 "이벤트 로그 전용 인프라"에 가깝습니다. 그래서 Consumer가 1~2개 정도인 소규모 시스템은 DB Outbox 테이블로도 충분하고..
전자정부 프레임워크 5.0 의 변화와 다짐
·
Backend & Data/Java
12월 4일 전자정부 프레임워크 5.0 이 출시되었다. 옛날 개발자때 부터 항상 흘려들었던 내용은 ‘전자정부 프레임워크 기반’ 으로 했다라는 말을 들었었는데 이번에 5.0 으로 출시된 겸, 전자정부 프레임워크가 뭔지 알아볼 겸 해당 내용을 포스팅한다.전자 정부 프레임워크란?전자정부프레임워크(eGovFrame)는 대한민국의 전자정부 구현을 위해 개발된 오픈소스 기반의 소프트웨어 개발 프레임워크다.프레임워크는 공공기관에서 소프트웨어 개발 시 표준화, 재사용성, 효율성, 품질 향상을 목표로 설계되었다.전자정부 프레임워크의 빛과 어둠표준 프레임워크 기반으로 개발을 하면서 개발자는 오직 비즈니스 로직에만 집중이 가능해진다. 이 말이 무슨 말이냐면 개발자는 준비된 판 위에서 로그인, 권한, 게시판 등 250여 종의..
[SWEA][D2] 1940. 가랏! RC카 Java
·
Problem Solving/Algorithm Practice
import java.util.Scanner; public class RcCar { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T; T = sc.nextInt(); for (int test_case = 1; test_case 0) { // 가속이나 감속일 경우 int value = sc.nextInt(); if( choice == 1){ // 가속일경..
[SWEA][D2] 1945. 간단한 소인수분해 Java
·
Problem Solving/Algorithm Practice
import java.util.Scanner; public class devide { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T; T = sc.nextInt(); int[] devideNumArr = {2, 3, 5 , 7 ,11}; int[] arr; for (int test_case = 1; test_case
[SWEA][D2] 1288. 새로운 불면증 치료 Java
·
Problem Solving/Algorithm Practice
import java.util.Arrays; import java.util.Scanner; public class sleep { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T; T = sc.nextInt(); boolean[] result; for (int test_case = 1; test_case
[SWEA][D2] 1928. Base64 Decoder Java
·
Problem Solving/Algorithm Practice
import java.util.Base64; import java.util.Scanner; public class Base64Decoder { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); sc.nextLine(); for (int test_case = 1; test_case 해당 문제는 라이브러리를 통해 쉽게 풀수 있다.근데 이런 의도로 문제를 냈을까 생각하면 고민이 된다. 아는사람은 풀수있고 모르는 사람은 개 뻘짓을 해야되는데, 뻘짓도 좋은 경험이라 이후에 뻘짓으로 어떻게 푸는지 고민..