728x90

IT/WEB 48

Node.js를 사용하는 이유

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 기초 : JavaScript의 특징 먼저 JavaScript와 다른 프로그래밍 언어의 차이에 대해서 알아 둘 필요가 있으므로 해설하도록 하겠다. JavaScript는 Chrome이나 Firefox와 같은 "브라우저" 위에서 동작하는 프로그래밍 언어이다. 그에 반해 Python이나 Ruby와 같은 일반적인 프로그래밍 언어는 보통 "컴퓨터" 위에서 움직인다. 이러한 차이가 발생하는 이유는 OS의 기능에 액세스할 수 있는가 없는가이다. 여기서 "OS의 기능"이란 예를 들어 파일의 읽고 쓰기나, 네트워크 통신 등의 기능을 의미한다. 컴퓨터 위에서 동작하는 어플리케이션(Python이나 ..

IT/WEB 2022.10.06

REST API란?

REST API이란? REpresentational State Transfer의 약어로, 웹 시스템을 외부에서 이용하기 위한 프로그램을 호출하는 규약(API) 종류의 하나이다. REST이라고 불리는 설계 원칙에 따라 책정된 것이다. REST는 적용 범위가 넓은 추상적 모델이지만, 일반적으로 REST의 원칙을 Web API에 적용한 것을 RESTful API라고 부르고 있다. RESTful API에서는 URL/URI로 모든 리소스를 고유하게 식별하여, 섹션 관리나 상태 관리 등을 하지 않는다. 동일한 URL에 대해서는 항상 동일한 결과가 반환되는 것이 기대된다. 또한, 리소스의 조작은 HTTP 메소드에 따라 지정(취득은 GET메소드, 쓰기는 POST 메소드)되며, 결과는 XML이나 HTML, JSON형식 ..

IT/WEB 2022.10.04

[Django] Django에서 static file(정적파일) 다루기

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용이 있으면 지적 부탁드립니다. Django의 튜토리얼에서 잘 이해가 되지 않았던 settings.py에 기재하는 STATICFILES나 STATIC_ROOT, STATIC_URL에 대해서 가능한 알기 쉽게 설명해둔 외국 블로그 글이 있었기에 이번 포스트를 통해서 정리하고자한다. STATICFIELS_DIRS 각각의 어플리케이션이 나니, 톱 페이지에 표시하는 이미지등을 보관하는 임의의 장소를 Django에서 찾을 수 있도록 지정하는 것이 STATICFILES_DIRS이다(여기서는 가상으로 프로젝트 디렉토리 바로 아래에 "assets"이라는 폴더를 작성했다). STATICFILES_DIRS = [ os.path...

IT/WEB 2022.07.21

[Django] 일대다 관계 구축하기:ForeignKey (카테고리, 댓글, 대댓글 등)

※일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 직역, 의역이 있을 수 있으며 틀린 내용은 지적 부탁드립니다. 일대다 관계를 구축할 수 있으면, 토픽에 카테고리를 추가하거나 토픽에 댓글을 작성할 수 있게 된다. 이번 포스트에서는 이 방법에 대해 일대다 원리에서 부터 Django의 models.py 작성법까지 설명한다. 일대다 구조 일대다를 한 마디로 설명하자면 프로 야구 팀과 팀에 소속되어 있는 관계라고 할 수 있다. 프로 야구 침은 여러 명을 선수를 보유하고 있으며, 선수의 경우 어떠한 한 개의 팀에 소속되어 있다. 이러한 경우 야구 구단쪽은 일, 선수쪽은 다가 된다. DB 테이블로 표시하자면 다음과 같다. 일대다 관계의 장점 직접 소속처를 문자열로 적는 것보다 일대다관계로 만드는 쪽이 장점이 ..

IT/WEB 2022.07.11

[Django] 페이지네이션(페이징)

※ 일본의 한 블로그 글을 번역한 포스트입니다. 직역 및 오역, 의역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 대량의 데이터 목록을 표시할 경우 여러 개의 페이지로 나눠서 표시하게 된다. 이 때 Django의 경우, 페이지네이션(페이징)이라는 기술이 사용된다. 예를 들어, Web 어플리케이션에서 자사의 유저 목록을 표시하는 경우, 유저가 10명 정도라면 문제없다. 그러나 몇 백명인 경우, 페이지를 나눠서 목록을 표시하는 것이 사용하기나 읽기에 편리하다. 또한, 블로그 포스트의 수가 100개 이상인 경우 1개의 페이지에 포스트 모두를 표시하는 경우는 없다. Django의 페이지를 여러 개로 나누는 페이지 네이션(페이징)을 사용하여 한 화면에 표시하는 데이터 수를 제한해보자. 설명할 때 사..

IT/WEB 2022.07.09

[Django] Form의 cleaned_data 그리고 is_valid()시 호출되는 메소드의 순서

※ 일본의 블로그 글을 번역한 포스트입니다. 오역 및 직역, 의역이 있을 수 있으며 틀린 내용이 있으면 지적해주시면 감사하겠습니다. Django의 Form 관련 코드를 보면 종종 cleaned_data가 기재되어 있는 경우가 있다. Django의 Form에서 사용하는 cleaned_data에 대해서 이것이 어떤 것인가 그리고 어떠할 때 사용하는가에 대해서 해설하도록 하겠다. 그리고 추가로 is_valid() 일 때 호출되는 메소드의 순서 등에서도 간단하게 알아보도록 하겠다. cleaned_data이란? cleaned_data는 form 안에서 validate된 후에, 즉 검증된 후의 적당한 데이터가 들어 있는 변수가 cleand_data이다. 즉 Form의 처리 흐름으로 설명하자면 다음과 같다. 1. f..

IT/WEB 2022.07.03

[Django] 인증 유저(super, staff, active)의 권한에 따른 액세스 제한, 표시제한을 설정하기

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. Web 어플리테이션을 만들 때, 유저의 권한에 따라 액세스 할 수 있는 페이지나 페이지 안에서 표시되는 항목을 제한하고 싶은 경우가 있다. 예를 들면, 관리자만 접근할 수 있는 페이지의 생성이나 일반 회원과 프리미엄 회원의 화면에 표시되는 항목 차이등 말이다. 이러한 액세스 제어를 Django에서 만든 Web 어플리케이션에서 구현하기 위해서는 기본적으로 제공되는 "인증 기능"을 사용하면 간단하게 가능하다. 이번 포스트에서는 Django의 인증 기능을 쓴, 유저별 액세스 제한을 구현하는 방법에 대해 알아보도록 하겠다. 참고로 Django의 인증기능에 대해서는 Django 공식 페..

IT/WEB 2022.07.03

[Django] 클래스 베이스 뷰(Class Based View), 함수 베이스 뷰(Function Based View)

※ 일본의 포스트를 번역한 글 입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. Django 튜토리얼에는 함수 베이스 뷰로 작성되어 있지만 실제로 사용하는 것은 클래스 베이스 뷰인 경우가 대부분이다. 이 포스트에서는 이 두 가지에 대해 간단히 알아보고 왜 클래스 베이스 뷰가 주로 사용되는지에 대해 설명하도록 하겠다. 클래스 베이스 뷰와 함수 베이스 뷰 클래스 베이스 뷰는 말 그대로 view.py에 Class로 처리를 기재하는 것을 의미하며, 함수 베이스 뷰는 함수는 처리를 함수로 기재하는 것을 뜻한다. 클래스 베이스 뷰는 Django에 이미 정의되어 있는 django.generic.view에서 View 클래스를 상속받거나 믹스인하여 작성하는 것이 특징이다. View..

IT/WEB 2022.07.01

[Django] User모델 커스터마이즈하기 (커스텀 User 모델)

※일본의 한 블로그 글을 번역한 포스트입니다. 의역 및 직역, 오역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. Django에서는 표준 User 모델이 정의되어 있다. 그러나 대부분은 만드는 Web 어플리케이션에 맞게 User 모델을 커스터마이즈할 필요가 있다. User 모델을 커스터마이즈하는 방법은 몇 가지 있으나 여기서는 가장 자유도가 높은 AbstractBaseUser을 상속받는 방법에 대해서 구체적으로 설명하도록 하겠다. 주의점 : 커스텀 User 모델을 이용할 경우 Django의 프로젝트 생성 후 바로 설정할 필요가 있다. 이미 migrate한 후에 User을 변경하려고하는 것은 매우 어렵다. 표준(디폴트) User모델 앞서 말했듯 Django에서는 기본적으로 User 모델이 존재..

IT/WEB 2022.06.29

[Django] Django 개발을 시작할 때, 최적의 프로젝트 디렉토리 구성

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 밒 직역, 의역이 있일 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. Django 개발에 대해서 알아보던중, Django로 개발할 때 의식하면 좋은 최적의 구성이 있다는 사실을 알게 됐다. 이번 포스팅에서는 이와 관련된 얘기를 하고자 한다. 목차는 다음과 같다. 설정 파일을 config등 알기 쉬운 명칭으로 한다. static 디렉토리를 생성한다. 시크릿 변수나 환경 의존 변수는 .env 파일에 쓴다. 단계별로 설정 파일을 전환할 수 있도록 한다. 어플리케이션 마다 urls.py를 배치한다. 베이스 템플릿을 사용한다. 이 목차를 모두 거치면 다음과 같이 디렉토리 구성이 변경된다(첫 번째가 변경'전', 두 번째가 변경'후'이다). 참고로 프로젝트명..

IT/WEB 2022.06.17
728x90