본문 바로가기

파이썬 웹 서비스 만들기20

9. 데이터를 안전하게 주고 받기 - 9.1. 파이썬 itsdangerous 패키지 이어지는 큰 주제로 비밀번호 재설정 기능을 다룰 것이다. 이 비밀번호 재설정 기능은 다양한 요소들로 구성되기 때문에 그 구성 요소들을 먼저 살펴보는 것이 기능의 구조와 동작 이해에 도움이 된다. 가장 먼저 암호화(encryption)와 복호화(decryption)에 대해 살펴보자. 비밀번호 재설정을 위해 비밀 번호를 바꾸려는 사용자가 누구인지, 이 사용자에게 제공하는 비밀번호 재설정 페이지의 주소는 어떻게 되는지 인터넷이라는 공개된 환경 아래서 데이터를 주고 받을 필요가 있다. 이들 정보들은 사용자와 관련된 아주 중요한 정보들이기 때문에 평문(plain text)으로 주고 받는 것은 보안 위험이 따른다. 따라서 중요한 정보들은 암호화와 복호화를 통해 주고 받는 것이 필수적이다. 암호화는 평문 메시지를 약.. 2020. 11. 28.
8. 컨텐츠를 여러 페이지로 나누어 보여주기 이전 포스팅들에서 글을 쓰고 관리하는 기능에 대해 살펴보고 파이썬을 이용해서 웹 서비스로 만들어 보았다. 웹 서버를 동작시키고 글을 9~10개 정도 추가해보자. 포스팅을 통해 새로운 글들이 계속 추가되면 나중에 게시한 글을 보기 위해 해야하는 화면 스크롤이 길어진다(스크롤 압박이 발생한다). 이런 경우 알맞은 수의 글들을 한 화면에 보여주고, 다음 페이지에 이어지는 글들을 게시할 필요가 생긴다. 예를 들어 한 페이지에 3개씩 글을 보여주고 여러 페이지로 나누어 화면을 구성하는 것이다. 이런 기능을 어디서부터 만들면 좋을까? 다행히도 우리가 사용하는 데이터베이스(DB) ORM(Object Related Model)인 SQLAlchemy에서(해당 주제에 관한 자세한 내용을 '파이썬 웹 프로그래밍 기본: 7... 2020. 11. 26.
7. 컨텐츠 포스팅 및 관리기능 - 7.3. 컨텐츠(글) 삭제기능 이전 포스팅 7.2에서 포스팅 수정 기능에 대해 살펴보고 플라스크를 이용해서 기능을 만들어보았다. 글을 수정하는 기능과 더불어 글을 삭제하는 기능도 필요하다. 잊을 권리와 잋혀질 권리도 반드시 필요하다고 생각한다. 본격적으로 코딩을 시작하기 전에 글을 삭제하는 과정을 어떻게 진행하면 될 지 생각해보자. 글 제목을 클릭하면 글 관리 페이지로 이동하고 이 관리 페이지에 '삭제하기' 버튼을 추가하는 것이 첫 단계가 될 것 같다. 글 제목을 클릭해서 글 관리 페이지로 이동한다. ↓ 삭제하기 버튼을 클릭한다 ↓ 글을 삭제한다. 하지만 삭제한 글은 복구할 수 없기 때문에 삭제 전에 한 번 더 확인하는 단계를 거치는게 좋을 것 같다. 아래와 같이 삭제 확인 페이지를 추가해서 실제 글을 삭제하기 전에 확인하도록 해보자.. 2020. 11. 17.
7. 컨텐츠 포스팅 및 관리기능 - 7.2. 컨텐츠(글) 수정기능 블로그에 포스팅한 글, SNS에 쓴 글 등은 수정하거나 삭제할 필요가 생긴다. 지난 포스팅(7.1)에서 글 쓰기 기능을 다루었으니 이번 포스팅에서는 글을 수정하거나 삭제할 수 있는 기능을 만들어보자. 7.2.1. 컨텐츠 수정 먼저 글을 수정하는 과정을 생각하고 정리해보자. DB에서 글을 읽어온다. ↓ 읽어온 글을 페이지에 수정 가능한 형태로 보여준다. ↓ 수정된 글을 다시 DB에 저장한다. 웹 서비스로 구현하기 위해 위 과정을 모델/폼-뷰-로직(MVC 또는 MVL) 형태로 재구성 해보자. ● 모델/폼: DB에서 글을 읽어올 때 데이터의 틀인 모델이 필요하고, 페이지를 통해 수정된 내용을 입력받을 때 입력 틀인 폼이 필요하다. 하지만 수정의 대상은 저장되어 있는 글이다. 따라서 글을 생성할 때 정의했었던 .. 2020. 11. 11.