function fillSlots(array, num) {
for (let i = 0; i < num; i++) {
array[array.indexOf(null)] = "특정 문자열";
}
}
안녕하세요 글루미입니다😁
오늘은 네부캠 9기 챌린지 첫날이었는데요, 첫 미션을 진행하면서 학습했었던 내용들을 정리해보려고 합니다.
시간이 오래 걸릴 거라고 생각은 했었지만, 생각보다 더 오래 걸렸던 것 같아요. 미션 제출 방법부터 코드 작성에 대해서도 컨벤션이 있었기 때문에 준수하면서 코드를 작성하려고 노력했습니다.
가장 어려웠던 컨벤션은 우아한 테크코스 관련 글을 찾아보면서도 봤던 종류인데, 함수의 길이와 들여 쓰기를 조절해서 상위 함수와 하위 함수를 구분하는 것이었어요. 그런 내용을 신경 쓰면서 해본 적이 없었다 보니 낯설어서 힘들었던 것 같아요.
그래도 함수형 프로그래밍에 중점을 맞춰서 상위 함수와 하위 함수를 구분하고 들여 쓰기를 신경 써서 코드를 작성하니까 전체적으로 코드가 깔끔하고 좋았습니다. 생각보다 어려웠던 일은 함수 이름 정하는 부분이 어려웠던 것 같아요. 매개변수도 최대한 3개 이하로 맞추려고 노력했는데 그 부분도 꽤 어려웠던 것 같아요😔
오늘 미션을 해결하는 과정에서 학습한 `JavaScript`의 메소드는 `array.indexOf()`입니다.
`array.indexOf()`
`array.indexOf()`는 배열의 값 중 특정 값을 찾아서 해당 자리의 인덱스를 리턴하는 메소드입니다. 오늘 사용한 부분은 일부 발췌하면
function fillSlots(array, num) {
for (let i = 0; i < num; i++) {
array[array.indexOf(null)] = "특정 문자열";
}
}
배열에서 `null`인 인덱스를 `num`개만큼 찾아서 특정 문자열로 변경하는 코드입니다.
두 번째 학습한 부분은 `deep copy`입니다.
특정 값의 변화를 체크하기 위해서 `tmp`값을 복사하고 원본 값을 변화시킨 후 `tmp`값과 비교를 진행했는데 `tmp`값이 변하는 버그가 발생해서 원인을 찾아보니 `tmp`값이 원본 값을 단순 참조하고 있기 때문이었어요. 그래서 `deep copy` 방법을 찾아서 해결하였습니다.
let tmp = JSON.parse(JSON.stringify(list[i]));
위와 같이 `deep copy` 방식으로 코드를 작성하면 원본을 참조하지 않고 완전히 새로운 객체가 되기 때문에 무리 없이 진행할 수 있습니다.
사실 오늘의 미션은 `JavaScript`보다는 코드를 함수 단위로 쪼개서 작성하고 코드 뎁스를 깊지 않게 작성하는 것에 익숙해지는 데 의의가 있었던 것 같아요. 앞으로 하루하루 이렇게 미션에 대한 학습을 정리할 생각입니다. 이상, 챌린지 1일차 학습 정리였습니다.
'Naver boostcamp' 카테고리의 다른 글
[학습 정리] 네이버 부스트캠프 챌린지 Day04 학습 정리 (0) | 2024.07.18 |
---|---|
[학습 정리] 네이버 부스트캠프 챌린지 Day03 학습 정리 (0) | 2024.07.17 |
[학습 정리] 네이버 부스트캠프 챌린지 Day02 학습 정리 (0) | 2024.07.16 |
[회고] 네이버 부스트캠프 WebㆍMobile 9기 베이직 1주차 후기 (0) | 2024.07.02 |
[회고] 네이버 부스트캠프 9기 1차 문제 해결력 테스트 합격 후기 (0) | 2024.06.19 |