관리 메뉴

Dev Blog

2. Web general 본문

Learn then Key points/Tech Interview Questions

2. Web general

Nomad Kim 2021. 3. 29. 14:39

1. 웹 서비스 or 웹 어플리케이션을 개발해 보거나 운영해본 경험이 있다면 말씀해 주세요.

 

코드스테이츠에서 2개의 프로젝트에 참여했던 경험

 

첫번째 프로젝트였던 참여형 레시피 추천 사이트 '홈메이드' 에서는 백엔드 포지션을 맡았다.

해당 프로젝트에서

  • 유저 Side API 구현(로그인, 로그아웃, 회원가입, 회원탈퇴, 유저정보 등록 업데이트 - 컨텐츠, 댓글, 유저정보, 비밀번호 이메일 중복체크)
  • Crypto 유저 비밀번호 단방향 암호화 구현
  • JWT 토큰 인증 구현 - AccessToken, RefreshToken
  • AWS 서비스 이용 HTTPS 배포 

PM2 를 활용하여 서버 구동을 자동화 했는데, 에러 핸들링을 위해 log 를 수시로 확인하여 프론트엔드 팀원과 협력. 그리고 기존에 기획하지 않았던 추가적인 API(이메일 중복체크 API) 또한 구현.

 

두번째 프로젝트였던 공유 그림일기장 서비스 '로얄 그림 일기장' 에서는 프론트엔드 포지션을 맡았다.

프론트엔드 개발자로 아래의 기능들을 구현.

  • 메인 페이지 구현 - 로그인, 로그아웃, 소셜로그인 기능
  • 회원가입 페이지 구현
  • 메뉴얼 페이지 구현 - 서비스 사용법 설명
  • 일기쓰기 페이지 구현 - 그림그리기, 글 작성 및 수정 기능
  • 제작자 페이지 구현 - 팀소개, Contact Point
  • 소셜 로그인 구현 - 구글, 카카오 OAuth
  • 페이지 이동 로딩 효과 구현 - Book Flip Loading Image

첫번째 프로젝트에서 구현하지 못했던 두가지 소셜로그인 뿐만 아니라 React-canvas 라이브러리를 이용하여 그림판을 구현.

 

2. 어떤 웹 서비스 프로토콜을 알고 있습니까?

 

1) HTTP

HTTP는 하이퍼 텍스트 전송 프로토콜. 서로 다른 시스템들 사이에서 통신(데이터)을 주고받게 해주는 가장 기초적인 프로토콜인데요. 여러분이 웹 서핑을 할 때 서버에서 여러분의 브라우저로 데이터를 전송해 주는 용도로 가장 많이 사용됩니다. HTTP는 TCP 의 상위 프로토콜 입니다. 메시지 전체를 확인했다면, 그 메시지를 해석해야합니다. HTTP에는 Request methods, data type 등 원하는 메시지를 전달하기 위한 여러 규칙들이 있습니다.

 

2) HTTPS

HTTPS는 하이퍼 텍스트 전송 프로토콜 보안(Hypertext Transfer Protocol Secure) 입니다.

일반 HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다(해킹가능성)는 것이었는데요. HTTP 의 보안적 단점을 보완하는 것이 HTTPS 입니다.

 

두 프로토콜 사이에 가장 커다란 차이점이 보안을 담당하는 SSL 인증서입니다.

SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데, 쉽게 말해서 데이터를 암호로 바꾼다고 생각하면 쉽습니다. 이렇게 전송된 데이터는 중간에서 누군가 훔쳐 낸다고 하더라도 데이터가 암호화되어있기 때문에 해독할 수 없습니다. 그 외에도 HTTPS는 TLS(전송 계층 보안) 프로토콜을 통해서도 보안을 유지합니다.

 

3) IP / MAC / ARP

  • IP: 컴퓨터의 IP주소는 말그대로 주소 입니다. 이 프로토콜에서는 메시지가 목표로 하는 컴퓨테 잘 도착하도록 해주는 역할을 합니다. 인터넷과 같은 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해 사용하는 특수한 번호로서, 네트워크에 연결된 장치가 공유기/라우터이든 일반 컴퓨터이든, 모든 장치들은 특수한 번호를 가지고 있어야 하며. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달되게 됩니다.이때 사용되는 특수한 번호를 IP라고 합니다.
  • MAC: Media Access Control(MAC). OSI 7계층 중 Data Link 계층에 있는 부계층 중의 하나로,공유 매체에 여러 단말이 접속할 때 충돌을 방지하기 위한 제어를 담당한다. Mutiple-access protocols이라는 다중 접속 프로토콜을 사용한다.
  • ARP: Address Resolution Protocol. 주소결정 프로토콜. 논리적인 IP주소를 기반으로 데이터링크 계층의 물리적인 MAC주소로 바꾸어주는 주소해석 프로토콜

4) DNS: 네트워크 상에서 컴퓨터들은 IP주소를 이용하여 서로를 구별하고 통신합니다. 사람들이 네트워크를 통해 원격의 컴퓨터에 접속하기 위해서는 IP주소를 이용하여야 하지만, 숫자의 연속인 IP주소를 일일이 외울 수 없기 때문에 쉽게 기억할 수 있는 도메인 주소 체계가 만들어졌습니다.
DNS(Domain Name System)은 도메인이름의 수직적인 체계를 말합니다.

 

5) TLS

인터넷에서의 정보를 암호화하여 송수신하는 프로토콜. 흔히 SSL 이라 부르는 것들의 대부분은 TLS 인데, TLS 를 사용해 암호화된 연결을 하는 HTTP 를 HTTPS 라고 합니다. TLS 는 다양한 종류의 보안 통신을 하기 위한 프로토콜인데, HTTPS 는 TLS 위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜입니다.

넷스케이프사에서 개발한 SSL 의 진화된 버전으로 인터넷 통신을 하는 두 사용자가 서로의 신원정보를 인증하는 절차를 갖는 프로토콜입니다. 이 방법을 사용하면 제 3자가 정보를 감청, 조작할 수 없습니다.

6) TCP / UDP

  • TCP: TCP( Transmission Control Protocol ) 전송 제어 프로토콜입니다. HTTP는 자신의 메시지를 전달하기 위해 TCP 프로토콜을 이용합니다. 클라이언트와 서버는 TCP 커넥션이 맺어지면 메시지가 절대 사라지거나 손상되지 않고, 순서가 뒤바뀌는 일도 없는 안정성 있는 프로토콜입니다. TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다 ! IP의 상위 프로토콜인데, 컴퓨터의 위치를 찾아서 메시지를 전달했다면 그 메세지를 확인해야 합니다. 네트워크 상에서 메시지를 전달할 때, 한번에 전달하기보다, 작은 단위)패킷)으로 쪼개서 메시지를 전달합니다. TCP 는 전달받은 패킷들을 재조립하고, 손상되거나 손실된 패킷이 있다면, 재요청합니다.
  • UDP: User Datagram Protocol. UDP는 상대방이 데이터를 잘 받았든 말든 상관하지 않습니다.즉, 데이터 전달에 대한 안정성을 보장하지 않습니다. UDP가 TCP에 비해 속도가 빠른데, 예를 들어, 유튜브( 스트리밍 )는 데이터가 잘 전달 됐는지( 안정성 ) 보다 속도가 더 중요합니다. 즉, 서비스에 따라 사용하는 프로토콜이 다릅니다.

 

참고 사이트: victorydntmd.tistory.com/285

TLS 란? hack-gogumang.tistory.com/129

TCP/IP: ychae-leah.tistory.com/18

 

3. v8에 대해서 알고 있나요? 설명해 보시겠어요?

구글에서 만든 오픈 소스 자바스크립트 엔진으로 크롬 브라우저와 Node.JS에 사용된다. C++로 만들어져 있으며 인터프린터 없이 자바스크립트 코드를 머신코드로 바꿔서 속도가 빠르다.

크롬 V8엔진의 특성은 다음과 같습니다.

  • V8엔진은 C++로 작성됐고 Chrome과 Nodejs에서 사용됩니다.
  • V8엔진은 ECMA-262에 기재된 ECMAScript를 구현했습니다.
  • V8엔진은 standalone으로 동작할 수 있어서 우리는 자바스크립트 엔진을 C++ 프로그램에 내장시킬 수 있습니다.

'Learn then Key points > Tech Interview Questions' 카테고리의 다른 글

7. Network  (0) 2021.03.29
6. HTTP  (0) 2021.03.29
5. Data Structure  (0) 2021.03.29
4. Node.js  (0) 2021.03.29
3. Javascript  (0) 2021.03.29
Comments