Lewis's Tech Keep

[Programmers] [2기] 실무와 가까워지는 Node.js 백엔드 개발 - 4주차 정리 본문

Typescript/Typescript 스터디

[Programmers] [2기] 실무와 가까워지는 Node.js 백엔드 개발 - 4주차 정리

Lewis Seo 2021. 11. 13. 22:36

4주차


 

4주차에는 미션이 2종류였는데 그 중 조금 더 쉬운 미션을 택했다.

메뉴판을 만들어 추가, 삭제, 조회하는 api를 직접 붙여보고 테스트하는 기능이었다.

메뉴판을 추가하면서 처음에는 주인id가 자동으로 client에서 들어올 줄 알았는데 하고 테스트 해 보니 아니었다.

이 때 javascript 였다면 절대 알아차리는 데 한 2시간을 더 썼을 것 같았는데 typescript에서 띄워주는 것이 있었다.

이런 식으로 무엇이 부족한 지 메시지를 띄워주는 것이다.. OMG typescript...

이 것이 타입 안정성의 힘이라고 생각하는 한 주가 되었다.

 

미션 종료 후 느낀점

 

  시간적 여유가 더 되면 typescript document와 firebase document를 더 파보고 싶을 정도로 재밌는 4주였다고 생각한다. 현재 필자는 Java 개발자로 준비 중이고, JPA라는 모르는 영역에 도전하고 있기에 TODO-List 에만 넣어두고 조금 미뤘지만 정말 재밌는 영역이라고 생각한다.

 

  javascript를 하면서 항상 느끼는 것이 개발자들을 위해서 참 쉽게 선언적 표현이 많고 동적 타이핑을 통해 고민을 줄게하는 좋은 언어지만 디버깅이 어려운 점과 타입 안정성이 보장이 안되는 점이 코드를 수정, 코드의 설계에 변화를 주기 참 어렵다고 생각했다. 하지만 typescript는 이 것에 대해 해소하고 디버깅 또한 괜찮은 툴이 계속 나오고 있으므로 기대가 되는 영역이라고 생각한다.

 

  현재 Java로 준비하는 까닭은 Java 기반 시스템들이 좀 더 큰 시스템을 갖춘 회사가 많고 객체 지향적 설계에서 가장 컨셉을 잘 따라 갈 수 있는 점, 그리고 멀티 쓰레딩이 지원가능한 점에서 선택했다. 

하지만 컴퓨터의 성능이 점점 더 좋아지고 멀티 프로세싱만으로 커버가 가능하거나 멀티 프로세싱만 했을 때 성능이 폭발적으로 증가하는 무언가가 나온다면 javascript의 싱글 쓰레드기반 이벤트 루프의 조금 걱정되는 측면에 대한 한계를 넘을 수 있지 않을까? 라고 생각하게 되는 스터디였다. (물론 매우 개인적인 감상에 뇌피셜입니다 ^^;)


내가 구현했던 것

  • findAllByOwnerId 메서드 완성하기
  • addMenuList 메서드 완성하기
  • updateMenuList 메서드 완성하기
  • menuList model add 메서드에 try catch 추가

궁금했던 사항

  • menuList.model.ts에 update method에 있는 코드 중에 제대로 진행 됐을 때 return 하는 것이 없다고 생각했는데 result값은 제대로 들어왔습니다. await 가 return도 해주는 건가요?
  • 제가 verifyIdToken을 기준으로 ownerId를 가져왔는데, try 구문 안에서 다 하고 싶지 않아서 let 변수를 선언은 바깥 쪽, 할당은 try 구문 안 쪽에서 가져왔습니다. 코드를 쓰고 나니 혹시 다른 방법이 있을까 궁금하여 도움을 요청 해 봅니다~!

느낀 점

  • 타입을 써서 안전하게 코딩하면 쓰지 않았을 때 위험할 수 있는 부분들을 얼마나 커버할 수 있는 지 얕게나마 잘 깨달은 것 같습니다~! ownerId 부분은 처음에 거는 것을 아예 몰랐다가 타입 추론 덕분에 깨달았습니다. typescript를 좋아하게 될 것 같은 느낌이 듭니다 ^^!

Extra

git 브랜치를 잘못된 브랜치에서 가져와서 삭제해야 할 일이 있었다. 이에 대한 방법이다.

1. git 원격 브랜치 삭제

2. git base <원래 받고 싶었던 브랜치 이름>

 

firebase token 기반 id 가져오기

1ㅣget the ID token from FirebaseAuth

- verifyIdToken(token) -> decodedToken 획득 -> uid 획득

Comments