티스토리 뷰
🔑 Database
1. Inner Join과 Outer Join이란 무엇이며 어떻게 사용되는가?
👉🏻 INNER JOIN이란 조인 되는 키 값을 기준으로 둘 이상의 테이블에 존재하는 데이터를 조회하는 것이며 simple join이라고도 합니다. 집합으로 표현하자면 교집합이라고 할 수 있습니다. NULL값은 포함되지 않습니다.
사용 예) SELECT * FROM TABLE1 t1 INNER JOIN TABLE2 t2 ON (t1.컬럼1 = t2.컬럼2);
--------> NULL을 제외한 TABLE1과 TABLE2의 교집합을 보여준다.
👉🏻 OUTER JOIN이란 INNER JOIN과는 다르게 두 테이블에서 지정된 쪽의 (LEFT or RIGHT) 모든 결과를 보여준 후 반대쪽에 매칭되는 값을 보여주고, NULL값까지 포함하는 JOIN입니다. OUTER JOIN의 종류로는 LEFT , RIGHT, FULL OUTER JOIN이 있습니다.
사용 예) SELECT * FROM TABLE1 t1 LEFT JOIN TABLE2 t2 ON (t1.컬럼1 = t2.컬럼2);
SELECT * FROM TABLE1 t1 RIGHT JOIN TABLE2 t2 ON (t1.컬럼1 = t2.컬럼2);
--------> LEFT는 왼쪽 테이블 t1을 기준으로 세우는 JOIN / RIGHT는 오른쪽 테이블 t2를 기준으로 세우는 JOIN
SELECT * FROM TABLE1 t1 FULL OUTER JOIN TABLE2 t2 ON (t1.컬럼1 = t2.컬럼2);
--------> LEFT와 RIGHT를 합친 것과 같다.
🔑 AJAX
2. AJAX란 무엇이며 왜 사용하는지 설명하시오.
👉🏻 Ajax는 JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자입니다. 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법 이며 Ajax를 한마디로 정의하자면 JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술이라고 할 수 있겠습니다.
화면의 내용을 갱신하기 위해서는 request 와 response를 하면서 페이지 전체를 갱신하게 됩니다. 하지만 이렇게 할 경우 페이지의 일부분만 갱신할 경우에도 페이지 전체를 다시 로드해야하는데 엄청난 자원낭비와 시간낭비를 초래하고 말것입니다. 하지만 ajax는 html 페이지 전체가아닌 일부분만 갱신할수 있도록 합니다. 이 경우 Json이나 xml형태로 필요한 데이터만 받아 갱신하기 때문에 그만큼의 자원과 시간을 아낄 수 있습니다.
🔑 JAVA
3. Java 라이브러리란 무엇이고, 정적 라이브러리와 공유 라이브러리의 차이점에 대해 설명하시오.
👉🏻 Java에서는 미리 자주사용되고 유용한 기능을 하는 class들을 만들어 놓고 제공을 합니다. 이때 이 클래스들을 관련된 기능별로 분류하여 패키지단위로 묶어서 관리하는데 이 패키지 파일을 라이브러리라고 합니다. Java API는 이러한 클래스들의 코드를 문서로 제공하는 것입니다.
👉🏻 정적 링크 라이브러리(Static Link Library)는 .lib으로 표현하며 컴파일 시에 함수가 실행파일에 연결됩니다. 실행 파일에 함수의 코드가 복사되기 때문에 실행파일의 크기가 커지는 단점이 있지만 실행 파일은 완전한 단독 실행 파일이 됩니다. 실행파일에 함수의 코드가 포함되어 있기 때문에 컴파일이 끝나면 lib 파일이 없어도 프로그램을 실행 할 수있습니다.
👉🏻 동적 링크 라이브러리(Dynamic Link Library)는 .dll로 표현하며 정적라이브러리처럼 컴파일 시에 함수가 연결되는 방식이 아닌 런타임시에 함수가 실행파일에 연결됩니다. 실행파일에는 호출할 함수의 정보만 포함되고 실제 함수 코드는 복사되지 않으므로 실행 파일의 크기가 작아집니다. 하지만 실행 파일은 함수에 대한 정보만 가지고 있을 뿐 실제 코드를 가지고 있지 않기 때문에 프로그램 실행시에는 dll 파일이 항상 존재해야 합니다.
4. 전역변수와 지역변수는 각각 무엇이며 어떤 경우에 사용하는지 설명하시오.
👉🏻 전역변수는 함수 바깥에 선언하여 클래스 전체에서 사용가능한 변수입니다. 여러 메소드에서 공통적으로 사용할 수 있습니다. 지역변수는 함수 속에 선언하여 해당 함수 속에서만 사용가능한 변수입니다. 지역변수는 해당 메소드가 호출되어 메모리를 할당받은 후 종료되면 소멸되어 다시 사용할 수 없습니다.
🔑 자료구조
5. Array(배열)과 List의 차이점은 무엇인지 설명하시오.
👉🏻 Array(배열)은 다수의 데이터를 묶어 효율적인 관리가 가능한 자료형으로 데이터에 접근하기 위한 인덱스가 존재합니다. 이 인덱스를 통해 데이터를 가져오기 때문에 조회 속도가 빠릅니다. 그러나 데이터의 위치가 인덱스와 맵핑되어 고정되므로 추후 데이터가 삭제되는 경우 배열의 빈 부분의 메모리가 낭비됩니다. 이러한 이유로 배열의 해당 인덱스에 데이터가 존재하는지 파악하는 로직이 추가적으로 필요합니다. 또한 배열은 정의와 동시에 길이를 지정하며 길이를 바꿀 수 없는 정적 자료형 입니다.
👉🏻 List는 배열이 가진 인덱스의 장점을 버리고 대신 빈틈없이 데이터를 적재하는 장점을 취한 자료형입니다. 순서가 있으며 중복이 허용됩니다. 주로 ArrayList나 LinkedList와 같은 리스트를 사용합니다. 리스트는 자동으로 엘리먼트를 수용할 수 있는 크기가 조정되고, 리스트 내의 엘리먼트의 실제 개수를 알려줍니다.
List의 대표적인 기능으로는 아래와 같습니다.
- 처음, 끝, 중간에 엘리먼트를 추가/삭제 하는 기능
- 리스트에 데이터가 있는지를 체크하는 기능
- 리스트의 모든 데이터에 접근할 수 있는 기능
'👩🏻💻 기술면접' 카테고리의 다른 글
[기술면접대비] 개발자 기술 면접 대비 요약본 (6) (0) | 2020.04.24 |
---|---|
[기술면접대비] 개발자 기술 면접 대비 요약본 (5) (0) | 2020.04.19 |
[기술면접대비] 개발자 기술면접 대비 요약본 (4) (2) | 2020.04.12 |
[기술면접대비] 개발자 기술 면접 대비 요약본 (3) (0) | 2020.04.06 |
[기술면접대비] 개발자 기술 면접 대비 요약본 (2) (1) | 2020.04.04 |