웹개발 기술 면접 준비 - 2

웹개발 기술 면접 준비 - 2

코딩보다 면접 준비가 더 어려운게 사실인가요..저의 밑바닥을 보고있습니다.

Java

  1. 접근제어자의 종류와 특성
    접근제어자는 클래스나 멤버들을 다른 클래스에서 접근 할 수 있는 지를 성언 하는 것으로써 자바에서는 크게 4가지가 있습니다. public, protected, default, private입니다. public은 모든 패키지 모든 클래스에서 접근이 가능 한 것으로 접근 제한이 없습니다. protected는 같은 패키지 내의 모든 클래스에서는 접근이 가능합니다. 또한 다른 패키지에 있더라도 자식 클래스인 경우에는 접근이 가능합니다. defatult는 동일한 패키지 내에서만 접근이 가능합니다. protected와 다르게 다른 패키지의 자식클래스에서 접근이 불가능합니다. 마지막으로 private은 멤버를 선언한 그 클래스 즉 자기 자신의 클래스 내에서만 접근이 가능합니다.

  2. Java라는 언어에 대해 어떻게 생각하는가(장단점)
    자바의 장점은 중 하나는 가바지 콜렉터라고 생각합니다. 사실 가비지 콜렉터가 어느정도의 리스크를 가지고 있지만 메모리 누수를 방지 할 수 있다는 점에서 개발에 큰 도움을 준다고 생각합니다. c와 c++를 공부해본 경험이 있는데 메모리를 잘 관리 해주지않는다면 메모리 누수가 일어나기 때문에 메모리를 잘 관리해야된다는 점에서 학습할 때 어려움이 있었습니다. 또한 자바 버추얼 머신이 존재하기 때문에 운영체제의 구분없이 개발을 할 수 있는 것 역시 큰 장점이라고 생각합니다. 단점은 자바는 버추얼머신을 이용하기 직접 하드웨어에 연결하여 제어할 수 없습니다. 때문에 직접 하드웨어를 세밀하게 작동시켜야하는 프로그램 개발에는 적합하지 않다는 점이 단점이라고 생각듭니다.

  3. call by value와 call by reference의 차이점
    call by value는 메소드 호출 시에 사용되는 인자의 저장되어 있는 값을 복사하여 보내는 것이고 call by reference 메소드 호출 시에 사용되는 인자 값이 저장된 주소를 복사하여 보내는 것입니다.

  4. 오버로딩과 오버라이딩 설명
    오버로딩은 같은 이름의 메소드를 여러 개 가지면서 매개변수의 타입이나 개수가 다르도록 하는 구분 하는 것입니다. 파라미터의 개수가 같은 경우에는 매개변수의 타입이 같아야하며 메소드의 리턴값은 오버로딩에 관여하지 않습니다.

오버라이딩은 상속관계에서 상위 클래스가 가지고 있는 메소드를 하위 클래스에서 재정의하여 사용할 수 있는 것을 말합니다. 매개변수의 개수와 자료형이 동일해야합니다. 메소드의 리턴값 역시 동일해야합니다.

DB

  1. 데이터베이스 설계 시 정규화를 하는 이유
    데이터 설계시
  2. Oracle과 MySQL 비교

JSP

  1. MVC 패턴이란?
    디자인 패턴 중 하나입니다. model view controller의 약자로써 세가지로 구분하여 개발 하는 패턴입니다. 사용자가 컨트롤러를 조작하면 컨트롤러는 모델을 통해 데이터를 가져오고 그 데이터를 바탕으로 인터페이스 담당인 view를 제어하여 사용자에게 전달하게됩니다. 이 과정에서 사용자 인터페이스와 비즈니스 로직을 분리하여 개발 할 수 있기 때문에 유지보수가 용이한 애플리케이션 개발이 가능합니다.

  2. Model1과 Model2의 차이점
    model1은 view 코드와 로직처리를 하나의 jsp코드내에서 처리하리 때문에 개발을 빠르게 할 수있다는 장점이 있습니다. 하지만 jsp코드 자체가 복잡해지기 때문에 유지보수가 힘들다는 단점이 있습니다.
    model2는 mvc패턴을 적용한 구조입니다. view, controller, model을 분리하엿기때문에 구조가 다소 복잡하고 처음 설계하는데 많은 시간이 소요되지만 기능에따라 분리되어 있어 유지보수가 용이합니다.
  3. HttpSession을 생성하는 방법
  4. JSP와 PHP 비교
  5. 쿠키와 세션 설명
    Framework
  6. Spring 프레임워크를 사용하면서 느낀 장점
  7. Spring의 특징
  8. Mybatis란?

기타

  1. JavaScript와 jQuery의 차이점
    자바스크립트는 클라이언트측 스크립트 언어입니다. 제이쿼리는 자바스크립트 기반으로 만들어진 라이브러리중 하나입니다. DOM 조작을 좀 더 편리하게 도와주는 기능입니다.

  2. 본인이 사용해봤을 때 JavaScript와 비교해서 구체적인 jQuery의 장점
    제이쿼리의 가장 큰 장점은 자바스크립트에 비해 간편하게 element에 접근 할 수 있다는 점입니다. 또한 sibling, next와 같이 dom 탐색을 편리하게 할 수 있는 것이 큰 장점이라고 생각했습니다.
  3. 동기 통신 방식과 비동기 통신 방식의 차이점
    동기 방식인 경우 서버에 요청을 한 후 응답이 돌아와야 다음 동작을 수행 하는 순차적처리의 통신 방식이지만 비동기 방식은 응답 상태에 상관없이 동시에 여러 통신 동작을 수행 할 수 있습니다.
  4. AJAX란 무엇이고 언제 사용해봤는지
    비동기식 자바스크립트로 자바스크립트의 라이브러리 중 하나입니다. 전체 페이지를 새로 고치지 않고 필요한 일부 페이지만 새로 데이터를 로드하는 방식에 사용합니다.
    모달창으로 로그인을 구현할 때 아이디 찾기, 비밀번호 재설정을 ajax방식으로 구현해보았고 예약사이트 프로젝트를 개발 할때 해당날짜마다 다르게 설정되어있는 시간을 호출하기 위해 그 부분만 페이지가 리로드 될 수 있도록 구현하였습니다.
  5. Vue, React, Angular 프레임워크에 대해 아는대로 설명
    세 언어다 자바스크립트 기반으로 구성된 프론트단 프레임 워크입니다. 앵귤러는 타입스크립트 기반의 프레임워크입니다. 또한 라우팅, form 유효성과 같은 라이브러리가 내장되어있기때문에 추가로 다른 라이브러리를 사용하지 않고 개발이 가능합니다. 하지만 다양한 기능이 내장되어 있는 만큼 러닝커브가 높은 것으로 알고 있습니다. 하지만 구글에서 지원하는 프레임워크이기 때문에 커뮤니티가 상당히 잘되어 있어 공부하기에 용이하다고 생각합니다.
    react는 JSX라는 html과 자바스크립트가 결합된 구문을 사용하기 때문에 처음에 공부할 때 헷갈리는 점이 다소 있었습니다. 라우터 기능이 존재하지않기 때문에 서드파티 툴을 추가하여 사용해야합니다. 리액트 역시 페이스북에서 제공하는 프레임워크로 활발한 커뮤니티를 기반으로 수월한 개발 공부가 가능하다고 생각합니다. Angular와 Vue는 양방향 바인딩이 가능합니다.