
자료구조 파트는 사실 상, 알고리즘 문제 풀이와 직접적인 연관이있는 파트여서 개념이해 -> 문제풀이 위주로 공부해야겠다. 처음 알고리즘 문제를 접했을때 멘붕이왔지만, 레퍼런스 코드를 보며 계속해서 공부해보니 조금 친숙해져서 이제서야 정신차리고 포스팅을 시작. 어려운 개념이여서 천천히 원리를 이해하는게 우선이다 어려워도 포기는 노노 ! 시작해보자 그래프 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종 깊이우선탐색 DFS 최대한 깊이 내려간 뒤 더이상 갈곳이 없을때는 옆으로 이동 가계도로 생각해보면 부모님 형제보다 나 먼저 탐색하는거 우리집안부터 정확하게 보는 구조 모든 노드를 방문하고자 하는 경우에 이 방법을 선택함 너비우선탐색 BFS 최대한 넓게 이동한 뒤더이상 갈곳이 ..

1. 개념 줄을 서서 기다리는 구조 Stack과 반대되는 개념으로 먼저 들어간 데이터가 먼저 나옴 *FIFO(First In First Out) 혹은 LILO(Last In Last Out) 컴퓨터 장치들 사이에서 데이터(data)를 주고 받을 때, 각 장치 사이에 존재하는 속도의 차이나 시간 차이를 극복하기 위해 임시 기억 장치의 자료구조로 Queue를 사용 *이 과정을 버퍼(buffer)라고 함 while 반복문과 짝궁 2.구조 const queue = [] queue.push(1) // [1] queue.push(2) // [1, 2] queue.push(3) // [1, 2, 3] queue.push(4) // [1, 2, 3, 4] queue.push(5) // [1, 2, 3, 4, 5] //..

1.개념 데이터를 순서대로 쌓는 자료구조 LIFO(Last In First Out) 혹은 FILO(First In Last Out) 대표적인 예 : 브라우저의 뒤로 가기, 앞으로 가기 기능 2. 특징 재귀 함수와 짝궁 3. 구조 const stack = [] stack.push(1) // [1] stack.push(2) // [1, 2] stack.push(3) // [1, 2, 3] stack.push(4) // [1, 2, 3, 4] stack.push(5) // [1, 2, 3, 4, 5] // LIFO(Last In First Out) stack.pop() // [1, 2, 3, 4] stack.pop() // [1, 2, 3] stack.pop() // [1, 2] stack.pop() // [..

자료구조공부에 앞서 브라우저의 동작원리를 알아두면 좋을것같아서 정리한다. 브라우저 이놈들...컴퓨터놈들...사고방식 자체가 우리와는 다릅니다. ㅠㅠ 웹브라우저? 자바스크립트 코드짠거 실행해주는 엔진! 자바스크립트 해석해주는 애들이다. 웹브라우저 내에는 Stack이라는 공간이있다. 한줄한줄. 스택이라는 공간안에 집어넣고 실행을 시켜준다. 나는 스택! (아래 캡쳐본들은 유튜브에 코딩애플 인강을 들으며 캡쳐한것입니다) 코드를 실행할때 변수같은것을 만난다. Heap 이라는 공간에 변수들이 저장이되어있다. (heap은 이전에 reference 복사에서도 배웠던 개념이다!) 스택은 한개밖에없다. 한번에 코드 한줄밖에 실행을 못한다 =single threaded 언어다 (전문용어로 표현한것) 근데 위에 비동기에서 봤..

영화 데이터를 불러오는 쌩 fetch(ajax)로 불러올때 ajax = 비동기통신으로 데이터를 주고받는 기술인 AJAX(서버에 새로고침없이 요청을 할수있게 도와준다. AJAX를 쓰기위해 리액트를 씀. 리액트는 일종의 도구 ) 둘은 같은 작업을 하는 코드다. 사용법을 익혀보자. 1. 프로미스로 then을 받은경우 useEffect(()=>{ fetch(`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`) .then((res)=>res.json()) .then((json) => { setMovies(json.data.movies) setLoading(false) }) },[]) 2. async await 사용시 async() =>..
JSON : Javascript object notation 데이터 교환을 위해 만들어진 객체 형태의 포맷 데이터를 주고받을때 쓰는 간단한 파일 포맷 텍스트를 기반으로 해서 가볍다. {Key : vlaue} 이루어졌다. 직렬화, 전송할때 쓴다. 프로그램에 언어나, 플랫폼에 상관없이 쓸수있다. 메시지 객체를 전송하려면? 전송 가능한 조건 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다. 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다. JavaScript에서 객체에 메소드(message.toString())나 형변환(String(message))을 시도하면, [object Object] 라는 결과를 리턴 이문제점을 해결하기위해 뚜둥!! JSON등장 객체를 JSON의 형태로 변환..
class Grandma{ constructor(name){ this.firstname = 'lee' this.name = name } } let Grandma1 = new Grandma('chaeyoung') Grandma와 유사한 class를 만들고싶다. => 할머니의 속성을 그대로 물려받아서. => extends 사용 extends해서 만든 class는 this를 함부로 사용할수없다. super()다음에 사용해야한다. super : 부모 class의 constructor를 의미한다. class Grandma{ constructor(name){ this.firstname = 'lee' this.name = name } } class Mother extends Grandma{ constructor(na..