자바스크립트에서 재귀함수란, 더 이상 쪼갤 수 없을 때 까지 문제를 나눈 다음 가장 작은 단위의 값부터 차례대로 자기 자신 함수를 호출하여 값을 돌려주는 것을 말한다. 모든 재귀함수는 반복문으로 대체 가능하지만, 반복의 깊이가 어디까지 이어질지 알 수 없는 상황에서는
재귀함수의 대표적인 케이스인 피보나치 수열 문제를 풀어보았다.문제: 수(num)를 입력받아 피보나치 수열의 num번째 요소를 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의
filter 메소드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 리턴한다. 이 filter 메소드는 테스트를 실행할 콜백함수를 인자로 받는다. filter 메소드가 어떤 알고리즘으로 기능을 실행시키는지 문제 하나를 통해 알아보자.문제: 함수와 배열
map 메소드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다. map과 filter의 가장 큰 차이점은 filter에 반해 map은 모든 요소를 입력받은 콜백함수에 적용하여 리턴한다는 점이다. filter는 말 그대로 조
객체 코플릿의 마지막 끝판왕 문제를 풀어보았다. 몇날 며칠을 테스트 케이스 돌려보고, 디버거를 돌려보고, 식을 갈아엎었다가 다시 썼다가를 여러번 반복했지만 결국 10개의 테스트 중 8개의 테스트 통과가 최선이라 레퍼런스를 보고 공부하기로 했다. 우선 내 코드의 큰 문제
immutable한 메서드와 mutable한 메서드를 구분해서 사용해야하는 경우가 생각보다 많다는 것을 알고 자바스크립트에서 데이터의 가변성(mutability)과 불변성(immutability)에 대해 정리해보려고 한다. 1) immutable 얕은복사(shall
CSS Selector 기초 정리기본 셀렉터전체 셀렉터다중 선택자ID 셀렉터class 셀렉터후손 셀렉터(해당 부모 엘리먼트의 모든 자손 엘리먼트들을 선택/ 자식, 손자 등등)자식 셀렉터(해당 부모 엘리먼트의 직계 자식 엘리먼트만을 선택)형제 셀렉터인접 형제 셀렉터부정
DOM이란: javascript를 이용해서 엘리먼트의 속성값을 얻어내거나, 변경하는 방법 HTML 요소를 Object(JavaScript Object)처럼 조작(Manipulation)할 수 있는 Model 즉, 자바스크립트를 사용할 수 있으면, DOM으로 HTML을
reduce는 배열을 하나의 값으로 만들어준다. 그 과정은 다음과 같다. reduce는 초기값(initial value)을 설정할 수 있는데, 이 초기값을 설정해주지 않으면 배열의 0번째 인덱스가 초기값으로 등록이 된다. 이 초기값은 누적값(accumulator)의
재귀함수 공부를 하면서 가장 인상깊었던 문제가 바로 이 unpackGiftbox 문제였다. 오늘은 이 문제를 분석해 보겠다.문제선물 상자에 대한 정보를 담은 배열과 문자열을 입력받아 조건에 맞는 선물이 있는지 여부를 리턴해야 합니다.입력인자 1 : giftBox문자열,
Stack은 먼저 들어온 데이터가 가장 나중에 빠지는 구조로, First In Last Out(FILO) 또는 Last In First Out(LIFO) 구조라고 부르기도 한다. Stack을 그림으로 표현하면 다음과 같다.Stack 알고리즘의 구현은 다음과 같다.Que
그래프라고 하면 익히 수학에서 다루는 x축과 y축을 가진 그래프를 떠올릴 수 있다. 그러나 컴퓨터 공학에서 다루는 자료구조 그래프는 마치 거미줄처럼 여러개의 점들이 선으로 이어져 있는 복잡한 네트워크 망과 같은 모습을 하고 있다.이 그래프는 정점(vertex)과 간선(
BFS는 '너비 우선 탐색'으로 트리 구조 탐색 방식 중 하나이다.아래 코드는 방향이 없는 간선들의 목록이 주어질 때, 연결된 정점의 컴포넌트(그룹들)가 몇 개인지 반환하는 함수를 구현한 코드 이다. 이 알고리즘은 인접 리스트와 인접 행렬의 두 가지 방식으로 구현할 수
고차함수를 익히기 위한 훈련 중 오늘은 언더바(underbar) 메소드 구현 연습을 해보았다. 언더바 메소드 구현이란, 원래 자바스크립트에 내장되어 있는 메소드들을 새롭게 메소드 이름 앞에 언더바(_)를 붙여서 똑같은 기능으로 구현해 보는 연습이다. 오늘은 언더바 메소
비동기적 실행은 동기적 실행의 반대 개념으로 일상생활에서 '동기적', '비동기적' 이라는 단어를 자주 접해보진 못했을 것이다. 먼저 동기적 실행은, 어떤 일에 요청이 들어오면 그 요청에 즉시 응답하는 응답처리 방식이다. 동기적 실행은 요청에 대한 응답을 즉시 돌려주기
CallbackPromise와 Async Await을 다루기 전에 먼저 callback으로 비동기 호출하는 구조를 살펴보자.콜백은 말 그대로 회신, 답신이라는 의미이다. 따라서 콜백함수는 함수의 인자로 넘겨주었을 때, 해당 함수를 실행하면 내부에서 같이 실행되는 함수이
이제는 절대경로와 상대경로의 명확한 차이를 구별할 때가 온 것 같다. 리액트에서 파일을 임포트 해 오거나 터미널에 cli 명령어를 입력해 디렉토리로 이동해야 하는 일이 많아지고, 파일 경로가 점점 더 복잡해지면서 점점 혼돈 속으로 빠지게 되었다!!웹페이지나 파일이 가지
| |특징 | 장점 | 단점 | |:----------:|:----------:|:----------:|:--------:| | CSS | 기본적인 스타일링 방법 |- |일관된 패턴을 갖기 어려움, !importa
파일 구조위 두 가지 상태를 가지고 있음react-router-dom 라이브러리를 사용하고 있어 <Router>, <Switch>, <Route> 컴포넌트로 적절히 경로 분기를 시켜주어야 함.<Nav> 컴포넌트를 렌더링함. 네비게이션 바이며, 장바
폴더인가 파일인가위와 같이 명령어를 입력하면 pc 내의 디렉토리와 파일의 목록을 보여준다.터미널 출력 결과를 살펴보면, 가장 왼쪽의 drwxr-xr-x 와 -rw-r--r-- 를 확인할 수 있다. drwxr-xr-x에서 이 출력 결과의 첫 시작 글자인 d가 direc
여러 쿼리문 한 번에 써보기다음은 Brazil에서 온 고객을 도시별로 묶은 뒤에, 각 도시 수에 따라 내림차순 정렬합니다. 그리고 CustomerId에 따라 오름차순으로 정렬한 3개의 결과만 요청하는 예시입니다.
들어가기에 앞서 MVC(Model-View-Controller)란? (출처: mdn, 오픈튜토리얼스, 유어클래스) MVC는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다. 소프트웨어의 비즈니스 로직과 화면을 구분
조금 많이 늦어버린 스프린트 리뷰..가 되어버렸지만, 다가올 HA를 위해 지금이라도 정리해두자!Part 2 requirement는 controller 구현이다. 총 세 개의 함수를 구현해야 하는데, 구현해야 할 함수는 get, getById(redirect),post
TypeScript는 타입 지정이 안되는 JavaScript 언어의 단점을 보완하기 위한 컴파일(compile) 언어('트랜스파일(transpile)'이라고도 함)이다. TypeScript로 타입 에러 체킹을 하는 예제는 다음과 같다.위 예제와 같이 string 타입의
이번 알고리즘 문제는 문제 자체 설명도 복잡하고 그림으로 이해해야 하는 부분이 많아서 깃헙 커밋 대신 블로깅으로 대체한다.하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어
특징구축비용 많이 듦. 시간도 많이 듦.장비 세팅 구매까지 오래 걸림 -> 다수의 인력 필요급작스럽게 증가하는 트래픽에 빠르게 대응할 수 없음장비를 직접 구매 및 소유하는 방식장비를 구매 및 직접 소유하지 않음.서비스처리에 원하는 용량 만큼 구매해서 바로 사용 가능함.
동시에 실행되는 여러 개의 트랜잭션이 작업을 성공적으로 마칠 수 있도록 트랜잭션의 실행 순서를 제어하는 기법이다....무슨 말일까..? 처음엔 이게 무슨 말인지 정확히 와 닿지 않았다. 그래서 조금 더 자세한 설명을 통해 내 나름대로 이해를 해 보았다.내가 오늘 들은
디자인 패턴이란, 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것을 의미한다.디자인 패턴은 라이브러리와 프레임워크의 기본이 된다.라이브러리: 공통으로 사용될 수 있는 특정한 기능들을 모
Group by를 사용하여 행을 그룹화하고 나면 그룹화한 행에 조건을 걸어주어야 할 상황이 생긴다. 예를 들어각 정비소마다의 리뷰 개수를 조회함. 단, 리뷰의 총 개수가 3개 이상인 정비소만 조회위와 같은 데이터의 필터링이 필요한 경우 Group by와 함께 Havin
이 글은 제로초님의 강의 영상을 바탕으로 정리된 글입니다.출처: https://www.youtube.com/watch?v=-w-oJp6OVd4call by value(값에 의한 호출): 인자로 받은 값을 복사하여 처리, 원본 데이터 값에 영향을 주지 않는다.c
프로그래머스만 사용해서 코딩테스트를 여태 준비해왔었는데 입출력값을 받을 코드까지 고려해야 하는 시스템에서는 백준에서 한 두개 풀어본 문제 외에 처음 다루는지라 엄청나게 헤맸다. 이것은 그 헤맨 시간에 대한 기록이다.처음 이 코드를 마주하고 굉장히 당황했다. fs.rea