본문 바로가기

TIL

(32)
[TIL]20220613 CS 스터디 자바스크립트는 어떻게 작동할까? 작동 방식 브라우저가 웹페이지에서 자바스크립트를 발견하면 프로그램의 텍스트를 자바스크립트 컴파일러로 전달한다. 컴파일러는 프로그램에 에러가 있는지 검사하고, 프로그램을 모형 컴퓨터처럼 만들어 낸 컴퓨터의 어셈블리 언어 명령어로 컴파일한다. 모형 컴퓨터 같은 시뮬레이터를 실행하여 자바스크립트 프로그램이 수행하기로 되어 있는 모든 기능을 수행한다. 자바스크립트 동작 구조 자바스크립트의 대표적인 엔진은 Google에서 만든 V8 엔진이다. 엔진은 Memory Heap 과 Call Stack 으로 구성되어 있다. Memory Heap은 메모리 할당이 발생하고, Call Stack (호출 스택)은 코드 스택에 따라 하나씩 쌓이는 곳이다. 자바스크립트에서는 수 많은 AP..
[TIL]20220612 이번 한주동안 주특기 1 주차 과제를 하며 느낀점: 주특기 1 주차 기간동안 node.js 라는 런타임 플랫폼으로 자바스크립트와 expressjs 웹 프레임 워크를 사용해 웹서버를 구현해 보았다. RESTful API 의 계념도 조금 더 자세히 알게되었고 CRUD 를 구현해 보면서 javascript 언어와 express 라이브러리를 좀 더 잘 다루게 된것같다. 또 Sequelize ORM 을 사용해서 기존에 사용하던 비관계형 DB 인 몽고DB 대신 관계형 DB 중 하나인 MySQL 을 사용해서 서비스를 구현해 보았다. 프로미스 객체를 반환하는 비동기 함수들을 많이 다루게 되어서 프로미스 객체에 대한 이해와 사용법도 어느정도 익히게 된것 같다. 아직 2,3,4,5 주차가 남았지만, 빠르게 과제들을 끝내고..
[TIL]20220611 CS 스터디 챕터41: 자바스크립트와 파이썬 챕터42: 프로그래밍 언어의 주요 개념 프로그래밍 언어는 모두 게산을 일련의 단계로 풀어서 상세히 설명하기 위한 표기법이며 몇몇의 기본 아이디어를 공유한다. ( 데이터를 입력받고, 읽고, 산술연산을 하고 값을 저장하고 불러오고 보여주는등 ) 이상적인 프로그래밍 언어 는 다음과 같은 두가지가 존재한다. 구문규칙: 문법적으로 무엇이 맞고 무엇이 틀리는지 정의하는 규칙 의미 체계: 해당 언어로 표현할 수 있는 모든것에 대해 명확희 정의된 의미 프로그래밍 언어들의 특징 언어자체: 조건문 연산자 반복문 등의 문장 코드 라이브러리: 사전 제작된 코드 꾸러미 프로그램 실행 환경에 접근 하는 기능: 파이썬: 컴퓨터으 파읠 시시템에 접근, ( 자바스크립트로는 일부 브라우저에서..
[TIL]20220610 CS 스터디 챕터38: 여러 작업을 수행하는 애플리케이션 챕터39: 소프트웨어의 계층 구조 동기(synchronous : 동시에 일어나는) 요청과 결과가 한 자리에서 동시에 일어남 A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다. 비동기(Asynchronous: 동시에 일어나지 않는) 요청한 그 자리에서 결과가 주어지지 않음 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다. 동기, 비동식의 장단점 동기방식은 설계 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점 비동기 방식은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수있다. 동기방식의 예(A가 B에..
[TIL]20220609 CS 스터디 챕터36: 파일 시스템과 블록 챕터37: 파일을 휴지통에 넣을 때 일어나는 일 파일 시스템 하드 디스크나 CD/DVD, 이동식 메모리(USB) 자치 같은 물리적 저장 매체를 파일과 폴더의 계층 구조처럼 보이게 하는 부분 EX) C:/image/person.jpg C드라이브 아래 image 폴더 안의 person.jpg 사진 파일 폴더(디렉토리)는 조직화된 구조를 보여주고 파일은 문서, 사진, 음악 등 실질적인 내용을 담고 있다! 컴퓨터가 보유한 모든 정보는 파일 시스템에 저장되고, 사용자는 파일 시스템을 통해 정보에 접근한다. 보조 기억 장치 파일 시스템 예를 들어 우리는 컴퓨터를 구매할 때 SSD사서 C드라이브로 할당한 다음 윈도우 구동 전용(운영 체제)으로 사용하고 HDD를 사서 D드라이..
[TIL]20220608 CS 스터디 챕터34: 가상 운영체제와 가상 머신 챕터35: 운영체제가 일하는법 가상 운영체제와 가상머신 가상머신이란? 가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경입니다. 가상 머신은 크게 시스템 가상 머신과 프로세스 가상 머신 두 가지로 나뉜다. 시스템 가상 머신은 실제 기계를 대체해서 제공하며, 전체 운영체제를 실행하기 위한 기능들을 제공한다. 시스템 가상 머신은 여러 운영 체제를 쓰는 환경은 운영 체제가 완벽히 고립된 채로 같은 컴퓨터에서 존재할 수 있다. 예를들어 Oracle VM이 있다 프로세스 가상 머신은 플랫폼에 독립적인 환경에서 컴퓨터 프로그램을..
[TIL]20220607 CS 스터디 챕터33: 컴퓨터를 작동하게 만드는 운영체제 운영체제란? 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적을 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용 프로그램의 유용한 작업을 할 수 있도록 환경을 제공해 줍니다. 운영체제 역사 1950년대 애플리케이션곽 운영체제 간에 구별이 없었다. 하나의 응용 프로그램을 실행할 수 있을 정도로 성능이 제한적이었다. 1960년대 초 프로그램 종류도 많아지고 사용자도 많아지기 시작 주로 하드웨어를 만드는 회사(IBM, DEC, 데이터 제너럴)에서 자사 하드웨어를 위한 자체 운영체제를 제공..
[TIL]20220606 챕터 30: 기술표준의 중요성 챕터 31: 자유로운 소프트웨어, 오픈소스 표준이란? 어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어있는지 명확하고 상세하게 기술한것. EX) .dox, .docx 등의 문서형식 표준 가전제품들의 전압에 대한 “하드웨어” 표준 리모콘, TV, Radio 등의 주파수 신호 표준 HDMI, USB 등의 케이블/커넥터 표준 C, C++, 아스키코드, 등 “소프트웨어적” 표준 이처럼 다양한 표준들은 시대에 따라 발전하며, 공정 경쟁, 공존 등을 통해 사용자가 더 편리하게 서비스를 사용할 수 있도록 도와준다. 소스 코드란? 프로그래머가 어셈블리언어/고수준언어 등으로 작성하는 코드. 프로그래머가 읽을수 있는 형태. 여러사람이 오픈소스로 협업하고 개발할때 사용할 수 있다. ..