const param = qs.stringify({
"grant_type": 'authorization_code',
"client_id": client_id,
"redirect_uri": redirect_uri,
"client_secret": client_secret,
"code": req.query.code //이 부분이 프론트단에서 req를 통해서 카카오에서 받아온 인가 코드를 넘겨주는 부분.
});
내가 현재 보고있는 카카오 로그인 관련 서버 파일에서 이런식으로 코드가 작성되어 있는 내용을 볼 수 있었는데,
이 때에 이 qs.stringify() 속에 들어있는,
{
"grant_type": 'authorization_code',
"client_id": client_id,
"redirect_uri": redirect_uri,
"client_secret": client_secret,
"code": req.query.code
}
부분에서, 이게 객체이고, 이걸 qs 속에있는 stringify 함수를 이용해서 스트링화 해서 url 쿼리문 형태로 만들어주는 함수였는데, 이때에 그렇담 저런식으로 키: 값 형태로 작성되어있는 부분에서 키를 " " 로 감싸도 이게 자바스크립트 객체인지에 대해서 잘 몰랐었는데,
이에 대해서 json 파일에 대한 내용들을 보다보니까 관련된 내용을 얻을 수 있었고,
그에 대한 시험도 해보아서 그에 대해서 기록해보력 한다.
위와 같은 예시안에 대해서 접할 수 있었고,
이와같이,
내가 일부러
let aa2= { "name": "pippin", "hometown": "shire" } 형태로 작성한 코드를 typeof로 확인해보니 이것또한 object로 나오는것을 볼 수 있었다. 그러니까 객체를 생성할때 키값을 " " 로 감싸더라도 전혀 문제가 없는 것이다.
그러니까 다음에도 혹시 이번에 내가 참고하고 있는 서버 코드를 보듯이, 객체에서 키값을 " "로 감싸더라도 이게 자바스크립트에 있는 오브젝트 라는것을 잘 파악하도록 하자.
아직 자바스크립트에 대해서 이해의 깊이감이 낮기 때문에 코드를 해석하고 이해하는데 굉장히 오랜 시간이 걸리고 있지만, 계속 이런식으로 하다 보면 뇌가 적응해서 금방 해석능력과 코드를 작성하는 능력이 향상 될 수 있을것 같다.
한번 꾸준하게 해나가보도록 하자.
아 그리고 stringify를 통한 직렬화에서
그동안 직렬화라는것에 대해서 잘 이해하지 못하고 있었던것 같은데
이 부분을 보면,
결국 직렬화란 객체를 스트링화 하고, 보기 편하게 인덴트나 줄바꿈이 있던것처럼 보기 편하게 있던것을 싹 제거해서 쭉 한줄로 만들어버리는 것이라는걸 알게되었다. 이걸 인터넷 상에서 이러한 string을 주고 받은뒤, 다시 받은다음에는 이렇게 한줄로 쭉 글자들로만 이어져있는 string을, 다시 deserialization을 통해서 객체 형태로 만들어주면 각각의 객체의 프로퍼티에 접근할 수 있어서 데이터를 주고받고, 그 데이터를 통해서 정보를 가공해서 처리하기 쉽게 만들어주는 방법이라고 보여진다.
이제 좀 더 이런 형태로 인터넷 상에서 데이터를 주고받는것을 이해할 수 있을것 같다.
알면 알수록 네트워크와 http 프로토콜에 대해서 더욱 깊게 알고싶고 알아야 겠다는 생각이든다.
틈날때마다 공부해보도록 하자.
'크래프톤 정글 > 자바스크립트' 카테고리의 다른 글
자바스크립트는 비동기처리에서의 의문점에 대한 답변(단일스레드인데 어떻게 동시에 일을 처리하는가?) (0) | 2023.07.27 |
---|---|
워드클라우드 사용을 위한 D3와 D3-cloud, 그 외 여러가지 참고사항에 대한 모음글(아직 정리되지 않음) (0) | 2023.07.09 |
constructor와 setter가 헷갈려서 검색해본 구분점. (0) | 2023.07.06 |