기술면접준비

sky·2021년 1월 20일
0

📚 자료구조

  1. 좋은 프로그램이란?

    사용자 입장에서는 운영 및 관리하기 쉽도록 만들어져 업무 효율성이 극대화되도록 구현된 프로그램이며,
    프로그래머 입장으로는 읽기 쉽고 이해하기 쉬워야 하며,

  2. Call by Reference, Call by Value

    Call by Reference → 매개변수의 원래 주소에 값을 저장하는 방식. 클래스 객체를 인수로 전달한 경우를 뜻함
    Call by Value → 인수로 기본 데이터형을 사용하여 주어진 값을 복사 후 처리하는 방식. 메소드 내의 처리 결과는 메소드 밖의 변수에 영항을 미치지 않는다.

  3. Static을 설명해보세요.

    클래스가 로딩될 때 메모리 공간을 할당하는데 처음 설정된 메모리 공간이 변하지 않음을 의미한다.
    객체를 아무리 많이 만들어도 해당 변수는 하나만 존재한다.

  4. 클래스, 객체, 인스턴스의 차이점

    객체 : 주체가 실생활에서 파악할 수 있는 모든 사물을 의미
    클래스 : 객체의 설계도를 코드로 나타낸 것
    인스턴스 : 객체를 생성하여 JVM이 관리하는 메모리에 전재된 것
    객체를 단순화 시켜 설계한 코드가 클래스이며, 코드화된 객체를 생성하여 메모리에 적재한 것을 인스턴스라고 한다.

  5. Framework

    특정 형태의 소프트웨어 문제를 해결하기 위해 상호협력하는 클래스 프레임과 인터페이스 프레임의 집합
    개발시간을 줄일 수 있고 오류로부터 자유로울 수 있으나, 프레임워크에 너무 의존하면 개발능력이 떨어질 수도 있다.

  6. JAVA와 C의 차이점

    C언어
    하드웨어를 직접 제어할 수 있는 언어며, 선풍기 등 속도로르 요하는 프로그램 등에 유용한 프로그래밍언어다.
    절자지향 언어기 때문에 순사적으로 읽어가는 방식을 사용한다.

    JAVA
    C언어를 모델로 개발되었지만, 인터넷 기반을 상정하고 만들었기에 네트워크용 프로그래밍언어다.
    객체지향언어여서 설계적인 측면이 강조된 코딩방식이다.(클래스, 객체, 상속, 추상화)

  7. Stack, Queue

    Stack
    LIFO(Last In First Out) 후입선출 구조 예시) JAVA 메인호출-다른 함수-메인 작동
    데이터를 넣는 걸 push, 꺼내는 걸 pop이라 함
    함수의 호출과 복귀 순서는 스택의 구조를 응용하여 관리

    Queue
    FIFO(First In First Out) 선입선출 구조 예시) 매표소
    데이터 넣는 걸 enQueue, 꺼내는 걸 deQueue라고 한다.
    Linear Queue(선형 큐)는 메모리 재사용이 불가능한 문제점을 보완하여 Circular Queue(원형 큐)가 나옴

  8. 객체지향프로그래밍이란?

    캡슐화, 다형성, 상속을 이용하여 코드 재사용을 증가시키고, 유지보수를 감소시키는 프로그래밍. 객체들을 연결시켜 프로그래밍하는 것을 뜻한다.

  9. hashmap, hashtable, hashset을 설명해보세요.

    hashmap
    Key와 Value를 이용하여 데이터를 관리한다
    Map인터페이스를 구현하며, 동기화가 가능하다.

    hashtable
    Key와 Value를 이용하여 데이터를 관리한다
    Map인터페이스를 구현하며, 동기화가 불가능하다.

    hashset
    String 객체만 저장할 수 있으며, HashMap에 비해 느리다. 중복 저장이 안 된다.

  10. 추상클래스와 인터페이스를 설명해보세요. 왜 굳이 추상클래스를 쓰나요?

    추상클래스
    한 개 이상의 추상메소드를 가지고 있는 클래스이다.
    인스턴스의 생성이 불가능하며, 해당 클래스를 상속하여 추상메소드를 구현해야만 사용이 가능하다. 단일상속만 가능하다.

    인터페이스
    메소드에 대한 선언부와 상수만 존재한다.
    상속받은 클래스는 인터페이스에 있는 모든 메소드를 구현해야 한다. 다중상속이 가능하다.

  11. 비동기식, 동기식 설명해보세요.

    동기식 일처리 방식 : 순차적으로 일을 스스로 끝내나가는 방식
    비동기식 일처리 방식 : 해야 할 일을 위임하고 기다리는 방식

  12. inner join 과 outer join 차이가 뭔가요?

    inner join : join이라고 하며, 두 테이블 간의 조인조건을 만족하는 행들만 포함시킨다. 그렇지 않은 행들은 제외한다.

    outer join : 동일 조건에서 조인 조건을 만족하는 값이 없는 행들을 조회하기 위해 Outer Join을 사용한다.

  13. <jsp:include>와 <%include%>의 차이는?

    <jsp:include>
    출력결과(코드)만 받아오며, 컴파일 이후 실행 중에 값이 들어간다.

    <%include%>
    소스코드와 같이 받아오며, 소스 실행 전 포함되므로 변수를 같이 사용할 수 있따.
    동적 페이지 할당이 불가능하며, jsp파일이 자바문서에 삽입되어 컴파일된다.

  14. RuntimeException이란?

    프로그램 실행 중에 예외상황이 생겼을 때 발생한다.
    try : 예외처리 발생 가능성이 있는 부분
    catch : 예외처리가 발생하면 실행하는 부분
    finally : 무조건 실행되는 부분
    throw : 강제처리, throws : 다른 메소드에 책임전가

  15. Servlet LifeCycle 순서를 설명해보세요.

    1. 사용자로부터 요청이 들어오면 컨테이너로 요청정보가 전해진다.
    2. 컨테이너는 서블릿 맵핑정보를 참조하여 해당 서블릿을 호출한다.
    3. 호출된 myServlet이 로딩되어 생성된다.
    4. 서블릿이 초기화된다. (init) ← 1회성
    5. 요청에 대한 내용을 처리하고 응답해준다 (service)
    6. 서블릿이 소멸된다. (destroy) ← 1회성
  16. JSON이란?

    JavaScript Object Notation이며, 경량의 데이터 교환형식이다.
    데이터를 받아서 객체나 변수로 할당하여 사용하는 방식으로 쓴다.

🧾 웹 표준 기술

  1. jQuery란?

    제이쿼리는 자바스크립트의 생산성을 향상시켜주는 자바스크립트 라이브러리이다.
    순수 자바스크립트로 코딩하는 것보다 훨씬 더 생산성을 높일 수 있다.

  2. DOM이란?

    문서 객체 모델(Document Object Model)은 HTML 문서에 대한 인터페이스이다.
    뷰 포트에 무엇을 랜더링할 지 결정하기 위해 사용되며, 페이지의 콘텐츠 및 구조, 스타일이 자바스크립트 프로그램으로 수정되는 용도로 사용한다.
    HTML문서와 다른 점은 자바스크립트에 수정될 수 있는 동적모델이다.

  3. Ajax란?

    비동기식 자바스크립트와 XML의 약자이며, 전체 페이지를 새로 고치지 않고 페이지 일부만 데이터를 로드하는 기법. 서버의 처리가 완료될 때까지 기다리지 않고 빠르게 처리가 가능하지만, 히스토리 관리가 되지 않는다.

  4. Node.js란?

    자바스크립트를 컴파일해서 구동하고, 이벤트 기반 논블로킹 모델로 속도가 빠른 자바스크립트 런타임이다. 웹 서버가 내장되어 있고 JSON 형식과 호환하기 쉽다. 개수는 많지만 크기가 작은 데이터를 실시간으로 주고 받을 때 주로 사용한다.

profile
keep going

0개의 댓글