본문 바로가기
728x90

분류 전체보기66

검색 알고리즘 #이진검색 #선형 검색 #노마드 코더 본 포스팅은 노마드코더 영상을 정리하며 학습하기 위한 목적을 가지고 있습니다. 알고리즘이란? 절차/ 스텝이다 - 생활속의 레시피라고 생각하자. 어떤 알고리즘을 선택하는지에 따라 해당 작업을 수행하는 속도 차이가 난다. 어떤 자료구조를 언제 선택하는지 중요한 것 처럼 알고리즘도 같다. 알고리즘 또한 얼마나 많은 절차와 스텝이 필요한 시간복잡도가 있다. - 당연히 적은 절차가 더 훌륭한 알고리즘 검색 알고리즘 오늘은 이진검색 알고리즘 vs 선형검색 알고리즘을 알아보자. 모두 검색 알고리즘이며, 다른 종류로는 정렬 알고리즘도 있다. 선형 검색 알고리즘 자연스러운 검색으로 1번 부터 차례로 검색해 목표값을 찾는다. 배열의 순서대로 찾기 때문에 최악의 경우는 맨 마지막 배열 .. 2021. 7. 10.
Array 배열이란? #Array #코딩 #노마드 코더 본 포스팅은 노마드코더 영상을 정리하며 학습하기 위한 목적을 가지고 있습니다. Array 배열이란? 시간복잡도(time complexity)는 데이터 구조의 오퍼레이션 혹은 알고리즘이 얼마나 빠르고 느린지 측정하는 방법. 실제 시간 측정이 아니라 얼마나 많은 단계가 있는가로 측정한다. 당연히 단계가 적을수록 좋다. 메모리는 non-volatile Memory vs volatile Memory 두가지 경우가 있다. 비휘발성 메모리는 하드디스크 같은 것이고 휘발성 메모리는 RAM과 같은 것이다. 데이터 접속을 랜덤으로 하니까 빠르다. 순차적이 아니라 5번째를 가고싶으면 5번째로 갈 수 있다. 배열을 만들때에는 얼마나 긴지 알려줘야 한다. 왜냐하면 컴퓨터는 그 길이를 알아야 .. 2021. 7. 9.
BFS 알고리즘이란? 너비 우선 탐색(BFS, Breadth-First Search) 루트 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법이다. 이는 **그래프 탐색** (하나의 정점으로 시작하여 모든 정점을 한번씩 방문)에 속한다. BFS는 두 노드 사이의 **최단 경로** 및 **임의의 경로** 를 찾을때 사용하며 자료 구조 **큐(Queue)** 를 이용해 탐색을 한다. 유사 알고리즘 : Prim, Dijkstra 너비 우선 탐색(BFS) 예제 - Python 해당 예제는 같은 숫자끼리 땅따먹기로 인접한 같은 숫자끼리의 넓이를 구하는 예제이다. 바로 구현해보기 위한 예제이므로 코드가 지저분하다.. 구현 방식은 방문 여부, 큐(Queue)를 활용하였다. def solution(v): result = [0, 0, 0] .. 2021. 7. 8.
[javascript] 비동기란? 자바스크립트에서 사용되는 콜백함수, Promise, async & await 개념을 알기 위해서는 먼저 비동기 개념을 알아야 한다. 그럼 비동기가 무엇인지 살펴보자. 비동기 처리란? 자바스크립트에서 비동기 처리란 특정 코드가 끝날때 까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 것을 의미한다. 비동기 처리를 예로 Ajax, setTimeout 등이 있다. 자바스크립트는 single thread(싱글 스레드)이기 때문에 작업을 하나씩만 수행할 수 있다. 그럼 어떻게 비동기 처리를 할 수 있는가? 바로 이벤트 루프때문에 가능하다. setTimeout은 브라우저의 다른 비동기 함수들(addEventListener, XMLHttpRequest)이나 node.js들 모든 비동기 방식의 api들처럼 이.. 2021. 7. 8.
알고리즘 왜 필요할까? #알고리즘 #코딩 #노마드 코더 본 포스팅은 노마드코더 영상을 정리하며 학습하기 위한 목적을 가지고 있습니다. 알고리즘 왜 필요할까? 처음 코딩을 공부할때에는 데이터 구조와 알고리즘을 공부할 필요가 없다. 왜 그럴까? 이제 막 시작한 초보 개발자는 니즈가 없기 때문이다. 앱을 동작하는 것이 첫번째 목적이기 때문이다. 그럼 언제 필요할까? 소스코드에 버그는 없으나 앱이 느릴때 ( = 코드 최적화를 어디서부터 해야할지 모를때 ) 관리가 편하고, 다른사람들과 일하기 편하게 코드를 작성할때 초보 개발자가 첫번째 목적을 달성한 뒤에 그다음 단계가 바로 어떻게 더 빠르고 효율적이게 구현할 것인가 이다. 데이터 구조 vs 알고리즘 데이터 구조 프론트엔드 : 모두 데이터를 필요. json 데이터를 아름답게 표현 백엔드.. 2021. 7. 8.
WebSocket (웹소켓이란?) # 웹소켓이란? # javascript 웹소켓 개념 시작하는 말 글쓴이가 웹소켓을 처음 접하게 된 계기는 회사의 클라우드의 서버에서 단말과 연동하기 위해 사용되었기 때문이었다. 어떻게 서로 데이터를 주고받을 수 있는지 궁금했던 경험을 바탕으로 이번 포스팅에서는 양방향 통신을 지원하는 웹소켓에 대해 적어보려 한다. 웹 소켓(Web socket)이란? Stateful protocol - HTML5 순수 웹 환경에서 연결 지향 양방향 통신을 지원하는 것이다. ( 참고로 AJax, Comet은 모두 Polling 방식이라 한다 Stateless protocol ) 웹 소켓은 웹 서버와 웹 브라우저가 지속적으로 연결된 TCP라인을 통해 실시간으로 데이터를 주고 받을 수 있도록 하는 HTML5의 새로운 사양이다. .. 2021. 7. 7.
Vue.js란? Vue.js란? 웹 페이지 화면을 개발하기 위한 프레임워크로 React와 Angular의 장점을 가져 성능이 우수하고 가볍습니다. Vue.js와 다른 프레임워크 비교표 Vue.js React Angular Virtual DOM O O X 장점 쉬움, React와 Angular의 장점 적용 이벤트 핸들링 용이, 다양한 플랫폼 개발 가능, 페이스북 지원 잘 된 구조화, 구글지원 단점 래퍼런스가 적음 필수 라이브러리 많음, JSX에서 로직구현 높은 러닝커브(많은 학습시간) 환경 빠른 개발 요구 시 많은 이벤트 필요시 엔터프라이즈 언어 ES6 JSX TypeScript Vue.js 특징 MVVM 패턴 Virtual DOM 가벼움 Template과 Component MVVM 패턴 MVVM(Mode - View -.. 2021. 7. 6.
[Java] Queue란? Queue란? Queue는 줄을 지어 순서대로 처리되는 자료구조로 First In First Out의 형태를 가진다. 말 그대로 먼저 들어온 뎅터가 먼저 나가는 구조를 말한다. 사용 예제로는 그래프의 넓이 우선탐색인 BFS와 컴퓨터 버퍼(큐)에서 사용되며 맨 앞쪽의 데이터 삭제를 Dequeue, 맨 마지막의 데이터 추가를 Enqueue라 한다. Queue 사용법 - 생성 Queue를 JAVA에서 사용하기 위해서는 Queue와 LinkedList 모두 Import가 필요하다. import java.util.LinkedList; import java.util.Queue; Queue queue = new LinkedList(); Queue queue = new LinkedList(); Queue 사용법 - 값.. 2021. 7. 5.
vue.$NextTick이란? vm.$nextTick 해당 메서드는 다음 렌더링 사이클 이후 실행될 콜백 함수를 등록할 수 있는 기능을 제공하는 메서드이다. 이 말은 즉, $nextTick의 콜백 함수 안에서 DOM을 조작하면, 데이터를 가지고 화면을 그리기 전에 DOM이 먼저 생성되며 원하는 트리(태그)를 찾지 못하는 오류를 막을 수 있다. created : function() { this.$nextTick(function(){ var item = document.getElementById('textBox'); item.style.backgroundColor = 'green'; }); } $nextTick은 await/async와도 함께 사용 가능하다고 한다. methods : { async doSomething(){ await t.. 2021. 7. 4.
728x90