진행 주제를 선정하고 상세한 내용을 적기
* 사용한 기술과 어려웠던 점, 해결한 내용에 대한 기술도 같이 적을 것
면접보고 멍해서 두시간은 걸었다가 정신차려서 면접 때 받았던 질문에 대해서 정리를 해보자.
그리고 확실히 REST API 에 대한 깊은 이해가 우선 순위 중에 하나가 맞는 것 같다.
앞으로는 공부 방향은 1)REST API 공부 2)크롤링 프로젝트 3)카피사이트(또는 자료구조)
면접
- 질문받았던 내용에 대해서 핵심 정리하기
- TCP, UDP 에 대해서 간략하게 설명하기
- 내 답변: TCP 는 3 way hand-shaking 방식으로 데이터가 클라이언트에게 발송이 되었는지 확인을 하고, UDP 는 상대방(클라이언트)가 데이터를 받았는지 안받았는지는 모르는 프로토콜이다.
- 다시 답변한다면?
- TCP 는 정확한 정보 전송을 교환하기 위해 클라이언트 <--> 서버간에 3 way-handshaking 을 통해 세션을 연결 후 데이터를 주고 받습니다. (연결형 프로토콜)
- 3 way-handshaking:
- (1) 클라이언트 --(SYN)--> 서버
- (2) 클라이언트 <--(SYN+ACK)-- 서버
- (3) 클라이언트 --(ACK)--> 서버
- * handshaking: 말 그대로 악수를 한다는 것은 서로가 서로를 인식한다는 것
- 3 way-handshaking:
- UDP 는 TCP 와는 다르게 연결 설정이 필요 없으며(이 말은 직접 구현해야 한다는 말이 될수도..) 순서는 빠르지만 패킷 손실이 발생할 수도 있다.
- TCP, UDP 는 데이터 전송 계층에 해당하며, 소켓으로 통신을 주고 받는다. 그리고 TCP/IP 프로토콜에서는 상대방이 데이터를 받았는지 받지 않았는지 확인하여 받지 않았다면 다시 주게되는 프로토콜이다.
- TCP 는 정확한 정보 전송을 교환하기 위해 클라이언트 <--> 서버간에 3 way-handshaking 을 통해 세션을 연결 후 데이터를 주고 받습니다. (연결형 프로토콜)
- * 추가: Thread(쓰레드)
- 파이썬 코드는 메인 쓰레드가 코드를 실행시키는데, 이를 병렬로 실행하여 멀티 쓰레딩 방식을 구현
- 즉, 프로세스 안에 여러 쓰레드가 실행이 된다.
- 가장 단순한 쓰레드 방식은 쓰레드 모듈을 상속받은 인스턴스 2개가 있다.
- a.start(), b.start() # a(name='난 a 야'), b(name='난 b야') // 각 10개의 print()문을 생성
- 결과값은 a 인스턴스와 b 인스턴스가 교차하여 실행이 된다.
- a.start(), b.start() # a(name='난 a 야'), b(name='난 b야') // 각 10개의 print()문을 생성
- 가장 단순한 쓰레드 방식은 쓰레드 모듈을 상속받은 인스턴스 2개가 있다.
- REST API 인스턴스를 복사...?
- 이 부분은 아예 답변을 못함
- 다시 답변한다면?
- POST 메서드를 사용해서 기존 인스턴스를 새로운 인스턴스로 복사한다.
- 질문의 의도가 URI(자원) 에 대한 설계이지 않을까 싶은데...이건 아래에 링크를 걸어놓은 스택오버플로우를 계속해서 보면서 코드를 구현해보자.
- POST 메서드를 사용해서 기존 인스턴스를 새로운 인스턴스로 복사한다.
- REST API 에서 JSON 을 사용하는 이유
- 내 답변: XML 도 있지만 JSON 을 사용하는 이유는 보다 간결하기 때문이다.
- 다시 답변한다면?
- TCP, UDP 에 대해서 간략하게 설명하기
* 참고 자료
TCP, UDP 의 차이
- 백괴사전(https://uncyclopedia.kr/wiki/TCP)
- 3way handshaking(https://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml)
REST API 인스턴스 복사
- AWS S3를 사용한 복사(https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/CopyingObjectUsingREST.html)
'TIL' 카테고리의 다른 글
20190622-TIL(마케팅툴 조사) (0) | 2019.06.22 |
---|---|
20190620-TIL(REST) (0) | 2019.06.20 |
20190614-TIL(크롤링 프로젝트) (0) | 2019.06.14 |
20190613-TIL(자료구조, 크롤링 프로젝트) (0) | 2019.06.13 |
20190612-TIL(자료구조, 크롤링프로젝트) (0) | 2019.06.12 |