전체 글 242

Ubuntu 18.04에서 PostgreSQL DB 백업 스케쥴러 구축하기

이 포스팅에서는 PostgreSQL 14.2를 사용하는 Ubuntu 18.04 서버에서 작동 백업 스케쥴러를 구축하는 방법에 대해 설명하려고 한다. 매일 자정마다 pg_dump를 이용해 DB 백업을 수행하고, 백업 파일은 별도의 폴더에 저장하며, 30일이 지난 백업은 자동으로 삭제하도록 구성할 예정이다.  1. 준비 사항운영체제: Ubuntu 18.04PostgreSQL 버전: 14.2백업 도구: pg_dump스케줄러: cron백업 경로: /home/ubuntu/pg_backups (백업 파일은 이 경로 내의 backups 폴더에 저장)또한, 백업 작업을 진행하기 전에 데이터베이스 접속 정보를 정확히 확인하고, 필요한 경우 DBeaver 등을 통해 DB 이름과 사용자 정보를 점검해야 한다.  2. 백업 ..

DataBase 2025.03.22

클라우드 컴퓨팅의 이해와 차별점

1. 클라우드의 개념클라우드 컴퓨팅은 물리적 하드웨어 자원을 가상화하여 네트워크를 통해 온디맨드로 제공하는 서비스이다. 사용자는 필요할 때마다 컴퓨팅 리소스를 할당받을 수 있으며, 이는 자동화된 자원 관리, 확장성, 고가용성 등의 특징을 가진다. 클라우드 서비스는 인프라스트럭처(IaaS), 플랫폼(PaaS), 소프트웨어(SaaS) 등 다양한 형태로 제공된다.  2. 일반적인 가상화와의 차별점일반적인 가상화는 단일 하드웨어 상에서 여러 개의 가상 머신(VM)을 운영하는 기술이다. 예를 들어, 한 대의 PC에서 여러 VM을 띄워 자원을 분할하는 것은 가상화의 한 예이다. 그러나 클라우드 컴퓨팅은 단순히 가상 머신을 띄우는 것을 넘어 다음과 같은 요소를 포함한다. - 자원 폴링: 여러 물리적 서버의 자원을 하..

Cloud 2025.03.13

Git Commit 메시지 작성 규칙

Git 커밋 메시지는 명확하고 일관된 규칙을 따르는 것이 중요하다. 잘 작성된 커밋 메시지는 프로젝트 관리와 협업을 더욱 효율적으로 만들어 준다. 이 포스팅에서는 Git 커밋 메시지를 작성하는 기본 규칙과 유형별 예제를 정리한다.  1. Git Commit 메시지 작성 규칙1) 첫 줄은 요약 (제목) 으로 짧고 간결하게 작성한다.- 변경 사항을 한 문장으로 요약한다.- 문장의 첫 단어는 동사 원형(현재형)을 사용한다. (Add, Fix, Update 등)- 끝에 마침표( . ) 를 사용하지 않는다. 2) 필요하면 본문을 추가한다.- 변경 사항에 대한 추가 설명이 필요한 경우 한 줄 띄운 후 작성한다.- 변경 이유, 영향을 받는 기능, 참고할 이슈 등을 포함할 수 있다. 3) 관련 이슈 번호를 포함하는 것..

Git 2025.03.08

Python 패키지 관리 - requirements.txt 활용 및 패키지 일괄 삭제

[환경]- Python 버전: 3.11- pip 버전: 22.3 Python 프로젝트를 진행하다 보면 패키지 관리를 효율적으로 해야 할 필요가 있다. 특히 여려 환경에서 같은 패키지를 설치하거나, 불필요한 패키지를 한 번에 삭제해야 하는 경우가 생긴다. 이에 대한 간단한 방법을 정리해본다.   1. 패키지 정보 저장 및 다른 환경에서 설치Python 프로젝트에서 일반적으로 패키지 정보를 저장하는 방식으로 requirements.txt를 많이 활용한다. 1) 패키지 목록 저장하기현재 설치된 패키지 목록을 requirements.txt 파일로 저장하려면 다음 명령어를 실행한다.pip freeze > requirements.txt(이 명령어에서 pip freeze는 현재 Python 환경에 설치된 모든 패키지..

Language/Python 2025.03.08

RESTful API 디자인 마스터하기: 실용적인 가이드

오늘은 dev.to 사이트에서 RESTful API 디자인 관련 유용한 포스팅이 있어서, 직접 한글로 번역하여 포스팅하게 되었다.[원본 포스팅: https://dev.to/leapcell/mastering-restful-api-design-a-practical-guide-408]RESTful API(Representational State Transfer API)는 네트워크 애플리케이션 간 상호작용에 사용되는 네트워크 인터페이스 디자인 스타일이다. REST는 특정한 표준이나 프로토콜이 아니라, 아키텍처 원칙과 제약 조건의 집합이다.웹 서비스가 "RESTful" 일 때 REST원칙을 따르고 효율적이고 안정적이며 확장 가능한 네트워크 서비스를 제공한다. RESTful 서비스에서 각 요청는 요청을 처리하는데 ..

Server 2025.02.23

IIS에서 초기 로딩 속도 개선하기: 앱 풀 유지 및 Preload Enabled 설정

IIS에서 ASP.NET MVC 애플리케이션을 운영하다 보면 첫 요청 속도가 느려지는 문제를 겪을 수 있다.이는 앱 풀(Application Pool) 재활성화 정책 또는 서버 재부팅 시 초기 로딩이 필요하기 때문이다. 이번 포스트에서는 앱 풀 유지 및 "Preload Enabled" 관련 설정을 적용하여 서버 재시작 후에도 애플리케이션이 항상 실행되도록 설정하는 방법을 정리하고자 한다. 1. IIS 앱 풀 재활성화 주요 원인IIS의 앱 풀은 일정 시간이 지나면 비활성화되거나 재시작될 수 있으며, 이 과정에서 모든 어셈블리와 View가 다시 로드되어 초기 로딩 시간이 길어질 수 있다. 이는 기본적인 앱 풀 재활성화 정책 때문이다. (1) Idle Timeout - 기본적으로 IIS는 일정 시간(기본값: ..

Server 2025.02.22

AWS EC2 볼륨 확장 후 기존 파티션에 추가 용량 할당(Ubuntu 18.04)

AWS EC2에 사용중인 Ubuntu 18.04 서버가 있는데, 디스크가 또 꽉 차서 볼륨을 확장하게 되었다.  다행히 AWS서는 볼륨을 쉽게 확장할 수 있지만, OS에서 추가된 용량을 인식하고 기존 파티션에 합쳐서 사용할 수 있도록 하는 추가 작업이 필요하다. 이번 포스팅에서는 Ubuntu 18.04 버전의 EC2 인스턴스의 EBS볼륨을 확장한 후, 기존 파티션에 새롭게 추가된 공간을 합쳐서 사용하는 방법을 정리해보겠다. 또한 예외적으로 기존 파티션이 가득 차서 확장이 불가능할 때 해결하는 방법도 함께 소개한다.  1. 현재 디스크 상태 확인볼륨을 확장한 후, EC2 인스턴스에 SSH로 접속하여 디스크 상태를 확인한다.lsblk 여기서 xvda 볼륨이 22GB로 증가했지만, 기존 루트 파티션 xvda1..

Server/Linux 2025.02.09

IIS API 요청 실패 및 DB 연결 문제 해결

[서비스 환경]- 프레임 워크: .NET Framework 4.6.1- 데이터베이스: Microsoft SQL Server 2016 (MSSQL 16)- 웹 서버: IIS 서비스 운영 중 특정 시간 이후 모든 API 요청이 무한로딩 상태로 빠지는 현상이 발생했다.문제를 분석한 결과, DB 연결을 적절히 닫아주지 않은 문제로 인해 IIS가 먹통이 되는 상황이었다. 이 포스트에서는 해당 문제의 원인과 해결 방법을 단계적으로 설명한다.    1. 문제 증상서비스가 정상적으로 시작되지만, 약 1시간 후부터 일부 API 요청이 무한 로딩 상태에 빠지며, 연결이 끊어지는 문제가 발생했다. 다만, HTML, CSS, JS와 같은 정적 파일 요청은 정상적으로 처리되었다.즉, API 요청 처리에서 문제가 발생한 것이다...

DB Connection Pool (데이터베이스 연결 풀) 개념

DB Connection Pool은 애플리케이션이 데이터베이스와의 연결(Connection)을 효율적으로 관리하기 위한 기술이다.    1. 왜 Connection Pool이 필요한가?애플리케이션이 데이터베이스와 통신하려면 DB연결이 필요하다. - 매번 새로운 연결을 생성하고 해제하는 것은 성능 저하와 자원 낭비를 초래한다.- 특히, 대량의 요청이 발생하면 연결 생성/해제 오버헤드로 인해 응답속도가 느려지고 시스템 부하가 증가한다. 따라서 Connection Pool을 사용하여 DB 연결을 미리 생성하두고 필요할 때 재사용하여 성능을 향상시킨다.   2. Connection Pool의 동작 방식1. 초기 연결 생성- 애플리케이션이 시작될 떄, 설정된 개수만큼 DB 연결을 생성하여 "풀(Pool)"에 저장..

DataBase 2025.01.25

[ASP.NET MVC5] Action Filter의 개념과 활용

ASP.NET MVC에서 Action Filter는 컨트롤러의 액션 메서드 실행 전후에 특정 작업을 수행할 수 있는 강력한 기능이다. 이번 포스팅에서는 Action Filter의 개념, 주요 기능, 그리고 활용 방법을 간단한 예제와 함께 알아보고자 한다.  1. Action Filter란?Action Filter는 컨트롤러의 액션 메서드 실행 전후에 동작하는 로직을 캡슐화하여 제공하는 특수한 클래스이다.이를 통해 공통 작업을 중앙에서 관리하고 코드의 재사용성을 높일 수 있다.  2. 주요 특징2.1 액션 메서드 실행 전후 작업 관리Action Filter는 다음과 같은 단계에서 작업을 수행할 수 있다:- OnActionExecuting: 액션 메서드가 실행되기 전에 호출된다. (예: 사용자 인증, 요청 ..

Language/ASP.NET 2025.01.12
반응형