본문 바로가기

Hanghae99

221120 WIL 항해99 1주차 회고

1주차에 배운것들

1. 미니프로젝트 마무리

0) JWT 인증방식을 이용한 회원가입/로그인 기능의 놀이공원 비유

  • 회원가입 = 표를 사는것
  • 로그인 = 표를 손목에 채우는것
  • JWT token = 표
  • 로그인 유지 = 표를 사용할 수 있는 시간

1) 로그인 기능

  • JWT 인증 방식이란?
    • JSON Web Token의 줄임말, JSON을 사용하여 정보를 전달하는 웹표준
    • 로그인을 하면 서버에서 회원에게 발급되는 토큰을 브라우저에 넘겨주고 쿠키 형식으로 저장된다.
    • 참고 블로그: https://tansfil.tistory.com/58?category=255594 
 

쉽게 알아보는 서버 인증 1편(세션/쿠키 , JWT)

앱 개발을 처음 배우게 됐을 때, 각종 화면을 디자인해보면서 프론트엔드 개발에 큰 흥미가 생겼습니다. 한때 프론트엔드 개발자를 꿈꾸기도 했었죠(현실은 ...) 그러나 서버와 통신을 처음 배웠

tansfil.tistory.com

  • 로그인 시퀀스
    1. id/pw 입력
    2. pw를 'sha256 단방향 암호화' 방식으로 암호화 한후 같은 정보를 db에서 찾음
    3. -1 회원정보가 있는 아이디와 토큰 만료시간을 저장한 토큰을 발급/ -2 회원 정보가 없는 경우 메세지 전송
    4. 토큰을 쿠키에 저장하여 만료시간 까지 유지함
    5. 로그아웃시에 해당 토큰을 삭제

2) 회원가입기능

  • 회원가입 시퀀스
    1. 아이디/비밀번호 를 입력하고 회원가입
    2. 아이디와 'sha256 단방향 암호화' 방식으로 암호화된 비밀번호가 db에 저장됨
  • sha256 단방향 암호화 방식이란?
    비밀번호를 개발자도 알 수 없도록 암호화하여 그 값을 저장할때 사용하는 방식이다. 단방향이어서 암호화된 값을 반대로 해석할 수 없다.

2. Jinja2를 이용한 서버사이드 렌더링

  • JInja2란?
    Jinja2는 플라스크에서 제공하는 템플릿 엔진이다.
  • 템플릿 엔진이란?
    웹 템플릿 엔진은 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어
    따라서, 특정한 형식의 웹페이지틀과 데이터를 합쳐져서 제공하도록 하는 것이라고 이해하면 된다.
  • Jinja2의 장점
    • Jinja2는 HTML을 파이썬 코드로 제어한다는 점에서 매우 유용하다.
    • HTML 내에서 for문, if문부터 변수 제어 등 파이썬 기능을 다 사용 가능하다.
    • 변수출력 기능 {{변수명}} : 서버에서 render_template("000.html", 변수명=000)으로 해당 html을 렌더링한다고 하자. 그럼 html 파일에서는 해당 변수를 {{ 변수 }} 와 같이 더블 중괄호 안에 집어넣음으로써 서버에서 사용하던 변수를 클라이언트에서도 편하게 사용할 수 있다! 
    • render_template() 이란?
      서버 프로그램과 Jinja 템플릿 엔진을 사용한 html 파일을 통합하는 역할을 하는 메소드
    • 프로그램 기능 {% 제어문 %} : Jinja2의 핵심은 html에서 파이썬 코드를 짤 수 있다는 점이다. html에서 반복적으로 사용하거나 조건에 따라 기능하는 코드를 만들 때 파이썬 코드를 짤 수 있다
    • 예제
<body>
	<div class="container">
    	<p> 사용자: {{ userName }} </p>
        <p> 3번째 상품: {{goodsList[2]}} </p>
        <p> 전체 상품 목록 </p>
        <ul>
        	{% for goods in goodsList %}
            <li>{{goods}}</li>
            {% endfor %}
        </ul>
    </div>
<body>
  • 서버사이드 렌더링 (SSR)
    • 렌더링이란? 
      코드로 작성된 내용을 브라우저에서 웹페이지에 표시해 주는 것
    • 서버 사이드 렌더링(SSR)은서버 단에서 웹페이지를 생성하고 바로 브라우저에 띄우는 방식을 말한다. 
    • 장점
      • 검색엔진 최적화(SEO)기능: 서버사이드 렌더링으로 얻을 수 있는 가장 큰 장점!
      • 성능 개선: 첫 렌더링된 html을 클라이언트에게 전달해주니 초기 로딩속도를 많이 줄이기 가능.
    • 단점
      • 프로젝트의 복잡도 증가
      • 페이지 이동시 화면이 깜빡임 (새 페이지로 이동하는 것이니)
      • 서버 렌더링에 따른 부하 발생 (매번 서버 연산 돌려야 하니까)

4. 총평

역시나 쉽지는 않다. 그래도 새로운 것을 배우는 것은 재미있다. 프로젝트 내에서 크게 기여한 바는 없었던 것 같다. 내가 할수 있는 것을 찾아서 하려고 했지만 핵심적인 기능 구현에서는 할 수 있는 것이 없었다. 멱살잡혀 끌려가는 느낌이지만 그래도 끌려가는 것도 가는 것 아니겠는가.. 문제가 많다. 하지만 행동하기에 문제에 직면하는 것이다. 문제-해결의 반복이 성장이라는 사실을 잊지 말자.

 

 

 

'Hanghae99' 카테고리의 다른 글

221122 TIL 알고리즘 문제풀이 3  (0) 2022.11.22
221121 TIL 알고리즘 문제풀이 2  (0) 2022.11.22
221119 JS 알고리즘 문제풀이 1  (0) 2022.11.20
221118 TIL Javascript 기본  (0) 2022.11.19
221115 TIL details, main page 작성  (0) 2022.11.15