git 설치 https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98 github 가입 소스트리 : git 사용을 도와주는 GUI 프로그램 https://www.sourcetreeapp.com/ git config --global user.email "" : 깃 처음 사용할때 이메일 지정 git config --global user.name "" : 깃 처음 사용할때 처음에 이름 입력 git init : 현재 경로에 .git이라는 폴더 생성.(로컬 저장소) git add : 커밋에 추가할 파일 선택 git commit -m '' : 커밋 설명 git remote add origin ~~ : 원격저장소..
병행 프로세스 : 프로세서 하나를 여러 프로세스를 동시에 실행하는 것처럼 보이는 것. 독립 프로세스와 협력 프로세스로 구분 => 공유 자원을 상호 배타적으로 사용한다.(상호 배제와 동기화) 선행그래프, fork와 join구조, 병행문장 상호배제 : 병행 프로세스에서 프로세스 하나가 공유 자원을 사용할 때 다른 프로세스가 해당 데이터에 접근할 수 없게 하는 것 동기화 : 공유 자원을 동시에 사용하지 못하게 실행을 제어하는 방법. 임계자원 : 두 프로세스가 동시에 사용할 수 없는 공유 자원 임계영역 : 임계자원에 접근하고 실행하는 프로그램 코드 부분 임계영역은 1상호배제, 2진행, 3한정 대기 조건을 만족해야 한다. 상호배졔 방법 : 데커의 알고리즘, 테스 명령어, 세마포, 모니터 데커의 알고리즘 : 두 프..
컴퓨터 : 하드웨어 + 소프트웨어 하드웨어 메모리 물리적 주소 : 컴퓨터에 주어진 주소 논리적 주소 : 컴파일러가 프로그램을 기계 명령어로 변환할 때 변수와 명령어에 할당하는 주소 논리적 주소 =>매핑=> 물리적 주소 운영체제(Operating System) : 사용자와 하드웨어 사이의 중간 매개체로 응용 프로그램의 실행을 제어하고 자원을 할당 및 관리하며 입출력 제어 및 데이터 관리와 같은 서비스를 제공하는 소프트웨어 커널 : OS의 기본기능을 실행하는 부분. 일괄 처리 시스템 : 데이터를 모았다가 일괄 처리하는 시스템(초기) 다중 프로그래밍 시스템 : 프로세서가 유휴상태일 때 둘 이상의 작업이 프로세서를 전환하여 사용할 수 있도록 동작. 마치 많은 사용자의 프로그램이 거의 동시에 프로세서를 할당받는 ..
에러 처리 에러는 언제나 발생할 수 있기 때문에 try, catch 문을 사용해 에러에 적절하게 대으으하면 프로그램이 강제 종료되지 않고 계속해서 코드를 실행시킬 수 있다. Error 객체 Error 생성자 함수는 여러 객체를 생성한다. Error 생성자 함수에는 에러를 상세히 설명하는 에러 메시지를 인수로 전달할 수 있다. Error 생성자 하뭇가 생성한 에러 객체는 message 프로퍼티와 stack 프로퍼티를 갖는다. 자바스크립트는 Error 생성자 함수를 포함해 7가지의 에러 객체를 생성할 수 있는 Error 생성자 함수를 제공한다. Error, SyntaxError, ReferenceError, TypeError, RangeError, URIError, EvalError throw 문 에러를 발..
프로미스 비동기 처리를 할때 콜백 패턴의 단점 1. 콜백 헬 비동기 함수는 비동기 처리 결과를 외부에 반환할 수 없고, 상위 스코프의 변수에 할당할 수도 없다. 따라서 비동기 함수의 처리 결과에 대한 후속 처리는 비동기 함수 내부에서 수행해야 한다. 이때 비동기 함수를 범용적으로 사용하기 위해 비동기 함수에 비동기 처리 결과에 대한 후속 처리를 수행하는 콜백 함수를 전달하는 것이 일반적이다. 필요에 따라 비동기 처리가 성공하면 호출된 콜백 함수와 비동기 처리가 실패하면 호출될 콜백 함수를 전달할 수 있다. 이렇게 또다시 비동기 함수를 호출해야 한다면 콜백 함수 호출이 중첩되어 복잡도가 높아지는데 이를 콜백 헬이라 한다. get('/step1', a => { get(`/step2/${a}`, b => { ..
비동기 프로그래밍 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 실행된다. 이때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜 스택)에 푸시되고 함수 코드가 실행된다. 함수 코드의 실행이 종료하면 함수 실행 컨텍스트는 실행 컨텍스트 스택에서 팝되어 제거된다. 자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖는 싱글 스레드 방식으로 동작하기 때문에 처리에 시간이 걸리는 테스크를 실행하는 경우 블로킹이 발생한다. 그런데 setTimeout은 블로킹이 발생하지 않는다. 이렇게 다음 태스크를 바로 실행하는 방식을 비동기 처리라고 한다. setTimeout, setInterval, HTTP 요청, 이벤트 핸들러는 비동기 처리 방식으로 동작한다. 콜 스택 : 소스코드 평가 과정에서 생성된 실..
이벤트 브라우저는 처리해야 할 특정 사건이 발생하면 이를 감지하여 이벤트를 발생시킨다. 이벤트 핸들러 : 이벤트가 발생했을 때 호출될 함수 이벤트 핸들러 등록 : 이벤트가 발생했을 때 브라우저에게 이벤트 핸들러의 호출을 위임하는 것 이벤트 드리븐 프로그래밍 : 프로그램의 흐름을 이벤트 중심으로 제어하는 프로그래밍 방식 이벤트 타입 : 이벤트의 종류를 나타내는 문자열 마우스 이벤트 click, dbclick, mousedown(눌렀을때), mouseup(땟을때), mousemove, mouseenter(마우스 커서를 HTML 요소 안으로 이동했을때(버블링 x)) mouseover(마우스 커서를 HTML 요소 안으로 이동했을때(버블링 o) mouseleave(마우스 커서를 HTML 요소 밖으로 이동했을 때(..
브라우저의 렌더링 과정 파싱 : 파싱(구문 분석(syntax analysis)은 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행하기 위해 텍스트 문서의 문자열을 토큰으로 분해하고, 토큰에 문법적 의미와 구조를 반영하여 트리 구조의 자료구조인 파스 트리를 생성하는 일련의 과정을 말한다. 일반적으로 파싱이 완료된 이후에는 파스 트리를 기반으로 중간 언어인 바이트코드를 생성하고 실행한다. 렌더링 : 렌더링은 HTML, CSS, 자바스크립트로 작성된 문서를 파싱하여 브라우저에 시각적으로 출력하는 것을 말한다. 1. 브라우저는 HTML, CSS, 자바스크립트, 이미지, 폰트 파일 등 렌더링에 필요한 리소스를 요청하고 서버로부터 응답을 받는다. 2. 브라우저의 렌더링 엔진은 서버로부터 응답된 H..