Programming(57)
-
Node.js의 내부 동작을 알아보자 - 자바 스크립트 엔진
Chrome V*이라는 JavaScript engine에 지어진 JavaScripy runtume이 Node.js라고 하는데 자바스크립트 엔진을 먼저보면 자바스크립트를 실행하면 컴퓨터에서는 자바스크립트를 그냥 실행할 수 있는지 우리가 생각해봐야 한다.근데 자바스크립트는 원래 브라우저에서 실행할 수 있고 브라우저가 없다면 그냥 컴퓨터에서는 자바스크립트를 실행할 수 없다. 브라우저에는 자바스크립트 엔진이 있기 때문에 뭔가 따로 설치해주자 않아도 자바스크립트의 실행이 가능한 것이다. 자바스크립트 엔진은 자바스크립트 토드를 실행하는 소프트웨어 구성 요소로 처음엔 이 엔진은 interpreter였으나 모든 관련 최신 엔진은 성능 향상을 위해서 Just-in-Time 컴파일을 사용한다. JIT confile이란....
2024.12.01 -
Windows에서 pyenv 사용하기
pyenv는 한 컴퓨터에서 여러개의 파이썬버전을 사용하고 관리하기 용이한 프로젝트이다.보통은 windows에서는 사용하지 못하기에 pyenv가 아니라 win-pyenv라는 프로젝트를 사용하게 된다.그래서 pyenv가 아닌 사실은 win-pyenv를 설치하는 과정을 알아가는 내용이다. 필요성내가 이걸 사용하게된 이유는 하나의 프로젝트 내부에 여러명이 작업하다보니 A프로그램(exe파일)은 3.8버전을 쓰고 B프로그램(exe파일)은 3.9버전을 쓰는등 여러 버전으로 응용프로그램을 작업하고 그 응용프로그램이 하나로 묶여 하나의 프로젝트를 구성하고 있었는데 이게 유지보수를 하다보니까 한 컴퓨터 내에서 여러 프로그램을 디버깅하고 수정하려고 받아서 라이브러릴르 받으면 오류가 난다. 이건 도저히 글로벌한 로컬 세팅으..
2024.11.28 -
열혈 C++ - Chapter 04. 클래스의 완성
Chapter 04-1. 정보은닉프로그래밍은 객체간의 관계를 구성해주는 것이 중요하다.그런데 객체를 정의함에 있어서 모두 정보은닉, 캡슐화가 되어있어야한다. 여기서 정보은닉은 멤버변수(정보)를 감추겠다(은닉하겠다.)해당 클래스가 아닌 다른 영역, 다른 클래스에서 접근이 불가능하도록 하겠다는 것이 바로 정보 은닉인것이다. 그러면 정보 은닉은 모두 쉽게 할 수있는 개념이다.물론 이렇게 정보에 접근만 못하게 한다고 정보를 은닉했다고 할 수 있는 것은 아니다.접근을 막았으니까 다른 경로로 내가 원하는 방향으로 접근할 수 있도록 길을 만들어 줘야만한다.아예 접근을 못하게 하면 클래스 자체를 선언하는 의미가 없기 때문에 어떤 방법으로든 접근은 할 수 있어야 한다. 그러면 캡슐화는 무엇일까.캡슐화를 했다 라는 것은 ..
2024.11.24 -
Dart의 설치
Dart 란Dart는 구글에서 개발한 현대적이고 다재다능한 프로그래밍 언어이다. 이 언어는 다양한 플랫폼에서 애플리케이션을 개발할 수 있는 강력한 기능을 제공한다1. 크로스 플랫폼 개발Dart는 모바일, 웹, 데스크탑 등 다양한 플랫폼에서 사용할 수 있는 크로스 플랫폼 개발을 지원한다. 단일 코드베이스로 여러 플랫폼에 배포할 수 있어, 개발 시간과 비용을 절감할 수 있다.2. Flutter 프레임워크의 주 언어 ★Dart는 Flutter 프레임워크의 주요 언어이다. Flutter는 Dart를 기반으로 하여 다양한 플랫폼에서 일관된 사용자 경험을 제공하는 애플리케이션을 쉽게 만들 수 있게 해준다.3. 객체 지향 언어Dart는 객체 지향 프로그래밍을 지원한다. 이를 통해 코드의 구조화와 재사용성을 높일 수 ..
2024.11.21 -
열혈 C++ - Chapter 03. 클래스의 기본
03-1. C++에서의 구조체구조체의 등장 배경연관있는 데이터를 하나로 묶으면 프로그램의 구현과 관리가 용이하다.구조체는 연관 있는 데이를 하나로 묶는 문법적 장치이다. 구조체로 연관있는 데이터들을 묶으면 생성 및 소멸시점을 일치시키고, 이동 및 전달 시점 및 방법 또한 일치시키기 때문에 관리가 용이 해진다는 장점이 있다.C++ 에서의 구조체 변수 선언C에서는 struct라는 키워드를 통해 구조체 변수를 선언했는데 C++의 경우는 struct키워드가 필요 없다.//C언어에서의 구조체 선언 방법struct Car basicCar;struct Car simpleCar;↓//C++에서의 구조체 선언 방법Car basicCar;Car simpleCar;그렇기 때문에 변수를 선언할때 struct를 없에기 위해서 ..
2024.11.19 -
열혈 C++ - Chapter 02. C언어 기반의 C++ 2
02-1. Chapter 02의 시작에 앞서C언어의 복습을 유도하는 확인학습 문제#[문제 1] 키워드 const의 의미키워드 const는 어떤 의미를 갖는가? 다음 문장들을 대상으로 이를 설명해보자.const int num = 10; ===> num을 상수화 / num은 10에서 변경할 수 없음const int * ptr1 = &val1; ===> ptr이 가리키는 val1이 const int 타입임 / ptr1을 이용해서는 val1의 값을 변경할 수 없음, 그러나 ptr1은 다른 주소값으로 변경하는게 가능함int * const ptr2 = &val2; ===> ptr2를 상수화 / ptr2의 값은 변경할 수 없이 val2를 항상보고있어야함, ptr2를 통해서 val2의 값을 변경하는건 문제 없음co..
2024.11.19