개발자로 취업을 하기로 마음 먹은 후 약 7개월이 지나고 파이썬 개발자로 취업을 하게 되었습니다. 컴퓨터 공학을 전공하신 분들에 비해서는 코드 몽키 수준이겠지만 항상 코드 아래서 컴퓨터가 어떻게 돌고 있는지 이해하기 위한 노력을 많이 하다보니 취업에 성공하지 않았나 생각이 듭니다.

아래 제가 밟아 왔던 과정을 자세히 설명하겠지만 결론부터 말하면 Django를 잘 공부하기 위해서는 에듀캐스트에 있는 리액트와 함께 장고 시작하기 (educast.com/course/web-dev/ZU53) 를 정말 추천하고 싶습니다. 22만원이라 좀 비싸다고 느끼긴 했지만 돈이 아깝지 않은 강의입니다.

프론트앤드 부분은 거의 듣지 않았음...

 

먼저 저는 학부 때 배워본 건 파이썬 기초 밖에 없었지만 그걸 이용해서 프로젝트를 한 번 해보았으니 이걸 기반으로 갈고 닦으면 충분히 취업을 할 수 있을 거라고 생각했던 것 같습니다. 그래서 독학 아니면 학원을 다니는 선택지가 있었는데 공부를 시작할 당시에는 졸업을 하기 전이라 그냥 독학을 골랐습니다. 학원이 상당히 비싸다고 느끼기도 했고요... 그래서 처음 시작할 때는 nomad coder의 강의들을 들었습니다. (아래는 nomad coder에서 들었던 강의들 후기)

 

nomad coder(노마드 코더) 코코아톡 후기(1)

퀀트(Quant) 및 데이터 사이언티스트(data scientist)의 역량을 키우기 위해서 코딩을 배워보기 시작했습니다. 처음엔 원래 그냥 파이썬 공부로 시작하려고 먼저 워니님의 유튜브 채널을 통해 속성으

00pen.tistory.com

 

 

노마드코더(nomad coder) 에어비앤비 클론 코딩 후기

2달에 걸친 풀스택 에어비앤비 클론 코딩을 드디어 끝냈내요. 이 코스를 통해 python과 Django를 배울 때는 재밌어서 하루도 빠짐없이 코딩을 했습니다. 5월에는 천천히, 6월에는 2배 정도 빠르게 했

00pen.tistory.com

01

 

아무튼 어느 정도 웹 개발이 이런거구나~ 라고 생각할 때쯤 컴퓨터 공학의 기초들의 필요성을 느꼈던 것 같습니다. 뿐만 아니라 몇몇 기업에서는 코딩테스트를 요구해서 먼저 자료구조와 알고리즘을 공부하기로 마음 먹었습니다. 그 때 당시에 막 파이썬 알고리즘 인터뷰라는 책이 나와서 그 책으로 공부했었습니다.

파이썬 알고리즘 인터뷰 책

 

이 책을 통해 공부하면서 파이썬 내부의 standard library들을 알게 되었고, 굳이 다른 패키지를 깔지 않고도 아름다운 코드를 짤 수 있다는 것도 느끼고 magic method에 대해서도 공부하게 되었습니다. 그 후 배워온 Django 기술을 이용해 먼저 취업을 해서 실무 경험을 쌓아보고 싶다는 생각을 하고, Django를 더 깊게 배우기 위해 위에서 추천했던 에듀캐스트의 리액트와 함께 장고 시작하기를 결제하고 강의를 들었습니다.

근데 이 강의를 들으면서 진짜 장고를 배운 것 같다는 느낌이 들었던 건 github에 있는 장고 코드를 같이 보면서 내부에서 어떻게 돌아가는지 프로세스를 가르쳐 주셨기 때문이라고 생각합니다. 근데 이 강의를 듣기 전에 위의 파이썬 알고리즘 인터뷰 같은 책을 통해 파이썬의 문법, 자료구조, standard library의 사용법을 배우고 듣는 것이 좋습니다. 그래야 강의를 100% 이해할 수 있기 때문입니다.

최근에 유난히 코딩을 가르치는 곳들이 많아지고, 가르치는 방식도 다양하다 보니 어느 걸 들어야하는지 고민하시는 분들도 많을 것 같습니다. 컴퓨터 공학 기초를 탄탄히 하고, 응용을 배우는 게 좋다고 생각하지만 저부터 딱딱한 이론 강의를 좋아하지 않다보니 이렇게 마구잡이로 공부했던 것 같습니다. 그래서 다른 분들이 어느정도는 이런 순서로 공부하면 좋지 않을까라는 생각을 하면서 글을 써보았습니다 :)

 

2달에 걸친 풀스택 에어비앤비 클론 코딩을 드디어 끝냈내요. 이 코스를 통해 python과 Django를 배울 때는 재밌어서 하루도 빠짐없이 코딩을 했습니다. 5월에는 천천히, 6월에는 2배 정도 빠르게 했으니 아마 열심히 하시는 분이라면 6주면 끝낼 수 있지 않을까 싶습니다. (사실 AWS와 연동하는데 일주일 동안 풀지 못한 오류가 있었는데 그거 때문에 시간을 많이 잡아먹음... 혹시라도 같은 오류가 나시는 분이 있을까 글도 올림 - [Django/AWS EB] wsgiPath 오류 및 502 Bad gateway)

 

5월과 6월 장장 2달간의 코딩

 

니꼴라스와 함께한 첫 풀스택 클론 코딩의 후기를 말해보자면 먼저 하고 싶은 말은 처음에는 어렵습니다. 처음에는 코드를 같이 써보고도 어떻게 돌아가는지 이해가 되지 않습니다. 근데 강의를 들어보면 같은 문제를 여러가지 방식으로 풀어주거나 비슷한 걸 여러 개  같이 만들어보는데 이렇게 여러 번 반복하다보면 갑자기 이해가 됩니다. 예를 들어 Django에서는 template(html)과 view와 url을 같이 쓰는데 대충 설명해보자면 template는 유저가 보는 화면을 구성하는 것이고, view는 그걸 돌리는(?) 방식이고, url는 www.naver.com 같이 주소라고 보시면 됩니다. 처음에는 이 세가지가 어떻게 연결되는지 잘 이해가 되지 않는데 여러 번 만들다 보면 이해가 됩니다.

 

내 home view

 

두 번째로 느낀 것은 코코아톡 강의나 바닐라JS강의를 들을 때는 몰랐는데 AWS에 배포를 하고 누군가가 내가 만들걸 볼 수 있게 되었을 때 굉장한 보람을 느꼈습니다. 그래서 강의 중 이 배포 부분이 가장 어렵고, 가장 보람을 느끼게 되는 부분이 아닐까 싶습니다. 

마지막으로 어느정도 난이도가 있는 강의를 들었다고 생각하지만 오히려 이 강의를 들으면서 제가 얼마나 아무것도 몰랐는지 느끼게 되었습니다. Django라는 framework가 굉장히 편리하게 만들어져 있음에도 불구하고, 이걸 정말 전문적으로 이용하기 위해서는 이제 wsgi랑 서버에 대해서도 알아야 하고, 실제 실무에서는 백엔드와 프론트엔드를 나누어 놓기도 하는데 그러기 위해서 API 특히, Django REST API(DRF)에 대해서도 알아야 하고, 그리고 이번에 만든 것은 굉장히 정적인데 이걸 멋지게 만들려면 Javascript를 이용해 사용자의 이벤트를 잡아줘야 하고, 등등.

결론적으로 이 에어비앤비 클론 코딩 강의는 코딩을 하면서 보람을 많이 느끼게 한 강의라고 생각하고, 클론 코딩 강의이기 때문에 부담없이 천천히 배울 수 있는 강의라고 생각합니다.

강의와 별개로 혼자 만들어본 My reservation
끝!

저는 이제 정말 장고를 잘 이용하기 위해서 노마드 코더에서 REST API 강의를 수강해보겠습니다ㅋㅋ

HTTP 5xx

Django 개인프로젝트를 진행하면서 AWS ElasticBeanstalk에 배포하는 것을 하던 도중 이런 오류를 만나게 되었는데 일주일 동안 아는 걸 모두 동원해서 고쳐보려해도 고치지 못했습니다. 제가 사용했던 Django 버전은 2.2버전이였고, Ubuntu 16.04, python 3.7을 사용했습니다.

배포할 때는 모두 eb init -> eb create하면 여러가지 옵션들이 나오는데 모두 default값을 사용했습니다.

그러면 현재 2020.06.27 기준 python 3.7를 Amazon Linux2 환경에서 Django 2.2버전을 돌리게 되는 것입니다. 근데 문제는 이런 상태로 deploy를 하면 뭐를 해도 로그에 wsgi에 관련된 에러가 뜨게 됩니다. path를 바꿔봐도 config를 바꿔봐도 해결이 되지 않습니다. 보안, 로드밸런서의 문제도 아닌 것 같습니다.

;;

그래서 해본 것이 Django버전을 2.1로 낮추는 것이였습니다. 그리고 나서 pipfile을 requirements.txt로 바꾸고...등등 근데 그래도 되지 않습니다. 그래서 서버의 버전도 python 3.6에 Amazon Linux로 한 단계 낮추었습니다. 그랬더니 갑자기 아무 문제 없이 돌아갑니다...

결론) 제가 추측을 해보면 python 3.7에 Amazon Linux2에서 Django 2.2버전을 돌리면 어떤 문제가 생기는 것 같습니다. 그래서 그냥 버전을 한 단계씩 낮추어 배포하면 문제 없이 돌아갑니다...

+ Recent posts