계획했던대로 자격증 취득도 다 해서, 8월부터는 알고리즘과 팀프로젝트에 전념할 계획이였다. 하지만 알고리즘 스터디를 하기전에 JS 기본기를 탄탄하게 다져두고 하는게 깊은 이해에 도움이 될 것 같았다. 때마침 회사 프런트 엔드 직원분들이 "모던 자바스크립트 Deep Dive" 와 "코어 자바스크립트" 두 책을 강추해주셨다. 그동안 나는 인강이 좀 더 잘 맞는다고 생각했어서, 우선 끝까지 읽기에 상대적으로 얇은 책으로 선택했다. 처음엔 가볍게 "혼동되는 개념만 잡고 빨리 알고리즘으로 넘어가야지. " 라는 생각뿐이였는데 1, 2 단원을 읽고 생각이 바뀌었다. 남들이 이해한 내용을 듣기만 하는게 아닌, 책을 보면서 곰곰히 고민하고 이해하는것도 잘 정리가 되었다. 그래서 단원별로 포스팅하면서 한번 더 머리속에 정..
오늘은 병합연산자 "??" 에 대해서 포스팅 해보려고 한다. ?? 예시를 보면 바로 이해가 갈 것이다. A ?? B A가 null 또는 undefined이면 B 그게 아니라면 A 이게 전부다. 이걸 언제쓰면 유용한지 알아보자. dto.last_id가 null이거나 undefined일때 0으로 변환해서 이후 0과 대소 비교를 하는 코드다. 이처럼 숫자 0을 구분 지어 다뤄야 할때 아주 유용하다. 또 이런 dto.parent_uuid에 대한 이런 구구절절 말도안되는 코드도 dto.parent_sort_depth = dto.parent_uuid ?? 0 이렇게 한줄로 끝내버릴수 있다. 이처럼 0 외에도 기본값을 할당하는 좋은 용도로 사용할 수 있다.
오늘은 문자열을 원하는 지정구분 기호로 배열로 분할하는 법에 대해서 알아보자. 케이스는 이러하다. 관련 DB에 sort_depth라는 컬럼이 존재하는데 해당 값들은 string으로 이루어져 있다. 나는 사진에 아랫쪽에 있는 "118,121,122,123" 의 크기(길이?)를 구해 4라는 값을 얻고 싶었다. 그럼 우선 배열로 변환한 다음, length()를 사용하여 크기를 구할 계획이다. 여기서 배열로 변환할때 " , " 이 콤마 단위로 구분을 해서 넣어 줘야되는데 이때 split()를 사용하면 간단하다. split()이란? 지정된 구분 기호에 따라 문자열을 하위 문자열 배열로 분할할 수 있는 내장 JavaScript 문자열 메서드이다. 사용법은 간단하다. const str = "118,121,122,12..
Javascript에서 배열의 요소를 순차적으로 순회하면서 특정 조건을 만족하는지 체크하는 some()함수를 다룰 것이다. some함수의 특징은 - true를 만족하는 요소를 찾을 때까지 callback 함수를 실행한다. - 만족하는 요소가 없거나 빈 배열인 경우 false를 반환한다. - 처리하는 요소의 범위는 callback 함수의 첫 호출 전에 설정된다. likeTotal이라는 배열안에 객체의 "user_uuid"라는 key값에, "user"라는 value값이 있으면 true를 반환 하고 싶었다. 관련 코드를 확인해 보자. const likeTotal = [ { user_uuid: '1234', likes: 10 }, { user_uuid: '5678', likes: 5 }, { user_uuid:..
오늘은 Javascript에서 자주쓰이는 find()와 filter() 사용법에 대해 알아보고 응용해서 두 배열에서 서로 일치하는 Value 값 찾기를 할 것이다. 해당 코드를 통해서 find()를 먼저 알아보자. 변수 "findMeComment"는 "meCommentList"라는 배열의 객체의 uuid의 value과 controller에서 넘겨준 Param(uuid)와 일치하는 객체를 뽑는 역할을 한다. meCommentList = [ {uuid:123123}, {uuid:234234}, {uuid:333333}, ... ] find()메소드는 변수에 저장된 객체 배열을 검색하는 역할을 하고있다. 해당코드에서 find()메소드는 콜백함수를 인수로 사용하며, 이 함수는 값을 반환할때까지 배열의 각 요소에..
오늘은 객체의 속성이나 문자열의 개수 구하는 법에 대해 포스팅 하려고 한다. ".length" 는 배열에서 밖에 사용을 못해서 객체나 문자열에서는 사용하지 못한다. dto.parent_sort_depth 를 콘솔찍어보면 3,4,5,6,7 이라는 문자열로 나온다. 이 문자열의 길이를 구하려면 어떻게 해야할까? Object.keys().length; // 괄호안에 dto.parent_sort_depth 를 넣어준다. Object.keys(obj).length를 하게 되면, 해당 문자열의 길이, 크기를 리턴받을 수 있다. 따라서 Object.keys(dto.parent_sort_depth).length를 해보면 5가 리턴 된다. 문자열 뿐만 아니라 객체(Object)에도 똑같이 사용할 수 있다. blanc이라..
오늘은 JavaScript map() 함수의 기능중 한개에 대해 간략하게 포스팅 해보려고 한다. 우선 코드를 보자. - service부 일단 코드를 간략하게 설명하면 dto를 파라미터로 받아서 해당 repository에서 검색후 결과가 없을경우 에러처리를 해주는 부분이다. 콘솔찍은 결과도 확인 해보자. 이렇게 배열로 해당 결과값이 나오게 된다. 하지만 나는 이 결과값에서 keyword_uuid만 뽑아서 사용을 해야되는 상황이 생겼다. 이럴때..! map() 함수를 사용하면 된다. - service부 변수를 선언하고 타입은 배열로 지정을 해준다. 앞서 변수로 선언한 keywordFollowList에 .map() 함수를 사용해서 원하는 값을 추출해서 새로운 배열로 만들 수 있다. 나는 keyword_uuid..