오늘부터 우아한 타입스크립트 책을 읽고 정리를 하려한다. 앞에 부분은 조금 넘어가고 타입 챕터에 대한 요약분을 남겨두겠다.

타입

자바스크립트에서의 자료형

  • undefined
  • null
  • Boolean
  • String
  • Symbol
  • Numeric(Number + BigInt)
  • Object

정적 타입 언어 vs 동적 타입 언어

정적 타입 언어

  • 모든 변수의 타입이 컴파일타임에 결정
  • Java, C, Typescript가 이에 해당함
  • 컴파일 타임에 에러를 확인함

동적 타입 언어

  • 변수 타입이 런타임에 결정됨
  • 파이썬, 자바스크립트가 대표적

암묵적 타입 + 강타입과 약타입

암묵적 타입

  • 개발자가 의도적으로 타입을 명시하거나 바꾸지 않았는데도, 컴파일러 또는 엔진 등에 의해서 런타임에 타입이 자동으로 변경되는 것을 암묵적 타입 변환이라함

강타입

  • 서로 다른 타입을 갖는 값끼리 연산 시도하면 컴파일러 or 인터프리터에서 에러가 발생함

약타입

  • 서로 다른 타입을 갖는 값 끼리 연산 할 때 컴파일러 또는 인터프리터가 내부적으로 특정 값의 타입을 반환하여 연산을 수행한 후 값을 도출함

타입스크립트의 컴파일 방식

타입스크립트가 탄생한 이유

  • 런타임에 사전에 미리 에러를 잡아내기 위하여 탄생함

그래서 타입스크립트가 컴파일하는 방식이 뭔데?

  • 타입스크립트를 컴파일하면 타입이 모두 제거된 자바스크립트의 소스코드만 있음
  • 즉, 타입스크립트는 자바스크립트에 타입이라는 레이어를 끼얹는 언어이며, 확장언어 라고도 함
function calcTotalPrice(price, count) {
  let result = 0;
  for (let i = 1; i <= count; i++) {
    result += price * i;
  }
  return result;
}

function solution(price, money, count) {
  const totalPrice = calcTotalPrice(price, count);
  return totalPrice - money > 0 ? totalPrice - money : 0;
}
function solution(arr) {
  if (arr.length === 0 || arr.length === 1) {
    return [-1];
  }
  const result = arr.filter((item) => item !== Math.min(...arr));
  return result;
}

framer-motion, emotion, next js 버전으로 인해 문제가 발생한거 같다.


(이전 사용 -> 변경 후 버전)

next : 12.1.0 -> 12.0.1
framer-motion: 11버전(정확히 기억이안남...) -> "5.0.1",
emotion/react: "^11.10.5" -> "11.8.1"
emotion/styled: "^11.11.0" -> "11.6.0"


참고 URL

https://github.com/vercel/next.js/issues/30750

오늘 한 일

옵셔널 체이닝 공부

옵셔널 체이닝 다시 복습

아스키코드 다시 정리

아스키코드 변환하는 부분 다시 공부

코드캠프 Board 수정 페이지 작성

자바스크립트로 작성한 코드를 타입스크립트로 변환

강의 듣기

코드 캠프, 드림코딩 엘리 React 강의 듣기

 

회고

알고리즘 실력 좀 늘릴 겸.. 최근에 알고리즘이 많이 부족하다는 것을 느꼈다. 알고리즘 강의를 요즘 안 들었는데, 다시 들어야겠다. 모르는 부분에 대해 체크하고, 정리하고 공부하기를 꼭 실천하자. 모르는 부분에 대해서는 꼭 체크해뒀다가 정리를 하던지, 바로 정리를 하자.

'회고록' 카테고리의 다른 글

[TIL] 20250130  (0) 2025.01.30
[TIL] 20250126  (0) 2025.01.26
[회고록] 20231015  (0) 2023.10.15
[회고록] 20231011  (0) 2023.10.11
[회고록] 20231009  (1) 2023.10.09

오늘 한 일 

알고리즘 문제 풀이

알고리즘 문제는 조금씩 푸는데 아직도 어려운거 같다. set, 아스키코드, string 메소드 정리를 노션에 정리했고, 좀 더 많아지면 블로그에 써야곘다.

코드캠프

코드 캠프 포트폴리오 과제를 이전에는 js로 짰는데, ts로 변환하고 있다. 이전에 ts와 react를 사용해서 웹을 구성하긴 했는데, next js로는 처음이라 다시 리팩토링을 하고 있다. 또 강의를 보면서 하니까 모르는 부분에 대해서도 많이 도움이 되는거 같다.

 

회고

알고리즘이랑, 프론트 및 백엔드 인강을 꾸준히 보면서 모르는 부분을 찾아서 공부해야겠다. 요번주는 일정이 좀 많아서 공부를 많이 못했는데, 꾸준히 해야겠다.

'회고록' 카테고리의 다른 글

[TIL] 20250126  (0) 2025.01.26
[회고록] 20231016  (0) 2023.10.16
[회고록] 20231011  (0) 2023.10.11
[회고록] 20231009  (1) 2023.10.09
[회고록] 20221007  (0) 2022.10.07

오늘 한 일

  • 코드 캠프 과제 스타일링
  • 어제 jsx-> tsx로 오류 해결
  • 회사에서 Next js 배포해보기

 

회고

오늘 크게 한 건 없었고... 모든 작업 다 마치고 시간이 남아서 회사 웹페이지 만든게 있어서, 물리 서버에 회사에서 도커 이용해서 Next js 배포해 봤다. 앞으로 자주 사용해야겠다. 도커 사용해 보니 너무 신기했고, 주말에 도커 공부한 거 정리 좀 해야겠다.

그리고 집 와서 공부 좀 더 했는데 어제 해결했다고 생각한 것이 다시 해보니 안돼서.. 발목을 잡았다. 
17.0.2 버전을 깔아야 하는데  "@types/node": "^17.0.2", "@types/react": "^17.0.2" 실수로 다음과 같이 ^을 붙여서 오류가
발생했던 것이다. 이후에 "@types/node": "17.0.2", "@types/react": "17.0.2"으로 하니 잘되었다. ㅜㅜ 오타 조심해야겠다.
이거 때문에 어제부터 시간을 너무 많이 잡아먹었는데 그래도 정말 해결해서 다행이다.

'회고록' 카테고리의 다른 글

[회고록] 20231016  (0) 2023.10.16
[회고록] 20231015  (0) 2023.10.15
[회고록] 20231009  (1) 2023.10.09
[회고록] 20221007  (0) 2022.10.07
[회고록] 20201004  (0) 2022.10.04

오늘 한 일 

인프런 Codecamp detail 페이지 구축

 

[Next js] useRouter, useEffect data fetching

인프런에서 코드 캠프인강을 들으면서 최근에 Next js를 공부를 다시 시작하고있다. 해당 강의에서는 graphql을 사용하는데, rest api으로도 실습을 하고싶어서 간단하게 express를 사용해서 백엔드 서

mo4811.tistory.com

  • express 활용하여, board 게시판 api 구축

Nvm 설치시 오류 해결

 

[Javscript] nvm 설치시 python command not found 에러

에러 로그 nvm: install v14.17.0 failed! pyenv: python3.8: command not found 원인 mac m1 사용은 15 버전 밑으로 설치를 하면 다음과 같이 파이썬 에러가 발생 해결 nvm install 16 버전대를 설치하니 잘되었음 다른 방

mo4811.tistory.com

 

회고

오늘 인프런 강의를 보면서 js -> ts 변환하는 과정에서 버전 호환성 때문에 해결하면서 시간을 많이 잡아먹었다. 그래도 해결을 했으니 다행이긴하다.그리고 요즘 블로그를 잘 안썼는데, 계속해서 블로그랑 깃허브 꾸준히 하자. 

'회고록' 카테고리의 다른 글

[회고록] 20231015  (0) 2023.10.15
[회고록] 20231011  (0) 2023.10.11
[회고록] 20221007  (0) 2022.10.07
[회고록] 20201004  (0) 2022.10.04
[회고록] 20221002  (0) 2022.10.02

+ Recent posts