[파이썬으로 시작하는 웹 프로그래밍 CAMP/주간 리뷰] 소프트웨어 QA, 웹 프로그래밍에 도전하다 : 3주차 “나만의 블로그를 만들기 위해, 게시물의 Model을 만들다” by 1기 수강생 하헌우님

소프트웨어 QA로 일하고 계신 하헌우 님의 [파이썬으로 시작하는 웹 프로그래밍 CAMP] 3주차 리뷰를 소개합니다.

나만의 블로그를 만들기 위해, 게시물의 모델을 만드시면서 데이터 간의 관계인 ‘모델 관계’에 대해 배우셨습니다. 처음 접하는 이에게는 어려울 수 있으나, QA로서의 경험을 통해 보다 쉽게 이해하셨다고 하는데요, PK와 FK는 무엇이었을까요?

[파이썬으로 시작하는 웹 프로그래밍 CAMP] 자세히 보기 >>>


DAY 5 : 2/24(수) “Blog 만들기 (기획)”

블로그는 글 전체를 최근 순으로 나열하는 게 가장 일반화된 모습인데요. 글 작성 및 글 보기 페이지를 만들기 전에 기획하는 기준에 대해 설명을 듣고 직접 만들어 보는 시간을 가졌습니다. 내가 만든 필요 항목 구성 및 페이지 진입 후의 글 작성까지의 시나리오와 접근 경로, 레이아웃 등입니다.

아무런 기획 없이 바로 백지에서 코딩을 시작하는 것보다, 얼마나 디테일하게 잘 기획을 하느냐에 따라 코딩을 할 때 훨씬 수월해진다고 합니다. (기획의 중요성을 알 수 있습니다.)

이런 식으로 글 본문, 댓글 영역, 목록 화면을 구성하고 기획하는 방법에 대해서 배웠습니다.

각 페이지의 URL 구성도 페이지 레이아웃 못지않게 중요합니다. 현재 페이지에서 다른 페이지로 이동, 혹은 현재 페이지에 다른 화면을 뿌려줘야 할 때 등 고려사항이 많기 때문에 이 또한 열심히 고민해야 합니다.

URL을 구성할 때, 내가 구성한 정보(항목) 기준으로 호출할 수 있습니다. 예를 들어 내가 구성한 항목 중에 ‘글 분류’라는 항목이 있으면 글 분류에는 ‘맛집’, ’여행’, ‘운동’ 등의 항목만 모아서 페이지에 노출할 수도 있기 때문에 URL 패턴 구성이 정말정말 중요하다는 것입니다.

오늘 수업은 글 목록을 표현하는 html 화면을 구성만 짜보면서 마무리되었습니다.

짜잔! 약간의 CSS style도 적용해 보았습니다.


DAY 6 : 2/27(수) “Blog 게시물의 Model 만들기”

나만의 블로그를 만들기 위해 게시물의 모델을 만드는 시간입니다. 웹의 개념을 정리하면 구조가 이런 식으로 되어 있습니다.

웹으로부터 요청(HTTP Request)을 받으면, 요청받은 URL을 확인하고 그와 연결되어 있는 뷰 함수를 실행합니다. 뷰는 모델과 연결되어 데이터에 접근하고 이를 받아 사용자에게 보여지는 부분이 있는 Template에 데이터를 전달하여, 요청에 대한 응답(HTTP Response)을 하는 구조로 이루어집니다.

지난 시간에 Template에 들어갈 HTML 문서들의 샘플을 만들어 두었기에, 이번 시간에는 Model 부분에 대한 수업이 진행되었습니다.

이번 수업시간에 진행한 models.py 의 코드는 아래와 같습니다.

글을 작성할 때 쓰이는 Post, 댓글 달기에 쓰이는 Comment, 글 갈래에 해당하는 Category Class를 각각 만들었습니다.

Model은 데이터베이스의 데이터를 다루는 존재로, models.py에 의미 있는 변화, 즉 데이터의 추가, 수정, 삭제 등의 작업이 이뤄지게 되는 변경 부분이 있으면 항상 마이그레이션 + 마이그레이트를 해줘야 합니다.

잊지 말고 꼬박꼬박 마이그레이션해주는 습관을 가져야 한다고 하는데요. QA적인 입장에서 보더라도 변화가 있을 때마다 마이그레이션 과정을 거치고 이후에 현상을 확인해야지, 그렇지 않고 한 번에 몰아서 하게 되면 이후 문제가 발생했을 때 디버깅하기가 쉽지 않을 것 같다는 생각이 들었습니다.

이번 수업시간에 조금 어렵게 느껴질 수 있다고 하신 부분이 모델 관계(데이터 간의 관계)인데요, 솔직히 말해 이 부분은 QA를 하면서 ERD 문서를 여러 번 봤기 때문에 쉽게 이해할 수 있었습니다.

  • PK : Primary Key / 필수 키
  • FK : Foreign Key / 외래 키

데이터의 구조에 따라 1:1, 1:n, n:1, n:n의 관계가 발생할 수가 있습니다.

예를 들어 어떤 포스트에 댓글이 달린다고 생각하면, 포스트 하나에 댓글이 여러 개 달릴 수 있기 때문에 포스트가 1, 댓글이 n이 되는 관계를 맺게 되는 것입니다.

여기서 포스트들을 구분한 수 있는 유니크한 키 즉, PK로 설정되어있는 데이터를 참조해야 합니다. 위의 models.py를 보면 이 내용을 Post Class에 입력하는 것이 아니라 Comment Class에 입력되어 있습니다.

참조 대상 테이블이 아닌 참조하는 테이블에서 연결을 시켜줘야 하는 것입니다. 생각을 해보니 블로그를 작성할 때 서로 테이블을 연결해야할 게 상당히 많은 것 같습니다.

글 <—> 댓글
글 갈래 <—> 글
사용자 <—> 글

…등등 쉬운 듯하면서도 복잡해지는 것 같은 기분이 듭니다. 나만의 블로그를 만드는 그 날을 위해 열심히 배워야겠어요!

[파이썬으로 시작하는 웹 프로그래밍 CAMP] 자세히 보기 >>>

Recent Posts