week_2 개념스터디_공통

은영·2021년 8월 6일

Dev-immersion

목록 보기
2/6
post-thumbnail

HTTP

  • HTTP (Hypertext Transfer Protocol)
    • 웹을 개발하기 위해 기본적으로 사용되는 프로토콜
    • 웹 상에서 클라이언트와 서버가 서로 정보를 주고받을 수 있도록 하는 규약
    • 클라이언트는 UTL로 된 HTTP를 통해 서버에게 정보 송신을 요청

http 1.1 / 2.0

  • http 1.1
    • 기본적으로 연결 당 하나의 요청과 응답 처리
    • 동시전송 문제, 속도 및 성능 이슈 존재
    • 응답 느림, 속도 느림 -> 성능 안좋음
  • http 2.0
    • 여러 개의 요청과 응답 처리
    • 성능과 속도 모두 http1.1보다 월등

상태코드

  • 상태코드 : 상태를 통일화하여 표현하기위해 만든 규칙
    • 100번~ : 정보 확인
      • 리소스 교체 요청 또는 전송 등의 상태를 표현해주는 역할
    • 200번~ : 통신 성공
      • 클라이언트가 요청한 작업이 성공적으로 수행됐다는 상태 알리는 역할
    • 300번~ : 리다이렉션
      • 클라이언트가 요청한 리소스 손실 시 다른 URL로 가라고 안내 역할
    • 400번~ : 클라이언트 오류
      • 클라이언트가 서버에 보낸 요청이 잘못된 경우를 표현해주는 역할
    • 500번~ : 서버 오류
      • 서버에 문제가 발생했다고 알려준 역할 (클라이언트의 잘못이 아님)

요청 메서드

  • GET : 존재하는 자원에 대한 요청
  • POST : 새로운 자원을 생성
  • PUT : 존재하는 자원에 대한 변경
  • DELETE : 존재하는 자원에 대한 삭제
  • 기타 요청 메소드
    • HEAD : 서버 헤더 정보를 획득
    • OPTIONS : 서버 옵션들을 확인하기 위한 요청

http vs https

  • https
    • http의 보안 취약점을 해결하기 위해 만들어진 프로토콜
  • SSL 프로토콜을 추가하여 데이터를 암호화한다
  • 공개키 방식
    • 공개키와 비밀키는 암호문을 만들고 복호화할 때 사용됨
  • 사용 예) : 인증, 전자 상거래 등
  • 사용하는 이유
    • 1) 무결성 : 중간에 데이터가 변조되지 않는다
    • 2) 기밀성 : 데이터가 비밀로 유지될 수 있다
    • 3) 인증 : 데이터의 진위여부를 확인 할 수 있다.

http vs tcp vs ip

  • TCP/IP

    • TCP와 IP 의 2개의 프로토콜로 이루어짐
    • IP 프로토콜 위에 TCP 프로토콜이 놓여짐
  • TCP(Transmission Control Protocol)

    • 데이터 전달을 관리하는 규칙으로 데이터를 작게 나누어 한쪽에서 다른 쪽으로 옮기고, 다시 조립해 원래대로 만드는 규칙
    • 패킷 : 작게 나눈 데이터 단위
  • IP(Internet Protocol)

    • 인터넷상의 주소 규칙
    • 이전 IPv4의 주소 고갈로 IPv6로 전환되고 있다.

참고) http://blog.wishket.com/http-%ea%b7%b8%eb%a6%ac%ea%b3%a0-https%ec%9d%98-%ec%9d%b4%ed%95%b4/
https://webactually.com/2018/11/16/http%EC%97%90%EC%84%9C-https%EB%A1%9C-%EC%A0%84%ED%99%98%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C/

서버와 클라이언트란

  • 서버(server) : 클라이언트들이 요구하는 각종 서비스를 제공하는 측

  • (클라이언트/서버 모델에서)
    - 네트워크 상에서 하드웨어 또는 소프트웨어로써 서비스의 요청을 받는 측

  • 클라이언트(Client) :기본적으로 한 개 이상의 서버가 제공하는 서비스를 사용할 수 있는 소비자의 개념

  • (클라이언트/서버 모델에서)
    - 네트워크를 이용하여 서버측에 서비스 요청을 의뢰하는 주체

참고) https://server-talk.tistory.com/291

세션 & 쿠키란 무엇인가

세션(Session)

  • 1) 서버안에서 다뤄지는 것
  • 2) 사용자나 다른 누군가에게 노출되면 안되는 정보들은 세션으로 서비스 제공자가 직접 관리(많으면 서버에 부담)
  • 사용 예
    - 로그인 같이 중요한 작업을 수행할 때 사용

쿠키(Cookie)

  • 1) 사용자의 편의를 위한 것
  • 2) 지워져도 되고, 가로채이더라도 큰 일이 없는 수준의 정보들을 브라우저에 저장
  • 사용 예
    - 쇼핑몰의 장바구니, 방문사이트에서 로그인시 뜨는 확인 창

세션과 쿠키의 차이

  • 가장 큰 차이점 : 사용자의 정보가 저장되는 위치
  • 쿠키서버의 자원을 전혀 사용X, 세션은 서버의 자원 사용

세션 대신 쿠키를 사용하는 이유

  • 세션은 서버의 자원을 사용 -> 메모리 문제로 속도가 느려질 수 있음

참고) https://interconnection.tistory.com/74

Prettier & ESLint

Prettier의 필요성

  • Prettier : 자동으로 코드의 스타일을 관리해주는 도구
  • ex) 문자열을 사용 할때 '을 쓸지, "를 쓸지, 또는 세미콜론(;)을 코드 뒤에 붙일지 말지 등을 관리해줄 수 있다.
  • CLI를 통해 명령어를 입력하여 사용 할 수도 있고, 다양한 에디터와 연동해서 사용 할 수도 있다.

ESLint의 필요성

  • ESLint : 자바스크립트의 문법을 확인해주는 도구
  • CRA로 만든 프로젝트에는 이미 적용이 되어있어 만약 실수가 발생하면 터미널에 오류 또는 경고가 나타난다
  • ex) 값을 선언 한후 사용하지 않으면, 터미널에서 오류 발생

ESLint vs Prettier

  • 코드 에러, 문법 등을 정적으로 탐지할 경우 -> Eslint
  • 포맷팅의 경우 -> Prettier

참고) https://react.vlpt.us/basic/27-useful-tools.html

profile
Leyn(레인)

0개의 댓글