[웹 서비스 개발 CAMP/주간 리뷰] 새내기 개발자의 웹 서비스 개발 공략기 : 2주차 “장고(Django)에는 MTV가 있다?” by 5기 수강생 장한별님

패스트캠퍼스의 [웹 서비스 개발 CAMP]에서는 파이썬(Python)과 장고(Django) 프레임워크를 활용하는 실습을 2회 진행하며, 실무 웹 서비스 공정 과정을 경험하실 수 있습니다.

지난 1/30(토)부터 3/26(토)까지, 8주 동안 5기 수업이 진행되었으며, 알스퀘어를 운영하는 ‘부동산다이렉트’에서 소프트웨어 엔지니어로 일하고 계신 장한별 님께서 주간 리뷰를 작성해 주셨습니다.

설 연휴 이후에 진행된 2주차 수업에서는 웹 프로그래밍과 장고(django)의 개요에 대해 다루었습니다. 그 주의 수업 속으로 시간을 되돌려서 전해 드립니다!

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


2주차 수업에 들어가기에 앞서, 쪽지 시험을 봤습니다.

지난 수업 내용을 수강생들이 잘 이해하고 있는지 확인차 하는 것이니, 이름을 적지 않거나 자신만이 알 수 있는 표시만 하셔도 된다고 하셨습니다. 편하게 작성하라고 하셨지만, 제 마음이 편하지 않았습니다.

답안을 잘 채우지 못해 복습을 많이 안 한 것이 후회되기도 하고, 엉망인 제 답안을 볼 강사님을 생각하니 부끄럽기도 했습니다. 이번 수업은 더 열심히 듣고 복습도 열심히 해야겠다는 마음이 무럭무럭 자랐습니다. (물론 제 이름은 적지 않았습니다.)

무서운 쪽지시험을 본 후, 수업에 들어갔습니다.

2주차 수업은 ‘웹과 웹 프로그램’에 대한 내용으로 시작했습니다.

이 부분은 실습이 없는 이론 부분이라서 그런지 조용하고 엄숙한 분위기였습니다. 강사님께서 다들 설날에 안 좋은 일이 있었냐고 물어보시기까지 하셨어요.

학부생 시절에 ‘웹 프로그래밍’ 강의를 듣긴 했었습니다. 그렇지만 몇 년이 흐른 지금은 정확한 개념은 까먹어버리고, 어렴풋이 생각날 뿐이었는데, 다시 한번 강의를 들으니 새록새록 기억이 떠올랐습니다. 웹 개발 일을 하면서 웹의 개념이나 웹의 큰 흐름을 누군가 차분히 설명해주면 좋겠다고 생각했는데 이렇게 설명을 해주시니 대강 알고 있던 것들이 조금씩 정리되는 느낌이었습니다. 물론 계속 공부하지 않으면 또 잊어버리겠지만요.

오늘은 Django MTV에 관한 전체적인 설명을 듣고 실습해 보았습니다.

우선 장고를 이용해서 프로젝트를 만들어 보았는데요, 프로젝트를 만들고 몇 줄 치지도 않았는데 웹서버가 구동되었습니다. 장고가 잘 동작한다고 축하 메시지를 전해 주더군요!

물론 아직 아무것도 안 했기에, 가서 앱이나 만들라고 하네요. 장고가 시키는 대로 빨리 뭐라도 만들어야겠어요.

강사님께서 장고에 관해 계속 설명해 주셨는데요. 여기서 장고의 신기한 점은 일반적인 개발 방법론으로 MVC 패턴이 있다면, 장고에는 MTV가 있다는 것입니다.

MTV의 ‘M’은 MVC의 ‘M’과 비슷한데, ‘데이터를 다루는 단위’, ‘T’는 MVC의 ‘V’와 비슷하고 ‘출력할 내용물을 만드는 역할’, MTV의 ‘V’는 MVC의 ‘C’와 비슷하고 ‘URL과 출력물을 연결하는 역할’을 한다고 하셨어요. 아직은 조금 아리송하지만, 계속 다루게 될 테니 걱정하지 말라고 하셨습니다.

짠! 제가 만든 방명록입니다…라고 하면 좋겠지만, 장고 Admin을 이용하여 데이터를 관리할 수 있는 페이지입니다.

실제로 작업한 부분은 Model에서 DB 테이블의 컬럼을 만든 것뿐이지요. 간단하게 이름, 내용, 날짜 컬럼을 만들고 제목이 나오도록 했습니다.

실제로 한 작업은 위의 코드인데요, 이렇게만 해도 알아서 쿼리문을 만들어 준다고 합니다. 쿼리문을 잘 못 짜는 저에게는 고마운 친구가 될 거 같아요. 장고 짱짱!

view 함수와 templates를 이용하여, 개발자라면 꼭 해야 한다는 ‘hello world’와 제 이름을 로컬에 띄워보았습니다. 뭐, 보기에는 별 대단한 건 없습니다.

사실 결과물만 보고 나면 크게 한 게 없어 보이지만, 그 과정까지가 그리 쉽지는 않았습니다. view 함수를 만들어 URL을 연결하고, 모델을 작성해서 마이그레이션을 하고, 템플릿과 view도 연결하고, 장고 어드민을 이용해서 데이터 관리를 해보고, 헥헥 이렇게 나열하기만 해도 힘든데 실제로는 더욱 힘들었어요.

만약 이걸 인터넷을 보면서 혼자서 했다면 종일을 해도 못 했을 거에요. 실습 도중에 따라가지 못한 수강생분들이 있으셨는데, 중간중간 도와주시고 수업 도중에 안되면 쉬는 시간이라도 끝까지 알려주셨습니다.

강사님께서 처음 하는 것이라 헷갈리고 어렵게 느껴지는 것이지, 몇 번 하다 보면 금방 적응될 거라고 하셨어요. 본격적으로 앱을 제작하면 이런 과정들의 연속이라 하니…빨리 적응되겠죠?

실습과 설명을 다 마치고, 오늘 했던 방명록 실습을 처음부터 다시 만들면서 설명을 쭈욱 해주셨습니다. 만들어지는 과정을 전체적으로 보니, 이해가 안 된 부분들이 좀 더 이해되고, 벌써 기억에서 사라졌던 강의 내용이 머릿속에 그려졌습니다.

강사님께서 만드시는 걸 보면서, 나는 고생고생하면서 따라가기도 바빴는데 한 번에 후루룩 만드시니 신기하기도 하고 ‘아, 이게 클래스의 차이구나!’하는 것을 느끼기도 했습니다.

이번 주에는 ‘출석부 만들기’라는 과제를 내주셨습니다. 과제를 정말 못하겠으면 의사코드(pseudocode)로 작성해도 된다고 하셨어요. 다한 과제는 github에 제출하는데, 어려우면 다른 사람의 코드를 참고해도 된다고 하셨습니다. 하지만 최대한 스스로 하는 것이 실력 향상에 도움이 된다고 하셨어요. 저도 코딩은 직접 생각하고 타이핑하는 것이 제일 도움된다고 생각합니다.

수업이 끝나고 회식을 했습니다. 회식 메뉴는 족발! 원래 치킨이었지만, 매니저님께서 밤새도록 고민하신 결과 족발을 선택하셨습니다. (족발, 좋아요!) 하지만 매니저님은 아쉽게도 일이 있으셔서 같이 참석하지 못했습니다.

처음에는 다들 서먹서먹했지만, 족발이 나오고 술을 한 잔씩 드시니 금방 친해졌습니다. (친해지는 데에는 술이 최고인 거 같아요!)

낙오하는 사람 없이, 모두 끝까지 잘해서 파이썬/장고의 고수가 되면 좋겠습니다.

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

Recent Posts