본문 바로가기

기술들

(36)
[공부했던 것 정리] 배열의 불변성, 가변성[2] 그렇다면, 원본을 훼손시키지 않는 방법에는 무엇이 있을까? 상식적으로 원본을 복사하면 된다. 복사본을 삶아 먹든 구워먹든 원본은 그대로 있다. 다만 1편에서 예시로 다뤘던 것처럼 복사본에 원본을 직접 할당하면 안된다. ex) 원본 : let array1 = [1,2,3]; 복사본: let array2 = array1; (X) 그 이유는 두 배열의 값 모두 같은 메모리에 하나의 값으로 존재하기 때문에 array2의 배열의 값을 수정하면 당연히 메모리에 하나밖에 없는 배열값이 수정되기 때문에 자동적으로 array1의 배열값(원본)도 수정되기 때문이다. 내가 지금껏 배운 선에서 원본을 훼손시키지 않고 복사하는 넘버원 방법은 slice 메소드를 쓰는 것이다. slice의 뜻은 '일부분'이다. 어떠한 배열에서 내..
[Today I Learned] 7월 21일(화) - 오늘 공부했던 부분. 1) 어제 페어 분과 고민했던 알고리즘 문제를 혼자 다시 한번 풀어보았습니다. 배열메소드 17번, reduce를 사용하는 문제였는데, 페어분이 filter를 문제에 적용시켜 보자고 제안하셨습니다. filter의 기능 및 구동방법에 대해 다시 한번 상기할 수 있었습니다. 2) 불변성에 대한 개념 및 불변성이 배열과 어떤 관계에 있는지 살펴 보았습니다. 그리고 이에 대한 글을 써보았습니다. - 공부하면서 생각했던 것. 함수형 배열 메소드인 filter, reduce등을 계속 연습하는데도 아직 헷갈립니다. '이해'와 '무한반복'만이 살길임을 알기에 코플릿 알고리즘 문제를 계속 반복해서 풀 생각입니다. 그리고 오늘 배열의 불변성에 대한 글을 한 번 작성해 봤는데, 꽤 재미있었습니다. 나..
[공부했던 것 정리] 배열의 불변성, 가변성[1] mutable : 변화 가능한(가변) immutable : 변화 가능하지 않은(불변) 코드스테이츠 배열의 메소드 강의를 들으면서 immutable에 대한 설명을 들었다. 배열에 있어서 immutable이란 본래 원본이 손상되지 않는 것을 말한다. 여기서 원본이라 함은 array변수를 최초 선언하고 그 안에 [1,2,3]이라는 배열을 할당하면 [1,2,3]이 원본이 되는 것이다. let array = [1,2,3]; // [1,2,3] 원본 이렇게 선언을 하게 되면 아래 그림처럼 array이라는 이름으로 메모리 특정 위치에 배열 [1,2,3]이 보관된다. 여기서 새로운 배열을 선언해보자 let newArr = [1,2,3]; 이 newArr이라는 배열은 위에서 선언한 array배열과 똑같은 [1,2,3]이..
[Today I Learned] 7월 18일(토) - 오늘 공부했던 부분. 1) 함수형 프로그래밍의 개념을 살펴보고, 배열 메소드인 reduce, filter, map, forEach에 대해 공부를 했습니다. 2) 위 메소드들을 이용한 알고리즘 문제 풀이를 하였고 자연스럽게 배열로 함수형 프로그래밍 하는 연습을 했습니다. - 공부하면서 생각했던 것. reduce, filter 등의 메소드를 연습해 보면서 제가 받은 첫 느낌은 '불편하다' 였습니다. 메소드 안에 복잡하게 함수를 만들고 조건을 설정해서 새로운 결과를 반환하는 방법에 조금 복잡함을 느꼈습니다. 그렇지만 "아직까지 이 메소드가 이런식으로 존재하는 이유는 이렇게 표현하는게 가장 편하고 효율적인 방법이기 때문 아닐까?" 라는 생각으로 스스로를 합리화하며 열심히 문제를 풀었습니다. - 이해하고픈 부..