[파이선 웹프로그래밍-실전편] 5주차

magnet
Django Girls Seoul | 장고걸스서울
5 min readNov 20, 2016

자바개발자, 정확히 말하면 스프링으로 백엔드, 자바스크립트로 프론트를 하는 어디에나 있는 웹개발자로서 쉽고 빠르게 배울 수 있다고 하는 말과 더불어 (저는 사용하지 않지만)회사에서 서버쪽은 파이선을 많이 사용하고 있는 것도 한몫하여 참여하게 된 것이 계기였습니다.

개인적으로 다른 토이 프로젝트에도 참여하고 있는데 장고를 아예 모르니 저도 답답하고 같이 하는 분들에게도 미안한 마음이 있었는데 알맞은 시기에 이런 스터디가 생겨서 저로선 매우 환영할만한 상황이었습니다.

그런 스터디가 5주차를 맞이하였습니다. 전체적으로 살짝 적은 인원이 참석하였습니다.
제 생각에 가장 큰 이유로는 역시 최근 날씨가 매우 변덕스러워 컨디션 난조인 분들이 많았던 것이 아닐까 싶습니다.
가을이 가을답지 않고 그렇다고 겨울도 아닌 이런 때 까딱하면 감기 걸리기 십상이긴 하죠.
저도 그걸 방지하기 위해서 조금 두툼하게 입고 나왔다가 땀을 뻘뻘흘리며 모임장소에 도착했습니다.
도착한 뒤에 조금 있으니 땀이 식으면서 반대로 추워지기도 했지만요. 진짜 변화무쌍합니다.

MRO(Method Resolution Order) / Pagination / Shortcut Function

오늘의 스터디 부분은 뷰의 후반부인 MRO와 페이지네이션 그리고 Shortcut Function이었습니다.
MRO라는 낯선 용어는 생소했습니다. 다른 책에서 상속 받는 부분에서 위치를 반드시 그렇게 써야만한다고 하는 부분이 있었습니다. 자신이 구현한 믹스인은 왼쪽부터, 파이선 및 장고에서 제공하는 것은 오른쪽부터. 그러니까 기본 제공하는 믹스인부터 오른쪽에서 왼쪽 방향으로 흘러가는 것입니다. 그 책을 뒤져보니까 그곳에도 메서드 처리 순서라고 써있었습니다. 약어로 MRO가 없었다뿐이지 영어로도 써있었던 건데 제가 이게 뭔 말인가 싶어서 그냥 넘어가고 이렇게 구현을 하는구나라고만 생각하고 넘어간 부분이었습니다.
믹스인을 통한 다중 상속이 가능한 언어이다보니 다중 상속이라 발생하는 문제를 해결하기 위한 알고리즘이 이 MRO인 것입니다.(라고 이해했습니다)
MRO 자체를 익히는 것은 장고를 배우는 것과는 직접적인 관련이 없다고는 생각합니다. 이미 그 부분은 파이선 자체가 그렇게 동작하도록 만들어진 부분이니까요. 그래서인지 책 본문에서도 간단하게 언급만 하고 넘어가는 수준이었습니다.

페이지네이션은 그리 어려운 부분도 아니라 직접 구현하거나 또는 프론트에서 구현한다고 하면 외부 라이브러리를 가져다 는 경우가 많았습니다. 장고는 역시나 자체 내장이라 편하게 사용할 수 있을 것 같습니다. 장고에서 구현되어있는 페이지네이션도 직접 구현하는 것과 그렇게까지 차이는 없는 것 같습니다. 개발자가 빈번하게 반복해서 시간을 허비하는 부분을 줄여줘 다른 부분의 구현에 더 신경을 집중할 수 있게 해주는 요소입니다.

단축함수(Shortcut Function)은 편리하다고 생각됩니다. get_object_or_404나 get_list_or_404같은 것은 여기저기 사용하게 만드는 중독성이 있는 것 같기도 합니다. 그러니까 더욱 주의해서 사용해야하기도 합니다. 저는 이 함수가 클래스 기반 뷰(CBV)나 함수 기반 뷰(FBV) 상관없이 쓰는 것인가 했는데 CBV보단 FBV에서 사용하는 것이라고 알려주신 분이 계셨습니다. 어느 것이 꼭 더 좋다라고는 안하지만 많은 레퍼런스나 사용하는 분들의 이야기를 들어보면 CBV를 좀 더 선호하는 것을 알 수 있는데 거기서는 저런 단축 함수를 안쓰게 되나 싶기도 합니다.

여기까지가 이번의 발표 내용이었습니다. 개인적으로는 스터디 발표 외에는 리눅스 세팅만 하였습니다. IDE를 사용하니까 굳이 리눅스까지 가지 않아도 될 거 같았지만 설정 하나 수정하려고 해도 윈도우라 힘든 부분이 있어 큰맘 먹고 오랜만에 설치를 시도했습니다. 오랜만인데다가 가상머신으로 밖에 설치를 못하는 상태라 쉽지만은 않았습니다(주로 성능적인 문제로) 세팅이 끝나면 본격적인 파이선 및 장고 스터디와 프로젝트를 시작할 예정입니다.

스터디 멤버들의 소감글

- 오늘 MRO, 페이징 기능 등 view를 마무리하면서 훑을 수 있어서 좋았습니다! 지난 시간 빠져서 따라잡느라 좀 바빳지만 유익했어요 :)

- MRO와 페이징 기능, 그리고 단축 함수에 대해 배웠습니다. 배운 것을 같이 나누는 시간이 있다는 게 참 좋은 것 같아요.

- 오늘 배운 페이징 옵션과 단축 함수들을 프로젝트에서 유용하게 사용할 수 있을 것 같아요.

- chapter 7을 진행하였습니다. 점점 장고를 사용할때 어떤 부분을 어떻게 수정해야하는지 감이 잡히느것 같습니다. 오늘은 tags관련 패키지를 학습한 느낌이 강하네요. 좀더 장고를 활요하려면 다양한 속성들을 알아야 할것 같네요.

- chapter7 진행하였습니다. tag기능을 추가하는 거였는데, tag 관련 라이브러리를 사용하는 방법을 익힐 수 있었습니다. 어제까지는 chaper14-모델 부분을 좀 읽어봤는데 앞으로는 이렇게 실습/개념 부분 같이 보는것도 괜찮은 것 같아요.

‘본 스터디는 한빛미디어 와 장고걸스서울이 함께합니다.’
장고걸스 서울 스터디 도서 자세히보러가기 :
http://fa.do/uNaV

--

--