SWjungle/#개발일지

[week00]정글 입성

장영 2023. 8. 14. 02:19

[미니프로젝트]


새로운 팀원들과 짧은 시간동안 입학시험 때 배운 기술들을 토대로, 3박 4일간 미니프로젝트를 진행했다. 주제는 자유지만 두가지 필수 기능이 포함되어 있다. 바로바로

  • 로그인기능- (JWT 인증방식으로 로구인을 구현하기)
  • Jinja2 템플릿 엔진을 이용한 서버사이드 렌더링 

하지만 둘다 해본적이 없어서 눈 앞이 캄캄했다. 

 

[서버 사이드 렌더링]


📌 서버에서 사용자에게 보여줄 페이지를 모두 미리 구성한 뒤 페이지를 렌더링을 하는 방식을 의미합니다.

[출처] https://medium.com/walmartglobaltech /the-benefits-of-server-side-rendering-over-client-side-rendering-5d07ff2cefe8

📌 동작과정 - 초기화면 수행

  1. 사용자가 브라우져에서 요청을 한다(최초 홈페이지 접속)
  2. 클라이언트에서는 이를 확인하고 서버로 요청을 합니다.
  3. 서버에서 데이터를 포함한 미리 구성된 정적 파일(HTML, CSS)을 클라이언트에게 전달합니다.
  4. 전달받은 클라이언트에서 스크립트가 수행하여 최종적인 화면을 브라우저에 그려 사용자에게 보여줍니다.

📌 동작과정 - 페이지 이동/ 동작 발생

 

  • 브라우저에서 클라이언트로 요청합니다
  • 요청한 정보를 다시 서버로 재 요청합니다.
    ( 페이지를 이동하는 경우 서버로 요청을 해야 합니다.)
  • 처리가 완료된 후 클라이언트에 응답합니다.
  • 클라이언트에서 브라우저로 처리된 사항을 그려줍니다.

[JWT  인증 방식 feat.쿠키/세션]


1. JWT (JSON Web Token)

  • JWT는 인증 정보를 안전하게 전송하기 위한 토큰 기반의 인증 방식입니다.
  • 정보를 JSON 형태로 인코딩하여 생성하며, 헤더, 페이로드, 서명으로 구성됩니다.
  • 클라이언트와 서버 간의 통신에서 사용되며, 서버는 토큰의 서명을 검증하여 정보의 무결성과 인증을 확인합니다.
  • JWT는 서버에 상태를 저장하지 않기 때문에 스케일링이 쉽고, 분산 아키텍처에 적합합니다.
  •  예를 들어, 사용자 로그인 시 JWT를 생성하고 이를 클라이언트에게 전달하여 인증 상태를 유지할 수 있습니다.

2. 쿠키 (Cookie)

  • 쿠키는 클라이언트의 웹 브라우저에 저장되는 작은 데이터 조각입니다.
  • 웹 사이트는 쿠키를 사용하여 사용자의 정보를 유지하고, 상태를 추적하며, 세션 관리에 활용합니다.
  • 클라이언트에서 생성되어 서버로 전송되며, 서버에서는 쿠키를 통해 클라이언트를 식별하고 상태를 유지합니다.
  • 보안과 개인 정보 보호를 위해 쿠키에는 유효기간, 도메인 등을 설정할 수 있습니다.

3. 세션 (Session)

  • 세션은 서버 측에서 사용자의 상태를 관리하는 방법 중 하나입니다.
  • 사용자가 웹 사이트에 접속하면 서버는 해당 사용자에게 고유한 세션 ID를 부여하고, 이를 통해 사용자의 상태 정보를 저장하고 관리합니다.
  • 서버에서 사용자 정보를 관리하므로 상대적으로 안전하며, 보안적인 측면에서 장점이 있습니다.
  • 하지만 세션을 관리하기 위해 서버 자원이 필요하며, 서버의 부하를 야기할 수 있습니다.

정리하자면, JWT는 클라이언트와 서버 간의 인증 정보를 안전하게 전달하기 위한 방법이고, 쿠키와 세션은 서버와 클리이언트 간의 상태관리방법으로 사용된다.

 


3박 4일동안 미니 프로젝트를 하면서 내가 정말 많이 부족하다는걸 느꼇다. 하지만 프로젝트를 하면서 협력과 공유가 중요하다는 걸 느꼇다. 부족함을 인지하였으니 경험과 노력을 통해 조심씩 성장하며 능력을 키워나가야겠다...