# with

43개의 포스트

Scope Function

apply : 수신객체 (this), 수신객체 리턴 also : 수신객체 (it), 수신객체 리턴 run : this, 람다 식의 마지막 행 리턴 let : it, 람다 식의 마지막 행 리턴 with : this, 람다 식의 마지막 행 리턴 let : null 체크를 해야할 때, 지역 변수를 명시적으로 표현해야 할 때 run : 객체를 초기화 하고 리턴 값이 있을 때 apply : 객체 초기화 also : 수신객체를 명시적으로 사용하고 싶을 때, 로그를 남길 때 with : 객체 초기화, 람다 리턴 값이 필요 없을 때

2023년 8월 20일
·
0개의 댓글
·
post-thumbnail

표준 함수와 파일 입출력

클로저 외부 변수를 호출하고 싶을 때 람다식으로 표현된 내부 함수에서 외부 범위에 선언된 변수에 접근할 수 있는 개념이다. 내부의 람다식에서 외부 함수의 변수에 접근하여 처리할 수 있다. 코틀린의 표준 라이브러리 > 함수 이름 - 람다식의 접근 방법 - 반환 방법 T.let - it - block 결과 T.also - it - T caller (it) T.apply - this - T caller (this) T.run 또는 run - this - block 결과 with - this - Unit let ![](http

2023년 8월 14일
·
0개의 댓글
·
post-thumbnail

SQL 개발 일지 4주차

4주차에서는 서브쿼리와 자주 쓰이는 SQL문법에 대해 공부했다. 서브쿼리는 데이터를 좀 더 간편하고 알아보기 쉬운 문구로 작성하여 뽑아내기 위해 쓰인다. 수학 문제나 나올 때 괄호 안의 식을 먼저 계산해 주는 것 같은 개념으로 이해하면 될 것 같다. 사용 프로그램 : DBeaver , 사용 DB : 스파르타 코딩클럽 [학습자료] (https://teamsparta.notion.site/SQL-4-e8025c63b6bd4e6bb27ae43da874350d#85266356eb4b478c88aad48025354c31) Subquery 서브쿼리가 자주 사용되는 유형으로는 where, select, from 절에서 자주 사용 된다. where 이 경우 orders 테이블에서 paymentmethod가 kakaopay인 userid 값이 where u.user_id in (여기)에 들어간다고 보면 된다. 결과적으로 users 테이블에서 kaka

2023년 8월 4일
·
0개의 댓글
·
post-thumbnail

[Kotlin] 범위 함수(Scope Function)를 사용하여 클래스 속성 및 메소드 접근 2 (with, run, also)

아래 정의를 볼때 재네릭 약어의 의미를 기억하고 보면 이해가 빠를 것이다. [E]: Element [K]: Key [N]: Number [T]: Type [V]: Value [R]: Return Type with with의 기본 정의는 아래와 같다. with는 let과 달리 확장 함수가 없다. 첫 번째 인수에 임의의 타입 T를 받는다. 두 번째 인수로 함수를 가지고는 있지만, T을 받으면서 사용하는 메소드를 필요로 한다. 위의 예시에서 this는 "moonliam"을 뜻한다. 이는 생략 가능하다. Example 1 Output Example 2 Output run run

2023년 7월 31일
·
0개의 댓글
·

개발일지 - 2023.07.10 (오라클 WITH 구문 , SHA-256 , 리눅스 명령어)

매일은 힘들겠지만 각 날마다 내가 배운 것들을 정리하고 쓰는 개발 일기를 쓰고자 한다. 오늘부터 시작해본다! 아자아자! 성장하는 내가 되자! 1. WITH 구문 1) 정의 WITH절은 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브쿼리입니다. 임시테이블을 만든다는 관점에서 본다면 VIEW와 쓰임새가 비슷한데 차이점이 있다면 VIEW는 한 번 만들어놓으면 DROP할때까지 없어지지 않지만 WITH절의 같은 경우 한 번 실행 할 쿼리문 내에 정의되어 있을경우, 그 쿼리문 안에서만 실행된다는 차이점이 있습니다. 2) 사용이유 WITH절은 복잡한 SQL에서 동일 블록에 대해 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함으로서 쿼리 성능을 높일 수 있는데 WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만들 수 있습니다. 자주 실행되는 경우 한번만 Parsing되고 Plan 계획이 수립되므로 쿼리의 성능향

2023년 7월 10일
·
0개의 댓글
·
post-thumbnail

[자바/코틀린] Scope functions: let

코드를 만들다보면 가끔 경고가 뜬다. 무지성으로 Wrap with '?.let(...)'call을 누르면 알맞은 문법으로 자동완성이 된다. 그래서 자주 나타나는 이 let이 무엇인지 알아보았다. let은 scope functions의 일종이며 범위 지정함수라는 뜻이다. let과 같은 scope function은 자동 오류고침을 써서 얻은 코드일 때가 많아서 헷갈린다. let let함수의 정의 let 함수는 타입T의 확장함수이다.반환 타입은 참조형 타입R이다. 어떤 타입도 반환타입을 가질 수 있고, 안 가져도 된다. 또한 non-null 객체에만 적용 가능하다. person은 클래스 Person의 인스턴스이다. person에 적용한 확장함수 let에서 참조하는 객체는 it인데, it은 person을 val타입으로 복사한 것이다. 따라서 동일한 데이터를 갖지만 다른 주소에 위치한다. it자체는 수정불가하지만, it이 참조한 데이터는 수정가능하다. 적합한

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

2023.03.26 - SQL

subquery 하나의 SQL 쿼리 안에, 또다른 SQL 쿼리가 있는 것 1. WHERE절에 쓰이는 subquery ex) kakaopay로 결제한 유저들의 정보 보기 join -> 결과 행 수 : 56 subquery -> 결과 행 수 : 51 > ※ 결과 행 수가 다른 이유 join 사용 시, 앱개발 or 웹개발 구매 user는 2개의 데이터(user 중복o) subquery 사용 시, 앱개발 or 웹개발 둘 중 하나라도 kakaopay를 이용한 user를 걸러냄 (user 중복x) -> join 시, user_id에 distinct를 걸어주면 결과 행 수 동일 -> 결과 행 수 : 51 2. select 절에 쓰는 subquery ex) checkin_id 별, 평균 like > select 절에 쓰는 subquery -> select가 될 때마다, 하나하나의 행에 대해 sub

2023년 3월 26일
·
0개의 댓글
·
post-thumbnail

<SQL - 0005> subquery, with, substring, case

SUBQUERY SQL 문장 내부에 포함된, 또다른 SQL 문장을 내포하는 것이다. > 주로 WHERE, SELECT, FROM 절에서 사용된다. > WHERE 절 에서의 사용 특정 조건에 만족하는 데이터를 조회하는데 사용된다. > SELECT 절 에서의 사용 특정 데이터를 계산하거나 조회하는데 사용된다. FROM 절 에서의 사용 임시 테이블을 생성하여 JOIN 하는데 사용된다. 위와 같이 서브쿼리를 사용하면, 데이터를 더욱 정확하고 효율적으로 조회할 수 있다. WITH CTE(Common Table Expression) 라고도 하며, 하나 이상의 임시 테이블을 만들어서 여러 쿼리에서 재사용 가능한 쿼리를 생성할 때 사용된다. > WITH 의 기본 문법 > 이후에 나오는 **

2023년 3월 3일
·
0개의 댓글
·

Python with 구문 type hint

with 구문 사용시 type hint 적용 방법 or 출처 https://stackoverflow.com/questions/60169996/does-a-with-statement-support-type-hinting

2023년 1월 30일
·
0개의 댓글
·

[Dart] Class 총 정리 (상속 / 재정의 / 추상화)

Class 총 정리 (상속 / 재정의 / 추상화) 이번 글에서는 Flutter의 채택 언어인 Dart에 대해서 작성하고자 한다. 사실 Dart언어는 이미 오래전에 구글이 개발한 언어였지만, 한 때 가장 배우지 말아야할 언어 순위에도 들었을 정도로 사용성이 좋지 않았다. 하지만 Flutter 프레임 워크에 적용되면서 현재는 많은 사람이 Dart언어를 사용하고 있다. Dart 언어도 OOP(Object Oriented Programming), 즉 객체지향 프로그래밍 이다. 객체지향 언어에 대한 설명은 다른 블로그에서 자세히 설명한 글이 있으니 여기서는 설명하지 않겠다. 간단한 예제를 통해서 Dart가 사용하는 class, override, super, this, extends, implements, with, getter, setter 등에 대해서 알아보도록 하겠다. Dart언어의 개념에 관한 글이기에 dartpad를 사용하여 코드를 작성하였다. class clas

2023년 1월 27일
·
0개의 댓글
·
post-thumbnail

[230127] 멋쟁이사자처럼 AI SCHOOL 8기 [특강] SQL_이범재강사님' 복습

📝Today I learned 🚀 TIL 목차 🚀 >- 집합 UNION ALL \- UNION DISTINCT \- INTERSECT DISTINCT \- EXCEPT DISTINCT 서브쿼리/WITH 서브쿼리 \- WITH >- 예제 오답노트 [특강] SQL 1) 집합 : 둘 이상의 쿼리 결과를 단일 결과로 결합하는 데 사용 🤚 잠깐! JOIN과 UNION의 차이 JOIN : 공통 key를 중심으로 필드를 확장하는 것 (좌우) UNION : 2개 이상의 조회 결과를 세로로 합치는 것 (위아래) 🔹 UNION ALL : 두 결과 집합의 결과를 결합 (중복 제거 X) . 🔹 UNION DISTINCT : 두 결과 집합의 결과를 결합 (중복 제거 O) ※ Big Query에선 UNION DISTINCT, MySQ

2023년 1월 27일
·
0개의 댓글
·

[ORACLE] WITH절

WITH절이란? WITH절은 오라클9 이상 버전에서 사용 가능하며 서브쿼리, VIEW 등과 같은 기능을 한다고 볼 수 있다. 사용하는 이유 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여해 재사용 가능함으로써 쿼리 성능을 높일 수 있다. 또한 긴 문장의 서브 쿼리를 WITH절로 만들어 SELECT문의 가독성을 높일 수 있다. 출처 : https://gent.tistory.com/419 사용법 WITH 절의 동작 방식(힌트 사용) Orcle의 WITH절은 두 가지의 동작 방식이 있다. Materialize 방식  : 임시 테이블을 생성 후 WITH 절의 결과를 저장하며, 반복 호출 시 쿼리를 실행하지 않고 임시 테이블에 저장된 결과를 사용한

2023년 1월 18일
·
0개의 댓글
·
post-thumbnail

코틀린 Scope functions (let, run, with, apply, also)

Scope functions, Kotlin Document 문서를 참고하여 작성하였다. let let 함수는 null-check를 도와주고, 안전하게 코드를 수행하기 위한 local scope를 제공한다. car 인스턴스가 null이라면, safe-call 연산자 (?.) 이후의 코드 블럭은 실행되지 않는다. 또한, let은 어떠한 타입이라도 모두 return할 수 있다. 해당 예시 코드에서는 let이 Boolean을 반환하며, 차량이 쿠페 차량인지 아닌지 여부를 반환한다. run run은 let과 많이 유사하지만, 조금 더 target object에 포커스가 되어있다. 코드 블록 내부에서 run은 대상 객체를 this로 전달하고 외부 scope에서 해당 코드 블록을 분리한다. 동일하게 run은 어떠한 타입이라도 모두

2023년 1월 3일
·
0개의 댓글
·

[SQLD/P] WITH

1. WITH Oracle에서 임시적으로 데이터를 추출하기 위한 특정 범위 및 table을 구성하기위한 문법이다. WITH를 사용하는 가장 주된 목적은 가독성이다. SELECT 데이터를 추출해낼때 보통은 하나의 테이블에서 바로 추출할 수 있는 것이 아닌, 수많은 join과 정렬 및 다수의 SELECT를 거쳐 데이터를 추출하는 것이 일반적이다. 이럴 경우 SELECT FROM (SELECT FROM (SELECT ... 이런 식으로 데이터를 추출하는 기준인 FROM절을 한번에 진행하는 것이 아닌, 여러번 진행하여 한 부분에서 코드가 비대해지고 가독성이 그만큼 떨어질 수 밖에 없다. 따라서 WITH를 사용하여, 추출하고자 하는 대상을 WITH문에 우선 구성해놓은 후 이후 SELECT FROM문에 활용한다면 코드를 깔끔하고 보기좋게 구성할 수 있다. 2. 성능지연문제 하지만 안타깝게도 (사이트에 따라 다를 수 있지만) WITH 사용을 금지하는 곳이 있을 정도로, (

2022년 11월 3일
·
0개의 댓글
·

With 구문

With 구문 With란 미리 뷰를 선언해 둠으로써 추후에 계속 재사용할 수 있도록 하는 것. With절을 한 번만 참조 시 Inline으로 수행되지만 materialize 힌트를 사용해 Material 방식으로 사용할 수도 있다. Material 방식 내부적으로 임시 테이블을 생성함으로써 반복 재사용하는 것. Material 방식으로 선언된 임시 데이터는 영구적인 오브젝트가 아니며, With 절을 선언한 SQL문이 수행되는 동안 만 유지된다. 배치 프로그램에서 특정 데이터 집합을 반복적으로 사용하거나, 전체 처리 흐름을 단순화시킬 목적으로 임시 테이블을 활용하는 경우가 있는데, 이 방식을 사용하면 새로운 임시 테이블을 생성하지 않고도 같은 처리를 할 수 있다. 주의해야할 점 Material 방식은 내부적으로 Global temporary 테이블을 생성해서 temp 테이블 스페이스에 데이터를 기록한다. 오라클

2022년 10월 20일
·
0개의 댓글
·
post-thumbnail

[kotlin] Scope 함수(let, run, apply, also, with)

scope 함수? > kotlin 공식 문서에 따르면, 객체의 context 내에서 코드 블록을 실행하는 것을 목적으로 하며 함수 호출 시 객체의 이름 없이 객체에 접근 할 수 있는 기능을 가진 함수를 scope function이라고 한다. 이 스코프 함수에는 let, run, with, apply, also가 있다 예제를 통해 이 함수들에 대해 정리해보았습니다. let let은 확장함수로, 반환 결과가 람다의 결과이다 null 체크에 유용하게 쓰인다 apply apply는 확장함수로, 반환 결과가 객체 자신이다. also also는 확장함수로, 반환 결과가 객체 자신이다. with with는 확장함수가 아니며, 반환 결과는 람다의 결과이다. run run은 확장함수로, 반환 결과는 람다의 결과이다.

2022년 10월 12일
·
0개의 댓글
·

[SQLD/P] WITH

1. WITH 재사용할 수 있는 subquery문의 일종으로, 동일한 조건절을 반복적으로 사용할때 활용할 수 있는 키워드이다. 위와 같이 EMPNOTABLE과 EMPLNAMETABLE이 union되어있고, EMPNO와 EMPLNAME을 SELECT하는 query가 있다고 하자. 만약 EMPNOTABLE과 EMPLNAME의 EMP_NATION 속성이 'KOREA'인 결과만 가져오고자 할때 각 FROM절에 WHERE 조건절을 일일이 작성하지 않고도 WITH 키워드를 이용하여 조건절을 삽입할 수 있다. 2. 사용방법 사용자 테이블 명명으로 정의한 테이블을 또 하나의 테이블화하고, 해당 테이블에 WHERE 조건절을 반영할 수 있다. 3. 유의사항 subQuery를 사용하는 경우는 임시저장을 사용하기 때문에 메모리 및 성능측면에서 좋은 query문은 아니다. 상황, 조건 등에 따라 적합한 조건절이나 키워드를 사용하여 query 문을

2022년 10월 10일
·
0개의 댓글
·

[MySQL] 계층형 재귀쿼리 - WITH, WITH RECURSIVE

WITH 구문은 메모리 상에 가상의 테이블을 생성하여 저장한다. RECURSIVE의 여부에 따라 재귀, 비재귀 두 가지 방법으로 사용 가능하다. 🍔 WITH 구문 🍔 WITH RECURSIVE 구문 위 구문을 통해 0부터 50까지의 값을 가진 임시 테이블을 생성할 수 있다. > WITH, WITH RECURSIVE 구문은 MySQL 8.0 이상 버전에서 사용이 가능하다!!!

2022년 9월 19일
·
0개의 댓글
·
post-thumbnail

[Kotlin] Scope function: apply, also, let, with, run

📚 범위지정함수? Kotlin 기본 라이브러리에서 제공하는 함수이며, 람다 표현식과 같이 어떤 객체에 대해 블럭으로 일시적인 범위를 설정하여 함수를 수행하는 경우, 객체의 name을 직접 언급하는 과정 없이 접근할 수 있도록 해주는 것이 범위지정함수이다. 굳이 왜 쓰냐? 범위지정함수 없이도 충분히 같은 기능의 코드를 구현할 수 있다. 하지만 코드의 가독성을 높이고, 조금 더 간결한 코드를 만들기 위해 범위지정함수를 사용하는 것을 권장한다. 범위지정함수의 종류 5가지의 Scope function이 있다. apply , also , let , with , run 이 그것이며, 각각 어떨 때 사용하는지 이번 기회에 확실히 알아보고 앞으로 헷갈리지 말자👻 📝 범위지정함수 사용 규칙 apply 수신 객체 람다 내부에서 수신 객체의 함수나 프로퍼티를 사용하지 않고 수신 객체 자신을 다시 반환하는 경우

2022년 9월 6일
·
0개의 댓글
·

코틀린 apply, let, run, with, also 차이점

코틀린을 사용한지 얼마 지나지 않았다면 let, run ,with, apply, also의 차이점을 잘 모를 수 있다. 이를 정리해보자.. 위 Person class는 앞으로 나올 예제 코드에서 공통으로 사용한다. apply apply는 T(수신 객체)의 프로퍼티를 지정할 수 있고 T를 반환합니다. 사용 예제를 보자.. let let은 T(수신 객체)를 받아 작업을 한 후 R을 리턴한다. 사용 예제를 보자.. let은 null 값을 확인하고 사용할 수 있다. let 블럭은 null 값이 들어올 수 없기에 위와 같이 elvis 연산자와 같이 사용하여 유용하게 사용할 수 있다. run run은 apply와 같이 동작하지만 T(수신 객체를) 리턴하지 않고, run 블록의 마지막 라인을 return 합니다. let과의 차이점은 it을 사용하지 않습니다. 사용 예제를 보자.. run 은 T 없이 사용 가능합니다. with with는 run

2022년 8월 17일
·
0개의 댓글
·