직장 내 디자이너 분과 밥을 먹다가 이런저런 얘기를 나누면서 그 분이 '이런 걸 만들어보고 싶다.' 라는데서 시작했다. 회사에서 개발하다보면 개발 스펙이나 방향에 아쉬움이 남을 때가 있었는데 그런 아쉬움을 해소할 수 있으면서 재미도 있을 것 같아 그 얘기를 가슴에 담아두었다. 나는 백엔드 개발을 하다보니 프론트엔드 개발을 해줄 사람이 필요했고, 마침 잘한다고 생각하는 프론트 개발자분에게 말씀을 드렸더니 좋다고 하셔서 진행하게 되었다.

 나와 프론트엔드 개발자 분은 진짜 사이드 프로젝트처럼 지식을 쌓으려고 시작했다면 디자이너 분은 사업적인 영역까지 생각하고 있었다. 그래서 은근히 진지모드로 진행했고, 오히려 그게 책임감을 갖게해서 진행하는데 도움이 되었던 것 같다. 사실 이제 경력이 막 2년된 내가 잘 할 수 있을지 걱정이 되긴 했지만 분명히 내가 도움이 될 수 있는 부분이 있었다.

특히 이 프로젝트의 성공을 떠나서 나중을 위해서 디자이너분과 프론트엔드 개발자 분에게 다른 방면으로도 도움을 줄 수 있을 거라고 생각했다. 협업을 하면서 백엔드 개발이 어떤 거고, 백엔드 개발자가 어떤 생각을 하는지 알려드릴 수 있는 기회라고 생각했다. 두 분은 실력적으로나 다른 면으로나 신뢰할 수 있는 사람이라고 생각했고, 이번 프로젝트가 아니더라도 다른 멋진 프로젝트를 할 수 있는 분들이라고 생각했다. 그래서 가비아에서 aws에 도메인을 어떻게 연결하는지, 서버를 어떻게 구성하려는지 디자이너 분께 설명드렸다. 그리고 프론트엔드 개발자 분은 백엔드의 어느정도 지식이 있고, 프론트 개발자지만 백엔드 관련한 지식이 충분하다고 생각했기 때문에 로컬에서 spring application을 올릴 수 있도록 설치해주면서 가끔 spring security를 만지면서 이런 걸 넣으면 이렇게 변하더라 라는걸 말씀드렸다. 회사에서 vue.js를 이용해 백오피스를 만들어보면서 얕은 지식이지만 프론트 관련 지식을 쌓은게 프론트엔드 분들과 협업할 때 많이 도움이 되었던 것처럼 이런 게 추후에 내가 아니더라도 다른 분들과 협업할 때 도움이 될 것이라고 생각했기 때문이다.

며칠 전에 다행히 public하게 모든 걸 띄워놓는 것까지 완성할 수 있었다.
서비스는 이제 시작이지만, 처음부터 끝까지 서버를 만들면서 front 배포할 때는 어떤 것들을 고려하면 좋을지도 많이 고민할 수 있었고, spring에서 유용하게 쓰이는 패턴들을 익히고, 사내에서도 조금씩 적용하는 등 많은 것을 배울 수 있어서 좋은 경험이었다. aws 비용을 줄이기 위해 처음에 ec2 한 대로 front, back 서버를 같이 띄우고, 배포할 때도 green-blue 전략을 채택하지 않고 기존 container를 stop & remove하고, 새로 올리는 방식을 채택하기도 했다. 그리고 처음 live에 홈페이지를 띄울 때 nginx 설정 관련해서 우여곡절도 있어서 이와 관련해서는 나중에 시간나면 다른 포스팅으로 기록해 놓으려고 한다.

개발자로 취업을 하기로 마음 먹은 후 약 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% 이해할 수 있기 때문입니다.

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

https://00pen.tistory.com/87

 

Django Rest framework 와 React로 포트폴리오 만들어보기(2)

https://00pen.tistory.com/85 Django Rest framework 와 React로 포트폴리오 만들어보기(1) 노마드코더(nomad coder) 에어비앤비 클론 코딩 후기 2달에 걸친 풀스택 에어비앤비 클론 코딩을 드디어 끝냈내요. 이..

00pen.tistory.com

처음에 계획할 때 8월 15일까지 끝내겠다고 했는데 계획은 반은 지켜지고 반은 안 지켜졌다고 할 수 있을 것 같다. 왜냐하면 오류없이 8월 15일까지 만들기는 만들었다. 근데 테스트를 하면 할 수록 조그만한 오점들이 계속 나오는 것 같다. 그래서 직접 테스트하거나 Django Restframework 에서 제공하는 test 모듈로 TDD를 진행하는 중이다.

 

프로젝트를 끝내면서 느낀 점은 크게 두가지다.

첫 번째는 기획/계획이 굉장히 중요했다는 것. 아이디어이 생각난 후에 이틀 정도 구상한 후 프로젝트를 만들기 시작하였는데 만들면서 Django의 model 부분 즉, Database에 저장될 스키마, 가 여러 번 수정되었다. 그러면서 오류도 많이 생기고 고치는데도 시간이 꽤 소요되었는데 이래서 데이터베이스를 설계하는 사람이 따로 필요한 건지 알게 되었다.

두 번째는 빌드는 빠른데 오류/예외들을 처리하는 것이 더 오래 걸리겠다는 것. 찾아보니 QA 분들이 정석루트를 해피패스라고 부르는 것을 알게 되었는데 나는 해피패스 외에 적은 예외만 처리해 왔다는 것을 알게 되었다. 아주 완벽하게 서비스를 만드려면 대충 다 만들고 Quanlity Assurance에 시간을 많이 투자해야할 것 같다는 생각을 하게 되었다.( 작은 프로젝트에서는 그냥 만들고 일부 사용자들이 사용해보고, 피드백을 받아 고치는 것도 좋다는 것을 알게 됨. )

 

이제 Django를 어느 정도는 다룰 수 있게 되었다고 생각한다. 하지만 공부하면 할 수록 부족하다는 것이 느껴져 Django도 dbshell과 서버에 deploy하는 것을 더 배우고, 네트워크랑 데이터베이스도 계속 공부해봐야겠다. 아무튼 개인 프로젝트를 만들면서 재밌었고, 끝내서 보람찼다.

 

 

Frontend 결과물 예시: https://qhqnf.github.io/asset-dashboard-fe/#

asset dashboard

Frontend github: https://github.com/qhqnf/asset-dashboard-fe

Backend 결과물 api 문서: http://asset-dashboard-dev.ap-northeast-2.elasticbeanstalk.com/swagger/

Backend github: https://github.com/qhqnf/asset-dashboard

 

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

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

00pen.tistory.com

약 5개월에 걸쳐 nomad coder을 통해 풀스택 개발자로 성장하기 위해서 강의도 많이 들었고, 이제는 정말 직장에서 일을 하면서 돈도 벌고, 기업에서 경험을 쌓아야 겠다는 생각에 나만의 웹사이트나 앱을 만들어 포트폴리오를 만들어보고자 생각이 들었습니다.

계획은 자신의 자산 상태를 여러 그래프로 보여주는 Dashboard를 만드는 것입니다. 에어비앤비 클론 코딩을 할 때는 오직 Django로만 풀스택 개발을 했지만 기업에서는 대부분 백앤드와 프론트앤드를 나누어 개발하는 것이 일반적이기 때문에 그에 맞추어 Django (+ Rest Framework)로 백앤드 API 서버를 만들고, React와 Redux를 이용해 프론트엔드를 만들 예정입니다.

저는 2주일 안에 끝내는 것으로 잡고 싶었으나 주변 개발자님들의 말을 들어보면 그렇게 마음대로 되지는 않을 거라는 말을 들어 3주~4주를 목표로 잡았씁니다. 지금은 이미 백앤드 API 서버를 만들고 있는 중이고, 시작한지 3주가 되는 날은 8월 15일이네요.

 

프로젝트명은 asset-dashboard.

지금까지 진행상황은...

 

7월 25일 - 간단하게 머리 속 계획을 그림으로 그려보고, Django와 더불어 필요한 것들 설치

개발환경은 간단하게 Ubuntu 16.04(WSL로 윈도우에서 사용), VS Code로 했고, pipenv로 가상환경을 꾸려서 함

 

7월 26일 - 일단 백엔드 API에 필요한 주식정보(현재가, 종목코드) 가져오는 crawler 코드 먼저 짬

https://00pen.tistory.com/84

 

Marketdata.krx 종목코드, 현재가격 가져오기

주식데이터를 가져오는 방법으로는 증권사 api도 있고, github에 올려져 있는 여러 코드들도 있지만 Django 백앤드에 필요한 상장주식코드(ETF 포함)만 가져오는데 무겁게 하기 싫어 코드를 짜보았습

00pen.tistory.com

 

7월 27일 - crawler 코드 정리하고, Django에서 db로 넘겨주도록 commad 생성, 주요 Model과 Serializer, View 생성

Github 주소  - https://github.com/qhqnf/asset-dashboard

https://00pen.tistory.com/87

 

Django Rest framework 와 React로 포트폴리오 만들어보기(2)

https://00pen.tistory.com/85 Django Rest framework 와 React로 포트폴리오 만들어보기(1) 노마드코더(nomad coder) 에어비앤비 클론 코딩 후기 2달에 걸친 풀스택 에어비앤비 클론 코딩을 드디어 끝냈내요. 이..

00pen.tistory.com

 

* React Native를 이용하여 개발하면서 Expo라는 앱을 사용하게 되었는데 Dev tool을 사용하면 갑자기 네이버도 안 들어가지고 '사이트에 연결할 수 없습니다' - ERR_CONNECTION_FAILED 라고 떠서 stackoverflow를 참고하여 해결한 방법입니다. (일반적인 경우에도 해결방법이 될 지는 모르겠네요...)

해결방법을 알려준 stackoverflow의 유저도 저와 굉장히 유사한 환경에서 개발을 하고 있었는데

1. WSL을 이용해 Ubuntu를 사용

2. React-Native와 Expo를 사용해 개발 중

위와 같은 상황에서 Expo Dev-tool을 사용하다보면 갑자기 인터넷이 연결되어 있지만 네이버와 같은 평범한 사이트도 연결이 되지 않는 상황이 벌어지고 있는 것 같습니다. 컴퓨터를 껐다가 키면 해결되긴 하지만 번거롭기 때문에 그보다 쉬운 방법을 알려주었습니다.

1 - WIN+R -> services.msc 검색 -> 서비스 창이 뜸
2 - LxssManager 찾기
3 - 우클릭 후 재시작

'네이티브 ELF 이진 파일의 실행을 지원합니다.' 라는 걸 보니 확실히 React Native와 관련이 있는 거 같긴한데... 왜 이러는 걸 까요... 아무튼 재시작을 하면 모든 사이트들이 잘 돌아가긴 합니다...ㅋㅋ

출처: https://stackoverflow.com/questions/58159333/err-connection-failed-on-chrome-ie-after-20-minutes-of-working-when-internet-is

+ Recent posts