# any

56개의 포스트
post-thumbnail

[Typescript] any, unknown, void, never

enum에 이어서 타입스크립트에서만 지원하는 특수 타입인 any, unknown, void, never에 대해 소개해보려고 합니다. any any는 타입 검사를 따로 수행하지 않는 타입입니다. 존재이유는 기존 자바스크립트와 타입스크립트 간의 호환을 위해서라고 할 수 있습니다. 기존의 자바스크립트 처럼 하나의 변수에 여러 타입 데이터가 할당되었다 해제되었다 할 때 이용하게 됩니다. ...이렇게 보면 귀에 걸면 귀걸이 코에 걸면 코걸이같은 만능 타입 처럼 보이지만 사실은 사용을 최대한 자제하는게 맞습니다. 타입스크립트의 사용 목적중 하나가 타입 검사를 통해 사전에 오류를 방지하고, 유지보수 생산성을 크게 올리는 것인데 여기서 타입 검사를 건너뛰게 된다면 타입스크립트를 사용하는 이유가 전혀 없기에 any타입의 무분별한 사용은 당연히 자제해야합니다. unknown unknown타입은 상당히 독특한 타입으로, **값을 저장

2023년 8월 19일
·
0개의 댓글
·

swift any anyObject nil

Any, AnyObject, nil은 Swift에서 데이터 타입과 값의 다양성, 그리고 값이 없음을 나타내는 개념을 나타내는 중요한 키워드 및 타입입니다. Any: Any는 Swift의 모든 데이터 타입을 나타내는 타입입니다. 즉, 어떤 타입의 값이든 Any로 선언된 변수나 상수에 할당할 수 있습니다. 특징: 모든 데이터 타입을 나타내기 때문에 유용하지만, 타입 안전성이 떨어질 수 있습니다. 런타임 시점에 타입 체크 및 변환을 해야 합니다. Any 타입의 변수나 상수에 할당된 값은 다른 타입으로 변환하여 사용할 수 있습니다. 예시: AnyObject: AnyObject는 모든 클래스 타입을 나타내는 프로토콜입니다. 클래스 인스턴스만이 AnyObject 타입으로 선언된 변수나 상수에 할당될 수 있습니다. 특징: 클래스 인스턴스만 할당 가능하며, 구조체나 열거형 등은 할당할 수 없습니다. 클래스의 인스턴스 메서드와

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

[SeSAC] iOS week2 10

메모리 구조 메모리의 구조는 크게 코드 영역 / 데이터 영역 / 힙 영역 / 스택 영역으로 나뉜다. 각각에 대해 알아보자 코드 작성한 소스코드가 저장되는 영역이다. 데이터 전역변수가 저장되는 영역이다. 앱의 실행부터 종료까지 사용가능한 요소가 저장된다. static으로 선언된 변수가 저장된다. 힙 class와 같은 참조타입의 실제 데이터가 할당된다. 스택 struct, enum과 같은 값타입이 할당된다. 참조타입의 포인터가 할당된다. Class, Struct Struct 특정 공간(스택 영역)에 모든 데이터가 저장된다. let으로 struct를 생성 시, stuct 전체가 수정이 불가능하다. v

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

Typescript의 union, any, unknown

변수에 들어올 값의 데이터 타입이 안 정해져있다 혹은 여러개의 타입이 필요하면... union 가장 먼저 생각해야 할 union 타입이다 | 를 사용한다 or 라고 생각하면 된다 이러면 name에는 문자열과 숫자가 둘 다 들어갈 수 있다 배열과 객체에는 다음과 같이 타입을 명시하면 된다 any 말그대로 아무거나 아무 타입이나 넣어도 오류가 나지 않는다 자바스크립트와 크게 다를 것 없다 편하긴 하지만 타입스크립트를 쓰는 이유가 사라진다... 안정성도 사라짐으로 타입스크립트를 사용할 때는 웬만하면 지양해야한다 unknown any를 대신하기 위해 나온 타입이다 any보다는 안전하다 똑같이 모든 타입을 넣을 수 있지만 타입은 무조건 unknown 타입이 된다 any와 unknown의 다른점 다른 변수에 넣기 unknown 타입은 다른 변수에 집어넣거나 하면 오류가 난다 any는 오류를 내지 않는다 데이터 불러오기 unkn

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

Python Any Function

Python Any() 함수 파이썬에서 any() 함수는 list의 원소를 필터링하거나 조건 검사할 때 사용하는 함수이다. 예를들어 test_list라는 이름의 리스트가 있다 해보자. 파이썬에서는 res = True in (ele > 10 for ele in test_list)라는 코드에서 볼 수 있듯이 리스트 내에서 원소를 지정해 조건을 만족하는지 검색할 수 있다. 위 코드는 n이 리스트의 길이라 할 때, O(n)의 시간복잡도를 가진다. True in (...) : (...) 안에 쓰인 조건문으로 리스트를 검사한다. 조건을 만족하는 어떤 한 원소라도 존재한다면 True를 반환한다. ele > 10 for ele in test_list : 리스트 검사 조건으로, 리스트 내부의 원소들이 10보다 큰지 검사한다. 이번에는 파이썬의 내장함수인 any() 함수를 사용하는 예제를 살펴보자. 이 함수는, 위 코드 예제처럼 리스트 내의 모든 원소를 검사하며, O(n)의 시간복잡도

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

DATABASE ojdbc, DXL, Data dictionary (230712)

1. 오라클 emp table을 출력하는 자바 프로그래밍을 쓰시오. 코드 EmpDTO.java > EmpDAO.java > EmpMain.java > 2. 아래의 객체에 대하여 설명하시오. > - Connection connection : java와 db를 연결하는 객체, DriverManager class를 통해 connection을 받아오며, 통신 관리와 sql 실행 기능을 제공 > - PreparedStatement pstmt : Sql쿼리 실행을 하기 위해 미리 컴파일된 객체. SQL 문의 매개 변수를 쉽게 설정 가능, 여러 번 실행 시 성능 향상. 인젝션 방지 기능도 제공. > - ResultSet rs : DB에서 검색된 결과 집합. Statement 또는 PreparedStatement 객체에서 실행된 Select 문의 결과를 저장하고 데이터를 읽을 수 있는 메서드를 제공. 특

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

Opaque Type과 Protocol의 잘못들

처음엔 some의 역할과 컴파일러가 어떻게 이를 받아드리고 언제 type을 정할까? 에서 시작된 의문이 어느덧 any, generic, existential container를 공부하게 만들었고 Swift 5.7에서는 뭐가 어떻게 다른건지까지 공부하게 되었다. some (Opaque Type) 우선 이 코드는 될까요? 안된다... 대답하기 쉬웠나요? 그럼 이 코드는 될까요? 정답은 됩니다.. 아래는 비교적 대답하기 쉽지 않나요? 이 둘의 차이점은 뭘까요? Protocol은 타입이 아닌가? 뭐 당연한 말이죠 protocol은 타입이 아닙니다. 아닙니다. 물론 타입이라고 표현하기 그렇지만 protocol은 특정자료구조로 구현되어있습니다. 프로토콜이 타입이라고 하긴 뭐하지만 프로토콜에도 타입이 있습니다 바로 existential container입니다. ![](https://velog.velcdn.com/images/p

2023년 6월 23일
·
0개의 댓글
·
post-thumbnail

[TypeScript] TypeScript 문법

🔵 TypeScript란? 타입스크립트는 자바스크립트에 타입을 부여한 언어이다. 자바스크립트의 확장된 언어라고 볼 수 있다. 타입스크립트는 자바스크립트와 달리 브라우저에서 실행하려면 파일을 한번 변환해주어야 한다. 이 변환 과정을 우리는 컴파일(complile) 이라고 부른다. JavaScript에 정적타입 검사와 클래스 기반 객체 지향 프로그래밍 등의 기능을 추가하여 개발된 언어로, JavaScript가 발전하면서 생긴 단점을 보완하기 위해 등장하게 되었다. 타입 설정을 하는 이유는 뭘까? "도로 차선" 예시를 들어보자. 각 차로에 제한을 두지 않고 자유롭게 차로를 이용할 수 있다면 편할 것이다. 하지만 자유로운 만큼 사고가 발생할 확률 또한 커진다. 하지만 각 차로에 접근 가능한 차량에 제한을 둠에 따라, 다소 제약이 따르긴 하지만 사고를 미연에 방지할 수 있다. 프로그래밍 작성 시, 타입 지정이 없다면 편하게 코드를 짤 수 있지

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

타입 별칭, 인덱스 시그니쳐, Enum, Any, Unknown, Void, never

1. 타입 별칭 만약 똑같은 타입을 가지고 여러 개의 값을 만들어야 한다면, 동일한 코드(타입에 대한 명시)가 무진장 많아질 것이다. 이런 부분을 위해서 나온 것이 타입 별칭이다. 똑같은 타입을 여러개 사용한다면 마치 변수처럼 타입을 지정해서 사용 가능하다. 주의할 점은, 변수처럼 같은 스코프 내에서 똑같은 이름의 타입 별칭 사용 불가하다는 점이다. 2. 인덱스 시그니쳐 타입 별칭을 사용하면서 만약 똑같은 타입 명시가 반복되어야 한다면 인덱스 시그니쳐를 이용해서 코드를 줄일 수 있다. 만약 속성 값이 계속해서 키는 문자열로 들어가고 값은 숫자로 들어간다면 아래와 같은 코드로 인덱스 시그니쳐를 설정하면 된다. 인덱스 시그니쳐를 사용함과 동시에, seoul: number와 같이 내가 추가적인 프로퍼티를 작성하고 그 타입을 명시해주었다. 이때 주의할 부분은, 추가적인 프로퍼티의 타입과 인덱스 시그니쳐 프로퍼티의 타입이 일치하거나 호환되어야한다!. 만약

2023년 5월 24일
·
0개의 댓글
·
post-thumbnail

Mockito 기반의 Controller 단위 테스트

Mockito 기반의 Controller 단위 테스트 Mockito 어노테이션 종류 @Mock 가짜 객체를 만들어주는 어노테이션 테스트할 레이어에 필요한 객체를 사용 @Spy 특정 객체의 실제 메소드를 호출 @InjectMocks Mock 객체가 주입되어야 하는 대상 객체 생성 및 주입 Mockito 메서드 doReturn() 가짜 객체가 특정한 값을 반환하는 경우 doNothing() 가짜 객체가 아무 것도 반환하지 않는 경우 void인 경우 doThrow() 가짜 객체가 예외를 발생하는 경우 단위 테스트 작성 의존성 주입 및 HTTP 호출을 위한 MockMVC @InjectMocks 테스트 대상 가짜 객체 주입 Controller @Mock 가짜 객체 생성 Service -

2023년 5월 10일
·
0개의 댓글
·

23.05.01 데이터베이스

평균 월급보다 많은 급여를 받고 이름에 '우'이 포함된 사원과 같은 부서에서 근무하는 사원의 사원 번호, 이름, 급여를 표시하시오. SELECT EMPNO 사원번호, ENAME 이름, SAL 급여 FROM EMP WHERE SAL > (SELECT AVG(SAL) FROM EMP) AND DEPTNO = ANY(SELECT DEPTNO FROM EMP WHERE ENAME LIKE '%우%'); 이 결과 SELECT DEPTNO FROM EMP WHERE ENAME LIKE '%우%' 이 부분이 부서번호가 20,50 두 개가 반환되어 출력되지 않는다. 이 때 ANY와 ALL등 한가지를 써서 조건을 충족 시켜주어야한다. ANY 여러가지 조건들 중에 충족하는 값 EX) 파트 20이거나 50이다. > 조건에 충족 ALL 여러가지 조건들을 모두 충족하는 값 EX)파트 20 50 둘 다 일수는 없다. SELEC

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

타입스크립트 정리2: annotation, 함수

Type annotation 타입 애너테이션으로 타입을 선언해줄 수 있다 어떤 함수는 숫자만 반환해야 한다던가 어떤 객체는 color라는 프로퍼티를 갖고 그것은 문자열의 배열이어야 한다 이렇게 정해놓을때 변수 이름 뒤에 콜론 : 을 적고 타입을 적어주면 된다 콜론 뒤에 string이 타입스크립트에게 이 변수가 문자열이라는 걸 알려주고 ‘So Awesome!’ 과 같다고 말해주는 것이다. 사용하는 법 구문에서 등호 왼쪽에 타입을 써준다 (소문자로 써야한다) 이렇게 지정해 놓으면 이 변수에 다른 타입을 배정하려고 하면 오류 표시가 뜬다 또한 해당 타입에는 쓸수 없는 메서드를 쓰려고 하면 오류가 뜬다. 숫자와 불리언 숫자는 number 불리언은 boolean 타입스크립트 컴파일링 타입스크립트로 작성하고 자바스크립트로 컴파일할때는 터미널에서 파일 위치 디렉터리만 지정하면된다 터미널에서 다음과 같이 쓴다 이렇게 하면 b

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

230322 DB_SubQuery_02(IN,EXISTS,ANY,ALL)

Sub Query 쿼리 안의 쿼리라는 뜻으로 사전에 추출된 내용에서 재 검색 하거나. 검색된 내용을 가상 컬럼을 만들어 추가 할 수 있다. 즉, 서브쿼리를 사용하는 이유는 가져온 데이터를 재정제 하기 위함이다. IN, EXISTS, ANY, ALL 키워드를 사용할 수 있다. 1. IN '=' 비교만 가능하며 OR 조건의 검색 결과 내용을 가져온다. 서브쿼라가 먼저 동작 된 후 메인쿼리가 동작 된다. EX) select ename, job from emp e where deptno in (2,4); select deptno from dept d where loc in ('LA','boston'); select ename, job from emp e where deptno in (select deptno from dept d where loc in ('LA','boston')); 2. EXISTS 메인쿼리 실행

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

[타입스크립트] readonly, tuple, any

readonly Player의 name 요소에 readonly를 넣어줍니다. 그러면 Player의 name을 수정하려고 시도하면 타입스크립트가 못하게 막아줍니다. 그래서 이렇게 이름을 바꾸고 싶지만 name 속성은 읽기 전용이기 때문에 속성 변경이 안된다고 나옵니다. 타입스크립트는 john이 Player 안에 name 속성인 걸 알고 있는데요. Player만드는 함

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

[TypeScript] 기본 타입

Typescript 기본 타입 String > 아래와 같이 : 으로 타입을 정의하는 방식을 타입표기(Type Annotation) 이라고 한다. Number Boolean Array 제네릭 표기법 Tuple > Tuple은 배열의 길이가 고정되고 각 요소의 타입이 지정되어 있는 배열 형식을 말한다. Enum Any > 모든 타입에 대해서 허용한다는 의미를 갖고 있다. any 만 쓴다면 typescript 를 쓰는 의미는 없다. Void > 변수에는 undefined , null 만 할당하고, 함수에는 반환 값을 설정할 수 없는 타입! Never > 함수의 끝에 절대 도달하지 않는다는 의미를 가진 타입이다.

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

[TIL] 2023-01-20

타입스크립트 리액트 풀스택 기본서 공부 - 2장 타입스크립트 파트 학습 (간단한 예제와 책 내용 정독) 타입 재사용할 수 있는 규칙의 집합 타입 재사용 >> 타입의 인스턴스 생성 (속성으로 특정 값을 갖는 자신의 타입을 만드는 것을 의미) 타입스크립트 타입 타입은 보통 선언할 때 설정된다. 타입 이름이 아니라 타입의 형태에 따라 처리된다. any, unknown, 인터섹션, 유니온, 리터럴, 함수, never 타입

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

[Swift] 02. Any, AnyObject, nil

기본 데이터 타입의 위치에서 특별한 역할을 수행하는 것들이 있다.(any, any object, nil) 1. Any Swift에서 모든 타입을 지칭하는 키워드이다. 변수의 타입을 Any로 선언하면 아래와 같이 어떤 타입이던 변수에 오는 게 가능하다. 그러나 아래와 같은 코드는 오류가 발생하니 유의한다. 2. AnyObject 모든 클래스 타입을 지칭하는 프로토콜이다. AnyObject 같은 경우, class object만 쥐고 있을 수 있다. 아래 예시를 살펴보자. class를 하나 만들어주고, 그 클래스를 AnyObject에 넣어주어 사용해주었다. 이 역시도 마찬가지로 someAnyObject 변수에 double 타입의 값을 아래와 같이 대입해주면 에러가 발생하니 유의하자. ![](htt

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

서브쿼리(Subquery)

💁‍♀️ 서브쿼리(Subquery)란, 하나의 SELECT 문장의 절 안에 포함된 또 하나의 SELECT 문장 서브쿼리는 메인쿼리가 실행되기 이전에 한번만 실행 비교연산자의 오른쪽에 기술해야 하며, 반드시 괄호로 묶어야함 서브쿼리와 비교할 항목은 반드시 서브쿼리의 SELECT한 항목의 **개수와 자료형을 일치**시켜야함 👀 서브쿼리의 사용 👉 부서 코드가 노옹철 사원과 같은 소속의 직원 명단 조회 [1] 사원명이 노옹철인 사람의 부서 조회 [2] 부서코드가 D9인 직원 조회 [3] 위의 두 쿼리를 하나로 작성 <span style="color:#A9A9

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

[TS] 드디어 타입스크립트 | 왜? any는 안되는데?

시간이 없다는 핑계로, javascript의 장점을 최대한 활용해야한다는 핑계로, 타입스크립트를 제대로 공부하고 사용해볼 기회를 미뤘다. 하지만 여러 프로젝트를 겪으며, 생각이 바뀌게 되었다. string number 값의 인자나 매개변수의 타입을 잘못 입력하는 실수를 경험하고 그 실수를 잡기 위해 나를 자책하고, 오히려 더뎌지는 개발속도를 보았을 때 타입스크립트를 적용해야겠다고 생각했다. 🧀 왜? 타입스크립트 먼저 타입스크립트란 무엇인가? javascript의 superset으로 더 강력한 type checker 기능을 제공한다. 절차형 언어에서 주로 사용하던 타입 정의 기능이 꼭 javascript에서 필요했을까? typescript는 javascript에 추가적인 구문을 추가하여 editor와의 단단한 통합을 지원한다. 따라서 editor에서 초기에 오류를 잡을 수 있게 된다. typescript 코드는 javascript가 실행되는 모든 곳(브

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

[이펙티브 타입스크립트 - 아이템5] any 타입 지양하기

[아이템5] any 타입 지양하기 타입스크립트는 코드 타입을 조금씩 추가할 수 있기 때문에 점진적이다. 그리고 언제든지 타입 체커를 해제할 수 있기 때문에 선택적이다. 이 기능들의 핵심은 any 타입이다. 타입 체커를 통해서 앞의 코드에서 오류를 찾아냈습니다. 그래서 위 코드와 같이 as any를 사용하게 된다면, 쉽게 해결할 수 있습니다. 만약 타입 오류로 인해서 시간을 쏟고 싶지않아서 any 타입이나 타입 단언문(as any)을 사용하게 된다면, 수많은 장점을 누릴 수 없게 됩니다. 그래서 부득이하게 any를 사용하더라도 그 위험성은 알고 있어야 합니다. 🚧 any 타입에는 타입 안전성이 없습니다. 위 예제 코드에서 age는 처음 number 타입으로 선언되었습니다. 그러나 as any를 사용하면 string 타입을 할당 할 수 있게 됩니다. 타입 체커는 선언에 따라 number로 판단 할 것이고, 아래

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