취업 활동/면접 준비
-
웹(Web) 정리취업 활동/면접 준비 2021. 1. 1. 15:50
웹 관련 지식 1) Spring Framework - Spring 이 무엇인지? Spring이란 Java 플랫폼을 위한 오픈소스 어플리케이션 프레임워크입니다. Spring의 특징으로는 IOC를 통해 애플리케이션의 느슨한 결합을 도모시킨 것이 있습니다. - Servlet & Servlet Container & JSP Servlet이란 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 역할을 하는 자바 프로그램입니다. Servlet Container는 이러한 Servlet을 관리해주는 컨테이너입니다. 서블릿 생명주기 등을 관리합니다. JSP는 HTML문서 안에 자바 소스코드가 들어가는 구조를 가집니다. JSP는 WAS를 통해 Servlet 클래스로 변환되어 사용됩니다. - Dispatche..
-
프로그래밍 언어(Java) 정리취업 활동/면접 준비 2021. 1. 1. 15:49
Java 관련 지식 - JVM 추가 예정 - 자바의 컴파일 과정 자바 컴파일러가 소스코드를 바이트 코드로 변환합니다. 이후 JVM이 바이트 코드를 기계어로 변환하고, 이를 인터프리터 방식으로 실행합니다. - GC 정리되지 않은 메모리와 같은 가비지를 정리해주는 프로그램입니다. 자바에서는 개발자가 명시적으로 메모리를 해제하지 않고, 가비지 컬렉터가 이를 수행합니다. 객체가 NULL 인 경우, 블록 안에서 객체가 생성되고 블록의 실행이 끝난 경우 GC의 대상이 됩니다. GC가 발생하게 되면 'Stop-the-world' 가 발생하게 되는데, 이때 GC 관련 스레드를 제외한 모든 스레드의 동작을 중단시킨다. 따라서, GC튜닝의 경우 이 stop-the-world 시간을 줄이는 것입니다. 새롭게 생성된 객체는 ..
-
네트워크(Computer Network) 정리취업 활동/면접 준비 2021. 1. 1. 15:49
네트워크 - GET과 POST 비교 둘 다 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요청하는 방식입니다. GET 방식은 요청하는 데이터가 HTTP 메시지 header 부분의 url에 담겨서 전송되고, POST 방식은 요청하는 데이터가 HTTP 메시지 body 부분에 담겨서 전송됩니다. GET 방식은 서버에서 어떤 값을 조회할 때 사용되고, POST 방식은 서버에 값을 추가하여 값의 변화가 있을 때 사용됩니다. 추가적으로 GET 방식의 경우에는 브라우저에서 caching을 할 수 있습니다. - TCP와 UDP 비교 TCP는 reliable 한 protocol 이므로, 신뢰성 있는 통신을 합니다. 여기서 신뢰성이 있다는 것은 순차적 전달을 하고, 지연과 손실이 발생하지 않도록 데이터를 전송하며, 발생한..
-
운영체제(Operating System) 정리취업 활동/면접 준비 2021. 1. 1. 15:49
운영체제 - 프로세스와 스레드 프로세스는 실행중인 프로그램이며, 디스크로부터 메모리로 적재되어 CPU의 할당을 받을 수 있습니다. 프로세스는 생성될 때 각각 별도의 주소공간에 할당되며 코드, 데이터, 힙, 스택 영역을 가지고 있습니다. 멀티 프로세스의 장점으로는, 각 프로세스간 독립적으로 동작하기 때문에 서로 영향을 끼치지 않습니다. 단점으로는, 각각 독립된 메모리 영역을 가지고 있어 다른 프로세스와 데이터 공유 간 IPC를 해야 하는 등 오버헤드가 있으며, Context switching에 대한 오버헤드도 존재합니다. 스레드는 프로세스의 실행 단위입니다. 프로세스와 달리 스레드는 다른 스레드와 공간, 자원을 공유합니다. 멀티 스레드의 장점으로는, 전역 변수와 정적 변수에 대한 자료를 공유할 수 있습니다..
-
알고리즘(Algorithm) 정리취업 활동/면접 준비 2021. 1. 1. 15:49
Sort 알고리즘 - Bubble Sort 서로 인접한 두 개의 원소를 비교하고, 조건을 만족하지 않는다면 서로 swap해 가며 정렬하는 알고리즘입니다. Stable sort 입니다. 모든 경우에 대해서 O(n^2)의 시간복잡도를 가집니다. - Selection Sort 위치가 이미 정해져 있고, 어떤 원소를 넣을 지 선택해가며 정렬하는 알고리즘입니다. Unstable sort 입니다. 모든 경우에 대해서 O(n^2)의 시간복잡도를 가집니다. - Insertion Sort 2번째 원소부터 시작하여, 앞에 있는 원소들과 비교해가며 삽입할 위치를 지정한 후, 원소들을 뒤로 옮기고 그 자리에 삽입하여 정렬하는 알고리즘입니다. Stable sort입니다. 최적의 경우 O(n), 최악의 경우O(n^2)의 시간 복..
-
자료구조(Data Structure) 정리취업 활동/면접 준비 2021. 1. 1. 15:49
자료구조 - Array 와 Linked List Array는 index로 해당 원소에 접근할 수 있고, 찾고자 하는 원소의 index 값을 알고 있으면, O(1)에 해당 원소로 접근할 수 있습니다. 즉, Random access가 가능하다는 장점이 있습니다. 하지만, 삽입과 삭제의 경우에는 배열의 연속적인 특징을 위해 shift를 해야 하기 때문에 비용이 발생하며, 최악의 경우 O(n)의 시간 복잡도를 가집니다. Linked List는 이러한 문제를 해결할 수 있습니다. 각각의 원소들은 자기 자신 다음에 어떤 원소인지를 기억하고 있습니다. 따라서 삽입, 삭제 연산을 O(1)만에 해결할 수 있습니다. 그러나 index 값으로 접근을 할 수 없기 때문에 탐색 과정에서 최악의 경우 O(n)의 시간 복잡도를 가..
-
2020 카카오 여름 개발자 인턴 면접취업 활동/면접 준비 2021. 1. 1. 15:48
면접 정리 순서 1. 기본적인 CS 지식 (자료구조, 알고리즘, 운영체제, 네트워크, DB) 2. Java 관련 지식 3. 웹 관련 지식 (스프링, HTTPS, DNS 서버, 세션, 쿠키…) 4. 프로젝트(포트폴리오) 간단히 정리 & 코드 리뷰 1. 기본적인 Computer Science 지식 1) 자료구조 hongchan.tistory.com/42 2) 알고리즘 hongchan.tistory.com/43 3) 네트워크 hongchan.tistory.com/46 4) 운영체제 hongchan.tistory.com/44 5) DB hongchan.tistory.com/45 2. Java 관련 지식 hongchan.tistory.com/47 3. 웹 관련 지식 hongchan.tistory.com/48