- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 백준 실버
- 에러처리
- http
- Java Script
- 상태관리
- 그림으로 배우는 http&network
- 백준
- 모던 자바스크립트
- git
- map
- 웹
- 프론트엔드
- js
- error
- html
- 모던 자바스크립트 deep dive
- 이터러블
- Angular
- async
- git error
- 네트워크
- deep dive
- 알고리즘
- React
- get
- JavaScript
- 자바스크립트
- 비동기
- C++
- es6
목록전체 글 (95)
sharingStorage
0. 우선순위 큐(priority Queue)란? Priority Queue는 Container의 한 종류이며 일반 queue는 First In First Out인 것에 반해 설정된 우선순위에 따라 우선순위가 가장 큰 것이 Top을 유지하고 먼저 Out(pop)된다. 내부적으로는 Heap의 자료구조를 갖고있다. 1. 기본 사용법 1.1 헤더 우선순위 큐는 queue를 include 하여 사용한다. #include 1.2 선언 priority_queue pq; 구현체와 비교연산자는 각각 vector와 less가 default 값이다. 자료형 : int, double등 기본 자료형 뿐만 아니라 구조체, 클래스 등 다양하게 사용 가능 컨테이너 : 요소를 저장하는데 사용할 기본 컨테이너 유형. (보통 vecto..
문제 요약 주어진 식에 괄호를 적절히 쳐서 식의 값을 최소로 만드시오. 가장 처음과 마지막은 숫자이며 두 개 이상의 연산자가 나타나지 않으며 5자리보다 많이 연속되는 숫자는 없다. 접근 1. -뒤에 무조건 괄호를 넣어서 계산한다. 2.1. -가 나오면 괄호를 닫고 그 후 -를 계산한다. 2.2 +가 나오면 괄호를 유지한 채로 큰 수를 만들어 -를 계산한다. 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; string str; int N; int main() { cin >> str; int result = 0; string num; bool isMinus = false; //-기호가 나왔는지..
https://www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같 www.acmicpc.net 문제 요약 알바생 강호가 줄선 손님들에게 팁을 받는다. 각 손님은 원래 주려했던 팁 금액 - (받은등수 -1) 만큼의 금액을 팁으로 준다. 위 식의 결과가 음수라면 강호는 그 손님에게 팁을 받을 수 없다. 사람의 수 N과, 각 사람이 주려고 생각하는 팁이 주어질 때, 손님의 순서를 적절히 바꿨을 때, 강호가 받을 수 잇는 팁의 최댓값을 구하는 프로그램을 작성하시오. 접근 큰 팁을..
모던 자바스크립트 완독 회고 책을 읽게된 계기 Angular로 프로젝트를 해보면서도, React 기초를 공부하면서도, Svelte 코드를 수정할 때도 가장 많이 느낀점은 자바스크립트 기초 지식에 대한 부족이였다. 생각해보면 내가 js를 공부하게된 것은 학교 수업 웹프로그래밍을 이수하고 나서부터인데 그땐 HTML과 CSS를 주로 다뤘고 JS도 jQuery를 다뤘던 기억이 있다. 그리고 생활코딩, 10강정도 되는 유튜브 기본강의, 인프런 타입스크립트 강의등을 들었던 것이 끝이다. Angular나 React를 공부할 때 모르는 부분은 대부분 자바스크립트에서 있는 기본 개념을 조금 발전시킨 것들이 많았는데 기초가 튼튼하지 않으니 시간도 많이 소모되고 뭔가 중간이 빈 느낌이 계속 들었다. 또 컴퓨터공학 전공생이라..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsaAuv/btrRBbDwDLL/ufxj8wX3fo88L23gy3Y0v1/img.png)
크롬, 사파리 파이어폭스, 엣지 같은 에버그린 브라우저의 ES6 지원율은 약 98%지만 IE 11의 지원율은 약 11%다. 그리고 매년 새롭게 도입되는 ES6이상의 버전과 제안 단계에 있는 ES제안 사양은 브라우저에 따라 지원율이 제각각이다. 따라서 ES6+와 ES.NEXT의 최신 사양을 사용하여 프로젝트를 진행하려면 최신 사양으로 작성된 코드를 경우에 따라 IE를 포함한 구형 브라우저에서 문제 없이 동작시키기 위한 개발 환경을 구축하는 것이 필요한다. 또한 대부분의 프로젝트가 모듈을 사용하므로 모듈 로더도 필요하다. ES6모듈은 대부분의 브라우저에서 사용가능하지만 다음과 같은 이유로 아직 별도의 모듈 로더를 사용하는 것이 일반적이다 IE를 포함한 구형 브라우저는 ESM을 지원하지 않는다. ESM을 사용..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bA9AfA/btrRyUVDYJO/vCYnc5BhtWkUpKtQSWI2L1/img.png)
48.1 모듈의 일반적인 의미 모듈이란 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 일반적으로 모듈은 기능을 기준으로 파일 단위로 분리한다. 이때 모듈이 성립하려면 모듈은 자신만의 파일 스코프(모듈 스코프)를 가질 수 있어야한다. 자신만의 파일 스코프를 갖는 모듈 자산 (모듈에 포함되어있는 변수, 함수, 객체 등)은 기본적으로 비공개 상태이다. 다시말해 모든 자산은 캡슐화 되어 다른 모듈에서 접근 할 수 없다. 즉 모듈은 개별적 존재로서 애플리케이션과 분리되어 존재한다. 모듈은 애플리케이션이나 다른 모듈에 의해 재사용되어야 의미가 있다. 따라서 모듈은 공개가 필요한 자산에 한정하여 명시적으로 선택정 공개가 가능하다. 이를 export 라고한다. 공개된 모듈의 자산은 다른 모..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kxHNB/btrRysSGUj7/p5lkLbrbfcQCy6UEKBdpDK/img.png)
47.1 에러 처리의 필요성 에러가 발생하지 않는 코드를 작성하는 것은 불가능하다. 에러는 언제나 발생할 수 있고 발생한 에러에 대해 대처하지 않고 방치하면 프로그램은 강제 종료된다. 에러에 의해 프로그램이 강제 종료되어 [End]같은 아래 코드는 실행되지 않는다. try catch문으로 에러를 적절하게 대응하여 프로그램이 강제 종료되지 않고 계속해서 코드를 실행시킬 수 있다. 에러나 예외적인 상황은 너무나 다양하기 때문에 아무런 조치없이 프로그램이 강제 종료된다면 원인을 파악하여 대응하기 어렵다. 47.2 try ... catch ... finally 문 기본적으로 예외처리를 구현하는 방법은 크게 두가지가 있다. 예외적인 상황이 발생하면 반환하는 값(null 또는 -1)을 if문이나 단축평가 또는 옵셔..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/csxSVF/btrL83wJopx/3x7UiMG3MyNApsCiwqJrdK/img.png)
46.1 제너레이터란? ES6에서 도입된 제너레이터는 코드 블록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 특수한 함수다. 제너레이터와 일반 함수의 차이점은 다음과 같다. 1. 제너레이터 함수는 함수 실행을 함수 호출자가 제어할 수 있다. 다시 말해, 함수 호출자가 함수 실행을 일시 중지시키거나 재개시킬 수 있다. 이는 함수의 제어권을 함수가 독점하는 것이 아니라 함수 호출자에게 양도할 수 있다는 것을 의미한다. 2. 제너레이터 함수는 함수 호출자와 함수의 상태를 주고받을 수 있다. 일반 함수는 매개변수를 통해 함수 외부에서 값을 주입하고 반환받는다. 즉 함수가 실행되고 있는 동안에는 함수의 상태를 변경할 수 없다. 제너레이터 함수는 함수 호출자에게 상태를 전달할 수 있고 함수 호출자로부터 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/81XC3/btrIH6XXgtj/BVSfdfVl7j6csJq3TjAB4k/img.png)
Promise 자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용한다. 하지만 전통적인 콜백 패턴은 콜백 헬로 인해서 가독성이 나쁘고 비동기 처리 중 발생한 에러의 처리가 곤란하며 여러개의 비동기 처리를 한번에 처리하는 데도 한계가 있다. ES6에서는 비동기 처리를 위해 또 다른 패턴으로 프로미스를 도입했다. 프로미스는 비동기 처리 시점을 명확하게 표현할 수 있다는 장점이 있다. get 함수는 비동기 함수다. 비동기 함수란 함수 내부에 비동기로 동작하는 코드를 포함하는 함수를 말한다. 비동기 함수를 호출하면 함수 내부의 비동기로 동작하는 코드가 완료되지 않았다 해도 기다리지 않고 즉시 종료된다. 따라서 비동기 함수 내부의 비동기로 동작하는 코드에서 처리 결과를 외부로 반환하거나 상위 스코..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwuLLh/btrIxUCTwKr/GdcKKGvGVy3cO4VyzIl2C0/img.png)
REST는 HTTP의 장점을 최대한 활용할 수 있는 아키텍처로서 소개되었고 이는 HTTP 프로토콜을 의도에 맞게 디자인하도록 유도하고 있다. REST의 기본 원칙을 성실히 지킨 서비스 디자인을 "RESTful"이라고 표현한다. REST API는 자원, 행위, 표현의 3가지 요소로 구성된다. REST는 자체 표현 구조로 구성되어 REST API만으로 HTTP요청의 내용을 이해할 수 있다. 구성요소 내용 표현 방법 자원 자원 URI (엔드포인트) 행위 자원에 대한 행위 HTTP 요청 메서드 표현 자원에 대한 행위의 구체적 내용 페이로드 44.2 REST API 설계 원칙 REST에서 가장 중요한 기본적인 원칙은 URI는 리소스를 표현하는 데 집중하고 행위에 대한 정의는 HTTP 요청 메서드를 통해 하는 것이..