[IT] 기술 면접 예상 질문

최연·2023년 1월 16일
0

Front-End

Q. 동기-비동기 차이를 설명 할 수 있습니까?

데이터 처리 모델이란? 데이터를 받는 방식

데이터 처리 모델 두 가지
-> 동기식 처리 모델
-> 비동기식 처리 모델

동기식 데이터 추구하는 행위, 목적이 동시에 이루어짐
요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 합니다.

비동기식 추구하는 행위, 목적이 다를 수도 있으며, 동시에 안이루어집니다.
서버에게 데이터를 요청한 후 요청에 따른 응답 대기 X
서버에 다른 요청사항을 보내도 상관 X
다른 외부 활동을 수행 가능 O

Q. Cross-Site Scripting (XSS)을 설명 할 수 있습니까? 그리고 해결 방법을 설명 할 수 있습니까?

참고 : https://noirstar.tistory.com/266
웹 애플리케이션에서 일어나는 취약점으로 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법이다.
악의적인 사용자가 C&C 서버로 리다이렉션 하기 위해 리다이렉션 스크립트를 주입하여 중간 경유지로 활용하기도 하고, 사용자의 쿠키를 탈취하여 세션 하이재킹(Session Hijacking) 공격을 수행하기도 합니다.

해결 방안

1. 입력값 검증
-> XSS Cheat Sheet 에 대한 필터 목록을 만들어 모든 Cheat Sheet에 대한 대응이 가능하도록 하여야 합니다. XSS에 대한 필터링을 적용한 뒤 직접 테스트 하여 스크립트가 실행되는지 모의해킹 해보는 것도 좋은 방법입니다.
2. XSS 방어 라이브러리 , 브라우저 확장앱 사용
3. 웹 방화벽 사용

Q. GET과 POST 전송 방식과 차이점을 설명할 수 있습니까?

GET

Get = "가져오다"
정보를 얻기 위해 책을 빌려 가져오는(GET)상황과 유사하게 GET은 어떠한 정보를 가져와서 조회하기 위해서 사용되는 방식

GET 특징

  1. URL에 변수(데이터)를 포함시켜 요청한다.
  2. 데이터를 Header(헤더)에 포함하여 전송한다.
  3. URL에 데이터가 노출되어 보안에 취약하다.
  4. 캐싱할 수 있다.

POST

POST = "부치다", "제출하다"
데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식

POST 특징

  1. URL에 변수(데이터)를 노출하지 않고 요청한다.
  2. 데이터를 Body(바디)에 포함시킨다.
  3. URL에 데이터가 노출되지 않아서 기본 보안은 되어있다.
  4. 캐싱할 수 없다.

JAVA의 특징을 설명 할 수 있습니까?

참고 : https://s-bug.tistory.com/57

1. 객체 지향 언어

2. 인터프리터 언어

자바는 컴파일 언어인 동시에 인터프리터 언어인데, 텍스트 소스를 컴파일하여 클래스 파일로 만든 다음 자바 런타임이 클래스 파일을 인터프리트 하면서 실행된다.

인터프리터는 실행 시마다 소스 코드를 한 줄씩 기계어로 번역하는 방식이기 때문에 실행 속도는 정적 컴파일 언어

3. 독립적인 플랫폼

어떠한 운영체제라도 독립적으로 자바언어를 사용 할 수 있다.

4. 자동 메모리 관리

메모리를 자바가 직접 관리한다.
객체 생성시 자동적으로 메모리 영역을 찾아서 할당. 또한 사용하지 않는 객체를 제거시켜 준다.

5. 멀티 쓰레딩 지원

하나의 프로그램 단위가 동일한 쓰레드를 동시에 수행 할 수 있다.
자바는 API를 사용하기 떄문에 쉽게 구현 가능하다

6. 동적

객체간의 상호 작용을 정의하기 때문에 필요하지 않는 객체는 생성되지 않고, 필요한 객체만 생성하여 사용한다.
오류가 발생되면 오류의 클래스만 수정하면 되므로 전체를 수정할 필요가 없다.

7. 안전하고 강력하다

모든 메모리 접근을 자바가 관리하기에 시스템 붕괴 우려가 없다.

Q. Cookie를 설명 할 수 있습니까?

참고 : https://kobrekim.com
웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일입니다.
쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장합니다.

사용이유

최적화된 웹 환경을 제공하기 위해 신뢰성이 높은 주요 공급업체의 쿠키를 사용하고 있습니다.

Back-End

Q.WEB Server 와 WAS 서버를 설명 할 수 있습니까?

참고 : https://gmlwjd9405.github.io
WEB Server란?
웹 브라우저 클라이언트로부터 HTTP 요청 받음 ->
정적 컨텐츠(.html .jpeg .css 등) 제공하는 컴퓨터 프로그램.

HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스 하는 기능을 담당한다.
요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다.
-> 정적인 컨텐츠 제공
-> WAS를 거치지 않고 바로 자원 제공

WAS Server란?
HTTP 프로토콜을 기반 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청 ->
서비스 기능을 담당
DB 조회, 로직 처리 요구 -> 동적 컨텐츠 제공을 위한 Application Server
Web container OR Servlet Container라고도 불린다.
-> Container란 jsp, Servlet을 실행시킬 수 있는 소프트웨어를 말한다.

  1. Web Server 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시되었다.
  2. 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.
    주로 DB 서버와 같이 수행된다.
    3. 현재는 WAS가 가지고 있는 Web Server도 정적인 컨텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다.

Q. Sesstion을 설명 할 수 있습니까?

참고 : https://interconnection.tistory.com/74
세션은 쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리합니다. 서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지합니다.

profile
프로그래머

0개의 댓글

관련 채용 정보