[웹 서비스 개발 CAMP/주간 리뷰] 새내기 개발자의 웹 서비스 개발 공략기 : 3주차 “블로그를 만들며, 장고(Django)의 M(Model)을 이해하다” by 5기 수강생 장한별님

1/30(토)부터 3/26(토)까지 5기 수업이 진행된 [웹 서비스 개발 CAMP]에서는 파이썬(Python)과 장고(Django) 프레임워크를 활용하며 실무 웹 서비스 공정 과정을 체험할 수 있었습니다.

알스퀘어를 운영하는 ‘부동산다이렉트’에서 소프트웨어 엔지니어로 일하고 계신 장한별 님께서 3주차 리뷰를 작성해 주셨습니다.

2주차의 과제였던 ‘출석부 만들기’의 결과물이 어떻게 나왔는지, 점점 어려워지는 3주차에는 어떻게 블로그를 만들었는지 자세히 들려 드립니다.

[웹 서비스 개발 CAMP] 자세히 보기 >>>


2주차 수업 마지막에 ‘출석부 만들기’ 과제를 받았습니다.

  1. class 없이 출석부 만들기
  2. class로 출석부 만들기

이렇게 두 개를 내주셨습니다.

제가 만든 출석부는 3가지의 기능이 있는데요.

  1. 학생 명단을 출력
  2. 출석 기능
  3. 출석한 학생의 명단을 출력

말 그대로 출석부의 기능을 충실히 구현했습니다. 다만 예외 처리도 안 하고 엉망이긴 하지만… 파이썬으로 만든다는 것에 의미를 두고 만들었습니다.

메뉴에서 2를 입력하면 학생 명단이 출력되고, 출석을 한 학생의 번호를 입력하면 출석부에 입력되는 프로그램입니다.

처음 프로그래밍을 배우면서 이와 비슷한 과제들을 종종 했었는데요, 예전 기억도 떠올라 즐겁게 과제를 진행했습니다. 즐겁게 하다 보니, 어느덧 원래 과제의 요구사항에 조금씩 기능을 추가하는 저를 볼 수 있었습니다.

강사님께서는 2주차까지는 이론이 많았지만, 이제부터는 실습 비중이 조금씩 커지고 조금 더 재미있어질 것이라고 하셨습니다.

지난주에 MTV에 대해 전반적으로 알아봤다면, 오늘은 장고의 ‘M’인 모델(Model)에 관해 좀 더 깊이 배웠습니다. 그리고 간단한 블로그의 데이터 형식을 만들어 보았습니다. 지난 주에는 방명록, 이번 주에는 블로그… 이렇게 점차 프로그램의 기능이 늘어나는 걸 보니 괜스레 뿌듯하네요.

블로그의 기본 데이터 형식들인 post, comment, category, tag를 만들고 데이터의 삽입/삭제/수정 등을 했습니다. 하지만 이런 것들이 실제 눈에 확보여야, 뭔가 했다는 느낌이 들 텐데 말이죠.

그래서 Model을 다루면서 DB의 테이블을 만들고 데이터를 관리하게 되는데, 이를 쉽게 볼 수 있도록 Firefox 확장 기능인 ‘SQLite Manager’를 설치하였습니다. 터미널 화면에서 명령어를 통해 DB를 확인할 수도 있지만, 아직 저는 뼛속까지 개발자는 아닌가 봅니다. 이런 GUI가 있는 프로그램이 나오면 괜히 반가워집니다.

Post에 5개의 게시글을 올린 모습입니다.

하지만 이대로는 제대로 사용하기가 힘드니, 이번에도 장고(Django) Admin의 힘을 빌려 데이터를 좀 더 손쉽게 관리해 보았습니다.

기존에 만든 방명록에 더 추가된 내용은 Category, Tag, Comment 이렇게 3개인데요. Admin 페이지를 보면, 그럭저럭 볼만한 블로그가 된 거 같아요.

기존 방명록에서 몇 개만 더 추가해서, 간단한 것처럼 보이지만 전혀 간단하지 않았습니다. 단순히 모델들을 추가하는 것이 아니라, 모델의 관계들을 잘 생각하면서 만들어야 한다고 하셨어요.

이 ‘관계’라는 것은 3가지가 있는데요. 예를 들면 하나의 게시글(Post)은 하나의 카테고리(Category)만을 가질 수 있습니다. 하지만 카테고리는 여러 개의 게시글에 사용될 수가 있습니다. 이것이 ‘1 대 다’ 연결이 됩니다.

그리고 하나의 게시글(post)에는 여러 개의 태그(Tag)를 달 수 있고, 하나의 태그(Tag)는 여러 게시글에 사용될 수 있습니다. 이런 관계는 ‘다 대 다’ 관계라고 합니다.

이번 실습에서는 직접 다루지는 않았지만, 하나의 게시글에 하나의 댓글만 달 수 있다고 한다면 이는 ‘1 대 1’ 관계가 되겠지요. 이런 복잡한 관계를 생각하고 잘 정리해야, 잘 돌아가도록 만들 수 있을 거 같습니다. 앞으로 더 복잡해질 거라 걱정되긴 하지만, 강사님께서 잘 이끌어 주시리라 믿습니다.

오늘 배운 내용은 모델 다루는 방법, QuerySet, Lookup, Relationship이었습니다.

다음 수업 과제는 오늘 했던 ‘블로그 만들기’를 직접 처음부터 만들어 보기입니다. 강사님께서 강의시간에는 전부 이해된 것처럼 느껴지고 다 아는 것 같지만, 집에 가서 혼자 해봐야 진정 자기 것이 된다고 하셨어요. 저도 이 말에 많이 공감하는데요, 집에서 여러 번 혼자 해야지 진짜 실력이 느는 것 같아요.

점점 내용이 어려워지는 것이 확 느껴졌습니다. 어려운 만큼 더욱 복습을 열심히 해서 다음 수업도 잘 따라가도록 해야겠습니다.

[웹 서비스 개발 CAMP] 자세히 보기 >>>

Recent Posts