전체 글 209

[모던 JS 딥다이브] 7~9장

7장 연산자연산자(operator)는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다.피연산자는 연산의 대상으로 값으로 평가될 수 있는 표현식이어야 한다.연산자와 피연산자의 조합도 값으로 평가될 수 있는 표현식이다. 산술 연산자산술 연산자는 수학적 계산을 수행하며, 산술 연산자가 불가능한 경우 NaN을 반환한다. 1개의 피연산자를 산술 연산하는 단항 산술 연산자 중 ++ 나 --는 피연산자의 값을 변경하는 부수효과가 있다.피연산자의 앞에 위치한 전위 증가/감소 연산자는 먼저 피연산자의 값을 증가/감소 시키고 다른 연산을 수행하고,후위 증가/감소 연산자는 다른 연산을 수행하고 피연산자의 값을 증가/감소시킨다.var x = 5, result;// ..

스터디 2024.07.27

[이펙티브 타입스크립트] 8장 타입스크립트로 마이그레이션하기 아이템58-60

8장 타입스크립트로 마이그레이션하기대규모 프로젝트를 타입스크립트로 마이그레이션할 때는 점진적으로 전환해야 한다.또, 진행 상황을 모니터링하고 추적해서 중복된 작업을 방지할 수 있어야 한다. 아이템 58 모던 자바스크립트로 작성하기타입스크립트는 코드를 특정 버전의 자바스크립트로 컴파일할 수 있다.옛날 버전의 자바스크립트 코드를 최신 버전의 자바스크립트로 바꾸면 최신 버전의 자바스크립트 기능을 코드에 추가해도 문제가 없기 때문에, 타입스크립트로 전환하는 작업의 일부로 볼 수 있다. 타입스크립트를 도입할 때 가장 중요한 기능은 ECMAScript 모듈과 ES2015이다. ES5에 도입된 strict mode보다 타입스크립트가 더 엄격한 체크를 하기 때문에 'use strict'는 무의미하다.코드에 'use s..

[이펙티브 타입스크립트] 7장 코드를 작성하게 실행하기 아이템53~55

아이템 53 타입스크립트 기능보다는 ECMAScript 기능을 사용하기타입스크립트 개발 초기에는 자바스크립트에 클래스, 데코레이터, 모듈 시스템 같은 기능이 없어 독립적으로 이러한 기능들을 개발하였다.자바스크립트에서 이러한 기능들이 새로 추가되면서 타입스크립트의 초기 버전에서 독립적으로 개발했던 기능과 호환성 문제를 발생시켰다. 타입스크립트는 초기 버전과의 호환성을 포기하고 자바스크립트의 신규 기능을 그대로 채택하였다.자바스크립트는 런타임 기능을, 타입스크립트는 타입 기능만 발전시킨다는 명확한 원칙을 세웠다. 다음의 언급되는 기능들은 타입스크립트 초기에 개발된 기능들로 타입 공간과 값 공간의 경계를 혼란스럽게 만들기 때문에 가급적 사용하지 않는 것이 좋고, 불가피하게 사용한다면 유의해야 한다. 열거형(e..

[사이드 프로젝트] 어느 날 트위터 로그인이 안된다고 연락이 왔다.

운영에 참여하고 있는 사이드 프로젝트 앱이 있다. (막간을 이용해 홍보.... 놀러오세요~)https://apps.apple.com/kr/app/%ED%8F%AC%EC%B9%B4%EC%9D%B4%EB%B8%8C-phocaive-bts-%ED%8F%AC%ED%86%A0%EC%B9%B4%EB%93%9C/id1624512192 ‎포카이브(Phocaive) - BTS 포토카드‎방탄소년단(BTS) 랜덤포카 교환에 지친 아미를 위해, 방탄소년단(BTS)의 모든 포토카드를 보고 싶은 아미를 위해 포토카드 교환부터 아카이빙 된 포토카드 바인더까지 한눈에 확인할 수 있는 팬apps.apple.comhttps://play.google.com/store/apps/details?id=com.phocaive&hl=ko 포카이브..

카테고리 없음 2024.06.20

[이펙티브 타입스크립트] 5장 any 다루기

아이템 42 모르는 타입의 값에는 any 대신 unknown을 사용하기// ❌ 반환 타입으로 any 사용function parseYAML(yaml: string): any {// ...}// ❌ 이 경우에는 제네릭을 사용하는 건 권장하지 않는다.function safeParseYAML(yaml: string): T { return parseYAML(yaml);}// 🟢 반환 타입으로 unknown 사용function safeParseYAML(yaml: string): unknown { return parseYAML(yaml); } 일반적으로 타입스크립트 타입시스템은 한 집합은 다른 모든 집합의 부분 집합이면서 동시에 상위집합이 될 수 없다.그러나 any는 어떠한 타입이든 any 타입에 할당 가능..

[이펙티브 타입스크립트] 4장 타입 설계 28~32

4장에서는 타입을 설계하는 것에 대해 다루고 있다. 이 내용은 타입스크립트 뿐만 아니라 다른 언어에도 적용할 수 있는 아이디어이다. 아이템 28. 유효한 상태만 표현하는 타입을 지향하기타입은 유효한 상태만 표현하도록 설계해야 한다.interface State { pageText: string isLoading: boolean error?: string} State 타입은 isLoading이 true이면서 동시에 error 값이 설정될 수 있는데 이러한 상태는 존재할 수 없다(무효한 상태를 허용한다). //isLoading이 true이고 error가 존재하면 로딩 중인지 오류가 발생한 것인지 알 수 없다.function renderPage(state: State) { if (state.error) ..

[이펙티브 타입스크립트] 3장 타입 추론 19~23

타입스크립트는 적극적으로 타입을 추론한다.타입 추론을 잘 활용하면 타입을 명시적으로 선언하는 일이 줄어들기 때문에, 전체적인 안정성이 향상된다.이번 장에서는 타입스크립트에서 타입 추론이 어떻게 이루어지는지, 주의해야하는 상황과 해결 방법에 대해 다룬다. 아이템 19. 추론 가능한 타입을 사용해 장황한 코드 방지하기✔️ 타입 추론이 가능하다면 명시적으로 타입을 선언할 필요가 없다.타입스크립트가 스스로 타입을 추론하지 못한다면 타입을 명시해야 한다.타입스크립트에서 타입은 일반적으로 변수가 처음 등장할 때 결정된다. 장점 1. 리펙토링에 용이하다.명시적으로 타입을 선언한 경우에는 타입이 변입이 변경되면 해당 변수를 사용하는 모든 곳에서 타입을 바꿔야 하지만, 타입 추론을 활용하면 변경할 필요가 없다.inter..

[이펙티브 타입스크립트] 1장 타입스크립트 알아보기

1장은 타입스크립트의 언어적 특징에 대해 설명하고 있다.특히 자바, C++과 같은 다른 언어와 어떤 차이가 있는지, 자바스크립트와는 어떤 관계가 있는지에 대한 내용이다. 아이템 1. 타입스크립트와 자바스크립트의 관계타입스크립트는 또 다른 고수준 언어인 자바스크립트로 컴파일되고 실행된다.그렇기 때문에 자바스크립트와의 관계를 이해하는 것이 매우 중요하다.## 타입스크립트는 자바스크립트의 상위집합이다. 자바스크립트에 타입스크립트를 일부만 적용할 수 있어, 점진적으로 마이그레이션이 가능하다.그렇지만 타입스크립트는 타입을 명시하는 추가적인 문법을 가지고 있기 때문에 모든 자바스크립트가 타입스크립트의 타입 체커를 통과하는 것은 아니다. ## 타입스크립트의 타입 시스템은 자바스크립트의 런타임 동작을 모델링한다.다른 ..

[2024년 1월] 삶의 균형 잡기(feat. 이직)

올해부터 매월 회고를 쓰겠다고 다짐했는데, 벌써 한참이 지났다. 더 시간이 가기전에 내가 1월동안 고민하고, 다짐한 것들을 기록으로 남긴다. 삶의 균형 잡기 12월부터 계속 이력서를 넣고, 과제를 보고, 면접을 보았다. 서류는 잔뜩 넣었는데 서류전형에서 떨어진 곳들도 많아서 실제 과제와 면접을 진행한 곳이 많지는 않다. 12월에 처음 퇴사를 하게될 때만 해도, 앞으로 몇달은 업무에 치여 제대로 공부하지 못했던 것들을 공부하고, 사이드 프로젝트도 하고, 이력서를 더 보완해서 몇 개월 후에 본격적으로 다시 지원을 할 생각이었다. 그러나 막상 백수가 되자 굉장히 불안해졌다. 요즘 채용시장이 얼어붙었다는 얘기도 많이 들리고, 퇴사 전에도 이력서는 계속 넣고 있었는데 정말이지 서류합격률이 너무너무 낮아서 자신감이..

회고 2024.02.11

[2023년 4분기 회고] 신규 서비스 개발하기 & 그리고 퇴사를 하게 되었다.

다사다난한 4분기였다. 2023년이 얼마 남지 않은 지금 올해를 돌이켜봐도 많은 일이 있었고, 또 성과도 있었다. 얼마 전에 갑작스럽게 퇴사를 하게 되면서 지금 온통 마음이 퇴사&이직으로 정신이 없지만 올해가 가기 전에 회고글을 작성하고 싶어서 오랜만에 글을 쓴다. React 프로젝트 Next.js로 마이그레이션하기 10월부터 본격적으로 개발했던 프로젝트를 배포하게 되었다. 기존에 React로 MVP 개발을 CTO님이 진행하셨는데 CTO님이 계속 프론트까지 작업하기에는 어려운 상황이라, 내가 새로 Next.js로 개발을 진행하였다. MVP는 이미 오픈한 상태였는데, Next.js 버전으로 마이그레이션하면서 실질적으로 서비스 운영도 전담하게 되었다. 우선 MVP와 동일하게 개발하고, 테스트를 진행한 후에 ..

회고 2023.12.28