Programming

; develop a program

반응형

전체 글 196

[Django] 장고(Django) 서비스 개발 - 로그인과 로그아웃

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 로그인과 로그아웃에 대하여 공부를 해보고자 한다. 로그인과 로그아웃 현재 여러 사람이 사용하는 질문 답변 게시판을 만들고 있다. 하지만 지금까지 회원가입 기능도 로그인, 로그아웃 기능도 없었다. 질문을 올린 사람, 답변을 올린 사람을 구별하기 위해서는 로그인과 로그아웃 기능이 필수이다. 장고의 로그인, 로그아웃을 도와주는 앱은 django.contrib.auth 이다. 이 앱은 장고 프로젝트 생성시 다음처럼 자동으로 추가된다. [projects\mysite\config\settings.py] INSTALLED_APPS = [ (... 생략 ...) 'django.contrib.auth', (... 생략 ...) ] django.contrib...

Framework/Django 2022.12.14

[Django] 장고(Django) 서비스 개발 - 답변 개수 표시

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 답변 개수에 대하여 공부를 해보고자 한다. 답변 개수 표시 질문 목록에 "해당 질문에 달린 답변 개수"를 표시할 수 있는 기능을 추가한다. 코드의 분량은 많지 않지만, "게시판 서비스를 더욱 서비스답게 만들어 주는 기능"이다. 답변 개수는 다음처럼 게시물 제목 바로 오른쪽에 표시하려 한다. [파일명: projects\mysite\templates\pybo\question_list.html] (... 생략 ...) {{ question.subject }} {% if question.answer_set.count > 0 %} {{ question.answer_set.count }} {% endif %} {% if question.answer_se..

Framework/Django 2022.12.13

[Django] 장고(Django) 서비스 개발 - 템플릿 필터

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 템플릿 필터에 대하여 공부를 해보고자 한다. 템플릿 필터 템플릿 필터란 템플릿 태그에서 | 문자 뒤에 사용하는 필터를 말한다. 필터란 일반적인 용어로 어떤 객체나 처리 결과에 추가적으로 명령을 적용하여 해당 명령에 맞게 최종 결과를 변경하는 것을 말한다. 템플릿 변수에 필터를 적용하여 변수의 출력 결과를 변경할 수 있다. 다음 예처럼 default_if_none과 같은 것들을 템플릿 필터라고 한다. {{ form.subject.value|default_if_none:'' }} 게시물 번호 오류 현재 생성한 질문 목록 화면에는 한 가지 오류가 있다. 다음처럼 모든 페이지에서 게시물 번호가 항상 1부터 시작된다는 점이다. 두 번째 페이지로 이동하..

Framework/Django 2022.12.12

[GitHub] 깃허브 블로그 만들기(5)

이전 포스팅에서는 jekyll 블로그를 생성하기 위해 기본적으로 사용되는 ruby, bundler, jekyll 등을 다운로드하고 적용하는 방법을 포스팅했다. 이번에는 username.github.io repository를 활용하여 테마를 적용하는 방법에 대해 공부해보고자 한다. 원하는 테마 다운로드하기 Jekyll은 Hexo나 Hugo보다 훨씬 다양한 테마들이 존재한다. 아래 사이트를 통하여 사용자가 원하는 테마의 demo 페이지를 확인하고 다운로드할 수 있다. http://themes.jekyllrc.org https://jekyll-themes.com/free/ https://jekyllthemes.dev 다 비슷하지만 다른 사이트에는 없는 테마가 있을 수도 있고, 각 페이지마다 설명이나 정리하는 ..

Git & GitHub 2022.12.11

[GitHub] 깃허브 블로그 만들기(4)

이전 포스팅에서 기본적인 홈페이지를 생성하는 방법을 설명했다. 이번에는 생성한 페이지를 Jekyll을 사용하여 꾸미는 방법에 대해서 공부해보고자 한다. Jekyll 설치 Jekyll을 사용하려면 우선 설치를 해야 한다. 터미널에서 아래 명령을 실행한다. gem install bundler gem install jekyll gem install bundler 를 입력하고 설치를 하려고 했지만 에러가 발생했다. $ gem install bundler ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.​ 이는 시스템 rub..

Git & GitHub 2022.12.10

[GitHub] 깃허브 블로그 만들기(3)

Hugo 블로그 생성 후 3일이 지나고 갑자기 업로드나 수정 내용이 반영이 안 되는 이슈가 발생했다. 5일 정도를 삽질했는데 갑자기 먹통이 되니까 멘탈이 와르르.. 제일 마음에 들었던 테마라 포기하고 싶지 않아서 다 삭제하고 다시 처음부터 해봤지만 원상복구가 되지 않았다. (전에는 운이 좋아서 성공한 듯...) 눈물을 머금고 다른 테마들을 살펴보다가 Jekyll 테마 중에 Chalk 테마였다. 하지만 다른 Jekyll 테마들과 다르게 호환되지 않는 기능들이 있어 블로그 구축하는 방법이 살짝 복잡했다. (예쁜 것들은 다 어려운 법..) 돌고 돌아서 내가 추구하는 미니멀리즘과 다크모드 기능이 있는 테마들 중에 Klise 테마를 선택했다. Jekyll 테마는 Hugo 테마와는 다르게 레포지토리도 1개만 생성하..

Git & GitHub 2022.12.09

[GitHub] 깃허브 블로그 만들기(2)

깃허브 블로그의 기본적인 세팅은 마무리했다. 하지만 본격적으로 포스팅을 하기 위해서는 내가 원하는 대로 UI를 설정하고 싶고, 세부적인 요소들도 세팅(?)을 해야 한다. 메인 블로그도 아니고 포스팅할 내용이 제한적이라 많은 기능이 필요하지는 않지만 예쁘게 꾸미고 싶은 욕심이 생긴달까...?? (보기보다는 꾸미는 걸 좋아하는 편..) 전 포스팅에도 언급했지만, 테마별로 다 비슷비슷하지만 뭔가 다르다. 내가 사용하는 테마는 카테고리 설정을 해도 페이지에 뜨지 않고, 포스팅할 폴더를 생성하고 md파일을 생성해도 404 오류가 뜬다. 아마 내가 무언가 캐치하지 못한 부분이 있는 것 같은데.. 이제 블로그 설정에 그만 시간을 쏟고 싶다..ㅠ (뭔가.. 잘못 걸린 거 같은데 이미 늦어버린..) 상단 메뉴바 설정 현..

Git & GitHub 2022.12.08

[GitHub] 깃허브 블로그 만들기(1)

현재 운영하고 있는 블로그는 총 두 가지(?)이다. 메인 블로그이자 기술 블로그인 티스토리 블로그와 아직 포스팅은 하지 않았지만 여유가 생겼을 때 일상 또는 취미 목적으로 생성한 네이버 블로그가 있다. 욕심일 수는 있겠지만 블로그를 처음 시작할 때부터 깃허브 블로그를 만들고 운영해보고 싶다는 생각을 하고 있었다. 하지만 진입 장벽이 높고 어느 정도 개발 지식이 있어야 가능하다 해서.. 나중을 기약하고 있었는데 충동적으로 만들고 싶어 져서 도전하게 되었다. (어느 정도 개발 지식을 쌓고 도전할걸..) 깃허브 블로그는 주로 TIL이나 개인 또는 사이드 프로젝트 정리용으로 사용할 생각이다. 결정 장애가 심한 나에게 첫 번째 고비는 Jekyll, Hexo, Hugo 이 3가지 중 어떤 것을 사용할지 정하는 것이..

Git & GitHub 2022.12.07

[Django] 장고(Django) 서비스 개발 - 페이징(Paging)

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 페이징(Paging)에 대하여 공부를 해보고자 한다. 페이징(Paging) 페이징이란 고정 분할 방식으로 메모리를 분할하여 가상 주소를 물리 주소로 변환하는 방법이다. 단편화를 최소화하기 위해 메인 메모리와 가상 메모리를 같은 크기로 분할해 가지고 와서 할당한다. 가상 메모리는 하나의 분할된 영역을 page(페이지) - 논리 주소 물리 메모리는 하나의 분할된 영역을 Frame(프레임) - 물리 주소(실제의 주소) 페이지와 프레임의 크기는 같기 때문에 단편화(자투리 공간)를 줄여서 메모리를 효율적으로 사용할 수 있다. 즉, 고정 분할 방식(고정된 크기로)으로 메모리를 분할하여 가상 주소를 물리 주소로 변환하는 방법이다. 예를 들어 게시판 등과 ..

Framework/Django 2022.12.06

[Django] 장고(Django) 서비스 개발 - 내비게이션 바(navigation bar)

이번 포스팅에서는 장고를 사용하여 게시판 서비스 개발에 필요한 내비게이션 바(navigation bar)에 대하여 공부를 해보고자 한다. 내비게이션 바 내비게이션 바는 흔히 사용하는 웹 사이트의 메뉴를 의미한다. 화면 위쪽에 고정되어 있는 부트스트랩 컴포넌트이다. 내비게이션 바는 모든 페이지에서 공통적으로 보여야 하므로 base.html 템플릿에 추가해야 한다. [파일명: projects\mysite\templates\base.html] Pybo 로그인 {% block content %} {% endblock %} 항상 pybo:index 페이지로 이동해 주는 'Pybo' 로고를 가장 왼쪽에 배치했고, 오른쪽에는 '로그인' 링크를 추가한다. 이와 같이 수정하고 질문 목록 페이지를 요청하면 화면 상단에 다..

Framework/Django 2022.12.05

[Django] 장고(Django) 기본요소 - 폼(Form)

이번 포스팅에서는 장고의 기본 요소 중 하나인 폼(Form)에 대하여 공부를 해보고자 한다. 폼(Form) Django의 폼은, 사용자에게 정보를 수정하는 화면을 직접 보여줄 때 사용한다. 쉽게 말해서 폼은 페이지 요청 시 전달되는 파라미터들을 쉽게 관리하기 위해 사용하는 클래스이다. 폼은 필수 파라미터의 값이 누락되지 않았는지, 파라미터의 형식은 적절한지 등을 검증할 목적으로 사용한다. 이 외에도 HTML을 자동으로 생성하거나 폼에 연결된 모델을 이용하여 데이터를 저장하는 기능도 있다. 질문 등록 질문을 등록하려면 먼저 "질문 등록하기" 버튼을 만들어야 한다. [파일이름: projects\mysite\templates\pybo\question_list.html] (... 생략 ...) 질문 등록하기 {..

Framework/Django 2022.12.04

[Django] 장고(Django) 기본요소 - 템플릿 상속(extend)

이번 포스팅에서는 장고의 기본 요소 중 하나인 템플릿 상속(extend)에 대하여 공부를 해보고자 한다. 표준 HTML 구조 지금까지 작성한 질문 목록, 질문 상세 템플릿은 표준 HTML 구조가 아니다. 어떤 웹 브라우저를 사용하더라도 웹 페이지가 동일하게 보이고 정상적으로 작동하게 하려면 반드시 웹 표준을 지키는 HTML 문서를 작성해야 한다. [표준 HTML 구조의 예] (... 생략 ...) 표준 HTML 문서의 구조는 위의 예처럼 html, head, body 엘리먼트가 있어야 하며, CSS 파일 링크는 head 엘리먼트 안에 있어야 한다. 또한 head 엘리먼트 안에는 meta, title 엘리먼트 등이 포함되어야 한다. 태그와 엘리먼트 (... 생략 ...) 은 table 태그이고 ~ 처럼 t..

Framework/Django 2022.12.02

[Django] 장고(Django) 기본요소 - 부트스트랩(Bootstrap)

이번 포스팅에서는 장고의 기본 요소 중 하나인 부트스트랩(Bootstrap)에 대하여 공부를 해보고자 한다. 부트스트랩(Bootstrap) 부트스트랩은 디자이너의 도움 없이도 개발자 혼자서 상당히 괜찮은 수준의 웹 페이지를 만들 수 있게 도와주는 프레임워크이다. 트위터(Twitter)를 개발하면서 만들어졌고 현재 지속적으로 관리되고 있는 오픈소스 프로젝트이다. 부트스트랩 특징 웹 페이지를 쉽게 만들 수 있다. 부트스트랩을 다루기 위해서는 HTML과 CSS에 대한 어느 정도의 지식이 필요하다. 반응형 웹 부트스트랩을 이용하면 쉽게 반응형 웹을 만들 수 있다. 많은 자바스크립트 플러그인의 지원 부트스트랩으로 디자인하면서 필요한 자바스크립트 플러그인은 검색하면 대부분 찾을 수 있다. 부트스트랩을 위한 플러그인..

Framework/Django 2022.12.01

[2022] 11월 회고록

11월에는 다양한 이슈가 많았다. 나랑 관련은 없지만 대학 수학 능력시험이 있었고 (저는 '애드고시' 봤는데요..??) '낭만'의 팀 DRX가 롤드컵 우승을 했다. (역체원은 역시 데프트..) 그리고 나는 누구보다 야무지게 놀았다. (역체백(수)는 접니다..) '중요한건 꺾이지 않는 마음' 11일에 부트 캠프를 수료한 후에 오늘까지 약 2-3주 동안 회의감이 들어 공부에 조금 소홀해진 느낌이 들었다. 무언가 내가 만족할 만한 프로젝트들이 없었기 때문인 것 같은데 아직 내가 부족해서 뭐... 쩔 수? 지난 시간을 돌아보면 이렇게까지 열심히 무언가에 빠질 수 있나 싶을 정도로 달려왔던 것 같다. (그동안 얼마나 재미없게 살았으면...) 사람들도 못 만나고 집에 갇혀서 컴퓨터 앞에 짱 박혀있는... 폐관 수련..

Daily/Blog 2022.11.30

[Django] 장고(Django) 기본요소 - 스태틱(static)

이번 포스팅에서는 장고의 기본 요소 중 하나인 스태틱(static)에 대하여 공부를 해보고자 한다. 스태틱(static) 디렉터리 스타일시트 파일은 장고의 스태틱 디렉터리에 저장해야 한다. 스태틱 디렉터리도 템플릿 디렉터리와 마찬가지로 config/settings.py 파일에 등록하여 사용한다. 먼저 config/settings.py 파일을 수정한다. [파일명: projects\mysite\config\settings.py] (... 생략 ...) STATIC_URL = 'static/' STATICFILES_DIRS = [ BASE_DIR / 'static', ] (... 생략 ...) STATICFILES_DIRS이라는 리스트 변수를 추가했다. 그리고 STATICFILES_DIRS에는 BASE_DIR..

Framework/Django 2022.11.29
반응형