JavaScript 개념 정리 회의록
원시값에 대해 공부할때, "변경 불가한 값"의 의미를 잘 이해하지 못했었는데, 이해할 수 있어서 좋았음.
- if-else를 사용했는데, 삼항 연산자의 차이를 명확하게 이해할 수 있었다.
- 단축평가를 많이 쓰면서, 동작을 잘못 이해하고 있었음. 논리 연산자를 사용하면 연산 결과가 True/False로만 나오는줄 알았는데, 맨 뒤 피연산자 값을 리턴한다는 것을 처음 알았음. Null값에 대한 레퍼런스 개념 등에 대해 이해하는게 도움이 됐음.
기본 개념을 세세하게 돌아보면서 개념을 탄탄하게 잡았던 것 같음.
레이블 문을 사용하면 원하는 문을 탈출할 수 있다는 사실을 알았음.
객체는 값으로 평가된다는 사실을 처음 알았음. 값/참조에 의한 전달의 명칭이 언어마다 조금 다르다는 것을 처음 알았음.
JS의 널 병합 연산자가 코틀린의 safe-call 연산이랑 비슷하다는 것을 알았음
- break와 continue를 다시 돌아보는 계기가 되었음.
- null이랑 에러처리를 하는 경우가 많은데, 더 자세히 할 수 있었던 것 같음.
- Falsy, Truty 값을
- TS에서 유틸리티타입을 써서 간편하게 타입을 관리하면서 단순화하는 방법을 공부할 수 있었음.
- 최적화하면서 인터프리터를 할 때, JIT 컴파일러가 더 인식을 잘할지에 대한 경우를 알아볼 수 있었음.
하면 할 수록 가독성이 떨어지고 유지보수가 어려워졌음. 꼭 최적화가 좋지만은 않구나 라는 생각을 했음.
변수는 ~~값을 갖는다, 변수는 객체를 갖는다는 표현을 썼는데, 정확히는 잘못된 표현이었음을 알았음.
Q. 윤혜원
옵셔널 체이닝이나, NULL 병합 연산자를 실제로 많이 사용하는지, 언제 사용하는지 예시가 궁금하다
A : 장민호
옵셔널 체이닝을 선호하는 편은 아닌데, 에러를 덜 내게 도와주는 편임.
NULL 병합이 필요한 경우에는, 더 철저하게 확인하는 나은 방안이 있다. 그래서 정말 짧은 경우를 제외하곤 많이 안쓴다.
Q. 김예림
143~145p를 보면 값에 의해 전달하는 방법이 두가지가 있던데, 두 방식을 모두 사용하는 것인지, JS에서만 사용하는 방법이 있는 것인지 궁금하다.
A. 소재훈
코어 자바스크립트 1장에 해당 내용이 있어서 참고하면 좋을 것 같습니다.
추가 참고자료
Q. 지민성 객체를 참조값으로 복사하는 이유가 변수에 재할당을 하기 위한것인가?
A. 박재형
객체의 크기를 알 수 없기 때문에, 무작정 복사하는 것은 리스크가 큼. 그래서 얕은 복사로 메모리만 복사하는 것.
Q. 박재형
(1) : if (nullValue) {
// ...
}
(2) : if (nullValue !== null) {
// ...
}
1번, 2번 코드의 성능적 차이가 있는지?
A. 장민호 1번 코드는 Truty, Falsy를 판단하는 연산과정이 한번 있고, 2번은 바로 비교를 하기 때문에 성능이 최대 3% 차이가 난다.
Q. 장민호 E2E 테스트가 너무 많아진 느낌이 있어서, 유닛테스트만 진행하고 E2E는 안하는 사람이 많은 것 같던데, 다른 분들은 어떻게 하시는지 궁금함.
A. 소재훈
JAVA에서는 E2E랑 유닛이랑 다하는 느낌임.
E2E를 하면 문서가 만들어져서, 결국 문서를 만들어서 FE에 건네줘야하기 때문에 결국에는 하는게 좋더라.
Edge 케이스를 많이 생각하는 것도 있음.
A. 유제원
프론트쪽에서는 E2E는 비용이 너무 많이 들어서 잘 안하는 느낌인 것 같음
시나리오로 큐레이팅을 해주는게 좋은 것 같음.
그래도 팀 바이 팀인 것 같음.
A. 김진명
백엔드 개발자인데, 저희 회사는 유닛테스트를 잘 안함. REST JS나, Framwork는 잘되어있어서 굳이 테스트를 하지 않아도 잘 보이는 편임.
하지만 모듈이 두 개 이상 있는 경우 등은 통신 확인 등이 더욱 필요한 경우가 많아서 많이 쓰는 것 같음.
Q. 소재훈 JS 부분은 조금 처음이라, 우테코 프리코스하고 싶은데, 같이 할 사람 찾는중