Skip to content
This repository was archived by the owner on Jul 8, 2025. It is now read-only.
This repository was archived by the owner on Jul 8, 2025. It is now read-only.

Week2_KimDongGeun #10

@ehdrms2034

Description

@ehdrms2034

1.HTTP status code 에 대해서 자세히 알아오기

1xx Informational(정보) : 요청을 받았으며 처리가 계속되고 있음을 나타냅니다.
2xx Success(성공) : 요청이 성공했음을 나타냅니다. 보통 200을 성공으로 사용하지만 UI 가 없는 API 등에서는 처리가 완료되었을 경우 201 이나 204 응답을 보내는 경우도 있습니다.
3xx Redirection(리다이렉션) : 클라이언트가 요청한 컨텐츠가 다른 곳에 있다는 의미입니다.
4xx Client Error(클라이언트 에러) : 클라이언트 측에 기인한 오류로 요청이 실패했음을 나타냅니다.
5xx Server Error(서버 에러) : 서버 측에 기인한 오류한 오류로 인해 요청이 실패했음을 나타냅니다.

대표적인 상태코드

200 OK 요청이 정상적으로 완료되었음.
201 Created 성공적으로 요청되었으며 서버가 새 리소스를 작성했음을 의미합니다. 브라우저가 API를 사용하여 POST 로 새로운 정보 등록을 요청할 경우 결과값으로 사용합니다.
204 No Content 성공적으로 요청되었으며 서버가 새 리소스를 작성했지만 응답 컨텐츠가 없음을 의미하며 API 에서 많이 사용하는 상태 코드입니다.
301 Moved Permanently 요청된 리소스가 영구적으로 다른 URI 에 있음을 나타냅니다.
302 Found 요청된 리소스가 일시적으로 다른 URI 에 있음을 나타냅니다.
401 Unauthorized 권한없는 컨텐츠를 요청했을때 인증을 거치라는 의미로 사용하며 요처한 인증이 실패했을 경우에도 응답으로 전송합니다.
403 Forbidden 금지된 컨텐츠를 요청하여 서버가 실행을 거부했음을 나타냅니다.
404 Not Found 요청한 리소스가 서버에 없음을 나타내며 브라우저에서 잘못된 URL 을 전송했을 경우 발생합니다.
500 Internal Server Error Java 나 PHP 등 서버 내부에서 실행되는 프로그램에서 예외가 발생했음을 나타냅니다.
503 Service Unavailable 서버가 현재 작업이나 유지보수로 인해 잠시 가용하지 않음을 나타냅니다. 웹 서버와 WAS 로 기능이 나눠진 경우 웹 서버가 WAS 에 연결하지 못할 경우에도 발생합니다.

2.암호화 방식 종류 알아오기. + bcrypt 가 무엇인지 알아오기.

암호화는 크게 대칭형 암호, 비대칭형 암호 방식으로 나뉜다.

  • 대칭형 암호 알고리즘은 송신측과 수신측간에 각각 암호화와 복호화를 위하여 동일한 비밀키를 사용합니다.
  • 이 키는 비밀 통신망 또는 직접전달 등의 안전한 전송방식을 위해 사전에 전달되어야 합니다.
  • 대칭키 암호화방식은 암복호화 속도가 빠른 이점이 있으나 키 관리에 어려움이 있습니다.
    대표적으로는 AES & DES방식이 있습니다.

비대칭형 암호 알고리즘 은 암호화할 때 사용되는 Key값과 복호화 할 때 사용되는 Key값이 서로 다른 알고리즘입니다.

  • 대칭키 암호시스템에 반해 비대칭키(공개키 암호시스템)은 암호화와 복호화를 위해 서로 다른 키를 사용
  • 다른 키는 공개키라고 하며 공개된 장소에 쉽게 접근이 가능하도록 보관합니다.
  • 암호화 할 때 사용하는 공개키는 공개된 시스템에 전화번호처럼 공개하고 복호화 할 때 사용하는 비밀키는 안전하게 보관하여야 합니다.
  • 비대칭키는 암/복호화 할 때의 key값이 다르며 대표적으로는 RSA라는 암호화방식이 존재하며
    암호화 할 때의 키를 공개키 복호화 할때의 키를 개인키라고 합니다.

bcrypto
bcrypto는 비밀번호 해쉬 함수입니다.
해싱 알고리즘은 단방향성을 가지고 있고 고정된 길이의 고유값을 제공합니다.
한글자만 변경되도 전혀 다른 해쉬값이 형성되서 비밀번호를 보호하는데 아주 좋은방법입니다.
해쉬 함수는 서버에 암호화된 정보를 저장해놓고 로그인할때 해시값이 동일한 경우에만 성공하는 방법입니다.
해쉬가 해킹되는 방법이 존재하기 때문에 이를 막기위해 해쉬할 때 무작위의 문자열을 붙여서 해쉬함수를 실행하는 것을
Salt치기라고합니다.

bcrypto는 이 Salt와 해쉬함수를 활용한 단방향 기법의 암호화 종류 중 하나입니다.

middleware 에 대해서 알아오기

미들웨어-
미들웨어는 양 쪽을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어,
네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어를 말합니다.
3계층 클라이언트/서버 구조에서 미들웨어가 존재합니다. 웹브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 됩니다.

이점

  • 표준화된 인터페이스 제공 가능
  • 다양한 환경 지원, 체계가 다른 업무와 상호 연동이 가능
  • 분산된 업무를 동시에 처리 가능하여 자료의 일관성이 유지
  • 부하의 분산이 가능

노드에서는 대표적으로 Express를 미드웨어로 활용하고 있습니다.

Express는 자체적인 최소한의 기능을 갖춘 라우팅 및 미들웨어 웹 프레임워크이며, Express 애플리케이션은 기본적으로 일련의 미들웨어 함수 호출입니다.

미들웨어 함수는 요청 오브젝트(req), 응답 오브젝트 (res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수입니다. 그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시됩니다.

미들웨어 함수는 다음과 같은 태스크를 수행할 수 있습니다.

모든 코드를 실행.
요청 및 응답 오브젝트에 대한 변경을 실행.
요청-응답 주기를 종료.
스택 내의 그 다음 미들웨어 함수를 호출.

현재의 미들웨어 함수가 요청-응답 주기를 종료하지 않는 경우에는 next()를 호출하여 그 다음 미들웨어 함수에 제어를 전달해야 합니다. 그렇지 않으면 해당 요청은 정지된 채로 방치됩니다.

Express 애플리케이션은 다음과 같은 유형의 미들웨어를 사용할 수 있습니다.

애플리케이션 레벨 미들웨어
라우터 레벨 미들웨어
오류 처리 미들웨어
기본 제공 미들웨어
써드파티 미들웨어

애플리케이션 레벨 및 라우터 레벨 미들웨어는 선택적인 마운트 경로를 통해 로드할 수 있습니다.
일련의 미들웨어 함수를 함께 로드할 수도 있으며, 이를 통해 하나의 마운트 위치에 미들웨어 시스템의 하위 스택을 작성할 수 있습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions