1. Cookie의 MaxAge, Expires 옵션이 무엇인지, 설정하지 않으면 어떻게 되는지 설명해주세요.
이때 쿠키는 Max-Age와 Expires 옵션을 통해 쿠키의 만료 시간을 설정할 수 있습니다.
- Max-Age: 쿠키가 저장되는 시간(초)을 지정하는 옵션입니다. 예를 들어, Max-Age가 3600으로 설정된 쿠키는 1시간 후에 만료됩니다.
- Expires: 쿠키가 만료되는 날짜를 GMT(Greenwich Mean Time)로 지정하는 옵션입니다. Expires는 Max-Age와 달리 쿠키의 만료 시간을 절대 시간으로 지정합니다.
만약 Max-Age나 Expires 옵션을 설정하지 않으면, 클라이언트가 종료되거나 웹 브라우저가 닫힐 때까지 쿠키가 유지됩니다. 사용자가 재로그인을 하지 않고 브라우저를 닫았을 때도 로그인 상태를 유지해야 하는 경우에는 쿠키의 만료 시간을 설정해주어야 합니다.
2. 순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여설명해주세요.
순수 함수(Pure Function)는 입력값이 같으면 항상 같은 출력값을 반환하며, 외부에 영향을 미치지 않는 함수를 말합니다.
순수 함수는 불변성(Immutability)과 밀접한 관련이 있습니다. 불변성은 한 번 생성된 값이나 객체를 변경할 수 없음을 의미합니다. 순수 함수는 입력 값이 변경되지 않기 때문에, 함수가 호출될 때마다 같은 결과를 반환하므로 불변성을 유지할 수 있습니다.
또한, 순수 함수는 사이드 이펙트(Side Effect)가 없기 때문에 예측할 수 있는 동작을 보장합니다. 사이드 이펙트란 함수가 외부 상태를 변경하거나 입출력 작업을 수행하는 것을 말합니다. 이러한 사이드 이펙트가 있는 함수는 입력값과 반환값만으로는 함수의 결과를 예측하기 어려우므로 코드의 복잡도가 높아집니다.
따라서 순수 함수를 사용하면 불변성을 유지하고, 예측 가능한 동작을 보장할 수 있으며, 코드의 복잡도를 줄일 수 있습니다.