DoITgrow

[파이썬 활용 웹 개발] 인트로 - DB 공유/관리 시스템① 본문

백엔드 & 프론트엔드 & DevOps

[파이썬 활용 웹 개발] 인트로 - DB 공유/관리 시스템①

김수성 (Kim SuSung) 2021. 12. 11. 00:03
반응형

배우고 싶은 것은 많은데 시간은 한정되어 있고, 또 회사 일과 병행하다 보면 하루 24시간이 너무 짧다는 생각이 부쩍 드네요.

딥러닝 알고리즘과 같이 개념을 공부하는 것도 중요하지만 결국 누군가에게 도움이 될 수 있는 서비스로 만들기 위해선 웹이나 모바일로 개발하는 것이 필수라고 생각합니다. 저의 큰 목표는 개발한 딥러닝 알고리즘을 사람들이 쉽게 사용할 수 있는 서비스로 런칭하는 것이기에 웹 개발하는 부분도 열심히 공부하고 있습니다. 불과 1년 전만 해도 웹 개발에 관해서는 지식이 전무했지만 관심을 갖고 꾸준히 공부하다 보니 점점 성장하는 제 모습을 보고 더 열심히 하게 되네요. 

이번 포스팅에서 다룰 주제는 굉장히 큰 범위라 몇 번을 나눈 포스팅을 통해 공부한 내용을 공유드리고자 합니다. 저도 현재 진행형이라 다소 내용 설명이 미흡할 수 있지만 이러한 부분에 대해 같이 얘기를 나눠가며 같이 배우는 계기가 되면 좋겠습니다.

웹 개발 구현 범위 및 필요 지식

회사마다 그리고 직무마다 다르겠지만 제가 일하는 포지션에서는 특정 프로세스, 규약과 같이 팀원들과 함께 공유하며 일을 해야하는 상황이 많이 있습니다. 예를 들어 특정 분야의 데이터를 분석하기 위해서 먼저 데이터를 수집해야 하는데 만약 키워드 검색을 통해 데이터를 수집해야 한다면 키워드 사전을 미리 준비해 놓고 이를 참고하여 데이터를 수집하고 있습니다. 아마도 회사에서 가장 널리 사용하는 방식은 엑셀로 관리하는 방식일 것 같은데 이에 대한 단점은 너무나 명확하죠. 팀원들이 업데이트한 내용을 새롭게 취합하는 것도 힘들고, 다른 일을 하다보면 버전 관리하는 것도 쉽지 않고, 결국 제대로 관리하지 못하고 각자 서로 다른 키워드 사전을 사용하게 될 가능성이 높습니다.

따라서 이번 미니 프로젝트를 통해 DB를 저장하고 관리할 수 있는 웹 사이트를 만들어 보려고 합니다. 

웹 개발 구현 범위

  • 간단한 웹 페이지 1개를 통해 DB를 추가/수정/삭제하는 데이터베이스 관리 시스템을 구축해 보고자 합니다.
  • 데이터베이스가 변경(추가/수정/삭제)되면 누가, 언제, 무엇을 변경했는지 로그가 저장되는 기능을 추가하고자 합니다.

필요 지식

  • 프론트엔드
    - HTML : 웹 사이트의 정적인 정보(메뉴 이름과 같이 바뀌지 않는 정보)와 구조를 나타내기 위해 사용합니다.
    - CSS : 디자인 요소를 추가하기 위해 사용합니다. (CSS 고수준 기능을 쉽게 사용할 수 있는 Bootstrap 활용)
    - JavaScript : 웹 사이트를 동적으로 표현하기 위해 위해 사용합니다. (JavaScript를 쉽게 사용할 수 있는 JQuery 병행하여 사용)
       JavaScript의 Ajax 기능을 통해 데이터베이스 서버와 실시간 통신 기능을 구현할 계획입니다.
       여기서 실시간이란 의미는  웹 페이지가 새로고침 되지 않고, 데이터가 추가되는 것을 의미합니다.
  • 서버 사이드 언어 : Jinja2
  • 백엔드
    - 파이썬의 Flask 웹 개발 패키지를 통해 백엔드를 구성합니다.
    - 데이터베이스는 SQLAlchemy 패키지를 사용합니다.
  • DevOps
    - 서버는 pythonanywhere에서 무료로 대여하여 배포할 예정입니다. (웹 서버 Nginx)

제 포스팅을 보시는 분들은 아마도 위에 작성한 "필요 지식"의 내용을 잘 모르실 거라 생각이 듭니다. 그래도 걱정없이 앞으로 포스팅하며 제가 알고 있는 지식에 한해서는 최대한 잘 설명드릴 예정입니다.

저도 현재 공부하며 진행하고 있기에 최대한 빨리 프로젝트를 끝내려고 하지만 혹시나 지연될 수도 있고, 위에 작성한 구현 계획 기능들이 변경될 수 있습니다. 

디자인 초안

DB관리 시스템 - 디자인 초안

제가 개발하려고 하는 웹 사이트를 어떻게 개발하면 좋을까 대략적으로 고민하며, 위와 같이 가안의 디자인을 만들어 보았습니다.

위에 검색창에서 원하는 키워드를 검색하면 실시간으로 아래 테이블에서 검색이 되고, 해당 데이터를 클릭하면 데이터를 수정할 수 있도록 하는 팝업창이 뜨면 좋을 거라고 생각했습니다. 또한 누군가 자료를 업데이트하면 알림 뱃지가 나타나고, 아래에는 누가, 언제, 무엇을 업데이트했다는 추가의 테이블이 있으면 될 것 같습니다.

아직은 너무 초기 단계라 어떤 기능이 더 필요할지도 모르겠고, 분명 진행하면서 많은 난관을 만날 것 같네요! 저보다 더 뛰어난 블로거님들이 계시니 잘 해낼 수 있을 거라 믿고 있습니다!

그럼 조만간 실제 코드를 가지고 뵈도록 할게요~

다음 내용 이어서

2021.12.14 - [백엔드 & 프론트엔드 & DevOps] - [파이썬 활용 웹 개발] 플라스크(Flask) 개발 환경 설정 - DB 공유/관리 시스템②

 

[파이썬 활용 웹 개발] 플라스크(Flask) 개발 환경 설정 - DB 공유/관리 시스템②

들어가며 오늘은 본격적인 웹 개발을 위한 사전 준비로 가상환경과 패키지를 준비하는 것에 대해 포스팅하려고 합니다. 또한 간략히 만든 웹 페이지를 자체 서버를 통해 열어보는 것까지 본 포

doitgrow.com

 

반응형
Comments