FrontEnd/웹 지식
정규표현식
정규표현식을 잘 사용하면 정말 유용하게 문자열들을 걸러낼 수 있다 🐘 JS에서의 간단한 사용 예 const text = "실행할 텍스트"; console.log(text.match(정규표현식)); 🐘 정규표현식의 기초 문법 "시간을 달리는 부캠 week-2 입니다. 연락은 010-1234-5678 9시간 이내" 이라는 텍스트를 가지고 실험해보자. 🐘 문자만 들어온 경우 /시/ : ‘시’를 하나 만 찾는다. "시간을 달리는 부캠 week-2 입니다. 연락은 010-1234-5678 9시간 이내" [ ‘시’ ] 옵션 🐘 g /시/g : ‘시’를 모두 찾는다. "시간을 달리는 부캠 week-2 입니다. 연락은 010-1234-5678 9시간 이내" [ '시', '시' ] /시간/g : ‘시간’를 모두 찾는다...
자바스크립트 타이머함수
자바스크립트에서는 크게 두가지 타이머 함수가 존재한다. 🐬 setTimeout() : 일정 시간 뒤에 함수가 실행 🐬 setInterval() : 일정시간마다 함수가 실행 중요한점은 두 타이머는 정확한 시간을 보장하지는 않는다! 예를들어 400ms를 준다고 해당 시간을 정확하게 보장하지는 않는다는 것이다. setTimeout() 함수가 실행되면 바로 실행되는것이 아닌, 큐에 넣어 대기하게 된다. JS 블록의 실행이 끝나지 않았기 때문에 처리를 할 수 없기 때문이다. JS 블록이 끝나면 큐 내부에서 대기하는 처리가 있는지 확인한다. 여기에는 자바스크립트 코드뿐 아니라 마우스클릭등의 이벤트또한 존재할 수 있다. 결국 setTimeout() 함수는 필연적으로 이전의 콜백 실행으로부터 지연되는 시간을 갖게 된다..
스레드와 스케줄링
프로세스는 5가지 상태가 존재한다 ✅ 생성(create): 프로세스가 생성 ✅ 실행(running): 프로세스가 프로세서를 차지하여 명령어들이 실행 ✅ 준비(ready): 프로세스가 프로세서를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태 ✅ 대기(waiting): 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태 ✅ 종료(terminated): 프로세스의 실행이 종료 🐘 스레드 💡 스레드란 프로세스보다 조금 더 구체적인 개념으로, 하나의 프로세스 안에서 실행되는 작업 단위라고 생각할 수 있다. ✅ CPU 제어의 흐름 ✅ 실행 단위 ✅ 한 프로세스 내부에서 스케줄링이 가능한 개체 보통은 한 프로세스안에 한 스레드가 존재한다. 이를 싱글스레드 라고 하며 이 경우 프로세스와 스..
함수형 프로그래밍
🐘 함수형 프로그래밍 [번역] 함수형 프로그래밍 전문가 되기 (Part 1) 가장큰 도움을 받은 글이었다. 위의 내용과 인터넷의 정보들을 조합하여 정리해 보았다. 🐬 순수 함수 💡 순수 함수 는 매우 간단한 함수라고 생각 할수있다. 단지 입력된 파라미터에 따라 동작된다. let z = 10; function add(x, y) { return x + y; } 위 함수처럼 z변수에 접근하지 않고 독립적으로 진행된다. 또다른 특성으로는 순수함수는 같은 Input엔 같은 Output이 와야 한다는 것이다. writeFile(fileName); updateDatabaseTable(sqlCmd); sendAjaxRequest(ajaxRequest); openSocket(ipAddress); 예를 들어 위 함수들은 ..
XML 파서
브라우저는 사용자가 선택한 자원을 서버에 요청하여 표시한다. 그런데 이 자원들은 html,pdf,image 등등 다양한 형태이다. 즉, 브라우저는 해당 HTML과 CSS 명세 등에 의해서 파일을 해석해서 표시해야한다. 그리고 이 명세 는 웹 표준화 기구인 W3C(World wide web Consortium)에서 정해지게 된다. 예전 브라우저들은 일부만 명세를 따르고 독자적 방법으로 확장했기 때문에 호환성 문제가 심각했다… 이처럼 표준 명세를 따르는건 아주아주 중요한 일이다. 그렇다면 DOM이란 무엇일까 💡 DOM Document Object Mode (문서 객체 모델) 웹 브라우저가 html을 트리구조로 이해하는 모델이라고 생각할 수 있다. 브라우저는 문서를 가지고 어휘분석 ⇒ 구문분석 과정을 거친다...
콜스택, 메모리힙과 메모리모델 구조
일반적인 프로세스 메모리 모델의 구조는 아래와 같다. Text : 프로그램 코드와 상수가 정의되어 있고, 읽기만 가능하다 Data : 전역변수와 정적 변수가 저장되어 있다. Heap : 동적 메모리 호출에 의해 할당되는 메모리 영역 Stack : 함수 값, 지역변수, 반환 주소등이 저장되는 영역이다. ㅋ 그렇다면 Node.js 에서 프로세스 메모리를 관리하는 방법은 어떨까? Node.js에서는 V8메모리 구조를 사용한다. (https://ui.toast.com/weekly-pick/ko_20200228) V8엔진은 힙 메모리에 동적 데이터를 저장하며, 가비지 컬렉션이 발생한다. 이때 모든 영역이아니라, New와 Old 영역에서만 가비지 컬렉션이 발생한다. New : 새로 만들어진 모든 객체를 저장 Old..