신입 java 웹 개발자 기술면접 대비
4차산업혁명 시대에 코로나 사태와 더불어, 언텍트 비대면 관련 산업이 크게 성장함에 따라 IT직군의 개발자에 대한 수요가 증가하고있습니다. 이에 국가에서도 IT개발직을 국가기간전략산업직종에 선정하여 국비지원을 통하여 개발자 양성에 적극적으로 지원하고있습니다.
저 역시도 국비지원교육 6개월과정("JAVA 웹 개발 클래스")을 통하여 웹 개발자로써 필요한 기술력을 습득하였고, 수료 후 클래스 내에서 진행하였던 두 건의 웹 서비스 제작 프로젝트를 포트폴리오로 제작하여 자소서를 작성하고 면접준비를 하여 웹 개발자로써 취업을 하게되었습니다.(4개월차 초보 웹개발자 입니다)
이번 포스팅에서는 면접준비하면서 공부했던내용과, 실제 면접에서 자주 질문받았던 내용에 대하여 알아보겠습니다.
빈출(단골) 질문
Q. 프레임워크와 라이브러리의 차이점에 대하여 알고 있는가?
A. 라이브러리 - 쓸만한 기능들을 모아놓은 유틸 모음집, 필요한 것을 가져와서 사용하면됩니다.
프레임워크 - 일정 수준 이상의 품질을 보증하는 코드를 비교적 빠르고 편하게 완성 및 유지
보수 할 수 있는 솔루션.
개발자들이 개발에 집중할 수 있도록 전체적인 틀을 제공해 줌
(개발자들은 해당 틀에 맞춰서 개발)
Q. 객체지향 프로그래밍(OOP)의 특징에 대하여 알고 있는가?
A. 프로그램을 "객체(Object)"들의 모임으로 파악하고 구성하여 구현하는 프로그래밍 기법.
각 객체들은 서로 데이터를 주고받으면서 역할을 수행하게됩니다.
자바의 경우 구성단위는 "클래스"에 해당.
Q. 객체지향 프로그래밍(OOP)의 장점은?
A. 강한 응집력과 약한 결합력을 지향합니다.
- 유연한 프로그램을 설계할 수 있고, 변경이 용이.(유지보수의 편의성)
- 직관적인 코드분석이 가능
Q. MVC 모델2 구조에 대하여 알고있는가?(MVC 모델1과 비교하여 정리하시면 좋습니다)
A. 결과 표출화면(View)과 데이터 처리(Model)를 분리하여 재사용이 가능하도록 하는 구조로,
개발자의 영역과 웹 퍼블리셔의 영역을 분리할 수 있어 작업의 효율성을 높일 수 있습니다.
모델(Model) - 데이터 혹은 데이터를 처리하는 영역
뷰(View) - 결과 화면을 표출하는데 사용하는 자원
컨트롤러(Controller) - 뷰와 모델 사이에서 웹의 요청(request)을 연결해주는 중간 통신역할
Q. Spring에서 MVC 모델2 구조가 어떻게 동작하는지 알고 있는가?
A.
Q. JDBC란 무엇인가?
A. 자바데이터베이스커넥티비티(JavaDatabaseConnectivity)의 약자로, 다양한 DBMS와 연결
하여 데이터를 주고받을 수 있게 해주는 프로그래밍 인터페이스로, spring에서는 주로
마이바티스(Mybatis)라는 커넥션 풀을 이용합니다.
Q. "개발자로써 기본적으로 자료구조에 대하여 알고있어야 한다고 생각한다. 스택과 큐에 대하여 설명할 수 있겠는가?"( 면접에서 실제 이렇게 질문받았습니다.)
A. 스택 - 같은 구조와 크기의 자료를 쌓아올리는 개념.
- 가장마지막에 삽입(PUSH)된 자료가 가장먼저 삭제(POP)됨.
- 후입선출, LIFO, Last-In-First-Out
큐 - 줄을 서서 기다리는 것과 같은 자료구조의 개념.
- 가장먼저 삽입(enQueue)된 자료가 가장먼저 삭제(deQueue)됨.
- 선입선출, FIFO, First-In-First-Out
Q. 자바(Java) collection의 종류와 차이점에 대하여 알고 있는가?
A. 같은 타입의 참조값을 여러개 저장하기 위한 라이브러리
- Set : 중복을 허용하지 않고, 순서를 가지지않음
- List : 중복을 허용하고 순서를 가지고 있음
- Map : "key"와 "value"의 한 쌍의 형태로 저장
Q. CallByValue 와 CallByReference
A. call by value - 값을 복사하여 처리하는 방식으로, 매서드 내의 처리결과는 외부의 변수에 영향을 주지않음
call by reference - 매개변수의 주소에 값을 정의하는 방식으로, 클래스 객체를 인수로 전달
Q. static의 위험성에 대하여 알고 있는가?(결제 서비스관련 업체였습니다.)
A. static은 클래스 로딩 시, 메모리 공간을 할당하여 처음 설정된 메모리 공간이 변하지않고
프로그램이 종료될 때 해제됩니다. 보통의 경우 여러 동작에서 공통적으로 요구되는 것들을
정적으로 설정하여 사용합니다.
- static은 공유자원의 개념으로, 캡슐화 원칙에 위배되기때문에 객체지향적이지 않습니다.
- 사용하고있지않더라도 프로그램이 실행되고있는 내내 static이 살아있으므로, 메모리 낭비가됩니다.
- interface를 구현하는데 사용될 수 없으므로 재사용성이 떨어집니다.
Q. 오버라이딩 과 오버로딩의 차이에 대하여 알고 있는가?
A. 오버라이딩 - 부모 클래스 함수를 재정의하여 사용
- 동일한 이름, 같은 매개변수 타입과 수 , 같은 리턴타입 을 가져야함
오버로딩 - 동일한 이름의 함수로 재정의
- 이름이 동일하지만, 서로 다른 매개변수를 가져야함(매개변수의 수, 배치(순서)등)
Q. 세션과 쿠키에 대하여 알고 있는가?
A. 세션 - 클라이언트와 웹 서버 상의 네트워크의 연결이 지속적으로 유지되고있는상태(ex.로그인상태유지중)
쿠키 - 웹 브라우저에 보관하고 있는 데이터로, "key"와 "value"로 구성(ex.자동로그인기능)
쿠키는 PC에 저장되는 정보이므로 정보유출의 가능성이 있어 보안성이 낮습니다.
하지만 그렇다고하여 모든 정보를 세션에 저장하면 서버의 메모리를 과하게 사용되어
서버에 부하를 주기때문에 저장하려는 데이터의 보안성을 고려하여 적절한 스토리지를
선택하여 저장해야 합니다.
이 외의 기타 내용들은 첨부파일을 통하여 업로드 하였습니다.
'IT > 이모저모' 카테고리의 다른 글
VSCode 오류 : 이 시스템에서 스크립트를 실행할 수 없으므로 ... (32) | 2021.02.06 |
---|---|
java 웹 개발자 기본 지식 (0) | 2020.12.27 |
초연결시대와 신인류 디지털노마드 (0) | 2020.12.20 |
개발자의 현실인가 풍자인가 (0) | 2020.12.09 |