자바스크립트에서 문자열을 감쌀 때 무엇을 사용하면 좋을까? & JSON 이란?

김석재·2024년 5월 20일
0

JS / REACT

목록 보기
11/11

싱글 쿼테이션(''), 더블 쿼테이션(""), 백틱(``) 중 어떤걸 사용하면 좋을까?

더블 쿼테이션 사용을 권장(주관적임)

  • 그 이유는? JSON 이 더블 쿼테이션으로 이름/값 쌍을 감싸고 있기 때문.
    보통 JS 는 JSON으로 파싱하는 경우가 많이 생기는데, 싱글 쿼테이션 사용시 JSON.parse 시에 문제가 발생할 수 있다.

다른 언어들에서는?

  • SQL 에서는 싱글 쿼테이션은 string이나 문자열 표현시 사용, 더블 쿼테이션은 식별자나 객체 이름 표현시 사용한다.
  • JAVA 에서는 싱글 쿼테이션은 character 표현시 사용, 더블 쿼테이션은 string 표현시 사용한다.

그렇다면 사용에 표준이 있나?

ECMA-262 표준문서에서는 예제코드 및 프로토타입 함수를 정의할 때 더블 쿼테이션을 사용하고 있다.
하지만 구글의 사내 코드 컨벤션은 싱글 쿼테이션이라고 한다.
그만큼 선호도의 차이일 뿐 무엇을 사용하던지 큰 문제는 없다고 하는데, 그렇다면 JSON 을 자주 사용하는 자바스크립트에서는 더블 쿼테이션을 사용하는 게 유리하지 않을까?

스택오버플로우에서도 더블 쿼테이션 사용이 바람직하다고..(주관적인 의견)

네 가지 이유로 더블 쿼테이션을 사용하는 게 바람직하다고 주장한다.
1. 영어에서의 더블 쿼테이션은 인용된 텍스트의 구절을 식별하기 위해 사용하고, 싱글 쿼테이션은 구어적 의미를 나타낸다. 기존 언어와 일관성을 유지하는 것이 합리적이다.
2. 더블 쿼테이션 사용시 I'm Kim 과 같은 문자열에서 apostrophes 를 escape 처리하지 않아도 된다.
3. 더블 쿼테이션은 다른 많은 언어들에서 문자열을 의미하는 것이 일반적이다. JAVA나 C와 같은 언어들에서는 문자열이 더블 쿼테이션을 의미하고, 싱글 쿼테이션은 다른 기능을 가지는 경우가 있다.
4. JSON 의 표기법은 더블 쿼테이션이다.

이러한 이유로 더블 쿼테이션이 유리하다고 말한다.
무엇을 쓰던 상관은 없다고 하지만, 찾아본 내용을 종합했을 때 사내 혹은 프로젝트 컨벤션이 싱글 쿼테이션을 지향하는 것이 아니라면 굳이 사용할 필요가 있을까 생각이 든다. 물론 shift + ' 를 누르기가 귀찮긴 하지만..


JSON 은 뭔데?

JSON(Javascript Object Notation) 은 key/value 객체 형태의 경량 데이터 교환 형식이다. JS 를 포함한 여러 언어에서 범용적으로 사용한다.

JSON.stringify : 객체를 JSON 으로 변환(직렬화)
JSON.parse : JSON 을 객체로 변환(역직렬화)

** 직렬화 : 외부의 시스템에서 사용할 수 있도록 바이트 형태로 데이터를 변환하는 기술. 코드 내의 객체나, 해시테이블, 딕셔너리 등을 JSON으로 변환하는 것을 의미한다.

** 역직렬화 : 외부 시스템의 바이트 형태의 데이터를 객체나 해시테이블, 딕셔너리 등으로 변환하는 것을 의미한다.

JS와 JSON 객체의 차이점

JS 객체
1. 키에 따옴표 없어도 가능 -> {key:"value"}
2. 문자열 값에 작은 따옴표 사용 가능 -> {"key":'value'}
3. 키-값 사이에 공백 사용 가능 -> {"key" : "value"}
4. 키-값 쌍 사이에 공백 사용 가능 -> {"key":"value", a=1}

JSON 객체
1. 키,값에 무조건 더블 쿼테이션 -> {"key":"value"}
2. 키-값 사이에 공백 사용 불가능 -> {"key":"value"}
3. 키-값 쌍 사이에 공백 사용 불가능 -> {"key":"value",a=1}

JSON 의 특징

  • 간결하고 가독성이 좋다.
    JSON은 텍스트 기반 형식이므로 사람이 읽고 쓰기 쉬우며, 간단하고 가독성이 좋다.
  • 키-값 쌍 형태
    JSON 은 키, 값, 사이의 쌍으로 데이터를 표현한다. 키-값 쌍은 객체의 형태로 표현되며, {}로 둘러싸여 있다.
  • 데이터 타입 지원
    JSON 은 다양한 데이터 타입을 지원한다. 문자열, 숫자, 불리언, 배열, 객체, null 을 표현할 수 있다.
  • 중첩 구조
    JSON 객체 내에서 다른 JSON 객체를 중첩하여 사용할 수 있고, 배열을 사용해서 여러 값을 저장할 수 있다.
  • 언어 독립적
    JSON은 언어 독립적인 형식이므로 다양한 프로그래밍 언어 간에 데이터를 교환하는 데 사용할 수 있다.
  • 웹 API 통신
    웹 애플리케이션에서 서버와의 통신에 JSON을 주로 사용한다. 서버에서 클라이언트로, 혹은 클라이언트에서 서버로 데이터를 보낼 때 JSON 형식을 사용한다.

참고
https://stackoverflow.com/questions/242813/are-double-and-single-quotes-interchangeable-in-javascript
https://www.json.org/json-en.html

0개의 댓글