전체 글 155

js

Promise js promise 함수는 js의 비동기 처리를 위해 만들어 진 함수이다. 즉 promise 가 생성 될때에는 존재하지 않을 수 있지만 미래에 있을 것을 약속하는 함수이다. 따라서 실행이 잘 되었을 경우와 실패하였을 경우의 함수를 둘 다 정의한다. 성공은 .then 으로 , 실패는 .catch로 잡는다. debounce 어떤 내용을 입력하다가 특정 시간동안 대기하면 마지막 입력 내용을 바탕으로 서버요청을 함. 예를 들면 연관 검색어가 있다. throttle 입력하는 동안에도 이전에 요청한 작업을 주기적으로 실행한다. 스로틀은 일정 시간 내에 한 번만 함수를 호출하도록 하는 기술로, 디바운스와 가장 큰 차이점이라면 정해진 시간 간격 내에 반드시 최대 한 번 함수가 호출된다는 것입니다.

javascript 2022.02.21

js 배열

1. forEach ex) string : 'banana=10&apple=20&orange=10' 을 key, value로 나누기 function parse(qs) { const queryString = qs.substr(1); // substr은 문자열 슬라이스를 담당합니다. const chunks = queryString.split('&'); let result = {}; chunks.forEach( (chunk) => { const[key, value] = chunnk.split('='); result[key] = value; }); return result } 여기서 map 함수를 사용하면 더욱 쉽게 분리가 가능하다. map은 반환된 결과값으로 새로운 배열은 만드는 함수이다. function pa..

javascript 2022.02.15

ES6

ES6 class 사용 class Shape { static create(x,y) { return new Shape(x,y); } name = 'Shape'; constructor (x, y) { this.move(x,y); } move(x,y) { this.x = x; this.y= y; } area() { return 0; } } var s = new Shape(0, 0); s.area(); 위의 static create 는 Class 안의 함수 constructor 는 인스턴트 객체를 초기화 할때 초기화 코드를 결정할 수 있습니다. 화살표 함수 보통은 function add(first, second) { return first + second; } 라고 표현하는데, var add = (first,s..

javascript 2022.02.10

순환 큐와 링크드 큐를 알아 보도록 하자. 순환 큐는 배열로 구현을 해 볼 수 있다. 이때에, 전단과 후단이 맞닿아 있다고 생각을 하고, 구현을 하도록 한다. 이떄 후단은 실제 마지막 아이템의 인덱스보다 1이 더 큰 수이다. 따라서 큐가 비어있는지, 가득차 있는지의 구분은 실제 큐의 길이 보다 1더 크게 구현을 하여 전단과 후단이 같으면 비어있고, 전단 보다 후단이 1 더 작으면 꽉 차이는 큐라고 생각 할 수 있다. 링크드 큐는 각각의 노드로 나누어 링크드 리스트 처럼 구현을 하는데 큐 구조체에서 front노드 와 rear노드를 저장하도록 한다. 구현은 큐의 특성 선입 선출에 맞게 추가 될때 마다 rear 노드를 바ㄷ꾸어 주고 삭제 시에 front 모드를 바꾸어주면 된다. 이떄의 이점은 순환 큐는 용량이..

algorithm 2022.01.03

스택

스택을 배열로 구현 하였다. 이때에 배열의 선언을 type name[] 으로 하지 않고 type* name으로 하고 자유저장소에 할당을 sizeof(type)*capacity 만큼 해주었다. 여기에서 링크트리스트로 배열을 다시 구현 하게 되면 Node 구조체에서 데이터와 다음 노드의 주소 값을 저장 하도록 하고 stack 구조체 에서는 맨 처음의 Node*와 맨 마지막의(top) Node*를 저장한다. 따라서 push를 할때에 연결리스트에서의 append와 같은 형식으로 node를 추가 한 후에 top만 수정 해 준다. pop을 할 때에는 top node를 리턴하고, 새로운 top node를 저장해 준다. ps. 후위 표기 식과 중위 표기식 중위 표기식은 우리가 일상생활에서 활용하는 일반 적인 표시이다...

algorithm 2021.12.30

링크드 리스트 공부

#include using namespace std; typedef struct tagNode{ // typedef 는 c++ 에서는 안써도 되지만 C언어와의 호환을 위해 사용해주는 것이 좋다. tagNode* nextNode = NULL; int data; }Node; Node* CreateNode(int newData){ Node* newNode = (Node*) malloc(sizeof(Node)); // 자유저장소애 Node 를 할당한다. newNode -> data = newData; return newNode; } void appendNode(Node** Head, Node* newNode){ // 여기서의 Node** Head 는 Head노드의 주소 값이다. 일단 Head노드 자체가 Node..

algorithm 2021.12.30