오늘 한 일

  • 어제 가뜩이나 늦게 잤는데 오늘은 아침 일찍부터 어느 집 공사 소음 때문에 잠을 설쳤다. 소음의 진원지가 하필 일하는 방 바로 옆인 건지 유난히 더 크게 들렸다. 스크럼 때도 드릴 소리가 들어가고 나니, 문득 오늘 페어 작업에 방해가 될 것 같아 결국 집 근처 카페로 자리를 옮겼다. 근데 카페 음악 소리도 너무 커서 결국 페어는 물 건너 갔다...
  • 페어 대신 각자 파트를 나눠서 작업하기로 했다. 공교롭게도(?) 나는 또 다이얼로그 작업을 하게 되었는데 vms에 이미 들어가 있는 UI를 만져서 고치는 것은 새로 만드는 것과는 차원이 다르게 복잡했다. 그 와중에 식사하러, 식사 후 다시 일하러 계속 자리를 옮기게 되니 진득이 집중하기가 힘들었다. 차라리 늦게라도 출근을 할 걸 그랬다. 다행히 4시 반쯤 공사가 끝난다고 해서 집에 돌아오긴 했는데 지금 생각해 보니 괜히 또 중간에 움직였나 싶다.
  • 집에 온 직후 오늘 작업한 부분을 공유했는데 내 쪽에서는 한 게 별로 없어서 내일은 오늘 못 다 한 작업부터 시작하기로 했다.

오늘 배운 것

  • 어제 대강 살펴봤던 타입 추론과 타입 단언을 한번 더 찾아보았다. "컴파일러는 타입 추론을 통해 명시적인 타입 표기 없이도 타입 정보를 이해할 수 있다." "타입 단언을 통해 컴파일러에게 특정 타입 정보의 사용을 강제할 수 있다." 그러니까 value as Type 또는 <Type>value 형태로 쓰는 타입 단언은, value: type의 형태로 쓰는 단순한 타입 표기와는 완전히 다른 개념인 것이다. 
 

6.2 타입 추론 - ts-for-jsdev

하지만 만약 배열의 타입을 Array 로 추론한다면 어떻게 될지 생각해보자. getSoundFunction 함수는 Camel 타입을 인자로 받지 않는다. 그 때문에, dogAndCat 내에는 Camel 타입 값이 존재하지 않음에도 위의

ahnheejong.gitbook.io

 

6.3 타입 단언 - ts-for-jsdev

위 코드는 실제로 실행한다면 런타임 에러가 발생하지만, 타입 검사는 통과한다. 번거로운 타입 검사를 피할 수 있지만, any를 사용한 타입 단언은 어쩔 수 없는 경우를 제외하곤 피하는 것이 좋

ahnheejong.gitbook.io

 

오늘 한 일

  • 스크럼 끝나고 나서 한참을 기억 저편에 묻어두었던 깃훅에 대한 카드를 케이님이 다시 상기시켜 주셨다. 나 너무 부지런하지 못하다..😢  기억을 다시 되돌리기 위해 빠르게 빠르게 husky와 git hook pre-commit 문서를 펼쳐 놓고 스크립트를 짜 보려고 하며 오전 시간을 보냈다.
  • 그리고 오후에는 스프린트 미팅 - 승규님과의 페어 작업을 앞두고 사전 허들 - 셀러그로스 retrospective까지 해서 정신이 없었다ㅋㅋ.. 하루 웬종일 머릿속에 정보가 쏟아져 들어오는 느낌이었다. 물론 그거 다 흡수했다고는 안 했음
  • 스프린트 미팅에서는 SSO와 다른 서비스들과의 관계를 시각적으로 보여달라는 소연님의 말에 승진님이 관계도를 그리기 시작하셨고... 미팅은 1시간을 채웠다...
  • 카드가 나왔고 작업 estimation도 정했으니 승규님과는 내일부터 페어 프로그래밍을 진행하기로 했다. 일단 하기로 한 거고, 혹시 또  이런 프론트 작업에 페어 방식이 맞지 않는다면 작업 방식을 아예 바꿀 수도 있다. 드라이버는 페어 프로그래밍에 익숙한 승규님부터 시작하지만 나는 어떤 식으로 작업을 하는 건지 전혀 모르는 상태라 걱정 반 기대 반인 상태다.
  • retrospective는 처음 참여해 봤는데 너무 재미있었다. 나는 거의 한 마디도 안 하고 참관만 했지만 재미있었다. 혹시 그래서 더 재미있었을까..!? 다음 번에는 나도 조금 더 주도적으로 참여할 수 있길.

오늘 배운 것

  • 어제 썼듯이, 어제까지 작업한 모달, 그 모달에 이메일을 입력하면 비밀번호 초기화 페이지 링크 받는 것까지 확인해서 pr을 올렸다. 사실 작업 내용 자체는 별 게 없긴 했는데, 생각지도 못했던 부분에서 리뷰를 받았다. 타입스크립트 변수에 대한 타입 선언과 타입 추론 때문이었는데, 어차피 ""와 같이 값의 타입이 string이라는 걸 추론할 수 있는 변수인데 굳이 타입 선언이 들어갈 필요가 없다는 내용이었다. 타입스크립트니까 타입을 명시해줘야겠다고만 생각했을 뿐, 추론은 생각해 본 적이 없었다. 아래 링크에서 타입 추론 부분만 읽어 보았다. 머리에 들어올 것 같을 때 나머지도 마저 읽어봐야겠다.
 

TypeScript: 타입 추론과 타입 단언

TypeScript 를 도입하기가 망설여지는 이유 중 하나는 매번 일일이 변수를 선언할 때마다 타입을 선언해야하고 필요한 타입을 정의해야하는 비용에 대한 걱정일 것이다. 필요한 타입이 있을 때 타

hyunseob.github.io

 

 

오늘 한 일

  • 회사 웹페이지 1차 개편을 위한 막바지 작업을 하고 있다. 아니, 감히 막바지라고 말해도 되는지 잘 모르겠다. 아무튼, 아직은 기능이 별로 없어 환경에 따라 크게 달라지는 점은 없지만 환경별 설정 분기하는 코드도 좀 들여다보고, 기획자 분께 ip 주소 드리고 보여드리는 시늉이라도 조금 해보았다. 테스트를 포함한 모든 본격적인 건 내일부터 시작일 테지...
  • 저녁을 먹고 나서는 어제까지 이론적으로 열심히 공부한 타입스크립트를 기초적이나마 연습해보는 시간을 가졌다. CRA 없이 일단 타입스크립트만 설치해서 어떤 식으로 타입을 명시해줘야 하는지, 에러 로그는 어떻게 찍히는지, 또 그것들을 어떻게 활용할 수 있는지 직접 입력해보며 확인했다. 역시 직접 해보는 게 최고다.

오늘 배운 것

  • 프로젝트 디렉터리 내 package.json에서 환경별로 실행이나 배포 명령어를 따로 설정해놓을 수 있다는 걸 배웠다. 프로덕션 환경으로 진행하고 싶으면 해당 명령어를 입력하고, 그 명령어로 인해 콘솔 로그가 전부 숨겨진다든지 하는... 엄청난... 난 왜 몰랐을까
  • 타입스크립트 연습에 참고한 링크는 '벨로퍼트와 함께하는 모던 리액트'다. 평소에 많이 참고하는 링크지만 여기서 타입스크립트까지도 다루고 있는지 몰랐다.
 

1. 타입스크립트 연습 · GitBook

01. 타입스크립트 연습 타입스크립트에서 가장 기본적인 것들을 연습해보겠습니다. 먼저 새로운 자바스크립트 프로젝트를 생성해보겠습니다. 터미널에서 다음 명령어들을 입력하세요. $ mkdir ts-

react.vlpt.us

타입스크립트 핸드북(한글) 링크

 

타입스크립트 핸드북

 

joshua1988.github.io

주의 깊게, 다시 볼 부분

  • 여러 인터페이스를 상속받는다는데 두 번째 예시에서 왜 Developer는 Person만 extends하는가? -> Drinker가 그냥 빠진 것이었다니!
 

인터페이스 | 타입스크립트 핸드북

인터페이스 인터페이스는 상호 간에 정의한 약속 혹은 규칙을 의미합니다. 타입스크립트에서의 인터페이스는 보통 다음과 같은 범주에 대해 약속을 정의할 수 있습니다. 객체의 스펙(속성과 속

joshua1988.github.io

  • 딱 와닿게 이해되지 않는 제네릭 부분... 두 번 더 봐야겠다.
 

제네릭 | 타입스크립트 핸드북

제네릭(Generics)의 사전적 정의 제네릭은 C#, Java 등의 언어에서 재사용성이 높은 컴포넌트를 만들 때 자주 활용되는 특징입니다. 특히, 한가지 타입보다 여러 가지 타입에서 동작하는 컴포넌트를

joshua1988.github.io

  • 순차적으로 코드를 깔끔하게 정리하는 과정이 너무나 인상깊었다.
 

맵드 타입 | 타입스크립트 핸드북

맵드 타입(Mapped Type)이란? 맵드 타입이란 기존에 정의되어 있는 타입을 새로운 타입으로 변환해 주는 문법을 의미합니다. 마치 자바스크립트 map() API 함수를 타입에 적용한 것과 같은 효과를 가

joshua1988.github.io

  • 모듈 부분은 (연습이든, 아니든) 실제로 프로젝트에 적용할 때 다시 한 번 찾아봐야 할 것 같다.
 

모듈 | 타입스크립트 핸드북

소개 타입스크립트에서 가리키는 모듈이라는 개념은 ES6+의 Modules 개념과 유사합니다. 모듈은 전역 변수와 구분되는 자체 유효 범위를 가지며 export, import와 같은 키워드를 사용하지 않으면 다른

joshua1988.github.io

오늘까지 한 일

  • 어제는 집을 구하러 다니느라 하루를 다 썼다. 그래도 결과가 좋아서 헛수고하진 않았으니 만족스럽다.
  • React-admin에 json-server로 fake API 적용: 예전에도 했었는데 지난 기록을 찾아보니 그때는 이게 무슨 의미인지 모르고 했던 것 같다. 기록을 남겨놨다는 것조차 기억을 못하고 있었으니ㅋㅋ.. 다시 적어두려고 보니 이미 있네!?
  • React-admin에서 사용되는 dataProvider와 authProvider 파일을 살펴보고 공식문서에서 dataProvider 부분을 찾아 읽었다. 파일은 타입스크립트로 작성되어 있어서 타입스크립트의 공식문서도 함께 참고하며 보느라 진도가 빨리 안 나간다.

오늘 배운 것

 

json-server

Get a full fake REST API with zero coding in less than 30 seconds

www.npmjs.com

 

React-admin - Data Providers

Data Providers Whenever react-admin needs to communicate with the API, it calls methods on the Data Provider object. dataProvider .getOne('posts', { id: 123 }) .then(response => { console.log(response.data); // { id: 123, title: "hello, world" } }); It’s

marmelab.com

 

Documentation - TypeScript for JavaScript Programmers

Learn how TypeScript extends JavaScript

www.typescriptlang.org

오늘 한 일

  • 오늘은 낮잠을 자지 않았다. 프로젝트 기간은 아니지만 집에 공사가 좀 있어서 아침에도 잠을 3시간밖에 자지 못했다. 그래서 낮에 까무룩 잠들어버릴 줄 알았는데 어쨌든 용케도 잘 버텼다. 대신 자정 넘어서 잤다. 밤잠?
  • 서로 계속 타이밍이 엇갈려서 한 자리에 모이기 참 어려웠는데, 드디어 Open door 첫 회의를 가졌다. 다음 주가 지나면 바로 추석이라 지금은 뭔가를 새로 시작하기가 매우 애매한 지점이라는 데 다들 동의하는 분위기였다. 프론트에서는 꼭 한 번 도전해보고 싶었던 타입스크립트를 공부해서 적용해보기로 했다! 첫 회의이기도 하고, 본격적인 방향을 설정하는 자리는 아닌가 싶어서 가만히 있었는데 먼저 제안해 주셔서 너무 좋았다. 오늘 구인공고를 둘러보니, 자격요건에 타입스크립트를 명시한 곳이 꽤 있어서 한 번쯤은 경험해보고 넘어가야 할 것 같았다. 공부할 생각에 벌써부터 설렌다.
  • 낮잠이 없어 길었던 낮 시간 동안 로켓펀치와 원티드를 오가며 마음에 드는 회사의 채용공고를 꼼꼼히 읽어보고 이력서를 넣었다. 어제의 30이나 오늘의 15나 들어가는 노력은 만만찮았다. 숫자로만 판단하고 어느 한 쪽이 어떨 것이다 지레짐작한 것은 의미가 없었다.
  • 프로젝트 토크부트를 함께한 디자이너님이 며칠 전에 연락 주신 내용을 바탕으로, 프로젝트는 끝났지만 다시 한 번 전체적으로 손을 보려고 간만에 vscode를 켰다. 헤더를 position: fixed로 붙이니 그 위에 잘만 올라가 있던 로그인 버튼이 없어져버리고, 화면 크기에 따라 화질구지가 되기도 하는 확장자 png의 이미지 파일을 svg로 변환해서 넣으니 시꺼멓게(????) 변해버리고, 아주 난리도 이런 난리가 없었다. 아니 왜 처음부터 개선의 의지를 꺾으려고 하는 건데!?...물론 컴퓨터는 아무런 잘못이 없다...

오늘 배운 것

  • 로켓펀치와 원티드의 이용방법을 알게 되었다. 처음에는 둘 다 나에게 원하는 게 지나치게 많다고 느꼈지만, 여느 채용플랫폼과 마찬가지로 한 번 기본 세팅을 해놓으면 그 이후의 일은 일사천리로 진행된다. 로켓펀치의 장점은 내가 지원한 회사에서 내 이력서를 확인했는지, 검토 중인지, 뭐라고 답신을 주는지를 전부 실시간으로 알려준다는 것이다. 반면 원티드는 그렇게까지 상세하고 친절한 알림 서비스는 없지만 한 회사에 지원하고 나면 비슷한 채용공고를 올린 다른 회사들의 목록을 보여주면서 한꺼번에 지원할 수 있는 기능을 제공한다.

내일 할 일

  • 내일은 면접 준비 과정의 일환으로 100문 100답을 작성해보는 날이다. 내일도 하루종일 정신이 없을 것만 같다.
  • vscode를 다시 한 번 켤 용기를 가지고 문제들을 해결해보자.

+ Recent posts