⭐️ 2023.10.27 (금)

이준영·2023년 10월 27일

⭕️ TIL (Today I Learned)

목록 보기
69/100
post-thumbnail

⭕️ Today I Learned


매일 할 일 ✅ ❌

✅ 1일 1커밋
❌ 1일 1알고리즘 문제 풀이
✅ 1일 2기술면접 개념 정리

✏️ 오늘 한 공부

알고리즘 문제풀이

백준


기술 면접 대비 개념 공부

[ 기술 면접 대비 개념 정리 통합본 ]

  1. HTTP 메서드에 대해 설명해주세요.
HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 말합니다. 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법이다.
HTTP 메소드에는 9가지 종류가 존재합니다. 5개는 익숙하지만 4개는 써보지 않은 메소드들 입니다.
주요 메소드
GET : 리소스 조회
POST: 요청 데이터 처리, 주로 등록에 사용
PUT : 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성
PATCH : 리소스 부분 변경 (PUT이 전체 변경, PATCH는 일부 변경)
DELETE : 리소스 삭제
기타 메소드
HEAD : GET과 동일하지만 메시지 부분(body 부분)을 제외하고, 상태 줄과 헤더만 반환
OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정
TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
  1. CORS(Cross Origin Resource Sharing)에 대해 설명해주세요.
브라우저에서는 보안적인 이유로 다른 사이트에 요청을 보내는 cross-origin HTTP 요청들을 제한합니다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요합니다. 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절합니다.
이러한 허락을 구하고 거절하는 메커니즘을 HTTP-header를 이용해서 가능한데, 이를 CORS(Cross-Origin Resource Sharing)라고 부릅니다.

cross-origin

cross-origin이란 다음 중 한 가지라도 다른 경우를 말합니다.
프로토콜 - http와 https는 프로토콜이 다르다.
도메인 - domain.com과 other-domain.com은 다르다.
포트 번호 - 8080포트와 3000포트는 다르다.
  1. 브라우저의 작동방식에 대해서 설명해주세요.
브라우저는 상단 주소 표시줄에 접속하기 원하는 서버의 도메인에 요청을 보내게 되면, DNS에서 도메인이 가지는 IP주소를 알려주고 IP주소에 해당하는 물리적 서버에 요청이 날아간 후 응답이 브라우저로 도착하면 브라우저는 해당 응답을 렌더링해서 클라이언트에게 보여주게 됩니다.
  1. 쿠키, 세션의 개념과 차이를 설명해보세요
쿠키
  • 클라이언트로컬에 저장되는 키와 값이 들어있는 데이터 파일
  • 사용자 인증이 유효한 시간을 명시 가능, 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징
  • 사용자가 따로 요청하지 않아도 브라우저가 Request시에 Header에 넣어서 자동으로 서버에 전송
세션
  • 쿠키를 기반으로 하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 다르게, 서버 측에서 세션을 관리
  • 서버에서는 클라이언트를 구분하기 위해 세션ID를 부여하여 쿠키를 통해 이를 인증
  1. TCP/UDP에 대해서 설명해주세요.
TCP, UDP 는 TCP/IP 모델의 전송 계층 에서 사용하는 프로토콜 입니다.
TCP, UDP 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어있습니다.
TCP는 Transmission Control Protocol의 약자입니다. 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간의 데이터를 안정적으로, 순서대로 교환하게 해줍니다. TCP는 연속성보다 신뢰성이 있는 전송이 중요할 때 사용하는 프로토콜입니다.
UDP는 User Datagram Protocol의 약자입니다.여기서 Datagram은 독립적인 관계를 지니는 패킷을 뜻합니다.즉, 각각의 패킷이 독립적이기 때문에 패킷마다 서로 다른 경로로 독립적으로 처리하게 됩니다. UDP는 신뢰성보다 연속성이 있는 전송이 중요할 때 사용하는 프로토콜입니다.
  1. http, https 차이점에 대해 설명해주세요
HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜입니다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 응답합니다. 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환합니다. 간단히 말해 HTTP 프로토콜은 네트워크 통신을 작동하게 하는 기본 기술입니다. 이름에서 알 수 있듯이 HTTPS(Hypertext Transfer Protocol Secure)는 HTTP의 확장 버전 또는 더 안전한 버전입니다. HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정합니다.
HTTPS 웹 사이트는 독립된 인증 기관(CA)에서 SSL/TLS 인증서를 획득해야 합니다. 이러한 웹 사이트는 신뢰를 구축하기 위해 데이터를 교환하기 전에 브라우저와 인증서를 공유합니다. SSL 인증서는 암호화 정보도 포함하므로 서버와 웹 브라우저는 암호화된 데이터나 스크램블된 데이터를 교환할 수 있습니다.
  1. DI, IoC에 대해 설명해주세요.
DI(Dependency Injection)란 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식입니다.
DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아집니다.
스프링 컨테이너에서 DI를 하는 방법은 여러가지가 있는데, 대표적으로 생성자 주입, 메소드 주입, 필드 주입 등이 있습니다.
IoC(Inversion of Controll)는 구현체를 직접 생성해서 사용하고 있었다면, 외부로부터 구현체를 입력 받는 것 입니다.
  1. 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요?

객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

실전 프로젝트 공부해야 할 것들

  • Kafka
  • partition 개념, consumer개념
  • ELB, Nginx - 로드밸런싱
  • blue green 배포

실전 프로젝트

  • kafka 메세지 전송을 통해 물품 주문과, 주문 재고처리 로직을 나눔
  • 재고처리시 동시성 해결 처리

⭐️ 하루 생각 정리 ⭐️

3주만 더 화이팅...

profile
작은 걸음이라도 꾸준히

0개의 댓글