[ 알고리즘 ]LIST2020-08-05 20:35:58순서대로 저장하는 시퀀스 변경 가능한 목록 입력 순서 유지(내부적으로 동적 배열로 구현) 배열의 장점(연속된 공간에 요소 배치) + 연결 리스트 장점(다양한 타입을 연결해서 배치) 리스트는 숫자, 문자, bool 등 다양한 타입 공존 가능 슬라이싱 a[1:3] --> list a의 인덱스 1부터 인덱스 3 전까지. 즉. 인덱스 1과 2 a[1:4:2] --> list a의 인덱스 1부터 인덱스 4 전까지 2개씩 건너뛰면서. a = [1, 2, 3, 4, 5, 6] a[1:5:3] --> 인덱스 1부터 3칸을 건너뛰면서 출력하는데 인덱스 5 전까지 --> [1, 4] list 관련 기능 list.append(elem): O(1), 리스트 마지막에 elem 추가 list.pop(): O(1), 리스트 마지막..
[ JS ]Hoisting2020-08-04 00:21:16var a와 function b를 정의하기 전에 호출을 한다면 어떻게 될까? 순서대로 실행하는 프로그래밍 언어의 특성상 에러가 난다 하지만!! 자바스크립트에서는 에러가 나지 않는다 자바스크립트는 `hoisting`을 하기 때문이다 Hoisting이 무엇인가요? 자바스크립트에서는 변수와 함수를 정의하기 전에 호출을 하게 되면 hoisting이라는 현상이 일어난다 밑에 정의되어 있는 변수와 함수를 위로 끌어올려주는 것이다 실제 저장된 위치를 옮기는 것은 아니다 이런 현상은 자바스크립트의 실행을 크게 이단계로 나눌 수 있기 때문에 벌어진다 첫 번째, 생성 the global execution context가 만들어진다 내가 짠 코드를 쭉~ 훑으면서 컴퓨터 언어로 해석할 준비를 한다 그리고 이렇게 훑는 과정에서..
[ 알고리즘 ]BIg-O2020-08-02 23:18:08Big-O? 입력값이 무한대로 향할 때 함수의 상한을 표기하는 수학적 표기 방법 입력값이 커질 때 알고리즘의 실행 시간(시간 복잡도 / 계산 복잡도), 공간 요구사항(공간 복잡도)이 어떻게 증가하는지 분류하는 데 사용된다 빅오는 정확한 값을 표현하는 것이 아니라 적당히 정확하게 표현하는 방식이다 알고리즘의 효율성 분석에 유용하다 보통 점근적 실행 시간 표기에 쓰인다 == 시간 복잡도를 계산할 때 big-O를 쓴다 입력의 크기가 충분히 클 때(컴퓨터가 처리하기에도 오래 걸릴 때), 알고리즘의 효율성에 따른 수행 시간의 차이를 분석하는 것. 시간 복잡도를 표현할 때는 최고차항만 표시한다. 상수항도 무시한다. 2n² + 3n + 4 => 2n² => O(n²) 알고리즘의 big-O 표기 밑으로 갈수록 시간이 ..
[ JS ]Name/Value Pairs and Objects2020-07-31 21:12:40Name/Value Pair unique한 값과 name의 조합 name은 재선언될 수 있으나 어떤 상황에서든 하나의 execution context에서 하나의 name에 주어진 value는 하나뿐이다! value에 name-value pair가 할당되는 건 가능 Object( in JavaScript) name-value pair의 조합 value에 Object가 올 수도 있다는 점!!
[ JS/TypeScript ]TypeScript2020-07-30 10:46:13타입스크립트는 프로그래밍 언어이자 자바스크립트 생성 도구. C#을 설계했던 아네르스 하일스베르그가 마이크로소프트에서 오픈소스 프로젝트로 설계. 타입스크립트는 자바스크립트 코드를 만들기 때문에 기존에 사용하던 자바스크립트 도구, 프레임워크, 라이브러리를 모두 사용할 수 있다. 타입스크립트의 장점 컴파일 과정에서 구문 오류 발생 실행 시점에서 오휴가 발생하게 되는 자바스크립트와는 다르다. 구문 오류를 잡아내기 훨씬 쉽다. 강타입, 정적 타입 자바스크립트는 동적 언어로 실행 중인 객체의 속성/동작 등을 바로 바꿀 수 있다. 문자열이 할당된 변수에 숫자나 함수 등을 재할당하여 변수 타입을 변경할 수 있다. 전통적 객체지향 언어는 강타입으로 변수 타입을 변경할 수 없다. 타입스크립트는 변수를 선언할 때 타입을 명..
[ JS ]Syntax Parsers, Execution Contexts, and Lexical Environments2020-07-29 20:39:03Syntax Parsers 내가 짠 코드를 읽고 1. 코드가 하는 일이 무엇인지 2. 유효한 문법으로 짜인 코드인지를 판단한다. 컴파일러나 인터프리터가 컴퓨터가 이해할 수 있는 언어로 바꿔주는 것 역시 이 작업. Lexical Environments function makeAFunction() { var basicVar = 'Hello World!'; } 내가 짠 함수가 코드의 어느 부분에 물리적으로 존재하느냐가 해당 함수의 렉시컬 환경을 정한다. 위의 코드에서 basicVar는 makeAFunction이라는 함수 안에 존재한다. 내가 짠 코드가 컴퓨터로 넘어갈 때는 이 모습 그대로가 아니라 컴퓨터가 알아볼 수 있는 형태로 변환이 된다. 프로그래밍 언어에서 렉시컬 환경이 중요한 이유는 렉시컬 환경이 1...
[ 오늘의../뉴스 ]코로나로 인해 급부상한 ZOOM2020-05-04 12:44:20한국이 코로나 사태로 예기치 못한 전세계의 관심을 받는 것처럼 ZOOM 역시 코로나 사태로 굉장한 주목을 받고 있다 정말 인생은 예측하기 어려운 일들의 연속이다 엄마는 나보고 ZOOM같은 거 만들어 보라는데ㅋㅋㅋㅋㅋㅋ 나도 만들고 싶어 엄마^^ 페이스북과 구글이 줌을 따라잡으려 하고 있다 By [Brian Fung](https://edition.cnn.com/profiles/brian-fung), [CNN Business](https://www.cnn.com/business) Updated 2051 GMT (0451 HKT) April 30, 2020 코로나 사태 아래에서 사람들의 모임을 책임지고 있는 비디오 회의 플랫폼인 줌이 거대한 IT기업들의 관심을 받고 있다. 특히 페이스북과 구글은 기존 사용자층..
[ CSS ]CSS란?2020-03-13 20:58:29Cascading Style Sheet의 줄임말으로 HTML 요소를 화면에 어떻게 보여줄 지를 서술합니다. 대개 외부 파일로 작성하여 html의 head에서 import합니다. 외부 파일로 작성하지 않고 head에서 style태그로 작성하거나 해당 html 요소에서 인라인으로 스타일을 넣어줄 수도 있습니다. Inline CSS text color css 문법 선택자 {요소: 값; 요소: 값;} 선택자는 스타일을 주고 싶은 html 요소를 말합니다. 선택자로는 요소 이름, id, class가 기본적으로 쓰입니다. 선택자에게 주고 싶은 스타일을 {} 안에 넣어주는데 주고 싶은 스타일 요소의 이름: 스타일 값;의 형태여야 합니다. 이 때, 요소: 값;이 하나의 선언이 됩니다. {} 안에는 여러 개의 선언이 들..
[ 알고리즘 ]Computational Thinking이 필요한 이유?2019-10-07 13:16:02문제를 풀 때 이해가 되지 않는 것은 논리적으로 정확하게 확인하는 과정의 연습이 부족하기 때문이다. 단순히 공식을 외우는 것이 아니라 정확하게 확인하는 것이 중요한데 확인이 되지 않은 상태에서 프로그램을 짠다면 프로그램의 결과의 정확성, 신속도를 예측할 수 없고 잘못된 결과의 원인을 파악하기 힘들다 어떤 전공도 상식선에서 이해되는 분야는 없다.