본문 바로가기
신입 개발자의 취업기/면접 질문 모음

네트워크 관련 면접 질문 모음 (계속 업데이트 예정)

by 번데기 개발자 2018. 11. 1.
반응형
Restful API를 써본 경험이 있습니까?


-> 네, 저는 Tmap 에서 제공하는 도보 안내 경로를 얻기 위해 rest api 요청을 보내서 Json값을 받아와서 길찾기 경로 어플리케이션을 만드는데 사용해본 경험이 있고, 간단한 날씨정보를 조회하는 json값을 SK플레닛에서 받아온 경험이 있습니다.

또 rest API이해를 위해 AWS의 Lamda 서비스를 이용하여 put delete post get을 이용한 echo서버를 만들어 본 경험이 있습니다.



스택과 큐의 차이점에 대해 설명하시오. 

스택은 LIFO의 구조로 나중에 온 사람이 먼저 일을 처리하는 구조로 되어있습니다.
스택은 주로 프로그램상에서 지역변수와 매개변수를 저장하는 용도로 사용됩니다.
스택 영역에 할당될 메모리의 크기는 컴파일 타임에 결정됩니다.

큐는 FIFO구조로 먼저 온사람이 먼저 일을 처리하는 구조로 되어있습니다.




힙 영역과 스택영역의 차이점을 설명하시오. (메모리 구조에 대한 이해)


프로그램이 실행되기 위해 프로그램이 메모리에 로드가 되어야합니다.
따라서 운영체제에서 프로그램의 실행을 위해 다향한 메모리 공간을 제공합니다.
코드,데이터,스택,힙 영역이 할당되고 각 역활은 다음과 같습니다.

코드 :  실행할 프로그램의 코드가 저장되는 텍스트 영역입니다.
           CPU는 코드영역에서 저장된 명령어를 하나씩 가져가서 처리합니다.

데이터 :  전역변수와 정적변수가 이해 해당됩니다.
               프로그램의 시작과 함께 할당되며 프로그램이 종료되면 소멸됩니다.

스택   :  스택영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역입니다.
             함수의 호출과 함께 할당되며, 함수의 호출이 종료될때 해제됩니다.

힙      :  힙 영역은 사용자가 직접 관리할 수 있는 메모리 영역입니다.
             힙 영역은 사용자에 의해 메모리공간이 동적으로 할당되고 해제됩니다.








프로세스와 스레드의 차이점을 설명해보세요.


프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고, 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위 입니다. 프로세스는 운영체제로부터 메모리, 주소공간등을 할당받고 쓰레드는 할당받은 자원들을 내부 스레드끼리 공유하면서 실행됩니다. 

쓰레드를 사용하는 이유는 운영체제에서 더 효율적으로 시스템 자원을 관리하기 위해 사용된다고 할 수 있습니다.
멀티 프로세스로 진행되는 작업을 멀티 쓰레드로 수행하게 되면 시스템 콜이 줄어들기 때문에 자원을 효율적으로 관리 할 수 있고 프로세스의 통신비용보다 쓰레드간의 통신 비용이 적다는 이점도 있습니다.

단 쓰레드간의 자원공유는 전역변수를 이용하므로 동기화 문제에 신경을 써야하며 멀티스레드 프로그래밍은 프로그래머의 주의를 요구합니다.




TCP와 UDP의 차이점을 설명해보세요.

TCP와 UDP는 프로토콜로 프로토콜은 컴퓨터 네트워킹을 하는데 있어서 서로 약속하는 통신 규약입니다.

TCP와 UDP는 전송계층의 프로토콜로 IP계층에서 알려준 정보 경로를 바탕으로 데이터의 실제 송수신을 담당한다.
*물데네전세표응

TCP와 UDP의 차이점은 연결(Connection), 신뢰도(Unrliable)에 있습니다.

먼저 TCP는 3-way Handshaking을 통해 Connection을 형성 한 뒤에 정보의 송수신이 이루어집니다.
또 세그먼트가 유실될경우 재전송을 통해 복구해주며 순서가 바뀌더라도 순서 번호를 이용하여제대로 맞추어 전달합니다.

UDP 값은 경우 연결 설정 없이 바로 전송이 가능하며 전송한 데이터그램이 유실 될 수 있고 순서가 바뀌어 도착 할 수도 있습니다. 게임서버와 같은 경우 중요하지 않은 게임 데이터에 대해서는 눈감아 줄 수 있기 때문에 UDP를 사용합니다.




데이터베이스의 트랜젝션이란 무엇인가?

데이터베이스의 상태를 변화시키는 논리적인 연산을 하나로 묶어서 일괄실행하거나 일괄 취소를 할 수 있도록 해주는 것 (Commit, Rollback)



반응형