본문 바로가기

분류 전체보기62

Django ORM Django를 배울 때 매우 중요한 개념입니다. ORM에 대한 지식이 없으면 Django 프로젝트를 재대로 작업할 수 없습니다. ORM은 객체 관계형 매퍼입니다. 모델 클래스를 생성하면 ORM이 자동으로 데이터베이스 체계를 생성합니다. SQL코드를 앱의 데이터가 저장되는 데이터베이스 테이블로 변환 합니다. 그리고 원할 때 그 데이터를 검색, 업데이트 및 삭제할 수 있습니다. 앱과 데이터베이스 간에 상호 작용할 수 있는 기능을 제공합니다. 모든 앱에는 중요한 데이터를 저장할 데이터베이스가 필요하다는 것을 알고 있기 때문입니다. 쿼리셋이란 | 장고 ORM query는 query 와 set이라는 두 단어의 모음입니다. query는 앱이 데이터베이스와 통신하거나 데이터베이스와 상호 작용할 때를 의미하고 앱이 데..
Python 따옴표 어떻게 쓰면 좋을가? mystringliteral1="this is a string with 'quotes'" mystringliteral2='this is a string with "quotes"' mystringliteral3="""this is a string with "quotes" and more 'quotes'""" mystringliteral4='''this is a string with 'quotes' and more "quotes"''' mystringliteral5='this is a string with \"quotes\"' mystringliteral6='this is a string with \042quotes\042' mystringliteral6='this is a string with \047qu..
Docker로 nodejs 배포하기 1. Nodejs 프로젝트 생성 가장 많이 사용되는 프레임 워크중 하나인 Express를 우선 설치해 보도록 하겠습니다. $ npm install -g express-generator # express 설치 $ express my_node # 원하는 이름으로 설정 가능 $ cd my_node # 프로젝트 경로로 이동 $ npm i # 의존성 모듈 설치 $ npm start # 서버 실행 npm start 까지 완료 하였다면 http://localhost:3000/ 으로 접속이 가능하게 됩니다. 2. 도커 파일 생성 프로젝트 배포시 필요한 도커 파일을 작성해 보도록 하겠습니다. From node:14 # node 14버전을 사용 WORKDIR /usr/app # 컨테이너의 작업 공간을 /use/app을 기..
Django transaction atomic Django 는 기본적으로 데이터베이스 트랜잭션을 관리하는 몇가지 방법을 제공하지만 Django가 auto-commit-mode에서 실행되기 때문에 개발자가 사용하는 각각의 쿼리는 데이터베이스에 직접 커밋됩니다. Transaction 은 데이터베이스 쿼리의 원자 집합입니다. 이 함수는 데이터베이스 명을 인수로 사용하며, 제공되지 않는 경우 기본 데이터베이스를 사용하게 됩니다. Django는 atomic()블록이 활성화 되면 원자성이 손상되기 때문에 커밋 or 롤백을 거부하게 됩니다. Django는 데이터베이스 트랜잭션을 제어하는 하나의 API를 제공하며 atomic을 사용하면 데이터베이스의 원자성이 보장되는 코드를 만들 수 있습니다. auto-commit-mode에서 활성 트랜잭션이 없으면 각 쿼리는 자..
프로젝트 시작시 해야할것들 새롭게 프로젝트를 시작할 경우 하루 빨리 머리속 아이디어를 구현해 릴리즈 해보고 싶은 욕구가 넘치겠지만 구현 하기 전에 래퍼런스 탐색, 프로젝트 범위 산정등 중요한 몇가지 요소를 놓치고 시작하게 된다면 난개발로 이어져 관리가 어려울 수 있다. 그래서 이 글에서는 프로젝트를 개발하기 전에 논의 및 찾아봐야 할 것들에 대해서 작성하며 프로젝트 별로 상황이 다르기 때문에 작성된 내용이 본인이 진행하고 있는 프로젝트와 다를 수 있다. 프로젝트 계획 단계 모든 프로젝트의 시작은 '무'에서 시작되기 때문에 이에 대해서 어떻게 할지 어려워할 필요는 없습니다. 이미 많은 프로젝트들이 시작에서 완료까지 진행되었고 그 사례들은 인터넷 곳곳에 나와있기 때문에 어떻게 프로젝트를 시작해야 하는지 인터넷을 통해서 알 수 있습니다..
[오픈갤러리] Django 서버 정리 작업 ⑨ - 기프트카드 개선작업 보호되어 있는 글 입니다.
주소 API (Python 예시) 웹 개발을 하다 보면 사용자의 주소를 받아보아야 하는 일이 생긴다. 하지만 고객들에게 직접 입력 받다 보면 데이터의 정합성이 깨질 수 있고 잘못된 주소가 입력될 수 있다. 그러므로 행정안전부에서는 개발자들이 사용할 수 있는 주소 API를 공개했다. 직접 주소 API를 개발하지 못하는 이유는 주소는 생길 수도 있고 없어질 수도 있으므로 유지보수 측면에서 어렵다는 점이 있지만 행정안전부에서 DB를 제공하고 있으므로 구현이 불가능하지는 않다. 이 글에서는 행정안전부에서 제공한 도로명 주소 검색 API를 먼저 다루고 이를 어떻게 구현해야 하는지 이어서 작성할 예정이다. API의 서비스 개요 다양한 시스템 환경 적용 가능 개발언어, 플랫폼 제약없음 DB 구축 및 현행화에 대한 부담 없음 실시간 주소 검색 가능 신..
ASCII Code, Unicode, encode, decode (2편) 표현 방식 UTF-8은 위 규칙에 따라서 유니코드 문자를 인코딩 합니다. 1바이트 : ASCII코드 문자가 ASCII 코드인 경우에는 ASCII와 동일하게 1바이트로 표현을 합니다. 2바이트 : 아랍, 히브리, 대부분의 유럽계(조지안 문자 제외) UTF-8에서는 U+0080 ~ U+07FF 사이의 아랍, 히브리, 유럽계 문자들을 2바이트로 표현합니다. 여기서 앞의 바이트 앞에 110을 붙이고, 따라오는 바이트의 앞에는 10을 붙이는 규칙을 적용합니다. 3바이트 : 기본 다국어 평면(BMP) ASCII와 아랍, 히브리, 유럽계 문자들을 제외한 BMP 문자들은 모두 3바이트로 표현합니다. 3바이트로 표현하는 규칙을 2바이트와 유사하게 적용됩니다. 첫 바이트 앞에는 1110을 붙이고, 나머지 두 바이트 앞에는..
ASCII Code, Unicode, encode, decode (1편) 시작하기 전에 컴퓨터의 기본 저장 단위는 바이트(byte)이다. 1바이트(byte)는 8비트(bit)이다. 1byte에는 2의 8승에 해당하는 256개의 고유한 값을 저장할 수 있다. 문자나 기호들의 집합을 컴퓨터에서 저장하거나, 통신 목적으로 사용할 경우에는 부호로 바꾸어야 한다. 이를 **'문자 인코딩(encoding)' 또는 '부호화'**라고 하며 부호화된 문자를 복원하는 것을 '복호화'라고 한다. ASCII Code ASCII(아스키)는 American Standard Code for Information Interchange의 약자로써, ANSI(미국표준협회)에서 만든 표준 코드 체계다. ASCII Code를 만든 이유는, 컴퓨터는 1과 0 이 두 수로 밖에 연산을 할 수 없으므로 문자도 숫자로..