시간 복잡도와 공간 복잡도
·
CS
1. 복잡도(Complexity) 복잡도란 알고리즘의 성능을 나타내는 지표이다. 복잡도는 가독성(Readability)와 다른 의미로 쓰인다. 즉, 코드가 얼마나 복잡하고 알아보기 어려운지를 의미하는 것이 아니라, 불특정한 함수의 성능적인 측면에서의 복잡도를 의미한다. 시간 복잡도(Time Complexity) : 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 공간 복잡도(Space Complexity) : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 이때, 동일한 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도 가 낮은 알고리즘이 좋은 알고리즘이다. 2. 시간 복잡도(Time Complexity) 시간 복잡도란 특정 알고리즘이 문제상황을 해결하는데 걸리는 시간을 의미한다. ..
스택(Stack) 과 큐(Queue)
·
CS
스택(Stack) 스택(Stack)은 가장 마지막에 저장된 데이터가 가장 먼저 삭제되는 후입선출(LIFO, Last In Firist Out) 구조이다. 스택은 한쪽 방향에서만 데이터의 삽입과 삭제가 가능하다. 스택 용어 top(peek) : 가장 최근에 저장된 데이터이자 먼저 삭제 될 데이터이다. 그림상 요소4에 해당 push : 데이터를 삽입하는 것을 말하며, 삽입된 데이터는 삭제시 가장 먼저 삭제 될 데이터 pop : 데이터를 삭제 할 때 사용하며, 가장 최근에 저장된 데이터가 삭제된다. 사용되는 예 브라우저의 뒤로가기 실행 취소(Ctrl + z) 재귀 함수 : 자기 자신을 호출하는 함수 함수를 호출할 때마다 해당 함수의 지역변수, 반환주소, 매개변수 등의 정보를 호출 스택이라는 메모리 영역에 저장..
객체 지향 프로그래밍(Object-Oriented Programming, OOP)
·
CS
1. 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 이란? 객체 지향 프로그래밍이 있기 전 절차 지향 프로그램이라는 것이 있었다. 이는 프로그램을 순차적인 절차로 구성하는 방식인데, 작은 문제를 해결하기 위해 절차를 정의하고, 그 절차들을 조합하여 큰 문제를 해결하는 방식이다. 하지만 프로그램이 커지고 복잡해지면서 코드의 유지보수와 디버깅이 어려워지는 문제가 생겼다. 그리고 데이터와 그 데이터를 조작하는 함수들이 분리되어 있어 코드의 응집성이 떨어졌다. 이를 보완하기에 나온게 객체 지향 프로그래밍이다. 객체지향 프로그래밍은 객체라는 단위로 구성하는 방식이다. 객체는 데이터와 데이터를 조작하는 함수들을 하나의 단위로 묶어서 관리한다. 이를 통해 코드의 응집성을 높이며, ..
호이스팅
·
CS
호이스팅(Hoisting)이란 JS에서 변수와 함수 선언을 해당 스코프의 상단으로 끌어올리는 동작을 의미한다. 즉 코드가 실행 전에 변수와 함수 선언문이 메모리에 먼저 등록되는 것처럼 동작한다. JS엔진은 코드를 실행하기 전에 컴파일 단계에서 변수와 함수 선언을 찾아 메모리에 저장한다. 이로 인해 변수와 함수를 선언하기 전에도 해당 변수와 함수를 참조할 수 있는 현상이 발생된다. 호이스팅 중 두가지가 있다. 함수 호이스팅과 변수 호이스팅 함수 호이스팅이란 ? JS에서 함수 선언문이나 함수 표현식을 코드 상단으로 끌어올리는 동작이다. 즉 함수를 선언하기 전에 해당 함수를 호출하는 현상 함수 선언문 sayHello(); // 호출 가능 function sayHello() { console.log("Hello..
브라우저 렌더링 개념
·
CS
브라우저 렌더링 브라우저 렌더링이란? 웹페이지를 HTML, CSS, JS 등의 웹 리소스를 파싱하고 처리, 렌더링을 통해 브라우저를 유저들에게 시각적으로 보여주는 과정이다. 브라우저 렌더링 방법 1. CSR(Client Side Rendering) 클라이언트 영역에서 렌더링을 수행하는 방식이다.사용자가 웹브라우저를 통해서 웹사이트에 방문 했을 때 웹사이트에서 제공하는 웹페이지에 대한 HTML, CSS, JavaScript와 같은 리소스들을 클라이언트 단에서 다운로드 받고 브라우저에서 페이지 전환을 처리하여 보여주는 방식이다. CSR rendering 방식에서 서버의 역할은 페이지가 그려질 때 웹리소스 파일을 제공하는 역할과 페이지가 모두 로딩이 되었을 때 클라이언트에서 요청하는 데이터를 전송해주는 역할..
CS HTTP
·
CS
오늘 CS의 강의를 처음 들어봤는데, 너무 어려웠다. 이 강의를 듣고 사람들에게 설명을 해야했다. 처음 배우는 개념을 남들에게 설명하기에는 정말 어려웠다. 강의를 보았을 때는 이해가 되지 않았던 부분이 사람들에게 설명을 하니 머릿속에 들어오는 거 같다. 역시 어떤 내용을 보고 사람들에게 설명하는게 좋은 공부 방법인거 같다. 그래서 CS뿐만 아니라 리액트, 자바스크립트도 보면서 설명을 해야겠다. 이제 곧 항해99 본과정이 들어가는데 좀 더 으쌰으쌰해서 무사히 수료해보자!
오류확인자
'CS' 카테고리의 글 목록 (3 Page)