전체 글
TIL | 2.20.월 [SQL / ORM (1)]
SQL 과 ORM SQL 이란? 구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과 데이터 값 간의 다양한 관계를 나타냅니다. SQL 문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색 및 검색할 수 있습니다. 데이터베이스 성능을 유지 관리하고 최적화하는 데 SQL을 사용할 수도 있습니다. ORM 이란? Object Relational Mapping 즉, 객체 관계 매핑은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법
TIL | 2.17.금 [웹 서버와 WAS]
웹 서버와 WAS 웹 서버 란? 웹 서버란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다. WAS(Web Application Server) 란? 웹 서버 + 웹 컨테이너 구성 WAS란 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버이다. 즉, HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어이다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다. 결과적..
TIL | 2.16.목 [Docker]
[Docker 복습 링크] https://wonprogrammer.tistory.com/98 TIL | 11.18.금 [Docker] 도커(Docker) 도커는 Immutable Infrastructure Paradigm이라는 개념을 기반으로 하기 때문에, 서비스 환경(서비스 인프라)부분을 이미지화(실행파일화)하여 배포한 뒤 가급적 변경하지 않고 사용합니다. Doc wonprogrammer.tistory.com Docker 란? 도커(Docker)는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스프로젝트이다. 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 ..
TIL | 2.15.수 [WSGI / ASGI]
WSGI와 ASGI CGI WSGI와 ASGI에 대해 알아가기 전, CGI에 대해 먼저 알아보자면 CGI란 Common Gateway Interface 이다. 우리가 서버와 사용자간의 정보를 주고 받을때 사용자의 요청을 서버는 보여주면 된다. 다만, 동적인 요청이 들어온다면 그 요청에 맞는 결과값을 리턴 해줘야 한다. (로그인을 예를들어보면 로그인 정보가 맞는 회원에 대한 정보가 각각의 사용자에 맞게 보여줘야 한다.) 하지만 이럴때 만약, 서버마다 애플리케이션 언어마다 다른 형태를 가진다면 매우 번거로운 일이기 때문에, 가능한 공통의 표준 인터페이스를 제공해주어야하는데 이 인터페이스를 CGI라고 한다. 이런 CGI의 큰 단점은, 요청이 들어올 때마다 애플리케이션 프로세스를 다시 실행해야 한다는 점이다. ..
TIL | 2.14.화 [Django ↔️ PostgreSQL]
Django와 PostgreSQL PostgreSQL 란? PostgreSQL이란 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템(ORDBMS)중 하나 입니다. 또한, 오픈소스 DBMS로 무료로 쉽게 사용할 수 있고, 높은 신뢰성과 안정성을 가지고 있다. 데이터베이스 서버로서 주요 기능은 데이터를 안전하게 저장하고 다른 응용 소프트웨어로부터의 요청에 응답할 때 데이터를 반환한다. 그리고 소규모의 단일 머신 애플리케이션에서부터 수 많은 동시 접속 사용자가 있는 대형의 인터넷 애플리케이션에 이르기까지 여러 부하를 관리 할 수 있으며 macOS서버는 기본이 PostgreSQL이다. PostgreSQL 주요 기능 SQL(관계형) 및 JSON(비 관계형)쿼리 지원 사용자 정의 데이터 유..
TIL | 2.13.월 [Open API]
Open API - Open API 사용 방법 (in Python) Python에서 REST API 데이터를 가져와야 할 경우가 있다. 이때, Request Package를 사용하여 데이터를 쉽게 가져올 수 있다. - Open API 메커니즘 1. request 패키지를 설치해준다. (받을 데이터가 JSON 형식일 경우, json package도 함께 설치한다.) pip install requests pip install json 1-1. 이후 설치한 패키지를 import 해준다. import requests import json 2. GET Data REST-GET 방식으로 불러올 경우 requests.get 을 사용하면 결과값을 변수로 받을 수 있다. # 1. URL로만 DATA를 불러오는 경우 im..
TIL | 2.10.금 [CI/CD]
CI/CD CI 란? "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합 할 수 있고, 또한 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제가 있어도 이 방법으로 해결할 수 있습니다. CD 란? "CD"는 지속적인 서비스 제공(Continuous Delivery) 및/또는 지속적인 배포(Continuous Deployment)를 의미한다. 지속적인 제공이란 : 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리(예: GitHub 또는 컨테이너 레지스..
TIL | 2.9.목 [Django User Model vs DRF Custom User Model]
Django User - Django User Model 란? Django에서는 기본적으로 제공하는 User 모델이다. 이 User 모델은 django.contrib.auth.models.User에 다음과 같이 정의되어 있다. class User(AbstractUser): class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL' 표준 User 모델은 AbstractUser를 상속받고 있는 것을 알 수 있다. 또한 표준 User 모델에서는 다음과 같은 칼럼이 정의되어 있다. 👉 하지만 Django User Model은 username으로만 로그인이 가능하며 이외의 필드들이 필요할 때 자유롭게 쓰지 못하는 단점들이 있다. 이 단점을 보완하고 실제 서비스에서..
TIL | 2.8.수 [TDD | Test Code]
TDD | Test Code - TDD 란? TDD(Test Driven Development) 즉, 테스트 주도 개발이다. 테스트가 개발을 이끌어가는 방법론이다. 테스트가 개발보다 선행하게 된다. 개발해야 하는 사항을 미리 정의하고, 각 기능의 입/출력을 미리 정한 뒤, 기능을 구현하는 프로세스는 아주 일반적인 개발 과정이다. 이때 TDD 방식으로 개발하게 된다면, 테스트 코드를 먼저 작성함으로써 개발사항과 각 기능의 입/출력 요구사항을 코드로 문서화한 후 기능을 개발하게 된다. 이를 통해, 실제 코드에 대해 기대되는 바를 보다 명확하게 정의함으로써 불필요한 설계를 피할 수 있고, 정확한 요구 사항에 집중할 수 있다. 테스트를 먼저 작성한다. 테스트할 대상은 아직 구현되지 않았으므로, 테스트는 실패한다..