programming(7)
-
Python에서 Datetime과 Timezone 다루기
Datetime은 python에서 날짜와 시간을 표현하는 아주 유용한 패키지입니다. 대다수의 데이터베이스의 시간은 기본적으로 UTC 시간을 기준으로 설정이 되어 있습니다. 국내에서만 서비스를 한다고 하면 데이터베이스의 시간을 한국표준시간(KST)로 설정할 수도 있습니다. 하지만 글로벌 서비스의 경우에는 해당 유저에 따라 적절한 시간대를 보여주어야 할 경우도 생기게 됩니다. 이럴때에는 데이터베이스에 UTC시간으로 저장을 해놓고 데이터를 가공할 때 Timezone을 원하는 지역의 Timezone으로 변경하면 됩니다. 이제 그 방법을 알아보도록 합니다. Timezone 변경하기from datetime import datetime from pytz import timezone # 현재 시간을 UTC로 표시한다 ..
2019.04.10 -
Django Admin 기본 설정하기
Django Admin이란?Django는 Python으로 개발된 풀 스택 웹 프레임워크입니다. 수 많은 웹 프레임워크가 존재하지만 그 중 Django를 사용하는 이유 중 하나는 바로 관리자 페이지 즉, Admin 사이트가 함께 제공이 된다는 것입니다. 어떤 서비스를 운영할 때 관리자 페이지는 반드시 필요합니다. 따라서 실제 서비스의 서버단에는 아래와 같은 항목들이 필요한 것입니다. 데이터베이스 설계 및 구성모바일 클라이언트와 통신을 위한 REST API서비스 운영을 위한 관리자 페이지서비스 규모에 따라 다르지만 위의 모든 일을 소수의 서버 개발자로 처리하기는 어려움이 따릅니다.특히, 규모가 크지 않은 서비스 초기의 스타트업에서는 말할 것도 없지요. Django는 위의 세가지를 좀 더 쉽게 할 수 있도록 ..
2019.03.25 -
지속적 통합(Continuous-Intergration)과 Blue-Green 배포 전략이란?
CI(Continuous-Intergration)가 왜 필요할까? 수 많은 서비스들이 생겼다 사라지는 현대 사회에서 살아남기란 쉽지가 않습니다. 생존하기 위한 기본기 중 하나는 바로 고객들의 피드백을 최대한 빨리 종합하여 서비스에 반영하는 것입니다. 고객들의 피드백을 무시하고 살아남은 서비스는 매우 찾아보기 힘듭니다. 하지만 개발에 있어서 실제 운영중인 서비스에 수정을 재빨리 적용하는 것은 큰 부담이 따릅니다. 예를 들어, 개발 서버 환경에서 코드가 제대로 돌아가는 것을 확인했습니다. 그리고 버전관리 도구(e.g. Git)를 활용하여 운영중인 실서버에 적용을 했습니다. 하지만 갑자기 에러가 발생하고 서버가 죽어버렸습니다. 얼마나 끔찍한 상황인지는 서비스를 운영해 본 개발자만이 알 수 있을거라 생각합니다...
2018.06.01 -
Django REST Framework의 Filter Backends 사용하기
Intro Filtering은 데이터의 목록을 조회하는 GET 요청에 있어 거의 필수적인 요소입니다. 기술적으로 어려운 부분은 없다고 판단되지만 직접 구현한다고 했을 때, 상당히 번거로울 수 있습니다. Django REST Framework(이하 DRF)에서는 ViewSet과 연동하여 쉽고 빠르게 적용할 수 있는 Filter Backends라는 도구를 제공합니다. 이 도구를 활용하면 완성된 ViewSet에 필터링을 적용하는데 채 5분도 걸리지 않습니다. Prerequisite Filtering을 지원해주는 DjangoFilterBackend를 사용하기 위해서는 새로운 패키지를 설치해야 합니다. (venv) $ pip3 install django-filter 이 패키지를 설치하고 DRF에서 Filterin..
2018.05.16 -
2018년 최악의 이슈, Intel 멜트다운 사건을 파헤치다
Key Point인텔 멜트다운 사건은 무엇인가?어떤 피해가 예상되는가?버그에 대한 제조사의 대응 인텔 멜트다운 사건은 무엇인가? 인텔 멜트다운 사건은 2018년 1월 3일 구글의 발표로 알려지게 되었습니다. AMD, 인텔, ARM과 같은 메이저 CPU 아키텍처에서 발견된 2가지 크리티컬한 보안 취약점을 통칭하여 멜트다운 사건으로 알려지게 되었습니다. 특히 인텔 CPU의 경우, 사람들이 사용하고 있는 대부분의 제품이 버그 위험에 노출되어 사상 최악의 위기를 겪고 있는 상황입니다. 또한 버그 보완 패치의 부작용으로 시스템 콜 성능이 심각하게 저하되어 더 논란이 일게 되었습니다. 이 버그는 원래 구글측에서 2017년에 발견하여 필요한 조치를 취한 뒤, 2018년 1월 9일에 공개할 예정이었습니다. 하지만 리눅..
2018.01.17 -
PHP용 AWS S3 Client 사용하기
AWS에서는 Simple Storage Service(이하 S3)라는 유용한 도구를 제공합니다. S3에는 이미지, 파일 뿐만 아니라 데이터베이스 백업, 소스코드 백업 데이터도 저장할 수 있습니다. 대용량 데이터를 저장하는데 유용한 서비스라고 할 수 있습니다. AWS Console로도 관리가 가능하지만 AWS에서는 다양한 언어로 S3의 파일(객체)들을 다룰 수 있는 도구를 제공합니다. 이번에는 AWS S3의 저장소 개념인 Bucket에 객체를 업로드, 가져오기, 삭제하는 기능과 Bucket의 객체 목록을 받아오는 Class를 직접 구현해 봅니다. 또한, S3에서 이미지 객체를 가져오는 경우 어떻게 브라우저 상에서 보여줄 수 있는지 그리고 어떤 점을 주의해야 하는 지도 함께 살펴봅니다. Composer 설치..
2018.01.12