Today I Learned D - 54

손상훈·2022년 11월 15일
1

- MTM, OTO, FK를 설명해주세요

< Many To Many 다대다 >

  • 다대다 관계를 지정하려면 중간에 테이블(pivot table)이 하나 더 필요.
  • 두 테이블이 서로 각자 다른 테이블의 여러 데이터와 연결 될 때에는 두 테이블에 속한 에티더의 조합을

    ex) 저자는 여러 책을 쓸 수 있고, 책은 여러 저자를 쓸 수 있다.

< One To One 일대일 >

  • 테이블과 테이블이 정확히 1:1로 매칭되는 것.
    ex) 로그인 데이터를 가진 테이블과 유저의 프로파일을 가진 테이블이 있을 때, 한 유저는 하나의 프로파일 데이터와만 매칭된다.

< FK (Forign Key) 외래 키 >

  • 다른 테이블의 pk키를 참조하여 가져온 키
    ex) 부모 테이블인 학생 테이블, 자식 테이블인 수강내역 테이블이 있다고 하면
    학생 테이블의 PK값을 수강내역테이블로 가져오면 그 학생 테이블을 FK로 가진다.

그 밖의 One to many, Many to one도 있다. ex) 사람은 여러개의 취미를 가질 수 있다 - otm, ex2) 하나의 Team은 여러 Member를 구성원으로 갖고 있으므로 Team 입장에서는 Member와 일대다 관계이며, Member의 입장에서는 하나의 Team에 속하므로 다대일 관계이다.
즉, 어떤 엔티티를 중심으로 상대 엔티티를 바라보느냐에 따라 다중성이 다르게 된다.

ERD 예시

ERD 표기법 (Entity Relationship Diagram)

ERD 작성 및 표기법

  • 존재하고 있는 것들의 관계를 나타낸 도표.
  • 추가적으로 다대다는 실무에서 잘 쓰면 안된다? 잘 사용도 안한다. 왜?
  • 왠만하면 다대일 구조로 바꾸는 것이 좋다.
  • 연결 테이블이 단순히 연결만 하고 끝나지 않고, 연결 테이블에 추가 정보가 들어갈 수 업시만 실무에서는 연결 테이블에 추가 정보가 필요한 경우가 많기 때문.

- JSON에 대해 간단하게 설명해주세요.

Json 이란?

  • 서버에서 클라이언트로 데이터를 보낼 때 사용하는 양식.
    클라이언트가 사용하는 언어와 관계없이 통일된 데이터를 주고 받을 수 있도록 변환하는 것이다.
    Json 데이터는 이름과 값의 쌍으로 이루어진다.
    Json 데이터는 쉼표(,)로 나열된다.
    객체(object)는 중괄호({})로 둘러쌓아 표현한다.
    배열(array)은 대괄호([])로 둘러쌓아 표현한다.

< 객체예시 >

배열예시

Json 구조 전체예시


- HTTP 메시지의 구조를 셜명해주세요

(HyperText Transfer Protocol)

  • 서버와 클라이언트 간에 데이터가 교환되는 방식.
    Type은 2가지로 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지고, 응답(reponse)은 요청에 대한 서버의 답변이다.

- Request와 Response 메시지의 역할을 설명해주세요

HTTP request 메세지는 start line, headers, body로 구성된다.

start line에는 또 3부분으로 구성되어있고, HTTP Method (GET,POST,PUT,DELETE,OPTIONS)등이 있다. Request target (URI, 예를들어, /login). HTTP Version (HTTP버젼. 1.0, 1.1, 2.0 )
Hearders에는 추가 정보를 담고 있는 부분. 예를 들어, request 메세지 body의 총 길이 등. Key:Value 값. Headers도 3부분으로 나뉘지만 그정도만 알고 있으면 된다. header 정보에는 자주 사용되는 Host - ex) google.com , User-Agent - ex) 웹브라우저에 대한 정보 , Accept - ex) 응답(response 타입) , Connection - 요청이 끝난 후에 클라이언트와 서버가 네트워크 커넥션을 유지할 것인지 말 것인지 대해 지시하는 부분 , Content-Type - 해당 요청이 보내는 메세지 body의 타입 ex) JSON을 보내면 application/json , Content-Length - 메세지 body의 길이
Body에는 request의 실제 메세지/내용.

반대로 Response 메세지 또한 같이 3가지로 구성되어있다.
status Line - HTTP버젼, status code, status text ex) HTTP/1.1 404 Not Found , Headers - request와 동일하지만 대신에 User-Agent 댓신 Server 헤더가 사용. Body - 요청에 관련된 내용. 본문html

- HTTP의 헤더의 역할을 설명해주세요

  • request에 대한 추가 정보를 담고 있는 부분.
  • 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 한다. ex) message body 본문 내용을 해석할 수 있는 정보를 제공해준다.

- State와 Stateless의 뜻을 설명해주세요

Stateless란?

  • 클라이언트와 서버관계에서 말그대로 state(상태)를 저장하지 않는 다는 뜻.
    즉, 요청이 오면 그에 응답을 할뿐, 여러 요청/응답끼리 연결되어 있지 않다는 뜻이다. ex) 요청을 보내고 응답을 받은 후 조금 있다 다시 요청을 보낼 때, 전에 보냈던 요청에 대해 알지 못한다.

+추가 stateful 이란?

반대로 상태유지라고 하는데
문제점은 다른서버를 사용해야 할때 이전서버의 상태값들을 가지고 있지 않다.
즉, 중간에 서버가 장애가 생기면 클라이언트는 처음부터 다시 데이터를 줘야한다. 또, 서버가 1만명의 클라이언트 처리할 능력이라하면 일부가 빠져야 다음 클라이언트가 처리된다.
stateless와 stateful

- JWT 구조를 설명해주세요

JWT란? Json Web Token의 약자로 인증에 필요한 정보들을 암호화시킨 JSON 토큰이다. 그리고 JWT 기반 인증은 JWT 토큰을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다.

구조로는 Header,Payload,signature이다. Header에는 JWT에서 사용할 타입과 해시 알고리즘의 종류가 담겨있으며, Payload는 서버에서 첨부한 사용자의 권한 정보와 데이터가 담겨있다. Signature에는 개인키(PK)로 서명한 전자서명이 담겨있다.

- 역참조에 대해 설명해주세요

profile
< 코린이의 코딩모험기 >

0개의 댓글

관련 채용 정보