오늘부터 평일에 배운내용을 velog에 정리하기로 했다 오전에는 오티를 하고 오후부터는 질문하는 방법을 배우고 그 다음에는 javascript의 기초적인 내용인 변수,조건문,함수를 배우고 페어 프로그래밍을 했다좋은 질문을 하기 위해서는 그 질문에 정성을 쏟아야 한다 다
1. 알고리즘 알고리즘이란 어떤 문제를 해결하기 위해서 실행할 과정을 정의한 것이다 알고리즘 문제를 풀기 위해서는 해당 문제의 요구사항을 일단 알아야 하고 이 요구사항을 해결하기 위해 어떻게 해야할지로 문제를 풀기 시작한다 문제를 하나 예로 들어 보겠다 구구단 문제
호이스팅이란 자바스크립트 엔진이 코드를 컴파일 단계에서 변수와 함수의 선언을 메모리에 할당하는 과정을 말한다 이렇게 메모리에 올려지면 함수를 실제로 선언한 위치 위에서 해당 함수를 호출할 수 있다는 장점이 있다 예를 들어 보겠다위 코드를 실행 시켜 보면 정상적으로 출력
배열이란 타입이 같은 변수들의 집합이다 이 배열을 선언하는 방법은 아래와 같다 위와 같은 배열 안에 하나하나의 변수를 요소(element)라고 한다 이 변수에 요소에 접근하기 위해서는 인덱스(index)의 개념을 알아야 한다인덱스란 배열의 순서를 나타내는 수이다 이 인
객체 배열의 경우 요소의 접근하기 위해 인덱스를 이용하지만 그 인덱스가 가리키고 있는 값이 어떤 종류인지쉽게 알기 힘들다 이런 문제를 해결해 줄 수 있는 것이 객체이다 객체는 여러가지 값을 한번에 가질 수 있어 일종의 컨테이너라고 생각하면된다 이런 특성 덕분에 어떤 한
함수형 프로그래밍 함수형 프로그래밍이란 수학적 함수에서 계산을 하는 방식에서 따온 프로그래밍 방식이다 기존 절차지향적인 프로그래밍 방식에서는 프로그램 상태에 영향을 미치기 쉬운 단점이 있었다 그러나 이 함수형 프로그래밍의 경우 함수로 넘겨준 입력값만 조작할 수 있기 때
문자열 메소드 기본 사용법 문자열을 사용하는 방법은 아래와 같다 따옴표를 이용하여 변수에 할당하고 대괄호를 이용하여 배열과 같이 문자열의 문자에 접근할 수 있다 length 문자열의 길이를 알고 싶을 때 사용한다 메소드 3.indexof,lastIndexof,in
재귀법이란? 함수를 정의할 때 자기 자신을 호출하는 다시 호출하는 방식을 재귀법이라고 한다다음 예시는 MDN 사이트에 있는 예시이다위 코드에서 보면 else문에서 자기 자신을 다시 호출하는 것을 볼 수 있을 것이다 이렇게 함수 정의시 자기 자신을 호출하는 방식이다재귀법
Command Line 파일 보기 : ls 디렉토리 이동 :cd ( pwd 는 현재 폴더를 나타내고 cd .. 은 이전 폴더로 가는 명령이다) 빈파일 생성 : touch( 파일 이름과 형식을 적어준다 ) 디렉토리 생성 : mkdir ![](https://image
Scope Scope 란 사전적인 의미로는 '범위' 라는 뜻이다 javascript에서도 비슷한 의미로 변수에 접근할 수 있는 범위를 말한다. 즉 어떤 변수가 어떤 범위 안에서 접근할 수 있고 그 값이 유효한지를 나타내 주는 것이다 이는 프로그램 언어를 설계할 때 미
객체란 어떤 물체를 나타낼때 쓴다 세상에 존재하는 모든 것이 객체가 될 수 있다 그러면 객체 지향 프로그래밍이란 무엇일가? 객체지향 프로그래밍 (Object Oriented Programing) 은 프로그램으 개발할 때 객체 위주로 설계하여 프로그램을 작성하는 방식이다
Test Driven Development(TDD) 오늘은 테스트 주도 개발에 대해서 배웠다 배우내용이 제대로 정리가 되지 않아서 이렇게 줄글로 TIL을 작성한다 테스트 주도 개발에서 처음 소개받은 내용은 유닛테스트이다 내가 이해한 내용으로는 어떤 단위로 테스트를 진행
Mocha Mocha 프레임워크는 javascript의 테스트 코드 작성을 도와주는 프레임워크이다 다음 기본적인 테스트 코드를 보자
HTML이란 HyperText Markup Language 의 약자로 웹페이지 문서를 작성하기 위해 사용하는 마크업 언어이다 HTML은 Tag를 이용해서 문서를 작성할 수 있다 대표적인 태그는 아래와 같다head : html문서의 부수적인 정보를 담고 있는 태그body
내가 원하는 화면을 만들기 위해서는 먼저 만들고 싶은 그림을 보고 어떻게 태그를 선언하고 이름을 붙여야할지 그림를 그려보는 것이 좋다이름을 지을 때는 정확히 어떤 부분인지 명시해줘야하고 class와 id를 구분하는 방법은 값을 붙여야하는 대상이 유일항 대상이면 id 여
template template은 html 코드 상에 작성하여 사용하고 같은 형식을 여러번 출력하는 상황이 있을 때 주로 사용한다 이 방식을 사용하면 자바스크립트에서 html코드를 작성하지 않고 selector를 이용하여 template를 호출하여 사용이 가능하다
오늘은 트위터의 일부 모양을 따라서 만들어 보고 자바스크립트를 이용해서 댓글을 작성하면 해당 댓글을 업데이트 하고 업데이트한 댓글의 아이디를 누르면 그 아이디에 해당하는 댓글을 필터해서 보여주는 기능을 만들어 봤다 페어분과 임의로 저장한 댓글 데이터를 출력하는 함수까지
오늘은 underscore라이브러리를 구현해보는 과제를 받았다 구현해야 될 기능에는 map,filter,reduce,each,indexof 같은 배열 메소드를 위주로 구현을 해보았다 각각의 메소드들은 일반적으로 for 문과 if문을 이용해서 구현이 가능하였다 중요했던
콜백 다른 함수의 전달인자로 넘겨주는 함수 이벤트를 부여할 때 함수를 부여해야지 함수를 호출해서 부여하면 안된다. blocking vs non-blocking 전화 vs 문자 전화는 하던일을 멈추고 받아야함 요청에 대한 결과 동시에 일어남( blocking ,sync
시간복잡도란 알고리즘을 이루고 있는 연산들이 몇번이나 수행되는지를 숫자로 표시하는 방식이다예를 들어서 입력 n번에 대해서 프로그램A의 연산은 3n+2번이고 프로그램 B는 연산 5n^2+2번일 경우이 시간 복잡도를 이용해서 프로그램 A가 더 효율적이라는 것을 알 수 있다
이번 과제는 html 을 dom으로 처리한 값을 이용해서 원하느 클래스 이름의 태그들을 반환하는 getElementByClassName을 만드는 과제였다 이번 과제에서 쟁점은 dom의 body 태그부터 시작해서 body의 모든 요소들을 검사하는 과정하는 과정을 recu
Pass Me 후기 3월 12일 pass me 시험을 보았다 총 7문제를 보았고 그 중에 4문제는 비교적 간다한 문제이고 나머지 3문제는 dom트리의 이해와 recursion의 이해가 있어야 풀수 있는 문제였다
Node.js란 자바스크립트 코드가 실행 될 수 있는 프로그램이다 다른 말로는 이를 자바스크립트 런타임이라 한다.우리가 사용하는 Node.js 는 계속해서 개발되고 있는 플랫폼이기 때문에 여러가지 버전을 가지고 있고 또 이 버전에 따라서 여러가지 호환성을 가지고 있다
jest는 페이스북에서 만든 테스트 api이다 사용 예시는 아래와 같다eslint란 es+line의 합성어로 ecmascript의 lint 를 의미한다 lint란 소스코드의 버그,오류 ,스타일 오류 등등 여러가지 문법등 을 체크하기 위해 사용하는 도구이다오늘은 te
OOP(Object Oriented Programming)가 무엇인지?JavaScript에서 Object를 생성하는 여러가지 방법들JavaScript에서 Prototype은 무엇이고 왜 사용해야 하는지?객체 지향 프로그래밍이란 프로그래밍 방법론 중에 하나로써 프로그램
스택은 자료 구조의 종류 중의 하나로써 데이터를 아래에서 위로 쌓아가는 형식을 상상하면 된다.실생활의 예시로위와 같은 동전 보관함을 들 수 있다 각각의 동전을 데이터라고 생각하면 된다기본적으로 스택은 아래와 같은 정보를 가지고 있다스택의 속성스택의 크기마지막으로 쌓인
연결리스트는 데이터를 저장하는 자료 구조 중에 하나로써 연결리스트는 아래의 구성 요소를 가지고 있다노드데이터포인터 ( 다음 노드를 가리키는 속성 )각각의 노드는 데이터와 포인터를 가지고 있다 기본적인 연결리스트에서 노드의 포인터는 다음 노드를 가리키고 이런 방식으
hash table이란 키를 이용하여 값을 찾아가는 구조를 의미한다 구성 요소로는 아래와 같다keyvaluehash functionhash value예를 들어 key1과 value1 이렇게 한 쌍의 데이터가 있을 때 이 key1을 hashFunction에 대입하여 나온
tree는 연결리스트, 배열과는 다른게 계층적 자료구조이다. 이런 구조를 사용하는 예시로는 파일 시스템,사전,네트워크 라우팅 알고리즘이 있다구성요소로는 아래와 같은 부분이 있다root 노드child 노드Leat 노드edgedata트리는 항상 하나의 루트 노드를 가지고
트리는 root에서 자식방향으로만 edge가 흘러가고 사이클이 없는 그래프의 한 종류 이다그럼 그래프는 무엇인가?그래프의 구성 요소정점(vertex)간선(edge)그래프는 정점과 간선으로 구성된 자료구조를 이야기한다 트리와 구조적으로 비슷하지만 그래프는 각 간선이 방
알고리즘의 성능은 구조를 어떻게 설계하였고 어떤 자료구조를 사용했는가에 따라서 그 성능이 달라진다 그래서 이 알고리즘의 성능을 측정하기 위한 방법에는 시간복잡도 분석 , 공간복잡도 분석이 있다시간 복잡도 분석 : 수행 시간을 분석공간 복잡도 분석 : 수행 시 필요로
arrow function 은 es6에서 추가된 문법으로 함수를 정의 할 때 사용한다.일반적인 함수는 자기만의 this가 존재하지만 arrow function은 자기만의 this가 없기 때문에 스코프 체인의 의해 자기 자신 외부의 this를 가져온다 이런 특징때무에 b
자바스크립트에서는 모든 객체는 프로토타입이라는 객체지향에서 부모클래스와 비슷한 개념의 프로토 타입 객체를 가지고 있다 이를 프로토 타입 객체 또는 프로토타입이라고 한다.기본적으로 프로토타입을 설정해주지 않으면 모든 객체는 Object.prototype을 proto
ES6 에서 클래스를 정의하고 상속하는 방식은 이전 방식과는 다르게 매우 간결해졌다아래와 같은 방식으로 클래스를 정의할 수 있다 contructor키워드를 이용해서 생성자 또한 정의해야한다.이런 방식 이전에 클래스를 상속해주기 위해서는 이전 포스트에서도 서술했지만 여
N-Queens 문제 8 퀸 문제는 8x8크기의 체스판에 퀸을 8개 배치하는 문제이다. 1848년 막스 베첼이 처음 제안하였다. 이 문제를 일반화하면 NxN 크기의 체스판에 퀸을 N개 배치하는 N 퀸 문제가 된다. 구성적인 해법으로 N이 2,3인경우를 제외하고 해를 찾
Browser란 웹서버에서 이동하며 쌍방향으로 통신하고 HTML문서나 파일을 출력하는 GUI기반의 응용소프트트웨어이다대표적인 브라우저로 크롬,파이어폭스,사파리,엣지최초의 브라우져는 팀버너스리의 의해 발명되었고 그 이름은 월드 와이드 앱이었다 이후 넥서스로 바뀌었고 최초
Node.js란 v8엔진으로 만들어진 자바스크립트 런타임이다.v8: 자바스크립트 컴파일러로 써 자바스크립트를 네이티브 머신코드로 컴파일 해준다런타임: 프로그램이 구동되는 환경즉 Node.js 란 자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환
Date : HTTP메시지가 만들어진 시각Date: Thu, 12 Jul 2018 03:12:27 GMTConnection : HTTP/1.1에 있는 내용이지만 아무런 의미가 없다Connection: keep-aliveCach-Control : 매우 중요하다Conten
비동기적인 처리란 어떤 하나의 처리를 하는 과정중에 다른 처리도 동시에 진행할 수 있는 것을 의미한다. 그림으로 예시를 들면 아래와 같다위와 같이 비동기적으로 처리를 하게 되면 각각의 작업이 독립적으로 실행되기 때문에 다른 하나의 작업이 막혀서 다른 작업을 못하는 동기
오랜만에 블로그를 작성한다 너무 작성을 안하면 후회할 것 같아서 조금이라도 기록을 써본다현재 내가 진행하고 있는 프로젝트는 지역화폐의 사용처를 지도위에 표시해주는 웹서비스를 구현하고 있다내가 맡은 파트는 백엔드이고 백엔드의 기능적인 부분은 경기도 api로 부터 데이터를
개요 드디어 오늘 First Project가 끝났다 2주라는 기간이 어쩌면 길고 어쩌면 짧은 기간속에 힘들고 포기하고 싶은적도 있었고 개발이 진행이 잘되어 기분이 날라갈 것 같을 때도 있었다 이런 짧은 시간동안 여러가지 감정을 느끼게 된 것은 오래간만이라는 생각이 들었
react는 JavaScript 라이브러리로써 사용자 인터페이스를 만들기 위해 사용된다 JSX는 자바스크립트의 확장 문법으로 dom에 그려질 ui가 어떻게 생겼는지를 설명하기 위한 문법이다 JSX는 엄연히 자바스크립트 코드이기 때문에 자바스크립트 객체로서 다루어 진다
리액트에서는 상태와 속성을 이용한 컴포넌트 단위 개발 아키텍쳐 였지만 redux에서는 컴포넌트와 상태를 분리하는 패턴을 배운다. Redux는 React 없이도 사용할 수 있는, 상태 관련 라이브러리입니다.상태 관리 라이브러리가 왜 필요한지 이해할 수 있다.Redux
공식 레퍼런스에서 해당 프레임워크가 지향하는 바를 파악어떤 단점이 있는지 파악한다.프레임워크의 사용되는 언어를 이해환경 설정을 파악한다hello world와 같은 방식해당 언어 사이트로 가서 언어를 파악완벽하게 이해하려 하지 않는다.필요한 부분만 쏙쏙 찾아서 파악JS