본문 바로가기
Project

[프로젝트] 경북대 멋쟁이사자처럼 홈페이지

by 테리는당근을좋아해 2020. 4. 9.

1. 소개

2019년도 경북대 신입 멋쟁이 사자처럼 학생들을 모집하기 위해서 소개 페이지를 만들었다.

 

소개 페이지에는 동아리 소개, 질문, 공지사항, 활동 사진을 게시할 수 있는 기능을 구현했다.

 

2. 팀원 및 역할

백엔드 : 이산O, 윤신O

프론트엔드 : 김민O

 

프론트엔드 역할을 맡았다.

 

모달 등을 제외하면 대부분을 프레임워크나 라이브러리를 사용하지않고 개발했다

 

3. 사용 기술

백엔드 : Django, Python

 

프론트엔드: html, css, javascript

 

데이터베이스: SQLite, postgreSQL

 

배포 : heroku

 

장고를 사용한 이유?

장고는 파이썬 기반의 오픈소스 웹 프로그래밍 프레임워크로 로그인, 관리 등 많은 기능들과 ORM을 내장하고 있어 빠른 개발이 가능하다. 또한 파이썬을 사용하기 때문에 파이썬의 강력한 라이브러리를 그대로 사용할 수 있다는 이점을 가지고 있다

 

프론트엔드를 다른 프레임워크나 라이브러리를 사용하지 않은 이유?

동아리에 관심있는 학생들이 홈 페이지를 본다면 첫 번째 매력을 느낄 수 있는 부분은 시각적인 부분이라고 생각했다. 따라서 직접 개발한다면 조금 더 어필할 수 있지 않을까라는 기대로 그렇게 했다

 

데이터베이스를 두 개 사용한 이유는?

SQLite는 장고에 내장되어있는 파일 시스템 기반의 임베디드 데이터베이스 관리 시스템이다. 따라서 따로 설정할 필요없이 가볍고 간편하게 사용할 수 있다.

 

하지만 배포를 함에 있어, heroku의 dynos는 배포 전반에 지속되는 파일 시스템이 없으므로 파일 기반의 DBMS인 SQLite를 사용할 수 없다.

 

다른 DBMS를 찾던 중 postgreSQL이 장고랑 사용했을 때 NoSQL 성격의 jsonField나 ArrayFiled 등을 사용할 수 있기 때문에 postgreSQL을 사용했다

 

postgreSQL은 확장 가능성과 표준준수를 강조하는 객체 관계형 데이터베이스 관리 시스템이다. 기존 RDBMS에 객체지향 패러다임을 적용해 데이터베이스 객체를 사용자 임의로 정의해 마치 프로그래밍 언어처럼 사용할 수 있는 기능을 제공한다.

 

heroku를 사용해 배포한 이유?

heroku는 무료 호스팅 서비스를 지원하는 클라우드 PaaS이다. heroku는 서비스로 플랫폼을 제공하기 때문에 개발자가 따로 환경 설정 없이 push만으로 배포할 수 있다는 장점이 있다.

 

하지만, 프리티어를 사용할 경우 서버는 30분 마다 sleep 모드에 빠지게 된다. 그래서 지금 배포한 홍보 사이트도 처음 들어가면 한 세월 걸린다. sleep mode를 방지하는 방법은 10분 주기로 서버가 자기 자신한테 계속해서 request를 보내도록 구현해놓는 방법도 있다.

 

heroku와 AWS?

서버 배포는 이 두 개의 호스팅 서비스를 사용해봤는데 차이점은 헤로쿠는 클라우드 PaaS, AWS는 클라우드 IaaS라는 것이다.

 

따라서 heroku를 사용하면 앞서 말했듯이 따른 설정없이 push만으로 배포할 수 있다. 하지만 AWS는 언어도 설치해야되고 여러가지 설정을 많이 해줘야한다. 왜냐하면 서비스로 인프라스트럭처를 제공, 즉 서버 그 자체를 제공하는 것이기 때문이다. 그래도 설정만 잘해준다면 AWS는 개발자가 서버에 대한 제어권을 가지고 올 수 있다. heroku는 설정을 직접하지 않기 때문에 플랫폼에 설정된 환경을 그대로 이용해야 한다.

 

가격 면에서는 프리티어만 사용해봐서 잘 모르겠지만, heroku가 AWS 보다 절대 저렴할 수 없다고 한다. 왜냐하면 heroku는 AWS위에서 돌아가고 있기 때문에..

 

여담으로 AWS 프리티어가 만료된지 모르고 한 반년 동안은 나도 모르게 돈을 내고 있었다

 

4. 후기

이 전까지 프로젝트랑 다른 점이라면 자바스크립트를 조금씩 사용해보았다는 점이다.

 

또 한가지, 이 전에 모달을 이용해 글의 상세내용을 보는 기능을 구현하기 위해서 ajax통신으로 백단에서

 

버튼을 클릭할 때마다 데이터를 가져왔었는데, 자바스크립트로만 쉽게 가능하다는 것을 알게 되었다.

 

5. 프로젝트 

http://knulikelion.herokuapp.com/

 

KNU X LIKELION

Python 이라는 언어를 배우고 Django를 통해 웹서비스를 만들겁니다! 그 외에도 웹프로그래밍을 위한 HTML, CSS, JS 등을 배울 겁니다! :) 프로그래밍을 통해 우리의 삶을 바꾸는 도전을 합니다! 그 첫단계로 멋사에서 웹 프로그래밍을 배워 한 번쯤 꿈꿔왔던 자신의 아이디어를 실현합니다 :) 지루한 일상에서 벗어나 새로운 무언가를 찾고 있으신가요? 그렇다면 멋쟁이 사자처럼이 함께 도와드리겠습니다!

knulikelion.herokuapp.com

 

5. GIT

https://github.com/dheldh77/knu

 

dheldh77/knu

Contribute to dheldh77/knu development by creating an account on GitHub.

github.com

 

'Project' 카테고리의 다른 글

프로젝트 예시  (0) 2022.04.07
[프로젝트] 치매측정플랫폼  (0) 2020.04.09
[프로젝트] SNS  (0) 2020.04.09
[프로젝트] 스마트 기저귀  (0) 2020.04.09
[프로젝트] 어린이집 종합 플랫폼  (7) 2020.04.09

댓글