분류 전체보기

타입을 집합으로 생각하고 타입간의 좁은 타입, 넓은 타입을 파악하다타입과 집합타입들을 정의할 때 A타입이 B타입보다 좁을지 넓을지 생각하면 대입이 되는가 안되는가 판단할 수 있다. string & number 는 never 타입이다. never는 집합으로 따지면 공집합이다. any는 전체집합이다. type A = { name: string }type B = { age: number }type C = { name: string, age: number } 타입 A, B, C 중에 어떤 것이 가장 좁은 타입일까? 답은 C이다. C가 넓은 타입이라고 생각할 수도 있는데 이렇게 생각하면 좋다. 내가 느끼기에 타입에 충족하는 조건이 더 까다롭거나 자세하면 좁은 타입이라고 생각하면 되는 거 같다. 타입 C가 되려면 ..
union과 intersectionunion(|)과 intersection(&)function add(x: string | number, y: string | number): string | number { return x + y }add(1, 2)add('1', '2')add(1, '2')type A = { a: string;}type B = { b: string;}const aa: A | B = { a: 'hello', b: 'world' };const bb: A & B = { a: 'hello', b: 'world' }; union은 또는 (or)의 성질을 지닌다. 근데 string | number는 문제가 있다. return값이 number일수도 string일수도 있는데 return값에..
자바 연산자에 대해서 배우다. 산술 연산자 산술 연산자는 주로 숫자를 계산하는 데 사용된다. 수학 연산을 생각하면 된다. + (더하기) - (빼기) * (곱하기) / (나누기) % (나머지 구하기) package operator; public class Operator1 { public static void main(String[] args) { // 변수 초기화 int a = 5; int b = 2; // 덧셈 int sum = a + b; System.out.println("a + b = " + sum); // 출력: a + b = 7 // 뺄셈 int diff = a - b; System.out.println("a - b = " + diff); // 출력: a - b = 3 // 곱셈 int mul..
자바의 변수에 대해 배우다. 변수, 초기화, 선언 변수는 데이터를 담을 그릇이다. 고정된 값이 아니라 변할 수 있는 값. 여러 곳에서 사용되는 동일한 의도를 가진 데이터가 변할 수 있는 값일 때, 여러 곳에서 사용되는 데이터를 하나하나 바꾸지 않고 변수에 담아서 변수의 값만 변경해 주는 것이 훨씬 효율적이다. package variable; public class Var5 { public static void main(String[] args) { //1. 변수 선언, 초기화 각각 따로 int a; // 변수 선언 a = 1; // 변수 초기화 System.out.println(a); int b = 2; //2. 변수 선언과 초기화를 한번에 System.out.println(b); int c = 3, d..
자바 프로그램을 작성하고 실행하다. public class HelloJava { //HelloJava 클래스의 범위 시작 public static void main(String[] args) { //main() 메서드의 범위 시작 System.out.println("hello java"); } //main() 메서드의 범위 끝 } //HelloJava 클래스의 범위 끝 /* 여 러 줄 주 석 */ 자바 언어는 대소문자를 구분한다. HelloJava라는 클래스의 코드이다. 클래스 이름은 파일명과 같아야 한다. 쉽게 HelloJava라는 파일을 만들었다고 생각하면 된다. {} 블록을 사용해서 클래스의 시작과 끝을 나타낸다. 프로그램을 실행하면 main 메서드 내부가 실행된다. 자바는 문장이 끝나면 반드시 세..
JAVA 기초를 배우기 위해 시작하다. 백엔드 개발자를 목표로 하고 있는데 자바스크립트, 파이썬도 충분히 좋은 언어지만 나의 능력을 더 넓히고 싶은 욕심에 자바를 배우고 싶어졌다. Node.js의 프레임워크는 Express, NestJS가 대표적으로 있는데 Express로 프로젝트를 해본 경험도 있고 NestJS는 최근에 인프런 강의를 들어서 프로젝트 경험은 없지만 어떻게 이루어지고 작동하는지 알고 있다. JAVA 기초 문법을 빠르게 배우고 Spring, JPA까지 학습할 예정이다. 자바는 표준 스펙과 구현으로 나눌 수 있다. 표준 스펙은 자바의 순수한 기반? 설계도?이다. 표준 스펙을 기반으로 여러 회사들에 실제 작동하는 자바를 만든다. 그 회사에 최적화된 자바를 개발하는 것이다. 자바 구현들은 모두 ..
LAN (Local Area Network)에 대해 배우다. 컴퓨터 간 소통하려면 어떻게 해야 하는가? 컴퓨터 2대가 있을 경우, 컴퓨터끼리 소통하려면 어떻게 해야 할까? 물리적인 연결로 케이블로 두 컴퓨터를 연결해서 소통할 수 있다. 케이블로 전기를 주고받고 전기신호 0과 1을 주고받을 수 있다. 케이블 없이 전자기파를 통해서도 소통할 수 있다. 컴퓨터가 3대 이상일 경우, 컴퓨터끼리 소통하려면 어떻게 해야 할까? 모두 케이블을 HUB에 연결하면 컴퓨터끼리 소통할 수 있다. 하지만 HUB는 이제 주로 사용하지 않는다. 그 첫 번째 이유는 특정 컴퓨터에게만 정보를 전달할 수 있는 게 아니라 HUB에 연결된 모든 컴퓨터에게 정보가 전달된다. 두 번째 이유는 동시에 2대 이상의 컴퓨터가 정보를 전달하려고하면..
TypeORM을 배우다. 1. TypeORM TypeORM은 node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리이다. TypeORM은 MySQL, PostgresSQL, MariaDB, MS SQL Server, Oracle등 여러 데이터베이스를 지원한다. ORM은 객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업이다. ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있다. 모델을 기반으로 데이터베이스 테이블 체계를 자동으로 생성한다. 데이터 베이스에서 개체를 쉽게 삽입, 업데이트, 삭제할 수 있다. 아래(파랑)는 기존에 자바스크립트로 DB의 데이터에 접근하는 방법으로 쿼리문을 직접 작성해야했다. 하지만 ORM을 사용하면(빨강) ..
이뮨01
'분류 전체보기' 카테고리의 글 목록