더북(TheBook)

물론 실제 배포용 서버에서는 세션을 위와 같이 변수에 저장하지 않습니다. 서버가 멈추거나 재시작되면 메모리에 저장된 변수가 초기화되기 때문입니다. 또한, 서버의 메모리가 부족하면 세션을 저장하지 못하는 문제도 생깁니다. 그래서 보통은 데이터베이스에 넣어둡니다.

서비스를 새로 만들 때마다 쿠키와 세션을 직접 구현할 수는 없습니다. 게다가 지금 코드로는 쿠키를 악용한 여러 가지 위협을 방어하지도 못합니다. 위의 방식 역시 세션 아이디 값이 공개되어 있어 누출되면 다른 사람이 사용할 수 있습니다. 따라서 절대로 위의 코드를 실제 서비스에 사용해서는 안 됩니다. 위의 코드는 여러분에게 개념을 설명하기 위한 코드이며, 보안상 매우 취약합니다.

다른 사람들이 만든 검증된 코드를 사용하는 것이 좋습니다. 다른 사람의 코드(모듈)를 사용하는 방법은 5장에서 배웁니다. 또 6장에서 세션을 처리하는 모듈을 사용해 제대로 된 세션 기능을 도입해보겠습니다.

이제 쿠키와 세션까지 구현해보았습니다. 아직까지는 페이지가 하나밖에 없어 조금 허전합니다. 다른 페이지들도 만들어보면서 라우팅의 개념에 대해 알아보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.