CS

면접 질문

challnum 2022. 9. 5. 10:06

1. XSS, CSRF에 대해 알아보기

사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다.

XSS공격과 CSRF는 사용자(피해자)의 브라우저를 목표로 하는 비슷한 공격이지만

XSS는 사이트변조나 백도어를 통해 클라이언트에 대한 악성공격을 하고,

인증된 세션이 없어도 공격을 할 수 있으며, 자바 스크립트를 실행 시키는 공격.

 

CSRF는 요청을 위조하여 사용자의 권한을 이용해 서버에 대한 악성공격을 하고,

인증된 세션을 악용하며, 특정한 행동을 실행 시키는 공격이라는 점에서

두가지 공격의 차이가 있다.

https://lucete1230-cyberpolice.tistory.com/23

 
2. Transactional 안에서 entitiy manager가 하는 역할?
 
DB커넥션 DB와 연결 된 부분을 물고 다니는 역활을 하며 Transactional을 commit 하기 전의 모든 쿼리들을 모아두는 영속성 컨텍스트의 값이 들어가 있는 비휘발성 저장 공간이다.

https://perfectacle.github.io/2018/01/14/jpa-entity-manager-factory/

3. jwt의 로그인 구현시의 장점은?
 
Http 리퀘스트 헤더에 JSON 토큰을 넣은 후 서버는 별도의 인증 과정없이 헤더에 포함되어 있는 JWT 정보를 통해 인증하며 모든 정보는 토큰 자체에 포함하기에 인증 저장소가 필요 없고 확장성이 좋다.

http://www.opennaru.com/opennaru-blog/jwt-json-web-token/

4. DTO와 Domain 분리 이유
 
분리해야 하는 근본적인 이유는 관심사의 분리때문이다. DTO의 경우 데이터를 담고, 다른 계층 또는 다른 컴포턴트들로 데이터를 넘겨주는 자료구조이므로 어떠한 기능이나 동작이 없어야 하고 Domain또는 entity같은 경우 비즈니스 로직을 담는 비지니스 도메인 영역의 일부이므로 전달에 사용하는 객체가 아니기에 분리해야 한다. API스펙이 변경 될 수도 있기에 DTO로 분리하는 것이 옳다.
 
5. Array List 와 LinkedList를 언제 사용해야 하는지?
LinkedList : 값을 추가할 때 사용 크기의 제한이 없기 때문에 삽입, 삭제가 빈번하게 발생할 때 사용

Array List : 모든 값들을 들고 오거나 값을 조회시 사용 무작위 접근에 용이

https://www.nextree.co.kr/p6506/

6. 스프링의 AOP란?
 

결론적으로 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지다.

https://devlog-wjdrbs96.tistory.com/398

7. Rest Controller와 그냥 Controller 차이
 

@Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 반환하는 것이고,

@RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아 전송합니다.

'CS' 카테고리의 다른 글

면접 질문  (0) 2022.09.07
면접 질문  (0) 2022.09.06
면접 질문  (0) 2022.09.02
ORM, JPA, Spring Data JPA  (1) 2022.09.01
Controller, Service, Repository  (0) 2022.09.01