전체 글393 [코딩애플] 타입 확정하는 Narrowing / Assertion 타입스크립트의 엄격한 연산 조건타입스크립트에서는 자바스크립트에서 가능했던 느슨한 연산을 허용하지 않는다. // JSfunction addNumber(x) { return x + 2;}console.log(addNumber()); // NaN 예를 들어 매개 변수 x를 받는다고 함수를 정의하고, 실제로 아무 것도 전달하지 않아서 undefined를 전달해 준 셈이 되는 위와 같은 함수도 에러를 undefined * 2는 말이 안 되는 식이기에 에러가 나야 할 것 같지만 자바스크립트는 Not A Number만 출력해 줄 뿐 에러를 뱉진 않는다. 따라서 위와 같은 코드가 쓰여졌다 하더라도 자바스크립트는 다음 코드를 이어서 읽어 내려간다. 하지만 타입스크립트에서는 어림도 없다. // TSfunction a.. Programing/TypeScript 2024. 6. 25. 더보기 ›› 2024-06-24 마지막 스택을 남겨 둔 시점에서의 회고 어느덧 마지막 기술 스택 학습만을 남겨 두고 있다. 타입스크립트와 Next.js만 남겨 두고 있다.타입스크립트는 아직 대규모 프로젝트를 하지 않아서인지 필요성을 느낄 일이 없었지만,자바스크립트의 유연성 보다는 타입스크립트의 엄격함이 더 매력적으로 느껴지기도 한다. 작은 규모이지만 협업을 하면서 변수명이나 변수의 타입, 함수의 반환값 등에서 충분히 conflict가 날 수 있는 상황이 올 수 있음을 느꼈다. 그리고 next.js의 필요성은 이전부터 느끼고 있었다.회원 별 인가 조건에 따라 조건부 렌더링을 한다거나, 조건부 라우팅을 제공해야 할 때 CSR만으로는 한계가 느껴졌다.또한 민감한 API를 노출시키지 않는 방법 또한 CSR만으로는 부족하다는 것을 느끼게 되었다. 따라서 다음 과정은 매우 기대가 되고.. Programing/TIL 2024. 6. 24. 더보기 ›› [코딩애플] 함수에 타입 지정하는 법, void 타입 함수에서의 타입 지정함수에도 타입 지정이 가능하다.두 군데 가능하다. 하나는 함수의 파라미터, 하나는 return 값이다. 자바스크립트에서의 함수의 기본형은 아래와 같다.function multiplyNumber(x) { return x * 2;} 여기서 x는 파라미터고, return 이하가 함수의 결과로 반환되는 값이다. 위 함수만 놓고 추측 컨데, x라는 파라미터는 숫자일 것이고, 당연히 return 값도 숫자일 것 같다. 하지만 자바스크립트에서는 다르다.function multiplyNumber(x) { return x * 2;}const x = '2';console.log(multiplyNumber(x)); // 4 위와 같이 문자와 숫자를 연산하는 것도 허용한다.타입스크립트의 엄격한 숫자 연.. Programing/TypeScript 2024. 6. 24. 더보기 ›› [코딩애플] Union type, Any type, Unknown type Union type정의// 문자열let memberName : string = '장원영';// 숫자let age : number = 21;// 불리언let isSinger : boolean = true;// 배열let IveMembers : string[] = ['장원영', '안유진', '가을'];// 객체let wonYoung : { name: string, group: string } = { name: '장원영', group: '아이브' }; 모든 변수가 하나의 자료형으로 정해지면 좋겠지만, 숫자가 될 수도 있고 문자열이 될 수도 있는 경우도 많다. 그리고 배열 안에서도 인덱스마다 들어가는 값이 다를 수도 있고, 객체는 말할 것도 없다. 이런 경우 여러 가지의 자료형을 or 연산자 ( | )를 통해 .. Programing/TypeScript 2024. 6. 24. 더보기 ›› [코딩애플] 변수 선언하기 타입스크립트의 변수는 자바스크립트와 비슷한데 변수명 뒤에 : 타입 만 명시해주면 된다. // 문자열let memberName : string = '장원영';// 숫자let age : number = 21;// 불리언let isSinger : boolean = true;// 배열let IveMembers : string[] = ['장원영', '안유진', '가을'];// 객체let wonYoung : { name: string, group: string } = { name: '장원영', group: '아이브' }; 배열과 객체가 특이한데, 배열은 위와 같은 형태로 쓰면 배열 안에 들어가는 모든 인덱스가 string 타입이라는 의미이고, 섞어서 쓰는 경우에는 union 타입을 지정해주면 되는데 이는 추후 배우.. Programing/TypeScript 2024. 6. 24. 더보기 ›› [내배캠] TypeScript 개발 환경 세팅하기 node.js 설치node.js 가 설치되어 있어야 한다. 대부분은 VSCode를 설치하면서, 즉 개발 환경을 세팅하면서 설치하였을 테니 이 과정은 생략한다.본인이 npm 명령어를 사용해서 패키지를 설치하고 있었다면 설치가 된 것이다. 혹시 확인해보고 싶다면npm -vnode -v터미널에서 위 명령어로 각각의 버전을 확인해볼 수 있다.이후 터미널의 아래의 명령어를 프로젝트 내에서 입력하면 TypeScript로 파일을 작성할 수 있다.typescript 설치npm i -g typescript타입스크립트를 전역으로 설치한다는 명령어인데 yarn을 사용했던 사람들은 조금 더 설정이 복잡하다.yarn add typescript --devyarn tsc --inityarn add @types/react @type.. Programing/TypeScript 2024. 6. 24. 더보기 ›› [내배캠] TypeScript의 등장 배경 자바스크립트의 태동자바스크립트는 정적인 웹 페이지에 동적인 효과를 주기 위해 탄생한 스크립트 언어이다.자바스크립트 성능 향상에 대한 니즈 -> 구글 V8 엔진 등장 (크롬 내장) -> V8 엔진 기반 Node.js 등장하여 자바스크립트로 백엔드까지 작성할 수 있게 됨 -> 그러나 자바스크립트는 '동적 언어 타입'이어서 한계가 있었음. 동적 언어 타입에서 생기는 문제점프론트엔드 단의 에러는 화면의 일관성을 깨지게 할 순 있어도 큰 피해는 없다.다만 백엔드에서의 오류는 서버의 다운으로 이어지게 된다. 자바스크립트의 약점자바스크립트는 변수의 타입이 실행하는 타이밍에 결정됨.개발자의 휴먼 에러로 인한 에러가 잦음.그렇게 에러가 발생해도 찾기가 까다로움.변수에 잘못된 타입의 값이 할당되어 발생한 오류는 실행 시간.. Programing/TypeScript 2024. 6. 24. 더보기 ›› Mac OS 파인더가 검색중으로만 뜨는 경우 Option + Commnad + Space를 눌렀을 때 뜨는 파인더를 탐색기처럼 사용하고 싶은데 아래처럼 뜨는 경우가 있다. 이런 경우 도구 막대가 숨김 처리 되어 있어서 그런 것이니, Option + Command + T를 눌러주면 해결 된다. IT/Computer 2024. 6. 24. 더보기 ›› React 에서 자주 쓰이는 if문 패턴 1. 컴포넌트 안에서 쓰는 if/else// 위 아래는 같은 것function App() { if ( true ) { return 참일 때 보여줄 HTML} else { return null; }}// 위 아래는 같은 것function App() { return 참일 때 보여줄 HTML} return null; }} else를 생략해도 같은 뜻임을 이해할 수 있다. 2. JSX 안에서 쓰는 삼항 연산자 (ternary operator)function Component() { return ( { 1 === 1 ? 참이면 보여줄 HTML : null } )} 중첩 사용도 가능하다.function Component() {.. Programing/React 2024. 6. 24. 더보기 ›› TanStack Query 기본 사용법 TanStack Query란?TanStack Query(FKA React 쿼리)는 흔히 웹 애플리케이션을 위한 데이터 가져오기 라이브러리정도로 설명되지만 보다 기술적인 측면에서 보면 웹 애플리케이션에서 서버 상태를 쉽게 가져오기, 캐싱, 동기화 및 업데이트를 할 수 있게 도와주는 라이브러리이다. TanStack Query의 필요성리액트와 같은 라이브러리 등은 데이터를 전반적으로 가져 오거나 업데이트를 하는 방법에 대해서는 명확한 가이드를 제공해주지 않고 있다. 그래서 데이터를 가져오는 방법을 담은 메타 프레임워크를 만들 거나 자신만의 방법을 만들어서 사용하기도 한다. 기존 상태 관리 라이브러리는 클라이언트 상태 관리에는 적합하지만 서버 상태를 관리하기에는 적합하지 않다. 일반적으로 서버의 특성은 다음과 .. Programing/React 2024. 6. 24. 더보기 ›› 이전 1 ··· 9 10 11 12 13 14 15 ··· 40 다음