일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리액트
- 리액트댓글기능
- HTML
- 백준
- dp알고리즘
- 코테
- 다이나믹프로그래밍
- 백준js
- 익스프레스
- css기초
- 백준알고리즘
- 리액트커뮤니티
- 프로그래머스JS
- js코테
- 자바스크립트
- 프로그래머스코테
- 백준nodejs
- JS
- 백준골드
- 알고리즘
- 코딩테스트
- 안드로이드 스튜디오
- 백준구현문제
- HTML5
- 백준구현
- 프로그래머스
- 몽고DB
- 포이마웹
- CSS
- JS프로그래머스
- Today
- Total
목록전체 글 (454)
개발새발 로그

추가와 삭제가 반복되는 로직이라면 어떻게 해야할까? 바로 연결리스트를 사용하면 된다. 연결리스트 - 연결리스트는 각요소를 포인터로 연결하여 관리하는 선형 자료구조이다. - 각 요소는 노드라고 부르며 데이터 영역과 포인터 영역으로 구성된다. 연결리스트의 특징 - 메모리가 허용하는 한요소를 제한없이 추가할 수 있다. - 탐색은 O(n)dl 소요된다. - 요소를 추가하거나 제거할 때는 O(1)이 소요된다. - Singly Linked List, Doubly Linked List, Circular Linked List가 존재한다. 배열과의 차이점 메모리차이 - 배열은 순차적인 데이터가 들어가므로 메모리 영역을 연속적으로 사용한다. - 연결리스트는 순차적이지 않기 때문에 각 데이터가 퍼져있다. - 연결리스트는 퍼..

변수를 선언하면 메모리상에 데이터가 저장된다. 변수를 통해 데이터를 꺼내쓰거나 덮어씌울 수 있다. 만약 연관된 데이터를 하나의 변수에 처리하기 위해서는 배열을 사용해야한다. 배열 -연관된 데이터를 연속적인 형태로 구성된 구조를 가진다. -배열에 포함된 원소는 순서대로 번호(index)가 붙는다. 배열의 특징 - 고정된 크기를 가지며 동적으로 크기를 늘릴 수 없다. -> 하지만 자바스크립트 처럼 대부분의 스크립트 언어는 동적으로 크기가 증감되도록 만들어져 있다. - 원하는 원소의 index를 알고 있다면 O(1)로 원소를 찾을 수 있다. - 원소를 삭제하면 해당 index에 빈자리가 생긴다. 만약 배열의 중간의 요소를 추가하거나 삭제하고 빈자리를 채우게된다면 O(n)이 소요된다. 따라서 추가와 삭제가 반복..

시간 복잡도는 자료구조와 알고리즘을 배우기 위해 필요한 지식이다. 시간 복잡도 프로그램의 성능을 측정하기 위해서는 - 입력 크기 - 하드웨어 성능 - 운영체제 성능 - 컴파일러 최적화 - 비동기 로직 - 등등.. 위와 같이 많은 것들을 고려해야한다. 따라서 프로그램의 성능을 정확히 파악하는 것이 불가능하다. 그래서 빅오표기법을 만들어냈다. 빅오표기법 O(1) < O(log N) < O(n) < O(n log n) < O(n2) < O(2n) < O(n!) 이를 다른이름으로도 부른다. 상수형 < 로그형 < 선형 < 로그선형 < 2차형 < 지수형 < 팩토리얼형 O(n) for(let i = 0; i < n; i++){ ... } O( log n ) for(let i = 1; i

쿠키와 세션, 웹 스토리지 HTTP 통신 - HTTP Request는 기본적으로 상태가 존재하지 않는다. ->따라서 서버는 어떤 브라우저에서 요청이 온 것인지 알 수 없다. -> 이때 헤더에 쿠키를 담으면 서버가 쿠키를 읽어 어디서 온 것인지 알 수 있다. Cookie -클라이언트에서 저장, 관리하는 데이터들, 브라우저를 닫아도 데이터를 유지할 수 있다. -서버에서 Set-Cookie를 응답 헤더로 내려주면 클라이언트는 받아서 저장한다. -클라이언트에서 자체적으로 조작할 수 있다. -각 상태에 수명을 정할 수 있다. Set-Cookie - Set-Cookie : 키=값; 옵션 - 응답 헤더에 담으면 브라우저가 알아서 저장한다. - 각 데이터엔 여러 옵션이 존재한다. - Expires : 쿠키 만료 날짜를..

정규표현식 정규표현식의 목적 - 패턴을 이용하여 문자를 검색, 대체, 추출 한다. - 성능은 느리지만 편함 정규표현식 사이트 https://rubular.com/ Rubular Ruby-based regular expression editor/tester rubular.com 정규표현식 표현 정규표현식연습 사이트 https://regexone.com/ RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs Regular expressions are extremely useful in extracting information from text such as code, log files, spreadsheets, or ev..

모듈 모듈이 등장한 이유 - 일반적으로 웹사이트는 여러개의 자바스크립트로 이루어짐 - 자바스크립트 파일들을 별개의 프로그램으로 취급 - 문제는 웹사이트가 거대해짐에 따라 스크립트 파일도 증가한다. - 예전 자바스크립트는 파일간의 통신을 위해 전역 스코프에 존재하는 변수와 함수를 사용해야했다. - 즉시 실행함수 등을 통해 전역 스코프가 오염되는 것을 막을 수 있었지만 스크립트 파일 간 의존도를 확인하기 힘들고, 실행순서를 제어해야한다는 한계점이 있었다. -> 이러한 불편한 점을 해결하기 위해 모듈이 등장했다. 모듈과 컴포넌트의 차이 - 모듈은 설계시점에 의미있는 요소 - 컴포넌트는 런타임 시점에 의미있는 요소 모듈 사용방법 export function hello(name){ alert("Hello, ${n..

이벤트 루프 - JavaScript는 싱글 스레드 언어이다. -> JavaScript의 Call Stack은 하나만 존재한다. 하지만 브라우저에서 실행되는 스크립트는 비동기적으로 데이터를 불러오고 애니메이션을 실행시킬까? 어떤 원리로 애니메이션과 클릭이벤트를 같이 처리할까? -> 브라우저의 Event Loop라는 시스템이 있기 때문에 가능하다. - Event Loop는 브라우저나 NodeJS에서 자체적으로 관리 - 아래의 동작과정을 살펴보자 - 클릭과 같은 DOM이벤트나 Timer 등을 실행하게 되면 브라우저에 위임된다. - 보통 WebAPI는 Callback 함수를 넘기게 되는데 이 Callback함수는 비동기 작업이 끝나면 Task Queue에 넣어진다. - Task Queue에서는 순차적으로 꺼내 ..

객체 지향 - 객체 위주로 설계하고 프로그래밍하는 패러다임 - 객체지향 언어에서 추상화의 최소단위가 객체다. - 각각의 객체는 메세지를 주고 받을 수 있다. 자바스크립트의 객체 - 클래스 기반 언어 처럼 속성(Attribute)과 행위(Method)를 정의할 수 있다. - 자바스크립트에서는 객체 리터럴, Object, 생성자 함수 세가지 방법을 이용해 객체를 생성할 수 있다. 자바스크립트의 객체만으로 객체지향 프로그래밍이 가능한데 프로토타입은 왜 필요할까? 객체안의 메서드가 각각의 객체안에 따로 정의되어 메모리 낭비가 되기 때문이다. 프로토타입 사용방법 function Person(name) { this.name = name; } var foo = new Person('Lee'); Person.proto..