-
AI 반도체, 폰 노이만 그리고 남한산성ETC 2023. 12. 3. 11:50
AI 반도체, 폰 노이만, 영화 남한산성. 셋의 연결관계(?)에 대한 이야기 AI 반도체 인공지능 서비스를 탑재한 응용 제품/서비스에 적합한 인공지능 반도체 AI 반도체 시장 성장 지난 수년간 AI 반도체의 수요는 폭발적으로 증가 인공지능 반도체의 성장은 향후 10년간 6배 성장할 전망이며, 전체 시스템 반도체 시장의 약 1/3을 차지할 것으로 전망 컴퓨팅 아키텍처의 변화 인공지능이 확산되면서 기존의 컴퓨팅 구조에 대한 한계점 기존의 컴퓨팅 구조는 프로그램 명령어를 메모리에서 불러와 실행하는 ⇒ 폰노이만 구조 연산 장치와 메모리 장치가 분리 → 버스(Bus)를 이용해 명령어와 데이터를 주고받게 되는데, 폰노이만 구조의 컴퓨팅은 한 번에 하나의 명령어만 처리되는 직렬 컴퓨팅 방식 CPU의 속도를 메모리가 ..
-
JIT compiler & GraalVM in javaDEV 2023. 12. 3. 09:28
자바 성능향상을 위한 시도들. JIT compiler부터 GraalVM까지 JIT(Just-In-Time) Compiler JVM의 일부, 자바를 고성능으로 만드는데 큰 역할 java는 byte code로 컴파일, 컴파일 한 byte code를 JVM이 런타임시 native code로 변환하여 실행 처음에는 인터프린터 방식으로 바이트 코드 실행 인터프린터 사용 → 초기 실행 속도는 빠를 수 있지만, 컴파일러 보다 성능 ⬇️ JIT compiler 두 가지 방식을 모두 사용 JVM에서 처음 호출되자마자 컴파일되는 것은 아니고, 메서드 호출마다 횟수를 기록, 특정 수치를 초과하면 컴파일(warm up → C1, C2 컴파일 이후) C1, C2 컴파일러 C++로 작성 C1: 초기 실행 속도에 중점, 빨리 코드..
-
Spring batch jobScope, stepScopeDEV 2023. 12. 2. 21:21
Spring batch의 jobScope, stepScope를 알아가기 위한 흐름 jobScope, stepScope → bean scope → application context → IoC, DI IoC부터 시작해 보자. IoC (Inversion of Control) 제어의 역전 - 객체 생명주기, 메서드 호출 외부에서 관리 일반적인 의존성에 대한 제어 → 객체 내에서 제어 public class Mundo { private FrostfireGauntlet frostfireGauntlet; private BerserkerShoes berserkerShoes; private DoranShield doranShield; public Mundo(){ this.frostfireGauntlet = new Fr..
-
Elasticsearch에서의 relationDEV 2023. 12. 2. 20:50
반복되는 일정을 검색하는 방법에 대한 이야기 Elasticsearch에서 어떻게 RDB처럼 relation을 만들어 join검색을 할 수 있을까? radio_progaram의 방송시간 데이터 Data { "program_name": "TBS 기상정보", "channel_name": "TBS FM", .... "routine": [ { "days": [ "MON", "TUE" ], "start_time": 658, "end_time": 700 }, { "days": [ "MON", "TUE" ], "start_time": 958, "end_time": 1000 } ] } User Query 이번주 월요일 라디오 월요일 밤 10시 라디오 오늘 아침 라디오 이번 주말 라디오 How to search on ES..
-
Spring batch integration test (feat.Elasticsearch)DEV 2023. 12. 2. 20:10
Purpose of Integration Test 여러 컴포넌트 간 상호작용이 정상적으로 수행되는지 DAO가 올바르게 연결돼 있어서 원하는 데이터를 저장, 읽을 수 있는지? Test Environment Setup 멱등성(idempotent) 유지 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질 멱등성이 깨지기 쉬운 구간 → 외부 모듈 → DB 개발 DB로 테스트를 하기엔 좀 그렇고, 테스트만을 위한 DB를 세팅하기도 좀.. DB 테스트 환경 구축 방법 local DB 설치 in-memory DB - H2, 빠르지만 특정 DB에 특화된 기능 지원 x 사용하는 DB의 Embedded Library 사용 - in-memory DB 이슈 해결 - embedded를 지원하지 않거나 특정 버전, OS지원 ..
-
K8S, DNS 간헐적 5~15초 지연DEV 2023. 12. 2. 19:54
Background k8s 일부 pod에서 간헐적으로 5초 단위의 타임아웃 발생 5*x초의 지연이 DNS조회로 인한 이슈라는 문서를 찾음 DNS Domain Name System 도메인명(www.daum.net) → IP주소(12.34.56.67) In Linux Linux 환경에서 DNS를 사용하는 방법 크게 2가지 /etc/hosts 도메인명으로 IP를 찾을 때 가장 먼저 열어보는 파일 /etc/resolv.conf DNS resolver, DNS 서버 목록을 기록한 파일 /etc/hosts 파일에 도메인명이 존재하지 않을 경우 /etc/resolv.conf에서 도메인명을 검색할 도메인 서버의 주소를 찾는다. DNS in K8S CoreDns v.1.12 이후로 k8s에서 사용을 권장하고 있는 도메인..