💡 JVM이란?
자바 프로그램은 자바 컴파일러에 의해 바이트 코드로 번역된다. 이 번역된 바이트 코드는 인터프리터에 의해 해석되고 실행된다. 여기서 자바 바이트 코드를 기계어로 사용하는 컴퓨터를 자바 가상기계라고 한다.
즉, 자바의 바이트 코드를 해석하여 실행하는 해석기가 설치된 컴퓨터는 모두 자바 가상 기계가 될 수 있음.
💡SI란 무엇인가?
SI란 System Integration의 약자로 시스템 통합을 말한다.
기업이 필요로 하는 정보 시스템에 관한 기획과 개발, 나아가 운영에 이르기까지 모든 서비스를 제공하는 것이다. 시스템 통합은 기업 내의 각종 어플리케이션이나 전산 자원들을 통합‧연계하여 전체를 하나의 시스템처럼 유기적으로 조정할 수 있도록 하기 위함이다.
💡객체에 대해 설명 해보시오.
객체(Object)는 객체 지향 프로그래밍(OOP)이나 설계에서 데이터(실체)와 그 데이터에 관련 되는 동작.
즉 절차, 방법, 기능을 모두 포함한 개념이다. 기차역에서 승차권을 발매하는 경우를 예로 들면 실체인 ‘손님’과 동작인 ‘승차권 주문’은 하나의 객체이며, 실체인 ‘역무원’과 동작인 ‘승차권 발매’도 하나의 객체이다. 같은 구조와 형태를 가지는 객체는 등급으로 정의하고 같은 등급에 속하는 객체는 그 등급의 인스턴스(instance)라고 한다.
💡클래스 파일에 대해 설명해보시오.
자바(JAVA)는 인터프리터 언어와 컴파일 언어의 특성을 모두 가지고 있는 언어이다.
자바 언어를 컴파일 했을 때 나오는 결과물이 클래스 파일(class file)이다. 클래스 파일은 온전한 실행 파일이 아니기 때에 자바 버추얼머신(JVM)이 한번 더 컴파일을 했을 때에야 제대로 된 실행을 할 수 있다. 즉, 클래스 파일은 소스파일과 실행파일의 중간단계로 볼 수 있다. 두 번 컴파일을 해야하기 때문에 속도가 느리다는 단점이 있지만, JVM만 있다면 플랫폼을 가리지 않고 실행할 수 있다는 장점을 가지고 있다.
💡인터넷과 인트라넷의 차이점은?
인터넷(internet)
전 세계를 연결하는 거대한 컴퓨터 통신망을 말한다. 알파넷(ARPANET)에서시작되어 현재 세계 최대 규모의 통신망으로 발전하였다. 통신량이 급속도로 증가하고 있으며 정보의 기반으로 자리잡아 다양한 서비스와 정보를 지원한다. 정보 검색, 전자우편, 뉴스,게임 등 새로운 서비스가 차례로 개발되어 이용이 가능해지며 사용자의 편의를 도모하고 있다.
인트라넷(intranet)
인터넷을 이용하여 일정 지역 내에서 정보를 교환하거나 제공하는 시스템을 말한다. 인터넷망 접속보다는 기업 내부의 네트워크에 기술을 이식하여 사용하기 때문에 별도의 통신망을 구축하지 않아도 어디에서나 조직의 정보시스템을 확인 할 수 있다. 서로 다른 속성을 가진 정보시스템이라도 통합이 용이하며 적은 비용으로 큰 성과를 얻을 수있다. 기술표준을 이용하기 때문에 폭넓은 적용이 가능하지만 정보 보안에 대한 문제가 단점으로 제기된다.
💡오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점은?
오버로딩 (Overloading)
- 같은 이름의 메소드를 여러 개 정의하는 것.
- 단, 매개변수의 타입이 다르거나 개수가 달라야 한다.
- return type과 접근 제어자는 영향을 주지 않는다.
오버라이딩 (Overriding)
- 상속에서 나온 개념.
- 상위 클래스의 메소드를 하위 클래스에서 재정의.
💡JDBC란?
JDBC(Java Data Base Connection)의 약자로 Java Language에서 데이터 베이스에 접근할 수 있는 프로그래밍을 의미한다.
💡JDBC 코딩 단계는?
DriverLoading → Connection → SQL작성 → Statement → ResultSet → Data get → close
💡JDBC에서 Transaction 관리는 어떻게 하나요?
conn.setAutoCommit(false); : 메서드를 통해서 각각을 따로 commit/rollback 할 수 있게 설정
- conn.commit(); : 정상실행
- conn.rollback(); : exception 발생
💡JDBC에서 Transaction을 처리할 때, setAutoCommit란?
Transaction이란 일련의 작업 단위이다.
프로그램 내에서 쿼리문을 몇 번 실행하던지, 그안에 몇 개의 쿼리나 몇 개의 프로시져가 있더라도 Commit이나 Rollback을 만날 때까지하나의 작업 단위가 된다. 이렇게 보면 Transaction은 Select를 제외하고, Insert,Update, Delete문을 실행하고 Commit이나 Rollback을 할 때까지의 작업 단위로 볼 수있다.
💡setAutoCommit(true);인 경우와 setAutoCommit(false);인 경우의 차이점은?
setAutoCommit(true);인 경우
- 쿼리문을 실행할 때마다 Commit처리가 된다.
- 비정상적으로 종료되기 전까지는 실행한 쿼리문이 모두 반영되어 있다는 뜻이다.
setAutoCommit(false);인 경우
- 코드상에서 직접 Commit이나 Rollback을 해주어야만 실행한쿼리문이 반영된다.
- Rollback 실행 후에 추가적으로 Commit을 할 필요는 없다.
💡statement와 preparestatement의 차이점은?
동적으로 쿼리문이 생성된다면, statement를 사용.
쿼리문이 변하지 않는다면, preparedStatement를 사용.
💡Servlet과 JSP의 차이점은?
Servlet
- container가 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것(html in java)
JSP
- html기반에 자바코드를 블록화하여 삽입한 것(java in html)
'📌ETC > Tech Interview' 카테고리의 다른 글
신입 개발자 기술면접 질문 정리 #6 (0) | 2022.09.20 |
---|---|
신입 개발자 기술면접 질문 정리 #5 (1) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #4 (0) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #3 (2) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #1 (1) | 2022.09.15 |