본문 바로가기
CS

신입 개발자 CS 면접 대비 질문-웹 #1

by Rudy 2023. 2. 2.

* CS면접을 대비해서 공부한 내용들을 정리했습니다. 틀린 부분이 있을 수 있으니 그럴 경우 댓글 달아주시면 감사하겠습니다!

* 분야는 운영체제, 데이터베이스, 네트워크, 자바, 자료구조 등등 가리지 않고 했기 때문에 여러 과목과 내용이 섞여 있습니다.

* 모든 내용은 간단하게 익히기 위해서 얕게 적혀 있습니다. 깊은 내용은 따로 공부하길 권장드립니다.


WS(웹서버)

소프트웨어에서 웹 서버는 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공하는 컴퓨터 프로그램이다. 이때, 클라이언트가 동적인 컨텐츠를 요청하면 WAS에 요청을 보내고, 응답을 받아 클라이언트에게 전달한다. 아파치 서버 등이 있다.

  • 웹 서버가 필요한 이유: 정적인 컨텐츠를 애플리케이션 서버를 거치지 않고 바로 보내줄 수 있기 때문에 서버의 부담을 줄일 수 있다.

 

WAS(웹어플리케이션 서버, 왓스)

DB조회나 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버로, HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다. 톰캣 등이 있다.

  • WAS 를 사용하는 이유: 웹 서버 기능들을 구조적으로 분리하여 처리하기 위해 사용된다. 정적 컨텐츠는 WS에서 바로 처리하고, 동적 컨텐츠를 WAS에서 요청을 받을 때마다 DB 등에 연결해서 결과를 냄으로써 자원을 효율적으로 사용할 수 있다.

더 자세한 내용: https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

OAuth

인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 개방형 표준 방법이다.

 

네이티브앱

모바일 기기에 최적화된 언어로 개발된 앱으로 안드로이드 SDK를 이용한 java나 ios 기반 SDK를 이용한 Swift로 만드는 앱이다. 성능이 좋고, 네이티브 API를 호출해서 사용함으로써 플랫폼과 밀착되어 있다. 하지만 플랫폼에 한정적이고 언어에 제약이 있다.

 

모바일웹앱

모바일웹+네이티브 앱을 결합한 형태로, 기존의 모바일 웹보다는 모바일에 최적화된 앱이다. 웹앱은 SPA를 활용해서 속도가 빠르다.(PC용 홈페이지를 모바일 스크린 크기에 맞춰 줄여 놓은 것) 웹 사이트를 보는 것이기 때문에 따로 설치할 필요가 없고, 모든 기기와 브라우저에서 접근이 가능하다. 하지만 플랫폼 API를 이용할 수 없고 친화적 터치 앱을 개발하기 힘들다.

 

하이브리드 앱

네이티브앱에 웹앱을 결합한 형태로, 네이티브 앱에 웹 View를 띄워 웹앱을 실행시키기 때문에 양쪽의 API를 모두 사용할 수 있는 것이 가장 큰 장점이다. 네이티브 API와 브라우저 API를 모두 활용해서 다양한 개발이 가능하고 웹개발 기술로 앱 개발이 가능하다. 하지만 네이티브 기능 접근을 위해 개발 지식이 필요하고 UI 프레임 도구를 이용하지 않으면 개발자가 직접 UI를 제작해야 한다.

 

도커

컨테이너 기반의 가상화 플랫폼이다.

  • 컨테이너 기반의 가상화
  • 정리된 환경에서 프로세스 기술을 이용하는 것. 용량이 가볍다.
  • 하이퍼바이저 기반의 가상화
  • 호스트와 게스트를 연결해주는 하이퍼바이저가 있다. 정리된 서버에서 또 하나의 가상 서버를 사용하는 것. 속도가 느리다.

 

도커 허브

도커에서 제공하는 이미지 저장소

 

도커 컴포즈

다중 컨테이너를 정의하고 실행하기 위한 도구

여러개의 프로세스를 하나의 파일로 정리해서 동시에 실행하기 위한 도구

 

HTTP vs HTTPS

HTTP는 암호화가 추가되지 않았기 때문에 보안에 취약하지만, HTTPS는 SSL을 이용해서 암호화를 이용할 수 있어서 안전하게 데이터를 주고받을 수 있다. 하지만 HTTPS를 이용하면 암호화와 복호화 과정을 거쳐야 해서 HTTP보다 속도가 느리며, 인증서를 발급받기 위한 추가 비용이 필요하다.

단순 데이터 조회같은 노출이 되어도 되면 HTTP를 사용해도 되지만 민감한 정보를 포함하고 있다면 HTTPS를 이용해야 한다.

댓글