본문 바로가기

프로그래밍

데이터베이스 트랜잭션의 4가지 속성 속성 설명 원자성 트랜잭션은 연산들을 전부 실행하든지 전혀 실행하지 않아야 한다. 일부만 실행해서는 안 된다. 일관성 트랜잭션이 성공적으로 실행되면 데이터베이스 상태는 모순되지 않고 일관된 상태가 된다. 독립성 트랜잭션 실행 도중의 연산 결과는 다른 트랜잭션에서 접근할 수 없다. 지속성 트랜잭션이 성공했을 경우 영구적으로 반영되어야 한다. 더보기
Alembic 연동 Alembic은 Python에서 사용되는 데이터베이스 마이그레이션 도구입니다. 기존 데이터베이스와 Alembic을 연동하는 방법을 알아보겠습니다. 1. Alembic 설치 먼저 Python 패키지 관리자인 pip를 사용하여 Alembic을 설치해야 합니다. 명령 프롬프트(Windows) 또는 터미널(Mac/Linux)에서 다음 명령을 실행합니다. pip install alembic 2. Alembic 초기화 Alembic을 사용하려는 프로젝트 루트 디렉토리에서 다음 명령을 실행하여 Alembic을 초기화합니다 alembic init alembic 3. 설정 파일 편집 초기화 명령을 실행하면 `alembic.ini` 파일과 `alembic` 디렉토리가 생성됩니다. `alembic.ini` 파일을 열어 데이.. 더보기
Docker(도커) 용량 초과 이슈, overlay2 정리 클라우드서버에 도커로 개발 서버를 운영 중이었다. CICD를 구성하여 github에 push 할 때마다 기존 컨테이너를 삭제하고 새로 구성하였다. 이렇게 6개월가량 개발을 진행 중이었는데 어느 날 서버의 용량 초과로 이슈가 발생하였다. 스토리지는 무려 50GB로 넉넉하게(?) 할당하였는 데 사용하지 않은 캐시가 많이 쌓인 것 같았다. 이러한 경우 해결하는 방법을 정리하고자 한다. 먼저 아래의 명령어로 Docker의 루트 디렉터리의 위치를 찾는다. docker info | grep "Docker Root Dir" 대부분 아래의 위치에 설치가 되어있을 것이다. Docker Root Dir: /var/lib/docker 해당 디렉터리로 이동한 뒤에 아래 명령어로 어떤 폴더의 용량이 가장 큰지 확인해 본다. d.. 더보기
[AWS] CloudFormation 템플릿 구조 Cloud Formation이란? AWS 리소스들을 자동으로 생성해주는 IaC 도구입니다. 코드로 형식으로 작성하기 때문에 재사용에 유리합니다. 템플릿 구조 템플릿은 AWS 인프라를 설명하는 JSON 또는 YAML 형식의 텍스트 파일입니다. 다음 예제에서는 템플릿 구조 및 관련 섹션을 보여줍니다. JSON 아래는 JSON 형식의 템플릿 구조입니다. 더보기 { "AWSTemplateFormatVersion" : "version date", "Description" : "JSON string", "Metadata" : { template metadata }, "Parameters" : { set of parameters }, "Rules" : { set of rules }, "Mappings" : { set.. 더보기
카카오 먹통사태로 알아보는 고가용성, 장애내구성, 재해복구의 차이 고가용성, 장애 내구성, 재해복구가 비슷한 어감으로 혼용되어 쓰이는 경우가 있는 것 같다. 이번 기회에 확실하게 정리하고 넘어가 보고자 한다. - 고가용성(High Availability): 장애 상황을 해결하고 서비스를 지속할 수 있는 능력 - 장애 내구성(Fault Tolerance): 장애 상황에도 서비스를 지속할 수 있는 능력 - 재해 복구 (Disaster Recovery): 장애 상황에서 정상 서비스를 제공할 수 있도록 복구하는 것 최근 '카카오 먹통 사태'를 예로 들어보겠다. SK C&C 판교 데이터센터 한 곳에서 화재가 발생했다. 이로 인해 대부분의 카카오 계열 서비스들이 동시에 오랜 시간 동안 중단되었다. 이는 장애 내구성이 지켜지지 않은 것이다. 장애 내구성이 지켜졌다면, 데이터센터 한.. 더보기
[알고리즘] 회의실 배정 문제의 여러가지 풀이법 (Brute-Force, 분할정복, DP, 그리디) 회의실 배정 문제 회의실 배정 문제를 여러 가지 알고리즘으로 해석해보고자 한다. 문제의 상황은 아래와 같다. 실생활에서 자주 마주할만한 상황이라 재미있다. 회의실은 1개인데, n개의 회의가 있다. 이때 하나의 회의실에서 최대한 많이 회의를 할 수 있도록 스케줄을 잘 짜 보는 것이다. (문제에서 S는 회의 시작시간, F는 회의 종료시간으로 주어진다.) 예를 들면 아래와 같은 상황이 있을 수 있다. 시간표를 어떻게 짜야 가장 많은 회의를 배정할 수 있겠는가? 한번 생각해보자. 백준 1931번에 비슷한 문제가 있으니 참고해도 좋다. https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acm.. 더보기
[오라클 클라우드] 회원가입 지급검증(카드인증) 실패 오류 오라클 클라우드에서 무료로 제공하는 서버의 스펙은 다른 곳과 비교했을 때 압도적으로 어마 무시하다. 서비스별 클라우드 무료 제공량은 아래의 포스팅에서 정리했다. https://blog.wookingwoo.com/30 서비스별 클라우드 서버 평생 무료, 크레딧 제공 정리 토이 프로젝트 등 개발을 하다 보면 배포와 테스트를 위해 라이트 한 서버가 필요한 경우들이 생긴다. 가볍게 사용하는 용도에서 돈을 내고 서버를 구성하기에는 아까운 마음이 든다. 이번 기회 blog.wookingwoo.com 오라클 클라우드를 사용하기 위해선 당연히 먼저 회원가입을 해야 한다. 회원가입 시에는 다른 서비스들과 다르지 않게 카드 인증절차를 거치게 된다. 다만 오라클의 좋은 점은 유료계정으로 별도로 전환하지 않는 이상은 별도로 .. 더보기
[AWS] AWS 서비스 네이밍: Amazon과 AWS의 차이 AWS의 서비스의 풀네임은 긴 영문(?)으로 되어있다. 예를 들어 EC2는 Amazon Elastic Compute Cloud의 약자이다. 앞선 예시와 같이 서비스의 이름앞에는 대부분 Amazon 혹은 AWS가 접두사 형태로 붙는데 문득 그 네이밍의 차이점이 궁금해졌다. 정리하자면 아래와 같다. AWS: 다른 서비스와 연계되어 사용하는 utility service Amazon: 단독으로 독립적으로 실행할수있는 standalone service 예시로는 아래와 같다. 1. Amazon Amazon EC2 Amazon Lightsail Amazon S3 Amazon RDS Amazon DynamoDB Amazon ECS Amazon Route 53 Amazon CloudWatch Amazon API Gate.. 더보기

728x90