본문 바로가기

server

(16)
server - 서버 시간 관리 및 도커 환경에서의 시간 관리 서버 시간 관리 및 도커 환경에서의 시간 관리 서버 시간 설정은 웹 개발과 클라우드 서비스 운영에서 중요한 역할을 합니다. 이 글에서는 서버 시간의 개념, 그 중요성, 그리고 Django에서의 시간대 설정 방법, 도커와 같은 컨테이너 환경에서의 시간 관리에 대해 자세히 살펴보겠습니다. 서버 시간 설정의 중요성 웹 애플리케이션과 클라우드 기반 서비스에서 시간 설정은 데이터 처리, 스케줄링 작업, 로그 관리, 사용자 인터페이스(UI) 내 날짜 및 시간 표시 등 여러 측면에서 중요합니다. 올바르게 설정되지 않은 시간대는 데이터 무결성 문제를 일으킬 수 있으며, 글로벌 사용자 기반을 가진 애플리케이션의 경우 사용자 경험에도 부정적인 영향을 미칠 수 있습니다. 따라서, 정확한 시간 설정은 애플리케이션의 신뢰성과 ..
server - Docker 이미지 최적화: .git 디렉토리 제외하기 도커 이미지 최적화: .git 디렉토리 제외하기 도커 이미지를 최적화하는 과정에서 중요한 한 단계는 이미지의 크기를 기능을 해치지 않으면서 줄이는 것입니다. 이러한 실천은 로딩 시간을 줄여 성능을 향상시킬 뿐만 아니라, 불필요한 파일의 노출을 제한함으로써 보안을 강화합니다. 도커 이미지를 불필요하게 크게 만들 수 있는 일반적인 실수 중 하나는 .git 디렉토리를 포함하는 것입니다. 이 디렉토리는 버전 관리에 필수적이지만, 도커 이미지 내에서는 필요하지 않으며 이미지의 크기를 상당히 증가시킬 수 있습니다. 이 글에서는 .dockerignore 파일을 사용하여 도커 이미지에서 .git 디렉토리를 효과적으로 제외하는 방법을 실제 Dockerfile을 통해 설명합니다. 도전: 도커 이미지의 용량 문제 Nginx..
server - 도커를 통해 엘라스틱서치(오픈서치)db를 로컬에 구축하기 처음의 목표 엘라스틱 서치 db를 구축하는 것이 목표였고, 이를 위해 리서치를 진행한 결과 엘라스틱서치보다 aws에서 오픈소스화한 오픈서치를 설치하는 것이 맞다고 판단하였습니다. 이를 위해 진행한 단계를 설명드리겠습니다. 우선 첫번째로는 aws rds에서 elsaticsearch나 opensearch db를 지원해주지 않기 때문에 aws에서 진행하는 Amazon OpenSearch Service로 진행하려 하였으나, 이는 구동에 들어가는 최소한의 서버스펙으로도 월 십몇만원에 달하는 비용이 들것으로 추산되었기 때문에 다른 방법을 찾기로 하였습니다. 두번째로는 aws ec2에서 opensearch를 설치하여 ec2로 db를 사용하려는 시도를 하였으나, 이마저도 현재는 테스트가 목적인데도 불구하고 opense..
server - 상태 유지 서버와 무상태 서버 이해하기: 비교 분석 상태 유지 서버와 무상태 서버 이해하기: 비교 분석 웹 개발의 세계에서 상태 유지 서버와 무상태 서버라는 개념은 기본적입니다. 이 용어들은 서버가 클라이언트 요청을 처리하고 정보를 관리하는 방식을 나타냅니다. 그러나 이들은 정확히 무엇을 의미하며 어떻게 다른 것일까요? 함께 살펴보도록 하겠습니다. 무상태 서버(stateless server)란 무엇인가? 무상태 서버는 각 요청을 독립된 트랜잭션으로 취급하며, 이전 요청과는 관련이 없습니다. 이는 서버가 요청 사이에 클라이언트에 대한 정보를 저장하지 않는다는 것을 의미합니다. 무상태 서버(stateless server)의 장점은 그 간단함과 확장성입니다. 서버가 클라이언트 상태를 추적할 필요가 없으므로, 각 요청 후에 빠르게 자원을 해제할 수 있어 동시에 ..
server - Read Committed와 Repeatable Read의 차이 Read Committed와 Repeatable Read는 SQL 표준에서 정의된 네 가지 트랜잭션 격리 수준 중 두 가지입니다. 이들은 한 트랜잭션이 다른 동시 트랜잭션에 언제 어떻게 변경 사항을 보이게 할지를 결정하며, 이는 데이터 작업의 일관성과 동시성에 중요한 영향을 미칠 수 있습니다. Read Committed Read Committed는 많은 데이터베이스에서 기본적으로 설정된 격리 수준입니다. 이 수준에서는, 현재 트랜잭션이 데이터를 읽는 시점에 다른 트랜잭션이 커밋한 변경 사항을 볼 수 있습니다. 이 격리 수준은 Dirty Read를 방지합니다. 즉, 트랜잭션은 커밋되지 않은 데이터(또는 "Dirty" 데이터)를 읽지 않습니다. 하지만 Non-repeatable Read와 Phantom Re..
server - 장고와 데이터베이스에서의 스키마 이해하기 장고와 데이터베이스에서의 스키마 이해하기 데이터베이스와 웹 개발 분야에서 "스키마"라는 용어는 자주 사용됩니다. 처음에는 복잡해 보일 수 있는 개념이지만, 특히 장고와 같은 프레임워크를 사용할 때 어떻게 데이터가 조직화되고 애플리케이션 내에서 어떻게 표현되는지 이해하는 데 중요합니다. 스키마란 무엇인가? "스키마"는 데이터의 구조, 표현, 그리고 규약을 설명합니다. 데이터베이스의 맥락에서 보면, 이는 테이블 이름, 각 테이블의 필드, 각 필드의 데이터 타입, 그리고 테이블 간의 관계 등을 포함합니다. 예를 들어, 데이터베이스에 User 테이블이 있을 수 있습니다. 이 테이블에는 username, email, password와 같은 필드가 있을 수 있습니다. 각 필드는 문자열, 정수, 날짜 등의 특정 데이..
server - TCP,UDP,소켓,포트에 대해 TCP, 소켓, 그리고 신뢰할 수 있는 통신 디지털 세계는 데이터의 정확하고 신뢰할 수 있는 전송에 크게 의존합니다. 이러한 신뢰성을 보장하는 것은 종종 Transmission Control Protocol (TCP)를 사용하여 이루어집니다. TCP는 패킷이 보내진 순서대로 전송되는 것을 보장하는 연결 지향형 통신 프로토콜입니다. TCP의 신뢰성은 '소켓'이라는 기반 위에 구축되어 있습니다. 네트워킹의 맥락에서 소켓은 컴퓨터 네트워크를 통해 데이터를 보내거나 받는 endpoint 역할을 하는 소프트웨어 구조입니다. IP 주소, 포트 번호, 그리고 프로토콜로 정의됩니다. 이 조합은 활성화된(열린) 네트워크 연결에 대한 고유한 식별자를 생성합니다. 그러나, User Datagram Protocol (UDP)..
server - API Gateway란? API Gateway API Gateway는 애플리케이션과 백엔드 서비스 간의 통신을 관리하는 서버리스 아키텍처 구성 요소입니다. API Gateway는 API 요청을 받아 필요한 인증 및 권한 확인을 수행한 다음, 해당 요청을 적절한 백엔드 서비스로 라우팅합니다. 또한 API 응답을 다시 클라이언트에게 전달합니다. API Gateway의 주요 기능은 다음과 같습니다: 요청 라우팅: API Gateway는 들어오는 요청을 적절한 백엔드 서비스로 라우팅합니다. 이를 통해 여러 서비스를 조합하여 다양한 API를 제공할 수 있습니다. 인증 및 권한 확인: API Gateway는 API 요청이 올바른 인증 정보를 포함하고 있는지 확인하고, 요청자가 해당 API에 대한 권한이 있는지 검증합니다. 요청 및 응답 변..