⭐️ Language
타입스크립트 타입 종류 살펴보기
타입스크립트 타입 종류 살펴보기
2023.04.06The primitives string number boolean // 변수 타입 표기 - 변수의 타입을 지정한다. const num: number = 1; const str: string = '문자열'; const bool: boolean = true; // 타입 추론 : 'name' 변수는 'string' 타입으로 추론된다. const name = '최개발'; any TypeScript가 주는 장점을 모두 상쇄시켜 JavaScript를 사용하는 것과 같게 된다. any타입을 사용하는 곳에서는 TypeScript 컴파일러가 작동하지 않는다. 아래의 경우를 제외하고는 any타입을 사용하지 않는 것이 좋다. 특정 값으로 인하여 타입 검사 오류가 발생하는 것을 원하지 않는 경우 어떤 값 혹은 데이터가 저장될..
[모던자바스크립트 Deep Dive] 원시 값과 객체의 비교
[모던자바스크립트 Deep Dive] 원시 값과 객체의 비교
2022.10.06모던 자바스크립트 딥 다이브 11장 원시 값과 객체의 비교 정리 데이터 타입은 크게 원시 타입(primitive type)과 객체 타입(object/reference type)으로 구분할 수 있다. 원시 타입 객체 타입 원시 값은 변경 불가능한 값(immutable value)이다. 객체는 변경 가능한 값(mutable value)이다. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장된다. 값에 의한 전달 : 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 참조에 의한 전달 : 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 원시 값 변경..
[모던자바스크립트 Deep Dive] 변수를 저장하는 과정(값의 할당)
[모던자바스크립트 Deep Dive] 변수를 저장하는 과정(값의 할당)
2022.10.04모던 자바스크립트 딥 다이브 04장 변수 정리 용어 변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 할당(assignment) : 대입, 저장이라고도 하며 변수에 값을 저장하는 것이다. 참조(reference) : 변수에 저장된 값을 읽어 들이는 것이다. 변수가 메모리에 담기는 과정 자바스크립트가 10 + 20연산을 수행하기 위해서는 좌변, 우변의 피연산자를 메모리를 사용해 데이터를 기억하고 CPU를 사용해 연산한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체이며, 메모리 셀 하나의 크기는 1바이트(8비트)로 컴퓨터는 메모리 셀의 크기 즉 1바이트 단위로 데이터를 저장하거나 읽어 들인다. 각 셀은 고유의 메모리 주소를 갖으..
타입스크립트(TypeScript)란?
타입스크립트(TypeScript)란?
2022.08.18TypeScript JavaScript에 타입을 부여한 언어로 JavaScript의 확장된 언어이다. Microsoft에 의해서 개발 및 관리되고 있는 오픈소스 프로그래밍 언어로 대규모 애플리케이션을 개발하는데 JavaScript가 어렵고 불편하다는 불만에 대응하기 위해서 개발되었다. JavaScript는 C, Java와 같은 언어와 구별되는 특성이 있다. Prototype-based Object Oriented Language Scope & this 동적 타입(dynamic typed)언어 혹은 느슨한 타입(loosely typed)언어 이와 같은 특성은 클래스 기반 객체지향 언어에 익숙한 개발자를 혼란스럽게 하며 코드가 복잡해질 수 있고 디버그가 증가하는 문제를 일으킬 수 있어서 규모가 큰 프로젝트에..
절차지향, 객체지향, 함수형 프로그래밍
절차지향, 객체지향, 함수형 프로그래밍
2022.08.04프로그래밍 패러다임 명령형 프로그래밍 : 무엇(What)을 할 것인지 나타내기보다 어떻게(How)할 것인지 설명하는 방식 절차지향 프로그래밍 객체지향 프로그래밍 선언형 프로그래밍 : 어떻게(How)할 것인지 나타내기보다 무엇(What)을 할 것인지 설명하는 방식 함수형 프로그래밍 명령형 프로그래밍 명령형 프로그래밍을 자동차 공장을 예시로 설명하자면 프레스 공정, 차체 조립 공정, 도장 공정, 의장 조립 공정, 검사/검수를 개발자가 심사숙고해서 체계적인 체제를 설계 후 작업하여 자동차를 만드는 사고이며, 자동차를 '어떻게' 만드는지에 초점이 맞춰져 있다. ex) "프레스 공정, 차체 조립 공정, 도장 공정, 의장 조립 공정은 각 역할을 완료하면 다음 공정으로 넘겨서 자동차를 생산해라" 선언형 프로그래밍 ..
자바 메모리 영역 - Stack, Heap
자바 메모리 영역 - Stack, Heap
2021.07.30개요 모든 프로그램은 메모리에 올라와야 실행할 수 있다. 프로그램이 실행되면 JVM은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리를 한다. Java에서 내가 작성한 코드들이 어떤 영역에서 다뤄지는지 알아보기 위해서 정리한다. Static 영역 Stack 영역 Heap 영역 0. 변수의 종류 메모리 영역을 알기 전에 선언위치에 따른 변수의 종류를 먼저 알아보자 변수는 세 종류로 변수의 선언된 위치에 따라서 클래스변수, 인스턴스변수, 지역변수가 있다. 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수이며, 멤버변수를 제외한 나머지는 모두 지역변수이다. 각 변수의 생성시기는 아래와 같다. 클래스변수 : 클래스가 메모리에 올라갈 때 인스턴스변수..
break와 continue의 차이
break와 continue의 차이
2021.07.29개요 일단은 조건에 만족시 구문을 벗어나게 하려고 정확히 이해하지도 않고 break, continue를 남발하게 되었지만 내가 원하는대로 프로그램이 흘러가지 않았다. break문과 continue문이 어떻게 작동하는지 정리해보자. 1. break문 break문은 자신이 포함된 가장 가까운 반복문을 벗어난다. 다음 그림을 보고 break;문이 어느 범위를 벗어나고 어떤 결과가 출력될지 예상해보자. 결과는? 1번 2번 4번 3번은 출력되지 않았다. 3번이 출력될 줄 알았다면 아마도 if조건문을 반복문으로 착각하여 "if(){ }문을 벗어나겠구나!"라고 생각했을 것이다. break문은 현재 while반복문 내 if조건문에 포함되어 있다. break;문을 만나게 되면 가장 가까운 반복문인 while문 전체를 벗..
자바 형변환(Casting)
자바 형변환(Casting)
2021.07.28개요 형변환 하는 것은 간단하지만 '값 손실' 일어나는 부분이 잘 이해가지 않았다. 형변환 내용을 간단하게 정리하고 값 손실은 어떻게 일어나는지 살펴보자. 형변환 변수 또는 상수의 타입을 다른 타입으로 변환하는 것. 프로그램을 작성 시 값의 대입이나 연산을 수행할 때 같은 타입끼리만 가능하다. 서로 다른 타입 간의 연산을 수행해야 할 때는 연산을 수행하기 전 타입을 일치시켜야 한다. 일치시키기 위해서 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 '형변환'이라고 한다. 형변환이 어떤 것인지 쉽게 이해하기 위한 대표적인 예시로 물을 큰 그릇과 작은 그릇 사이에서 옮긴다는 가정이 있다. 타입의 크기가 1byte, 2byte, 4byte, 8byte으로 제각각인 것처럼 서로 크기가 다른 그릇이 있다고 생..
자바 기본형의 종류와 저장범위
자바 기본형의 종류와 저장범위
2021.07.24개요 자바 기본형의 저장범위는 각 자료형 비트의 크기에 따라 다르다. 어떠한 방식으로 저장되는지 이해하고 저장 가능한 범위를 외우기 보다는 계산하면 알아낼 수 있도록 정리를 하고자 한다. 기본형(primitive type) 자바의 기본형에는 8개의 타입이 있으며 논리형, 문자형, 정수형, 실수형으로 구분할 수 있다. 정수형 저장 가능한 범위는 아래의 식과 같다. 이 식을 아래의 byte자료형에 대입하여 저장 가능한 범위를 알아보자 이를 통해서 정수형 byte의 저장 가능한 범위가 -128 ~ 127임을 알 수 있다. 분류 자료형 저장 가능한 범위 크기 논리형 boolean false, true 8bit / 1byte 문자형 char \u0000 ~ \uffff (0~65535) 16bit / 2byte ..