본문 바로가기
BEB/algorithm

재귀(recursion) 개념 & JSON

by ddanss 2022. 10. 11.
728x90

재귀 : 어떤 함수가 스스로를 호출하는 것

재귀를 사용하는 경우
1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
2. 중첩된 반복문이 많거나 반복무늬 중첩 횟수를 예측하기 어려운 경우

재귀의 장점
1. 프로그램의 가독성이 좋다

재귀의 단점
1. 값이 리턴되기 전까지 호출마다 call stack을 새로 생성하므로, 메모리를 많이 사용한다.

JSON (JavaScript Objetc Notation)
- 데이터 교환을 위해 만들어진 객체 형태의 포맷

메시지 객체 전송 가능 조건
1. 수신자와 발신자가 같은 프로그램을 사용한다
2. 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다
이 문제를 해결 하는 방법은 객체를 JSON의 형태로 변환하거나 JSON을 객체의 형태로 변환

JSON.stringify ; Object type을 JSON으로 변환한다. (직렬화[Serialize])
JSON.parse : JSON을 Object type으로 변환한다. (역직렬화[deserialize])

JSON으로 변환된 객체의 타입은 문자열.

자바스크립트 객체의 키 : 키는 따옴표 없이 쓸 수 있음
JSON의 키 : 반드시 큰따옴표를 붙여야함
자바스크립트 객체의 문자열 값 : 문자열 값은 어떠한 형태의 따옴표도 사용 가능
JSON의 문자열 값 : 반드시 큰따옴표를 붙여야함

let tranferableMessage = JSON.stringify(message);
console.log(transferableMessage);
let obj = JSON.parse(transferableMessage);
console.log(obj);


push를 이용할 때 전개 연산자를 사용하지 않은 코드는 array 전체가 들어가 2차원 배열이 되었지만,
전개 연산자를 사용하게 되면 array 내부의 요소 하나하나가 삽입이 된다.

반응형

'BEB > algorithm' 카테고리의 다른 글

[JavaScript/자바스크립트] 순열의 순서  (0) 2022.10.25
[javascript] split의 사용법  (1) 2022.10.13
꼬리재귀, 조합, 하노이  (0) 2022.10.11
고차함수 filter, map, reduce  (0) 2022.10.03
고차함수1 - 기본  (0) 2022.10.03

댓글