본문 바로가기

Computer Science34

SQL 공유 및 재사용 이전 글 - SQL이란? 및 SQL 처리 과정 먼저 해당 포스팅은 오라클(Oracle) 데이터 베이스를 기준으로 작었습니다.^^ 하지만 다른 데이터 베이스(mysql, postgresql, ms...) 또한 아래와 비슷한 구성과 원칙으로 시스템이 설계되어 있으며 각 요소들의 명칭은 다를 수 있습니다.(예를 들어 SGA 같은거?) 라이브러리 캐시 in Shared Pool 오라클 데이터 베이스 시스템은 SGA(System Global Area)라는 매우 중요한 메모리 구성 요소를 포함한다.SGA - 데이터베이스 인스턴스가 작동하는 동안 사용하는 모든  데이터를 포함하고 있다. SGA 메모리 영역은 다음과 같은 요소로 구분되어 있다.1. Database Buffer Cache2. Shared Pool(Lib.. 2024. 5. 27.
SQL이란? 및 SQL 처리 과정 SQL = 구조적, 집합적, 선언적 언어이다.굉장히 어려운 표현이다. 있어보이는 척 하는 말 같다. 누군가 저렇게 설명하면서  "이게 SQL이야. 끝!" 한다면 다시는 그 사람한테 질문 할 일이 없을 것이다.ㅋㅋ 그래서 저 말을 좀 더 쉽게 풀어서 이야기 해 보겠다.SQL이 없는 세상을 상상 해 보라. 즉 "SELECT"문이 없는데 디스크에 저장되어 있는 특정 데이터를 메모리로 가져와서 지금 코딩중인 변수에 저장해야 되는 상황이라고 가정해 보자. 디스크에 접근하기 위한 특정 객체나 메서드가 필요할 것이며 거기서 원하는 정보를 적절한 방법으로 탐색 해 메모리로 가지고 오는 로직을 코딩해야 된다.(재앙이다...) 백엔드 서비스 로직 짜기도 바빠 죽겠는데 지금 디스크에서 메모리로 데이터 가지고 오는 로직까지 .. 2024. 5. 24.
django 배포 시 runserver를 사용하지 않는 이유 보통 django로 웹 애플리케이션 서버(WAS)를 구현할 때 아래와 같은 명령어를 사용하여 서버를 실행 시킨다.// 개발 서버 실행python manage.py runserver 하지만, 사용자들에게 실제로 서비스를 제공 할 서버를 배포할 경우 위 명령어를 통해 django 서버를 실행시키지 않는다. 왜 그런걸까? 왜 아래와 같은 복잡한 짓을 하는걸까?// 1. nginx 세팅// 2. gunicorn을 통해 실행되는 django 서버gunicorn --bind 0.0.0.0:5000 config.wsgi:application//--bind 옵션으로 서버가 호스팅될 포트 설정, 마지막 인자로 gunicorn에 django의 wsgi 객체를 넘김// 3. nginx 실행 이유는 간단하다. runserve.. 2024. 5. 14.
django web AWS EB에서 lightsail로 이전 이번 기회에 회사에서 트래픽이 낮고 앞으로 높아질 일이 없는 서비스들의 시스템 비용을 줄이기로 했다.회사 서비스의 대부분은 aws를 통해 호스팅 되고 있다. 내가 맡은 일은 AWS elastic beanstalk에 배포 되어있는 서비스를 lightsail로 이전하는 것이다.eb와 lightsail의 비용 차이가 트래픽이 낮은 경우에는 거의 10배 정도 난다.(omg...😱) 금방 끝나겠지 했는데... 역시나 내 예상과는 다른 그 이상의 허들이 항상 있기 마련이다..^^1. vpc's private subnet 내부 RDS를 통해 현재 서비스의 DB가 구동되고 있는 상황에 lightsail의 server instance와 VPC 내부에 있는 RDS가 통신 할 방법이 없었다. 결국 lightsail의 값싼.. 2024. 5. 14.