- Redis를 활용한 데이터 캐싱하기
Django 어플리케이션에 Redis 데이터베이스를 연동시켜 데이터를 캐싱하는 방법을 알아본다.
Read More
- [DB] Django 앱에 MySQL 연동하기
Django 어플리케이션에 MySQL 데이터베이스를 연동시키는 방법을 알아보자.
Read More
- 음악 공동 프로듀싱 플랫폼 서비스 - SoundHub
SoundHub 에 대한 설명
Read More
- [SoundHub] HTTP Range Requests
HTTP Range Requests 는 서버에서 전송하는 HTTP 메세지의 일부만을 클라이언트에 전달하는 것을 가능하게 한다. 이런 분할된 요청은 대용량의 미디어 전송이나 파일 다운로드를 처리하는데 유용하며, 미디어의 탐색을 가능하게 한다.
Read More
- [SoundHub] EC2의 Swap Memory 확장하기
프로젝트가 진행되어가면서 배포환경에 설치해주어야할 패키지들도 점점 늘어갔다.
Read More
최근에 오디오 파일 여러개를 Celery를 통해 하나로 합쳐주는 기능을 추가하면서 몇 가지 패키지들을 설치했다.
Celery
와 오디오 파일을 다룰 수 있게 해주는pydub
, 그리고 코덱 패키지인듯한ffmpeg
,libavcodec-ffmpeg-extra56
를 설치했고 Dockerfile에도 추가하였다.
그런데 로컬환경에서 Docker를 실행해서 잘 작동하는 것까지 테스트해보고eb deploy
명령을 실행했는데 아래와 같은 에러메세지가 뜨면서 실패했다.
- Facebook 로그인 구현하기
페이스북을 통한 로그인 기능을 붙여주는 방법에 대해 알아본다.
Read More
페이스북 로그인과 같은 다른 서비스를 통한 사용자 인증은 페이스북과 같은 믿을 수 있는 사이트에 등록된 사용자임을 증명할 수 있으면 그 정보를 그대로 사용하여 우리의 웹 서비스에 등록해서 이용할 수 있도록 해주는 사용자 인증 간소화 기능이다.
- [SoundHub] 팀 프로젝트 프로토타입
이번 팀 프로젝트 때 만들 어플리케이션의 프로토타입을 한 번 구상해보았다.
Read More
- [REST Tutorial] 2. Serialization
이번 튜토리얼에서는 Django REST Framework 사용법에 대해 알아본다. 튜토리얼의 대부분은 Django REST Framework 공식 홈페이지의 튜토리얼을 번역한 것이며, 장고를 어느정도 다룰 줄 아는 사람들을 대상으로 하므로 기본적인 장고에 대한 설명은 생략한다.
Read More
- [REST Tutorial] 1. REST 란?
REST 란?
Read More
- [Deploy] Django 프로젝트 배포하기 - 9. Elastic Beanstalk
지금까지 배운 것들을 보면 다음과 같다.
Read More
- [Deploy] Django 프로젝트 배포하기 - 8. Docker
이번 포스트는 Docker에 대해 알아보고 Docker를 이용하여 서버를 구축하는 방법을 알아본다.
Read More
- [Deploy] Django 프로젝트 배포하기 - 7. Amazon S3
Read MoreAmazon S3
는 아마존 웹 서비스(AWS)에서 제공하는 클라우드 스토리지 서비스이다.
- [Deploy] Django 프로젝트 배포하기 - 6. DNS
이번 포스트에서는 배포한 웹서비스에 도메인 네임으로 접속할 수 있도록 하는 방법을 알아볼 것이다.
Read More
- [Deploy] Django 프로젝트 배포하기 - 5. RDS
이번 포스트에서는 프로젝트가 사용할 데이터베이스를 별개의 서버에 두고 운영하는 방법을 알아본다.
Read More
각자의 기능이 최적으로 운영되도록 하기 위해서는 기능별로 별도의 서버를 두고 관리하는 것이 효율적이다.
아마존에서 제공하는RDS
는 데이터베이스 운영에 최적화된 환경에서 효율적으로 데이터베이스를 관리하기 위해 별도로 운영하는 서버이다.
- [Deploy] Django 프로젝트 배포하기 - 4. Static 파일
이번 포스트에서는
Read Morestatic
파일들을 서버에 업로드하여 적용시키는 방법에 대해 알아본다.
- [Deploy] Django 프로젝트 배포하기 - 3. Nginx
지금까지 구축한 구조는 아래와 같다.
Read More
- [Deploy] Django 프로젝트 배포하기 - 2. WSGI
uWSGI 설치하기
Read More
- [Deploy] Django 프로젝트 배포하기 - 1. AWS
AWS EC2에 장고 프로젝트 올리기
Read More
- [TDD Tutorial] 1-3. 유닛 테스트
지난 챕터의 마지막 기능 테스트의 결과로 다음의 에러 메세지를 받았다.
Read More
- [TDD Tutorial] 1-2. 기능 테스트의 확장
기능 테스트는 사용자의 시점에서 사람이 이해하기 쉬운
Read More유저 스토리 (User story)
형태로 작성한다. 테스트 코드가 검사해야할 각 상황들을 주석으로 달아서 실제 앱이 스토리대로 작동하는지를 테스트 할 수 있도록 기능 테스트를 구성한다. 프로그래머가 아닌 사람들이 보아도 이해할 수 있도록 스토리를 작성해야한다.
- [TDD Tutorial] 1-1. 기능 테스트를 통해 장고 시작하기
Test Driven Development
테스트 주도 개발(Test-driven development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 우선 개발자는 바라는 향상 또는 새로운 함수를 정의하는 (초기적 결함을 점검하는) 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 케이스를 통과하기 위한 최소한의 양의 코드를 생성한다. 그리고 마지막으로 그 새 코드를 표준에 맞도록 리팩토링한다. 이 기법을 개발했거나 ‘재발견’ 한 것으로 인정되는 Kent Beck은 2003년에 TDD가 단순한 설계를 장려하고 자신감을 불어넣어준다고 말하였다.
출처: 위키피디아
- [TDD Tutorial] 사전 준비
TDD Tutorial 포스트에서는 테스트 주도 개발 방법론을 간단한 장고 어플리케이션을 하나 만들어보면서 배워 볼 것이다. 주로
Read MoreTest-Driven Development with Python
의 내용을 요약 번역하면서 내가 이해한 대로 부가설명을 조금씩 덧붙이는 식으로 작성할 것이다. 내용 중 장고에 대한 설명은 대부분 생략하였다. 장고에 대한 튜토리얼은 따로 포스트를 작성해두었으니 장고에 대해 잘 모른다면 장고 튜토리얼을 먼저 읽어보고 이번 튜토리얼을 진행하는 것을 권장한다.
- [Form] 폼 데이터의 검증
폼 객체를 사용하기 전에 가장 먼저 해야할 일은 폼으로 전달된 데이터가 유효한 데이터인지 검증하는 작업이다.
Read More
여기서 폼 데이터가 유효하다는 것은 폼의 형식에 맞는 데이터가 전달되었음을 의미한다.
- [Form] 폼
폼은 웹 상에서 사용자들이 서버로 데이터를 전송할 수 있도록 짜여진 양식이다. 사용자가 양식에 맞게 데이터를 작성하면 그것을 폼을 통해 서버에 전송하고 서버에서 데이터를 처리하여 필요한 결과물을 돌려주게 된다.
Read More
폼은 HTML 태그인<form>
에 다양한 폼 요소를 포함시켜 구성하게 된다. HTML 폼에 대한 설명은 여기를 참조하기 바란다.
- [Query] 필드 룩업 (내용 추가 필요)
Read More필드 룩업 (Field lookups)
은 SQL의WHERE
절에 해당하는 부분이다.
쿼리셋 메서드인filter()
,exclude()
,get()
에 키워드 인자의 형태로 전달된다.
필드 룩업의 기본적인 형태는 아래와 같다.
- [Query] 쿼리셋의 평가
쿼리셋은 실제로 데이터베이스에 접촉하지 않고도 생성, 필터, 분리, 대입될 수 있다.
Read More
쿼리셋이 평가 (evaluate) 되기 전까지는 데이터베이스 활동이 일어나지 않는다.
- [Query] 쿼리 보내기
데이터 모델을 만들어주고 나면,
Read MoreDjango
는 데이터베이스에 데이터 객체를 입력, 삭제, 또는 데이터베이스로부터 데이터 객체를 추출하도록 해주는API
를 자동적으로 생성해준다.
이번 포스트에서는 아래의 예제 모델을 사용해 데이터베이스API
의 사용법을 알아본다.
- [Model] 모델 상속
related_name
Read More
- [Model] 관계
관계형 데이터베이스 시스템의 핵심은 테이블 간의 관계 설정이라고 할 수 있다.
Read MoreDjango
는 데이터베이스 관계의 가장 흔한 유형인
- [Model] 필드
필드란?
Read More
- [SQL] JOIN, UNION
예제 테이블
Read More
- [SQL] DELETE
예제 테이블
Read More
- [SQL] UPDATE
예제 테이블
Read More
- [SQL] INSERT INTO
예제 테이블
Read More
- [SQL] WHERE
예제 테이블
Read More
- [SQL] SELECT
예제 테이블
Read More
- [SQL] SQL 이란?
Structured Query Language, SQL
SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다. 출처: 위키피디아
- [Django Tutorial] Blog 만들기 - 15. 마무리
블로그에 추가적으로 잡다한 기능을 구현해주고
Read MoreCSS
도 조금 손봐주었다.
추가 사항은 아래와 같다.
- [Django Tutorial] Blog 만들기 - 14. 기능 추가하기
이번에는 블로그에 여러 가지 기능을 추가해보자. 아래에 있는 기능들을 추가해 볼 것이다.
Read More
- [Django Tutorial] Blog 만들기 - 13. 템플릿 상속
지난 포스트에서
post_detail
이라는 템플릿을 새로 만들어 주었다. 그런데 이 템플릿은post_list
템플릿과 많은 부분에서 겹친다. 지금이야 템플릿이post_list
와post_detail
두 개 밖에 없지만, 만약 많은 수의 템플릿이 있고 모두 공통적으로 가지고 있는 부분이 있다고 할 때, 공통적인 그 부분을 수정할 일이 생기면 모든 템플릿을 하나 하나 수정해주어야하는 대참사가 생길 수 있다. 진정한 프로그래머는 같은 코드를 반복하지 않는다고 하던데 우리도 반복되는 부분을 한 번 줄여보자.
Read More
- [Django Tutorial] Blog 만들기 - 12. 자세히 보기 페이지
지금까지 블로그의 메인화면에 글 목록을 나타내도록 했다. 이제 글 하나를 클릭하여 글의 전체 내용을 확인할 수 있는
Read More자세히 보기
페이지를 만들어보자.
- [Django Tutorial] Blog 만들기 - 11. 스테틱 파일
지난 포스트에서 블로그 메인 화면 템플릿을 만들었었다. 이제 이 템플릿을
Read MoreCSS
로 예쁘게 꾸며보도록 하자.
- [Django Tutorial] Blog 만들기 - 10. 템플릿 언어
이제
Read MoreORM
을 통해 데이터베이스의 데이터를 다루는 방법까지 알았으니 이렇게 불러온 데이터를 템플릿에 적용시켜주면 동적으로 템플릿을 생성할 수 있다. 그럼 데이터를 템플릿에 적용하는 방법에 대해 알아보자.
- [Django Tutorial] Blog 만들기 - 9. ORM
동적으로 템플릿을 생성하기 위해서는 먼저
Read MoreORM
에 대해 알아야한다.
- [Django Tutorial] Blog 만들기 - 8. 템플릿
이제 우리는 원하는 내용을 원하는 주소에 표시하는 방법을 알았다.
Read More
그럼 이제 원하는 내용을 그럴싸하게 꾸며서 보여주기만 하면 된다.
이제 우리의 블로그가 사용자에게 어떻게 보여질지를 한 번 구성해보자. 페이지가 좀 더 블로그 답게 변할 것이다.
- [Django Tutorial] Blog 만들기 - 7. 뷰
지금까지
Read MorePost
모델을 만들고 관리자 페이지를 통해서Post
데이터들을 생성해보았다.
하지만 아직 글의 작성이 관리자 페이지를 통해서만 이루어지도록 되어있다.
매번 글을 작성하러 관리자 페이지를 들락날락할 수는 없으니, 사용자의 요청에 따라 적절한 결과값을 돌려줄 수 있도록 구성해보자.
- [Django Tutorial] Blog 만들기 - 6. 관리자 페이지
지난 포스트에서 블로그를 위한 데이터베이스를 설정해주었다. 설정된 데이터베이스에 접근하여 데이터를 생성하거나 삭제하기 위해서는
Read More관리자
기능이 필요하다.Django
는 데이터베이스 관리를 위한관리자 페이지
를 기본적으로 제공하고 있으므로, 따로 만들어주거나 직접 데이터베이스의 데이터를 수정할 필요가 없다.
- [Django Tutorial] Blog 만들기 - 5. 데이터베이스
웹사이트의 데이터들은
Read More데이터베이스
에 저장된다.
데이터베이스에 저장된 데이터를 가져와서 사용자에게 보여주기도 하고, 사용자가 입력한 데이터를 데이터베이스에 저장하기도 한다.
우리가 만들Blog
에 사용할 데이터베이스를 설정해보자.
- [Django Tutorial] Blog 만들기 - 4. 모델 생성
앱을 시작하였으니 이제 앱이 원하는 기능을 하도록 그 내부를 만들어 주어야한다.
Read MoreDjango
의 앱은 크게모델 (Model)
,템플릿 (Template)
,뷰 (View)
로 구성이 되어 있으며, 앱이 이렇게 구성되도록 하는 개발 패턴을MTV
패턴이라고 한다. 이에 대해 좀 더 알아보자.
- [Django Tutorial] Blog 만들기 - 3. 앱
앱(Application)
Read More
- [Django Tutorial] Blog 만들기 - 2. 프로젝트 시작
이제 본격적으로
Read MoreDjango
를 시작해보자.
- [Django Tutorial] Blog 만들기 - 1. 환경설정
Python으로 만들어진 웹 프레임워크인
Django
를 가지고 간단한 블로그를 하나 만들어보자.
이 튜토리얼은 아래의 환경에서 작성되었다.Ubuntu 16.04 LTS Pycharm Community Edition 2017.2.3
Read More