[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (4) (2021.3.4)
CSS 오류
- 서버를 구동했을 때 CSS가 적용이 안되는 오류
- CSS 파일 자체는 불러오나, 개발자가 저장한 코드가 적용이 되어있지 않은 상태
이유
- 웹 서버에서 캐시에 올려놓고 새로운 파일로 교체를 안 해주기 때문이다.
해결책
- 브라우저에서 캐시를 지우기
- css파일이름을 바꾸기
<link href = "../static/style.css?ver0.1" rel = "stylesheet">
위와같이 CSS에 변경사항이 생기면 ver을 수정하면 적용된다.
회원가입 기능
해쉬 함수
- 입력 데이터를 랜덤하게 암호화
- 항상 똑같은 길이의 암호화된 값을 뱉어낸다.
- 결과 값으로 역으로 유추 불가
- 패스워드에 사용
일어나는 일
- 아이디, 패스워드 등을 받아 서버에 넘긴다.
- 패스워드는 해쉬함수를 통해 암호화
- DB에 저장
로그인 기능
JWT
- JSON Web Token
- 사용자 정보 안정성있게 전달
- 한 번 발급받으면 로그인한 것이 인증된다.
- 로그인은 만료시간이 있다.
일어나는 일
- 사용자가 로그인 정보를 입력
- 패스워드를 해쉬를 통해 암호화
- 입력된 정보가 DB에 있는지 조회
- 회원인 경우,(DB에 있는 경우) JWT토큰을 클라이언트에게 전달
- 로그인 한 사람의 아이디
- 로그인이 유효한 시간
- 암호화를 해야 한다.
- 서버만의 특별 키로 암호화
- 로그인 성공 메시지를 받으면 건네받은 토큰틀 쿠키로 저장하여 만료 전까지 갖고있으면서, API요청을 보낼 때마다 회원임을 확인 받는다.
- 로그아웃 시 해당 토큰 삭제
쿠키
- 브라우저에 저장된 정보
- 로그인에 대한 인증 정보
- 클라이언트가 서버로 정보를 보낼 때 항상 같이 보낸다.
DOM 요소에 접근할 수 없을 때
브라우저는 HTML을 읽다가 script를 만나면 먼저 실행한다. 이때, DOM 생성을 멈춘다. 이는 src 속성이 있는 script를 만났을 때도 마찬가지이다.
여기서 발생하는 문제점 두가지
스크립트는 스크립트 아래에 있는 DOM 요소에 접근할 수 없다. 따라서, DOM 요소에 핸들러를 추가하는 것과 같은 여러 행위가 불가능
페이지 위쪽에 용량이 큰 스크립트가 있는 경우 스크립트가 페이지를 막는다. 즉, 페이지에 접속하는 사용자들은 스크립트를 다운받고 실행할 때까지 스크립트 아래쪽 페이지를 볼 수 없다.
이러한 문제는 스크립트 페이지를 /body위에 바로 둠으로 해결할 수 있으나, 완벽한 방법은 아니다.
defer
<script defer src="#"></script>
defer 속성이 있는 스크립트는 브라우저가 백그라운드에서 다운로드한다. 그러므로 HTML 파싱이 멈추지 않고 defer 스크립트는 페이지 구성이 끝날 때까지 지연된다.
'programming study > 항해99 커리큘럼' 카테고리의 다른 글
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (2) (2021.3.6) (0) | 2021.03.06 |
---|---|
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (1) (2021.3.5) (0) | 2021.03.05 |
[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (3) (2021.3.3) (0) | 2021.03.04 |
[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (2) (2021.3.2) (0) | 2021.03.04 |
[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (1) (2021.3.1) (0) | 2021.03.02 |