일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kotlin spring
- 코틀린 코루틴의 정석
- 공부
- Pinpoint
- AI
- 오블완
- AWS EKS
- CKA
- CKA 기출문제
- mysql 튜닝
- kotlin querydsl
- IntelliJ
- 정보처리기사실기 기출문제
- Spring
- CloudWatch
- Linux
- PETERICA
- MySQL
- aws
- Kubernetes
- 기록으로 실력을 쌓자
- kotlin
- 정보처리기사 실기
- Java
- APM
- kotlin coroutine
- 정보처리기사 실기 기출문제
- 티스토리챌린지
- minikube
- Elasticsearch
- Today
- Total
목록전체 글 (766)
피터의 개발이야기
ㅁ 들어가며ㅇ traceroute는 네트워크 패킷이 목적지까지 도달하는 경로를 추적하는 유용한 네트워크 진단 도구다. 이 명령어를 사용하면 네트워크 문제를 진단하고 패킷이 거치는 라우터들을 확인할 수 있다. ㅁ traceroute의 원리 traceroute는 Ping과 달리 특정 IP까지 라우팅 경로를 알려준다. 그 원리는 ICMP Error 메시지를 통해 진행된다.ICMP TTL은 최대 이동할 수 있는 라우팅 홉을 의미한다. 그래서 TTL 1로 설정하여 패킷을 보내면, 다음 라우터에서 ICMP Error가 반환되는데, 그 에러 메시지를 통해 라우팅 IP를 알게 된다. traceroute를 실행하면 느린 이유는 TTL을 1부터 증가시켜 들어오는 에러 메시지를 확인하여 라우팅 IP를 출력하기 때문이다. ..
ㅁ 들어가며ㅇ 동료가 담당하는 프로젝트의 구성 중에 Semantic UI가 있었다.ㅇ Semantic UI는 백엔드 개발자가 프론트 개발을 위한 프레임 워크로 Bootstrap와 유사해 보였다.ㅇ Semantic UI가 무엇인지, Bootstrap와의 차이점에 대해서 정리해보았다. ㅁ Semantic UI란? Semantic UI는 웹 개발을 위한 현대적이고 직관적인 프론트엔드 프레임워크다. HTML과 CSS를 사용해 다양한 UI 컴포넌트를 제공하며, 자연스러운 언어를 사용한 클래스 이름으로 코드의 가독성을 높인다. ㅁ 주요 특징직관적인 문법: 클래스 이름이 자연어와 유사해 이해하기 쉽다.반응형 디자인: 다양한 화면 크기에 맞춰 자동으로 조정된다.다양한 컴포넌트: 버튼, 폼, 메뉴 등 풍부한 UI 요소..
ㅁ 관련글ㅇ [AI] Peterica의 AI공부와 비젼 정리ㅁ 들어가며ㅇ 인공지능(AI) 분야에서 기계학습(Machine Learning)인 강화(reinforement)학습과 다른 기계학습은 두 가지 주요한 학습 방법이다.ㅇ 말 그대로 Machine Learning은 인공지능을 학습 시키는 방법으로 두 가지 주요 방법은 각각 고유한 특성과 적용 분야를 가지고 있어 비교해볼 만한 가치가 있다. ㅁ 기계학습의 분류ㅇ 기계학습에는 지도학습과 비지도학습, 강화 학습으로 분류된다.ㅇ 기계학습은 인공지능이라 부르기도 하고 데이터를 사용한다는 공통점이 있다.ㅇ 데이터를 이용해 인공지능을 학습하는 방식의 차이에 따라 그 특징이 구분되어 진다. ㅁ 지도학습 (Supervised Learning)ㅇ 지도자 또는 정답이..
ㅁ 들어가며 내가 운영하는 서비스에 Request Timeout Exception이 발생하였다. 이 서비스는 전체 서비스의 중간 모듈이기 때문에 전체 서비스의 품질을 위해서는 Timeout의 시간을 2초를 넘길 수 없었다. 이를 해결하기 위해 전체 서비스에 장애로 전파될 수 있는 로직을 비동기로 처리하기로 하였다. Spring Framework에서 제공하는 @Async 어노테이션은 메서드를 비동기적으로 실행할 수 있게 해주는 강력한 기능이다. 이를 통해 애플리케이션의 성능을 향상시키고 리소스를 효율적으로 사용할 수 있다. ㅁ Webflux 비동처 처리 방식에 대한 나의 경험 @PostMapping("/1.0/noti") public Mono Notification( ServerHttpReque..
ㅁ 관련글ㅇ [AI] Peterica의 AI공부와 비젼 정리ㅁ 강화학습이란?강화학습: AI가 경험을 통해 학습하는 방법 강화학습(Reinforcement Learning)은 기계학습의 한 분야로, 주변 환경과 상호작용하며 시행착오를 통해 최적의 행동 정책을 학습하는 방법이다. 이 접근법은 인간이나 동물이 경험을 통해 학습하는 방식과 유사하다. ㅁ 강화학습의 핵심 요소ㅇ 에이전트(Agent): 학습하고 결정을 내리는 주체ㅇ 환경(Environment): 에이전트가 상호작용하는 세계ㅇ 상태(State): 현재 환경의 상황ㅇ 행동(Action): 에이전트가 취할 수 있는 선택ㅇ 보상(Reward): 행동의 결과로 얻는 피드백ㅇ 정책(Policy): 각 상태에서 어떤 행동을 취할지 결정하는 전략 ㅁ 강화학습의 ..
ㅁ 들어가며ㅇ 지난 글, ProxySQL이란에서 ProxySQL의 쿼리 라우팅으로 읽기/쓰기 분리 방법을 알아보았다.ㅇ 이번 글에서는 Spring Data JPA와 ProxySQL에서의 읽기/쓰기 분리 방법을 비교해보았다. ㅁ Spring Data JPA의 읽기/쓰기 분리ㅇ 다중 데이터 소스 설정 읽기용과 쓰기용 데이터 소스를 별도로 구성한다. @Configuration 클래스에서 각각의 DataSource, EntityManagerFactory, TransactionManager를 설정한다. ㅇ @Transactional 어노테이션 활용 읽기 전용 메서드에 @Transactional(readOnly = true)를 적용 쓰기 작업이 필요한 메서드에는 @Transactional만 사용ㅇ Abstr..
ㅁ 들어가며ProxySQL은 효율적으로 커넥션을 관리하기 위한 미들웨어이다. 마이크로서비스 아키텍쳐로 인해 증가하는 어플리케이션에 대응하기 위해 MySQL서버를 여러대 구성해야하겠지만, ProxySQL을 통해 급증하는 커넥션을 감당하고 라우팅 하는 기능을 가지고 있다. 이번 글에서는 ProxySQL이 무엇인지 정리해 보았다. ㅁ ProxySQL이란?ProxySQL은 쿼리 라우팅 기능을 제공하는 MySQL 및 MySQL 포크(Percona, Mariadb)의 고성능, 고가용성 오픈소스 프록시이다. ㅁ 사용이유 서비스 운영시 MSA구조로 운영하다보면 어플리케이션의 수가 증가한다. 이렇게 증가할수록 MySQL가 감당해야하는 커넥션수가 증가하여 여러 MySQL서버를 구성해야하는 경우가 있다. 예를들어 MySQL..
ㅁ 들어가며ㅇ 이 글은 Spring Boot와 Kubernetes 환경에서 애플리케이션의 성능을 개선하기 위해 웜업을 적용한 경험을 소개하는 Line Engineering - Spring Boot + Kubernetes 기반에서 웜업 적용하기를 읽고 그 내용을 정리하였다. ㅁ 콜드 스타트와 웜업이란? 소프트웨어에서 콜드 스타트는 애플리케이션이 처음 실행되거나 오랜 시간 후 재실행될 때 발생하는 현상을 말한다. 이 때 시스템은 애플리케이션을 위한 프로세스와 리소스를 새로 생성해야 하므로 실행 시간이 길어진다. 웜업은 이러한 콜드 스타트 문제를 해결하기 위한 전략으로, 애플리케이션이 실제 트래픽을 처리하기 전에 필요한 리소스와 데이터를 미리 로드하고 초기화하는 과정이다. 이를 통해 초기 성능 저하를 방..
ㅁ 들어가며Kubernetes는 지속적으로 업그레이드 되면서 API도 주기적으로 변경된다. 클러스터를 업그레이드 하는 과정에서 제거된 API를 파악하지 못하면 큰 장애로 전파될 수 있다. 이번 글에서는 Deprecated API Migration Guide을 토대로 쿠버네티스 API 버전별 제거된 API와 마이그레이션 정보를 요약한 표를 정리해 보았다. ㅁ 버젼별 변경 리소스 표버전리소스제거된 API마이그레이션 대상 APIv1.32FlowSchema,PriorityLevelConfigurationflowcontrol.apiserver.k8s.io/v1beta3flowcontrol.apiserver.k8s.io/v1v1.29FlowSchema,PriorityLevelConfigurationflowcontr..
ㅁ 들어가며 ㅇ 운영 EKS 업그레이드 작업 시 작성한 작업절차를 정리하였다. ㅁ EKS 업그레이드 테스트EKS 업그레이드 - 1탄: EKS, AddOn - 2탄: WorkNode - 3탄: kubectl위의 글은 업그레이드를 하기 전에 EKS를 현 버젼으로 구성하여 업그레이드 하는 과정을 테스트하고 그 과정을 정리하였다. ㅁ 신규 Bastion 서버 부팅 ㅇ 신규 EKS를 관리하기 위한 Bastion 서버를 사전 준비하였다. ㅇ [EKS] Amazon EKS 버전 업그레이드, #3 kubectl 설치 또는 업데이트 ㅇ [kubernetes] eksctl 설치 및 zsh bash 쉘 자동 완성 활성화, eksctl 자동완성 ㅇ eksctl 트러블슈팅: ㄴ bastion에서 eksctl 설치 및..
ㅁ 들어가며ㅇ MacOS에서는 Oracle의 정식 지원이 없어 Colima를 이용해 설치해야한다.ㅇ Colima 설치는 [Docker] 맥북M1에 도커 컨테이너 colima설치에 정리하였다. ㅁ Colima 실행$ colima start --memory 4 --arch x86_64 # 정상작동 확인$ docker psㅇ Oracle 설치를 위한 환경은 준비 완료 ㅁ Oracle 컨테이너 실행$ docker run \ --name oracle2 \ --restart unless-stopped \ -e ORACLE_PASSWORD=strongpassword \ -p 1521:1521 \ -d \ gvenzl/oracle-xe ㅇ 옵션 설명 --name oracle2 // 컨테이너 이름 --restart..
ㅁ 들어가며ㅇ Python은 간결하고 읽기 쉬운 문법으로 코딩과 실행이 아주 편리한 프로그래밍 언어이다. ㅇ 이 글을 통해 Python을 시작하는 데 필요한 핵심 개념들을 정리하였다.ㅁ 데이터 타입#정수(int)print(1, 2, 3)#부동소수점(float)print(1.0, 3.14)#문자열(str)print("Hello",'World')#불리언(bool)print(True, False)#리스트(list)list=[1, 2, 3]print(list)#튜플(tuple)tuple=(1, 2, 3)print(tuple)#딕셔너리(dict)dict={"key": "value"}print(dict)#집합(set)set={1, 2, 3}print(set)ㅁ 변수x = 5 # 정수y = 3.14 # 부동소수점..
ㅁ 들어가며ㅇ AWS에서 NLB, ALB에 대해서 사용해 보았는데, 최근 GSLB에 대해서 알게 되었다.ㅇ 이 글은 GSLB의 개념을 정리하고 NLB, ALB와의 차이점을 정리하였다. ㅁ GSLB의 정의와 기본 개념 GSLB는 Global Server Load Balancing의 약자로, 전 세계적으로 분산된 서버들 간의 부하를 효율적으로 분산시키는 기술이다. 이 기술은 지리적으로 떨어진 여러 데이터 센터나 클라우드 환경에서 운영되는 서비스의 가용성과 성능을 최적화하는 데 중요한 역할을 한다. ㅁ GSLB의 작동 원리GSLB는 DNS(Domain Name System)를 기반으로 작동하며, 사용자의 위치, 서버 상태(부하, 장애), 네트워크 지연을 고려하여 최적의 서버로 라우팅한다.GSLB는 DNS와 ..
ㅁ 주차장법 개정과 차박의 변화주차장법 개정으로 인해 차박 문화에 큰 변화가 생겼다. 이제 공영주차장에서의 차박은 원칙적으로 금지되었지만, 여전히 차박을 즐길 수 있는 방법들이 있습니다. ㅁ 주차장법제6조의3(주차장에서의 금지행위) 누구든지 국가기관, 지방자치단체, 「공공기관의 운영에 관한 법률」 제4조에 따른 공공기관, 그 밖에 국토교통부령으로 정하는 기관의 장이 설치한 주차장에서 야영행위, 취사행위 또는 불을 피우는 행위를 하여서는 아니 된다. [본조신설 2024. 3. 19.][종전 제6조의3은 제6조의4로 이동 ]ㅇ 공용주차장에서 취사행워, 루프탑이나 타프 등을 치고 야영하는 행위등은 금지되었다.ㅇ 스텔스 차박은 가능하지만, 주의가 필요하다. ㅇ 주자장법 본문 ㅁ 공영주차장에서의 차박 금지 2..
ㅁ 들어가며ㅇ 새로 담당하게 된 프로젝트가 node.js로 구성되어 있다.ㅇ 빠르게 서버 사이드 공부를 하면서 주요 특징과 기능을 구현해 보았다. ㅁ Node.js란?ㅇ Node.js는 2009년 Ryan Dahl에 의해 개발된 오픈 소스 서버 사이드 JavaScript 런타임 환경이다. ㅇ Chrome V8 JavaScript 엔진을 기반으로 하며, 이벤트 기반, 비동기 I/O 모델을 사용해 가볍고 효율적인 애플리케이션 개발을 가능하게 한다. ㅁ 주요 특징비동기 I/O ㅇ Node.js의 가장 큰 특징 중 하나는 비동기 I/O 처리 방식이다. 이는 블로킹 작업을 기다리지 않고 다음 작업을 수행할 수 있게 해준다. 예를 들어, 파일 읽기나 데이터베이스 쿼리와 같은 I/O 작업을 수행할 때, Node.js..