거꾸로 바라본 세상
[Kotlin] 2. 연산자
Language/Kotlin 2023. 8. 22. 10:07

연산자 구분 단항 연산자(Unary Operator) : 항이 하나인 연산자로 하나의 변수에서만 작동하는 연산자 이항 연산자(Binary Operator) : 두 개의 항을 처리하는 연산자로 두 변수의 값으로 작동하는 연산자 사칙연산자 표현식 메서드명 내부 실행 a + b plus a.plus(b) a -b minus a.minus(b) a * b times a.times(b) a / b div a.div(b) a % b rem/mod a.rem(b), a.mod(b) println("num1 + num2 = ${num1 + num2}") println("num1 - num2 = ${num1 - num2}") println("num1 * num2 = ${num1 * num2}") println("num1..

[Kotlin] 1.변수(Variable)
Language/Kotlin 2023. 8. 21. 16:05

1. 변수선언 val (불변변수) : 한번 저장하면 다시 할당 할 수 없는 변수를 정의. //문자, 문자열, 논리 값 객체 //Char(2byte), String class, Boolean : (true, false) val charVal = 'a' val strVal = "Hello" val boolVal = true; //charVal = 'b' // Error: 불변변수는 다시 재할당 불가능. println(charVal); println(strVal); println(boolVal); println(charArrayOf('가','나').contentToString()) var str = String(charArrayOf('가','을')); println(str); //문자열 탬플릿 //$변수명, ..

[TypeScript] 인터페이스
Language/TypeScript 2023. 8. 7. 08:29

인터페이스 구문 interface Book { //?를 이용한 선택적 속성(undefined 허용) author?: string; pages: number; } const ok: Book = { author: 'Devide', pages: 365 } const missing: Book = { pages: 80 } 읽기전용 속성(readonly) readonly는 interface에서만 사용 interface Page { readonly text: string; } function read(page: Page) { console.log(page.text); //Cannot assign to 'text' because it is a read-only property. page.text = '10'; 함수와 ..

[TypeScript] 함수, 배열
Language/TypeScript 2023. 8. 7. 08:27

함수 매개변수에 변수 타입 선언 function sing(song: string) { console.log(`Singing: ${song}!`); } sing('hhh'); 자바스크립트의 경우 2개의 매개변수에 값을 한 개만 넣을 경우 undefined로 출력하지만 타입스크립트에서는 에러를 표기한다. function SingTwo(first: string, second: string) { console.log(`first: ${first} / ${second}`); } SingTwo('h111', 'h222'); SingTwo('h111'); //error 만약 선택적 매개변수를 이용하려면 변수명 뒤에 ?를 추가하면 매개변수를 1개만 넣어도 된다. function SingTwo(first: string,..

[TypeScript] 타입시스템, 유니언과 리터럴
Language/TypeScript 2023. 8. 7. 08:26

1.타입시스템 타입스크립트는 자바스크립트의 7가지 원시타입과 동일 null; //null undefined; //undefined boolean; //true or false string; //”Hello” number; //1233 bigint; //1233n symbol; //Symbol(”Hello”) 타입 시스템은 프로그램에서 가질 수 있는 타입을 이해하는 방법에 대한 규칙 코드를 읽고 존재하는 모든 타입과 값을 이해 각 값이 초기선언에서 가질 수 있는 타입을 확인 각 값이 추후 코드에서 어떻게 사용될 수 있는지 모든 방법을 확인 값의 사용법이 타입과 일치하지 않으면 사용자에게 오류를 표시 타입스크립트 타입 오류 종류 구문 오류 : 타입스크립트가 자바스크립트로 변환되는 것을 차단한 경우 let l..

[SQL Server] 프로시저 및 함수 사용법
Database/SQL 2023. 8. 7. 08:23

프로시저 생성 CREATE PROCEDURE [테이블명] [변수명] [타입], [변수명] [타입] OUTPUT -- 리턴일경우 OUTPUT 추가 AS BEGIN [내용] END GO 프로시저 수정 ALTER PROCEDURE [테이블명] [변수명] [타입], [변수명] [타입] OUTPUT -- 리턴일경우 OUTPUT 추가 AS BEGIN [내용] END GO 프로시저 삭제 DROP PROCEDURE IF EXISTS [테이블명] 프로시저 실행 EXEC or EXECUTE [프로시저명] [파라미터]... 함수생성 CREATE FUNCTION [FUNC_NAME] ( [변수명] [타입], [변수명] [타입] ) RETURNS [리턴타입] AS BEGIN DECLARE [리턴 변수명] [타입] [내용] RE..

article thumbnail
[Srping] Webflux
Spring 2023. 5. 2. 09:43

WebFlux Webflux는 Reactive system을 개발하기 위하여 Spring에서 제공하는 라이브러리이다. Spring Framework는 원래 Servlet API, 컨테이너용을 간단하고 편리하게 사용하기 위해 개발된 프레임워크였다(spring-webmvc를 제공). 그리고 근본은 Blocking, Synchronous(동기)방식이다. 추후 Servlet 3.1에서 비동기 처리 방식을 지원했지만, 서블릿은 응답을 기다리는 동안 Pool안에 있는 스레드를 지연시킬 수 있어서 Reactive해야 하는 요구를 충족하지 못햇다. 그래서 스프링 5.x 버전부터 Spring WebFlux가 추가되었고 웹 요청 처리를 Reactive하게 다루고 Non-Blocking을 구현할 수 있도록 초점을 맞추고 있..

[Srping Reactor] 리액티브 오퍼레이션
Spring 2023. 5. 2. 09:29

리액티브 오퍼레이션 Flux와 Mono는 리액터가 제공하는 가장 핵심적인 구성요소이며, 이 오퍼레이션들은 두 타입을 함께 결합하여 데이터가 전달될 수 있는 파이프라인을 생성한다. Flux와 Mono에는 500개 이상의 오퍼레이션이 있으며 각 오퍼레이션은 다음과 같이 분류된다. 생성(Creation) 오퍼레이션 조합(Combination) 오퍼레이션 변환(Transformation) 오퍼레이션 로직(Logic) 오퍼레이션 마블 다이어그램을 보려면 해당 사이트에 가면 볼 수 있다. (https://rxmarbles.com/#from) 1. 생성(Creation) 오퍼레이션 데이터를 생성하여 방출할 때 사용. 객체로부터 생성 Flux나 Mono로 하나 이상의 객체를 생성하려면 just() 메서드를 사용한다....

Spring Reactor 시작하기
Spring 2023. 5. 2. 09:27

Spring Reactor 리액티브 프로그래밍은 일련의 작업 단계를 기술하는 것이 아니라 데이터가 전달될 파이프라인을 구성하여 데이터가 전달되는 동안 어떤 형태로든 변경 또는 사용되는 것. 사람의 이름을 가져와 대문자로 변경 후 출력 String name = "devPaik"; String capitalName = name.toUpperCase(); String greeting = "Hello, "+ capitalName + "!"; System.out.println(greeting); Mono.just("devPaik") .map(n -> n.toUpperCase()) .map(cn -> "Hello," + cn + "!") .subscribe(System.out::println); 위와 같이 리엑티브..

[Spring] Reactive Stream 개요
Spring 2023. 5. 2. 09:22

리엑터 개요 애플리케이션 코드를 개발할 때 명령형(Imperative)과 리엑티브(Reactive) 두 가지 형태로 코드를 작성할 수 있다. 명령형 : 순차적으로 연속되는 작업이고, 각 작업은 한 번에 하나씩 그리고 이전 작업 다음에 실행한다. 데이터는 모아서 처리되고 이전 작업 데이터 처리를 끝낸 후에 다음 작업으로 넘어갈 수 있다. 리엑티브(반응형) : 데이터 처리를 위해 일련의 작업이 병렬로 실행될 수 있으며, 각 작업은 부분집합의 데이터를 처리할 수 있고, 처리가 끝난 데이터는 다음 작업에 남겨주고 다른 부분집합의 데이터로 계속 작업할 수 있다. 이런 리액터 프로젝트는 비동기 파이프라인을 구축할 때 콜백 지옥과 깊게 중첩된 코드를 생략하는 목적으로 설계되었다. 리액터 1.x는 배압조절 기능이 없다..