SSR(Server-side rendering)
서버에서 페이지의 내용을 그려 브라우저로 던져주기 때문에 검색 엔진 최적화와 빠른 페이지 렌더링이 큰 장점이고, 이러한 장점 덕분에 사용자 입장에서 화면이 빨리 로딩이 된다.
CSR(Client-side rendering)
자바스크립트에 데이터를 포함해서 보낸 후, 클라이언트 쪽에서 HTML 을 완성하는 방법이다.
서버에서 데이터베이스에 사용자의 회원가입 정보(아이디, 비밀번호)를 저장할 때 보안을 위해 사용자의 비밀번호를 해시화한다.
username_receive = request.form['username_give']
password_receive = request.form['password_give']
pw_hash = hashlib.sha256(password_receive.encode('utf-8')).hexdigest()
JWT에 대해서 공부. 세션/쿠키는 다음에..
서버에 요청을 보내는 작업은 HTTP 메세지를 보내는 것이다.
HTTP 메세지의 구조는 일반적으로 헤더와 바디 두가지로 구성되며, 공백은 헤더와 바디를 구분짓는 역할을 합니다.
HTTP 기본인증방법들 중 JWT에 대해서 알아보려고한다.
JWT(JSON Web Token) 란 인증에 필요한 정보들을 암호화시킨 토큰을 의미한다.
JWT 기반 인증은 쿠키/세션 방식과 유사하게 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별합니다.
JWT는 3가지 정보(Header, Payload, Signature)의 조합으로 구성되어 있습니다.
1. Header
2. payload
payload = {
'id': username_receive,
'exp': datetime.utcnow() + timedelta(seconds=60 * 60 * 24) # 로그인 24시간 유지
}
3. signiture
인증방법
JWT의 장단점
- 장점
- 세션/쿠키와 다르게 별도의 저장소가 필요없다.(서버자원절약)
- 데이터 위변조를 막을 수 있다.
- 확장성이 우수하다. 토큰 기반으로 하는 다른 인증 시스템에 접근이 가능합니다.
- 디버깅 및 관리가 용이하다.
- 단점
- 쿠키/세션과 다르게 JWT는 토큰의 길이가 길어, 인증 요청이 많아질수록 네트워크 부하가 심해진다.
- 노출 가능성으로 인해 저장할 수 있는 정보가 제한적이다.
셀레니움 이 링크에 정리
c++ substr() 함수.
자주 쓰지 않아서 정리해 보려고 한다.
substr() 은 부분적으로 문자열을 추출하려고 할 때 쓰인다.
ex)
string a = "abcdefg";
string b = a.substr(3, 5);
라는 것은 a라는 string 변수에 index 값 3 부터 +5 까지 출력한다는 뜻이다.
알고리즘을 풀던 중 팀원분께서 이 부분을 집고 넘어가주셨다. 감삼당
== 와 equals()
정리하자면
==는 주소값 비교, equals()는 값 비교
알고리즘을 꾸준히 공부하면서 많이 부딪혀가며 함수들을 잘 활용해 봐야겠다.