사내 도서관 웹서비스
#1 직원 자습용 IT서적 22권이 도착했다. 최소한 도서관리대장은 있어야할 것 같은데,엑셀로 하면 젤 간단하지만 이번참에 웹서비스로 한번 만들어보기로 했다.
#2 12월 3일 github에서 simplelms-master라는 소스를 최초 다운로드했다. 이후 몇가지 소스들을 더 내려받아서 테스트해보다가.. django 튜토리얼용 소스 django-locallibray-tutorial-master를 발견했다.
이후 러시아 개발자가 부트스트랩까지 적용한 버전을 발견해서 이 소스로 작업하기로 결정했다.
#3 내 기대완 다르게 대부분의 소스는 read.me 파일이나 친절한 소스배포설명이 없었다. 이전에 개인프로젝트의 heroku 베포 테스트에 참고하였던, mozilla.org의 "Django 튜토리얼 파트 11: Django 웹사이트 공개하기"라는 포스팅을 다시 활용했다. 매우 자세하기도 하였고 최근 파이썬/장고 버전으로 설명되어 있어 믿음이 갔다.
#4 django-book-library-master를 가지고 튜토리얼 그대로 따라했다. 로컬에서 runserver로 실행하니 페이지가 잘뜬다. 이때까지만해도 다끝난건줄 알았다. (그때부터 시작이었다 후후 ㅠ) 튜토리얼을 따라 heroku에 배포를 시도했다. heroku에서 book table을 못찾겠다는 에러가 났다.
왜 로컬엔 있는 book table이 heroku엔 없다는 것인가?? "heroku run python manage.py makemigrations book"+"heroku run python manage.py migrate book"을 실행하니, table이 그제서야 생성되었다. heroku run python manage.py makemigrations 실행 했을때 book 테이블이 왜 생성되지 않았는지 알수 없다.(아직도 미스테리)
#5 개발에 활용한 로컬pc는 윈도우os에다가 각종 회사 정보보호부에서 제공하는 강제프로그램이 깔려 있다. git이나 heroku커맨드를 날리면 수시로 차단하여 오류를 날렸다. 똑같은 커맨드가 실행이 되었다가 안되었다가 아주 지마음대로 였다. 비기너인 내가 더욱 혼란스러웠던 요소 중 하나였다.ㅠ
#6 heroku push를 다시 했더니 이번에는 app이 crash 났다. heroku logs를 보니 psycopg가 제대로 작동하지 않는듯했다. 이 오류로 하루를 꼬박 소진했다. 결국 psycopg 버전을 업데이트하는 것으로 해결되었다.ㅠ
#7 기쁜마음에 admin 사이트로 들어가서 book을 add해보았다. programmable error가 발생하였다.하아ㅠ url 불러오는 템플릿 장고 태그(예> {% url 머시기 %})가 오류라고 한다. 로컬에서는 잘만 되는데??????? 이 버그는 url 정규표현식에서 한글 유니코드 범위를 지정하지 않아서 발생하였다. 귀찮아서 책이름 젤 앞에 숫자로 인덱싱(1_리액트 마스터)했더니 해결되었다.
#8 12/21 금요일 내가 자체 정한 배포 데드라인이었다. 기적같이 모든 오류들이 해결되었다. OMG. 22권의 책을 다 등록하고(책제목이나, 카테고리명은 반드시 숫자나 영문으로 시작되어야한다) 텔레그램으로 부서 직원들에게 서비스 베타버전 배포를 알렸다.(이번엔 진짜 다 끝난줄 알았다...ㅠ)
#9 12/22 토요일 사이트에 접속해보니 책이미지 파일이 전부 엑박으로 떳다. 짐작은 되었지만 이건 소스의 문제가 아니라 heroku가 제공하는 무료 tier 버전 DB(postgres)의 한계점이었다. 이미 나같은 시행착오를 거친 사람의 블로그를 찾아다.
대안은 1)heroku로 push할때 이미지파일을 같이 업로드하거나, 2)AWS의 S3 스토리지 서비스를 연동하거나, 3)Porsgres DB의 티어를 'Standard'로 업그레이드 하는 것($50/월)이다.
1)안은 운영 포인트가 하나 더 늘어나는 개념이라 너무 비효율적이고 3)안은 내돈이 들어간다... 사내에서 20~30명이 사용하는 웹서비스에 섭스크립션비용을 지불할 이유가 없다.
2)가 가장 친-운영적이고 무료이다. 2안으로 추진하기로 결정했다.
1)안은 운영 포인트가 하나 더 늘어나는 개념이라 너무 비효율적이고 3)안은 내돈이 들어간다... 사내에서 20~30명이 사용하는 웹서비스에 섭스크립션비용을 지불할 이유가 없다.
2)가 가장 친-운영적이고 무료이다. 2안으로 추진하기로 결정했다.
#8 12/23 일요일 저녁, 집에 있는 맥북으로 소스를 받아서 회사 컴퓨터와 같은 클론 작업환경을 만들었다(파이썬 버전이 상이해서 원하는 django 버전이 인스톨 되지 않았다.. pyenv로 파이썬 버전을 업데이트하고 맥os도 업데이트 했다. (여기서 3시간 소요)
급한대로 1)안을 활용, 이미지 엑박은 없애놓기로 했다
#10 12/24 월요일 02:00, 이것저것 어색한 표현과 모바일 사용시 불편한 디자인을 수정한 템플릿파일들과 이미지 파일을 push하고 이 감격스러운 순간을 페이스북에 남겼다. 뚜둥.
#에필로그 최근에 부서의 동기형과 이야기한 것이 있다. 웹쪽은 날마다 새로온 기술스택이 등장하고 유행이 바뀐다. 그러면 우리는 그때그때 새로운 언어를 배워고 날코딩을 해야 하는것인가?
우리가 내린 결론은 "개발자가 되지 말자, 파워유저가 되자" 였다.
요즘은 오픈소스가 트렌드인 시기라 거의 대부분의 서비스들이 소스를 낱낱이 공개한다(이 얼마나 대단한 자신감인가) 오픈소스를 필요에 맞게 가공해서 사용하는 능력이 필요하다(물론 라이선스 기준에 맞게). 이번 프로젝트는 단순히 페이지 몇장이 클라우드에 올라간 것이 아니다. 로컬pc는 github와 heroku로 원격연동 되어 있고, 로컬에서 git으로 push하면 pipeline을 타고 자동으로 heroku에 배포되는 개인프로젝트용 개발형상관리 체계를 직접 만들어본 것에 의미가 있다 할 수 있다.
다음프로젝트로 어떤걸 해볼까? 벌써 기대된다^^
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Deployment
답글삭제혹시 이 사이트 따라하면 이런 어플 만들어지나요?