분류 전체보기(222)
-
[전산공부] 프로세스 vs 쓰레드
워낙 자주나오는 비교대상들이기도 하고 노드 공부하다가 코어 여러개 사용하는 코드 알려주길래 막간을 이용하여 정리! 프로세스란? - 컴퓨터에서 연속적으로 실행되고 있는 프로그램 - 메모리에 올라와 실행되고 있는 독립적 개체(인스턴스라고도 한다!) - 동적으로는 실행된 프로그램을 의미한다 그럼 쓰레드는? - 프로세스내에서 실행되는 여러 흐름의 단위고 - 프로세스가 할당받을 자원을 이용하는 '실행'의 단위 그림으로 보면 이렇다 좌측그림기준으로 설명해보자면 어떤 운영체제는 여러가지 프로세스를 수행할 수 있고, 수행과정에서 각각 독립된 메모리 영역을 부여받는데 이를 Code, Data, Stack, Heap이라고 한다. - Code: 코드 자체를 구성하는 영역, 쉽게 말해 바이너리 파일 메모리 같은 것들이다. 기..
2020.02.23 -
[Node.js] 콜백함수와 Promise(2)
이제 문제는 뭐냐면 내가 실제로 코드를 짤 때 저걸 적용할 줄 모른다는거다. 에러처리만 할 줄 알면 뭐하나. 그래서 좀 피곤하더라도 새벽까지 포스팅을 하기로 했다. 이번에 실전이다 Promise는 세 가지 상태가 있다. 생성자로 new Promise 하고 나면, 끝날때 까지 셋 중 하나다. Pending 이거나, Fulfilled하거나 Rejected되거나. 각각은 완료전, 완료후 결과값 반환, 완료 실패다. 첫번째로 Pending, 그냥 함수만 불러온거다. 잠자고 있다. 두번째 Fullfilled. 이번엔 에러처리를 위한 코드가 아니라, 실제 에러처리를 내 코드에 적용하는 예시를 들어보았다. 이렇게 하니 이해가 존나 쉽고 코딩 잘할 것 같다. 무튼간에, 얘를 보면 원래는 getData라는 보잘 것 없는..
2020.02.20 -
[Node.js] 콜백함수와 Promise(1)
콜백함수를 공부하면서 머리가 많이 빠진 것 같다. 이놈시키를 언제, 어디서, 왜 사용해야 하는지 너무너무 헷갈린다. 그래서 정리. 1. 콜백함수는 무엇이며, 왜 사용하는가? 일단 시작하기전에 Parameter와 Arguments를 구분해보자. 되게 쉽다. Parameter는 매개변수고, Arguments는 값(인자)이다. 문제는 자바스크립트에서 함수를 인자처럼 사용하면서 시작되었다. 이 과정에서 수반되는 기술이 바로 콜백함수이다. 2. Higher order Function 아직까지도 존나 모호하다. 좀 더 구체적으로 예를 들어 보겠다. 저 예시코드를 보면, forEach라는 메소드 안에 key를 인자로 갖는 화살표 함수를 집어넣었다 즉, 화살표 함수가 forEach메소드의 인자로 사용되고 있다. 이것이..
2020.02.20 -
[전산공부] 렌더링, 그리고 리액트(React) (1)
리액트를 많이 써봤음에도 리액트를 왜, 어째서, 무슨 이유로 사용하는가에 대해 생각해 본 적이 없다 그래서 차근차근 정리해보기! 1) 렌더링(Rendering) 렌더링이란 컴퓨터 프로그램을 사용하여 모델로부터 화면을 만들어내는 과정을 말한다 쉽게 얘기하면, 사용자로부터 Request를 받은 다음 그것에 대한 Response를 브라우저에 뿌려주는 행위임 간단하게 순서를 생각해보면 로더(Loader)라는 놈이 서버로부터 전달받는 Response의 정체를 읽어낸다 그래서 이 Response가 파일인지, 데이터인지, 다운로드를 받아야하는지 등등을 파악한다 그리고 나서 파싱(Phasing:받은 소스를 해석한다고 생각하면 됨)의 절차를 거쳐 렌더링 트리를 만든다 DOM 트리를 바탕으로 화면을 그리는 것! 얘를 로드..
2020.02.17 -
[전산공부] 컴파일(compile) vs 빌드(build)
정말 익숙하고도 간단해보이는 단어들이지만 개발업무를 진행하다 보면 혼용하는 경우가 많다 그래서 간단히 정리! 1. 컴파일 개발자들은 '소스코드'를 작성한다 근데 멍청한 컴퓨터들은 소스코드를 읽을 수 없다 사람의 언어이기때문! 그래서 '컴파일'이라는 작업을 통해(컴파일러가 이 역할을 진행한다) 소스코드를 컴퓨터가 읽을 수 있는 바이너리 코드로 전환한다 그렇기때문에 컴파일을 하고나면 항상 목적파일이 뚝 떨어진다 자바같은 경우는 JVM이라는 자바가상머신에서 클래스 파일을 뚝 떨어뜨린다 내가 자주쓰는 JavaScript의 경우는 조금 더 특이하다 이놈은 토크나이징-파싱-코드생성이라는 세가지 단계를 거친다 '스캐너'의 경우 코드를 토큰(Token)으로 만드는 작업이다. var a = 2;라는 코드가 있다면, va..
2020.02.17 -
블로그 시작!
블로그 시작! 공대학부 6년-> 공대석사 2년-> 공대박사1년 -> IT회사 1년 그냥 흘러가는 것이 인생이라 생각했지만... 네이버 AI 버닝데이가 많은 영감을 주었다:) 이제부터라도 달려야지~
2020.02.17