728x90

IT/WEB 50

SPA, SSR, SSG는 무엇인가?

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 몇 직역, 의역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 개요 SPA, SSR, SSG이라는 기술 용어를 작업 중이나 블로 그 글에서 본 적이 있지만, 지금까지 구체적으로 알아보지 않고 지냈다. 일단 Gatsby.js이나 Next.js를 다루고 있으므로, 이러한 개념을 제대로 이해해두면 안 될 것 같다는 생각이 들어 이번 기회에 정리해봤다. SPA SPA의 요지를 간단하게 말하자면, 하나의 페이지에 먼저 호스팅 서버에서 얻은 그 페이지를 기축으로, 표시하고 싶은 것이 있다면 그에 대한 데이터를 매번 API에서 취득하는 아키텍처이다. 이것은 Single Page Application의 약칭으로, 하나의 페이지를 바탕으로 이것 저것 동작..

IT/WEB 2023.01.24

MVC 모델

MVC모델이란? MVC는 Web 프레임워크에서 일반적으로 다뤄지지고 있는 어플리케이션 설정을 정리하기 위한 개념의 하나로 Model, View, Controller로 역할을 분리하여 코딩하는 모델을 일컫는다. 각각의 역할은 다음과 같다. Model : 시스템에서 비즈니스 모델을 담당한다. View : 표시나 입출력을 처리한다. Controller : 유저의 입력을 바탕으로 Model과 View를 제약한다. 그림으로 표시하면 다음과 같다. Model은 본래 한 묶음의 데이터를 처리하는 부품으로, 그 성질 때문에 내부가 복잡한 기능이 포함된 구현, 여러 메소드나 속성에 접근할 수 있게 되어 있으며, 하나가 아닌 여러 개의 View 클래스의 필요한 데이터에 대응하는 것이 일반적이다. 따라서 View가 직접 M..

IT/WEB 2023.01.22

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
728x90