일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 정보처리기사 실기
- kotlin spring
- Pinpoint
- kotlin querydsl
- 정보처리기사실기 기출문제
- APM
- Java
- 정보처리기사 실기 기출문제
- AWS EKS
- 공부
- CKA 기출문제
- Linux
- 코틀린 코루틴의 정석
- PETERICA
- aws
- AI
- CKA
- Kubernetes
- Spring
- 오블완
- mysql 튜닝
- 기록으로 실력을 쌓자
- Elasticsearch
- kotlin coroutine
- IntelliJ
- kotlin
- CloudWatch
- MySQL
- 티스토리챌린지
- minikube
- Today
- Total
목록PETERICA (590)
피터의 개발이야기
ㅁ 들어가며ㅇ 리눅스 셸 스크립트에서 명령어를 반복적으로 실행하는 방법은 여러 가지가 있다.ㅇ 주로 사용되는 방법들을 정리해 보았다. ㅁ while 루프 사용#!/bin/bashwhile truedo echo "현재 시간: $(date)" sleep 5doneㅇ while 루프를 사용하면 특정 조건이 참인 동안 명령어를 반복 실행할 수 있다.ㅇ 이 스크립트는 5초마다 현재 시간을 출력한다. ㅁ for 루프 사용#!/bin/bashfor i in {1..10}do echo "반복 $i: $(ls -l)" sleep 2doneㅇ for 루프를 사용하면 지정된 횟수만큼 명령어를 반복 실행할 수 있다.ㅇ 이 스크립트는 현재 디렉토리의 파일 목록을 10번 출력하며, 각 반복 사이에 2초 간격둔다. ㅁ un..
ㅁ 들어가며ㅇ Linux에서 프로그램을 백그라운드로 실행하는 방법에 대해 정리하였다. ㅁ 백그라운드 실행의 필요성 크롬 브라우저에서 여러 페이지를 보기 위해서는 탭이 필요하다. 탭을 통해 하나씩 페이지를 볼 수 있고, 보지 않는 나머지 페이지는 탭으로 구분되어 백그라운드에서 실행되고 있다. 한 화면에서 여러 작업을 동시에 수행하기 위해 백그라운드 작업은 필요하다. linux의 커널을 통해 여러 프로세스를 수행하기 위해 백그라운드로 실행할 수 있다. 그러면 한 세션을 통해 여러 작업을 동시에 처리할 수 있게 된다. ㅁ 기본 백그라운드 실행command &ㅇ 프로그램을 백그라운드로 실행하려면 명령어 뒤에 앰퍼샌드(&)를 붙인다.ㅇ 백그라운드로 실행하면 [백그라운드 카운트] 프로세스 번호가 출력된다. ..
ㅁ 들어가며ㅇ 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 기반에서 웜업 적용하기를 읽고 그 내용을 정리하였다. ㅁ 콜드 스타트와 웜업이란? 소프트웨어에서 콜드 스타트는 애플리케이션이 처음 실행되거나 오랜 시간 후 재실행될 때 발생하는 현상을 말한다. 이 때 시스템은 애플리케이션을 위한 프로세스와 리소스를 새로 생성해야 하므로 실행 시간이 길어진다. 웜업은 이러한 콜드 스타트 문제를 해결하기 위한 전략으로, 애플리케이션이 실제 트래픽을 처리하기 전에 필요한 리소스와 데이터를 미리 로드하고 초기화하는 과정이다. 이를 통해 초기 성능 저하를 방..