Software engineer
-
PostgreSQL 시간 관련 함수들Software engineer/DB 2025. 7. 11. 10:40
CURRENT_TIMESTAMP , LOCALTIMESTAMP , transaction_timestamp() , now()transaction 시작된 시각을 반환transaction 안에서 여러 번 호출해도 같은 값을 반환statement_timestamp()해당 함수가 포함된 SQL이 실행된 시각을 반환같은 transaction 안이라도, 새로운 SQL 문이 실행될 때마다 값이 갱신clock_timestamp()진짜 현재 시각을 반환같은 문 안에서도 호출 시마다 값이 달라진다. 샘플 쿼리select CURRENT_TIMESTAMP, LOCALTIMESTAMP, transaction_timestamp(), statement_timestamp(), clock_times..
-
AWS EC2 Free Tier 기반 부하 테스트Software engineer/Infra 2024. 12. 6. 11:45
토이 프로젝트를 진행하던 중 AWS의 EC2 Free Tier는 과연 어느정도 트래픽을 견딜 수 있을까? 라는 의문에서 시작해서 직접 부하 테스트를 진행하고 그 결과를 정리한 내용입니다.목차프로젝트 개요프로젝트 준비프로젝트 수행프로젝트 결과제언프로젝트 개요목표:AWS EC2 Free Tier 인스턴스를 활용해 애플리케이션의 최대 안정적인 RPS(초당 처리할 수 있는 요청의 수)를 측정하고, 부하 분산 효과를 확인.환경:Backend: Java17 + Springboot 3.4인프라 구성: EC2 Free Tier 인스턴스 3개 + ALB부하 테스트 도구: k6(javascript)주요 작업:부하 테스트를 통한 인스턴스 수에 따른 RPS 한계치 분석ALB를 통한 분산 처리 효과 확인안정적인 RPS와 성능 ..
-
Kubernetes(K8S): 멀티 Pod 배포Software engineer/Infra 2024. 10. 26. 19:43
이전 포스팅: https://jhjoo.tistory.com/46[Kubernetes(K8S):로컬에서 간단한 웹 서버배포] 이번 포스팅에서는 Node.js 서버를 2개의 파드(Pod)로 배포하여 트래픽이 두 개의 인스턴스에 분산되도록 하는 방법을 설명합니다. Kubernetes의 Deployment를 사용하여 여러 파드를 쉽게 관리하고 확장할 수 있습니다. 1. Deployment로 Node.js 서버를 2개의 파드에 배포하기이전에는 node-pod.yaml을 사용해 단일 파드를 생성했지만 이번에는 Deployment를 사용하여 동일한 이미지를 사용한 2개의 파드를 생성해 보겠습니다. 1) 디플로이먼트 설정 파일 생성 (node-deployment.yaml)node-deployment.yaml 파일..
-
Kubernetes(K8S): 로컬에서 간단한 웹 서버 배포Software engineer/Infra 2024. 10. 26. 16:49
Kubernetes(K8S)를 사용하여 서버 리소스를 오케스트레이션하는 방법을 알아보겠습니다. Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 플랫폼으로, 여러 서버에서 다양한 애플리케이션을 효율적으로 운영할 수 있도록 도와줍니다. 주요 개념과 예제를 통해 K8S 오케스트레이션을 이해해 보겠습니다. 1. Kubernetes란?Kubernetes(K8S)는 Google에서 개발한 컨테이너 오케스트레이션 플랫폼입니다. 애플리케이션을 컨테이너에 배포한 후, 다양한 리소스 관리를 자동화하여 애플리케이션의 확장성, 가용성, 복원력을 높이는 데 도움을 줍니다. 특히, Kubernetes는 여러 서버에서 리소스를 효율적으로 관리하여 애플리케이션이 고가용성을 유지할 수 ..
-
Redis: 인메모리 데이터베이스Software engineer/DB 2024. 10. 26. 01:05
Redis란?Redis는 Remote Dictionary Server의 약자로, 메모리에서 데이터를 관리하는 오픈소스 NoSQL 데이터베이스입니다. Redis는 데이터를 디스크에 저장하지 않고 메모리(RAM)에 저장하여 매우 빠른 데이터 읽기 및 쓰기 속도를 제공합니다. 특징인메모리 데이터베이스: 데이터를 메모리에 저장하므로 빠른 속도로 읽기, 쓰기가 가능다양한 데이터 타입 지원: 문자열(String), 리스트(List), 세트(Set), 해시(Hash), 정렬된 세트(Sorted Set) 등Persistence(영속성): 메모리에 저장된 데이터를 주기적으로 디스크에 백업하여 영구성을 제공분산 처리 지원: Redis는 클러스터링을 통해 대규모 데이터 처리도 가능 Redis 설치하기이번에는 Docker를..
-
[Docker] image를 삭제하는 방법들!Software engineer/Infra 2023. 11. 2. 18:03
기본문법 1) image id를 이용하여 삭제 docker rmi IMAGE_ID 2) repository와 tag를 이용하여 삭제 docker rmi REPOSITORY:TAG docker images 명령어 활용하기 docker images 명령어에 -q /--quiet 옵션을 사용하면 이미지의 id만 출력이 된다. 이를 이미지 삭제 명령어에 응용할 수 있다. 1) repository 혹은 tag가 인 이미지 삭제하기 docker rmi $(docker images -q --filter "dangling=true") 2) 패턴 활용하기 docker rmi $(docker images -q --filter "reference=ngi*") docker rmi $(docker images -q --filt..
-
[RDS] 파라미터 그룹Software engineer/Infra 2023. 10. 6. 12:56
Amazon RDS는 관리형 관계형 데이터베이스 서비스로, 데이터베이스 운영 및 유지보수를 단순화하며 MySQL, PostgreSQL, Oracle 등 다양한 데이터베이스 엔진을 지원합니다. 사용자는 데이터베이스 설정, 백업, 확장, 보안 등을 AWS가 자동으로 관리해 주며, 확장성과 안정성을 제공합니다. 파라미터 그룹 (Parameter Group) 이란 RDS 데이터베이스 엔진의 설정을 관리하는 그룹. 데이터베이스 엔진의 동작을 사용자 정의할 수 있으며, 예를 들어 캐시 크기, 로깅 설정 등을 조절할 수 있음. RDS를 생성하면 필수적으로 설정해야할 파라미터 time_zone: 시간 기준 설정 character_set: 문자 인코딩 설정 collaction: 데이터 정렬기준을 위한 설정 time_zo..