inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

API #3. 실습 Node.js를 이용한 간단한 API구축 ★☆☆

파일 수정 시 API는 변경되지 않는 실습 질문 있습니다.

해결된 질문

432

Pingman

작성한 질문수 2

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요. 유사한 질문을 보았지만 제가 이해한게 맞는지 알고싶어 질문 드립니다.

API 실습 2번의 b.js 파일에서 사진과 같이 "name" 데이터만 API로 만들어져서 사용한 것이고,

스크린샷 2023-03-13 오전 12.39.04.png실습에서 수정하신 "tall" : "200"은 API에 관계 없는 부분의 수정이라 상관 없다고 하신 걸까요?

key 값인 "name" 데이터를 수정하면 반영 되는데, API로 만들어진 것 외의 데이터 수정을 의미하신 건지 궁금합니다.

부족하지만 이해한 것이 맞는지 질문 드립니다.

감사합니다.

면접 운영체제 기술면접

답변 1

1

큰돌

안녕하세요 62님 ㅎㅎ

a.json이란 파일은

{
    "name" : "kundol",
    "tall" : "200"
}

tail이라는 key 값이 있는 데이터죠?

 

이러한 데이터를 기반으로 API를 구축합니다.

앞의 데이터를 바탕으로 그 파일안의 name이라는 key 값으로 해당 value를 끄집어냅니다.

app.get('/', (req, res) => {
    const f = JSON.parse(fs.readFileSync("a.json", {encoding:"utf-8"}))
    const data = {
        "name" : f.name
    }
    res.send(data) 
})

그렇게 해서 해당 값을 응답값으로 전달되는 api를 만든 것이죠.

여기서 강의에서 보여드렸던 수정은

file의 tail부분을 막막 수정한것이죠.

그러나 해당 API에 요청했을 때 name = kundol이라는 값은 수정이 되지 않죠?

그래서 API장점인, file을 수정해도 API는 수정되지 않게 만들 수 있다라는 장점이 있는것이죠.

API는 파일과 유저 사이의 중간계층이니까요.

 

왜 그럴까요?

API자체를 file안의 name 만!! 연관되게 만든 것이기 때문이죠.

만약 이렇게 했다면 달라지겠지만요.

app.get('/', (req, res) => {
  const f = JSON.parse(fs.readFileSync("a.json", {encoding:"utf-8"}))
  const data = {
      "name" : f.name, 
      "tail" : f.tail
  }
  res.send(data) 
})

해당 코드는 file 전부를 넣는 모습입니다.

 

아까 tail만을 바꾼 것은 하나의 예시입니다. 예를 들어 name 값을 변경한다면 file이 수정되어도 api도 수정되는 것이죠.

tail수정 >> api자체 = name에만 연관되게 >> file수정되어도 api는 수정x

name 수정 >> api자체 = name에만 연관되게 >> file수정되고 api도 수정

tail수정 >> api자체 = tail도 연관되게 >> file수정되고 api도 수정

 

이렇게 이해하시면 될 것 같아요.

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

 

0

Pingman

a.json 데이터를 기반으로 요청이 왔을 때 응답할 데이터를 name만 해당하게 api를 만들어놓은 상태 인 것이죠?

예시까지 들어주셔서 확실히 이해했습니다.

감사합니다!

REST API (Self-descriptive messages)

0

28

1

시스템 엔지니어 관련 질문입니다.

0

53

2

오버라이딩 관련하여 질문드립니다.

0

62

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

92

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

57

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

68

1

IPv4가 IPv6보다 빠른 경우

0

103

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

59

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

64

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

83

2

Static 키워드가 메모리에 올라가는 시점

0

78

2

헤더 압축부분 질문드립니다

0

73

2

공유 캐시 관련 질문 드립니다.

0

56

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

201

1

회선과 대역폭의 관계

0

63

2

44강 질문

0

95

2

버스 토폴로지 질문 있씁니다

0

55

1

자바스크립트, xml 문법 관련

0

67

2

전략패턴과 의존성주입 질문

0

69

2

Model이 비즈니스 로직을 담당하나요?

0

108

2

CS 공부 하는 법

0

181

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

137

2

FIN 세그먼트 질문

0

72

2