2024/08/21 3

4. 쿠키와 세션이란 무엇일까?

쿠키와 세션쿠키와 세션 모두 HTTP에 상태 정보를 유지(Stateful)하기 위해 사용된다. 즉, 쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 된다.쿠키클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일이다. 클라이언트인 웹 브라우저에 저장된 '쿠키'를 확인해보자 크롬 브라우저 기준으로 '개발자도구'를 열어보자구성요소 Name(이름) : 쿠키를 구별하는 데 사용되는 키 (중복될 수 없음) Value(값) : 쿠키의 값 Domain(도메인) : 쿠키가 저장된 도메인 Path(경로) : 쿠키가 사용되는 경로 Expires(만료기한) : 쿠키의 만료기한(만료기한 지나면 삭제된다)세션서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용된다. 서버에서 클라이언트 별로..

3. 인증과 인가란 무엇일까?

인증과 인가인증(Authentication)인증은 해당 유저가 실제 유저인지 인증하는 개념이다. 스마트폰에 지문인식, 이용하는 사이트에 로그인 등과 같이, 실제 그 유저가 맞는지를 확인하는 절차이다.인가(Authorization)인가는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념이다.  예를 들어 관리자 페이지-관리자 권한 같은 것들을 들 수 있다.우리가 자주 하는 로그인은 인증을 할 때(비밀번호를 입력하고 제출할 때)이고 회원/비회원 여부에 따라 다른 권한을 받는 것이 인가이다."웹 애플리케이션 인증"은 어떠한 특수성이 있을까?일반적으로 서버-클라이언트 구조로 되어있고, 실제로 이 두가지 요소는 아주 멀리 떨어져 있다. 그리고 Http라는 프로토콜을 이용하여 통신하는데, 그 통신은 ..

2. 같은 타입의 Bean이 2개라면?

같은 타입 Bean 등록food 패키지를 만들고 Food 인터페이스와 Chicken 클래스, Pizza 클래스를 만든다. Food 인터페이스에 eat() 메서드를 선언한다. Chicken 클래스와 Pizza 클래스에 각각 코드를 작성한다. 모두 Food 인터페이스를 implements 했다. 즉, Chicken과 Pizza는 같은 인터페이스의 구현체 클래스이다.  그리고 @Component로 Bean으로 등록되었다는것을 알 수 있다.테스트 해보기Test 폴더에 BeanTest 파일을 만든다.먼저 이렇게 코드를 작성한다. 그럼 Food를 Autowired 할 수 없다고 하는데 그 이유는 Food 타입으로 등록된 Bean이 2개 이상이기 때문이다. 즉, food에 Bean을 주입을 해줘야 하는데 같은타입의 ..