어떤 경로에선가 깨달았던 점들...
- 테스팅 공부: 테스팅 툴을 다룰 줄 몰라서 접근제어자를 제거하는 심각한 실수를 저지름. 이건 정말 여태까지 테스팅에 관심을 가지지 않은 나의 잘못이 크다.
- jest 같은 툴을 제대로 공부해서 개발할 때 테스팅을 함께해야 함. 여태까지 너무 안일하지 않았나 생각이 든다.
- spyOn 메서드를 사용하면 자바스크립트 기준 접근제어자가 있는 메서드도 테스팅 가능.
- 타입스크립트는 자바스크립트의 슈퍼셋 언어라, 컴파일하면 자바스크립트 코드로 변환
- 자바스크립트의 함수는 일급 함수(함수도 객체로 취급 가능)라 추출 가능
- 위 둘로 인해 타입스크립트라고 해도 실제 동작할 때는 접근제어자를 무시하고 동작하는 테스트가 가능. 특정 함수(spyOn)에서 속성 명으로 클래스에 접근하는 기능을 사용하고 any type으로 반환하면 받아서 사용할 수 있음!.
- 가능한 한 모든 상황에 대비해라. 설계에서 발생할 수 있는 모든 오류를 생각해서 이에 대비할 수 있는 안전한 코드를 작성하라!
- 제시된 상황보다 에러가 발생할 여지는 더 많다! 특히 네트워크 통신 부분..
- ex) try - catch 문법을 이용, axios 등이 에러라고 판단하는 경우에 대비. 에러 메시지 등 출력하자.
- 네트워크에서 받은 동적인 데이터는 validator을 사용하자
- 상속보다는 컴포지션: 교내 설계 & 패턴 수업이나 여러 글에서 봤던 내용이기는 했지만, 막 와닿는 부분은 아니었다. 그런데 직접적인 상황이 제시되니까 컴포지션을 통해 수평적 확장하는 편이 더 좋을 것 같다는 생각이 들었다.
- 상속의 목적은 코드의 재사용이나 체계화 목적이 큼. 상속에 의해 유지보수에 도움이 될 수 있지만, 이게 깊어진다면 지나치게 구체화되어 유지보수에 오히려 도움이 안됨. 현재 제시된 상황에서는 상속에 의한 코드 재사용이 좋을 수도 있지만, 장기적으로는 깊은 상속 깊이를 요구하게 될지 모름.
- 상속은 관계를 더 복잡하게 만들 수 있음.
- 하나의 클래스 내에서 사용하는 기능이라고 해서 묶지 마라. ( 큰 클래스를 만들지 마라 ) 다른 목적 ( 카운터, 로그 등 )의 코드가 함께 존재하지 않도록 SIP를 잘 지켜라.
- 나의 의견을 정확하게, 확신을 가지고 표현하자.
- 내가 아는 것을 말하지 않으면 사람들은 내가 모른다고 간주한다. 이런 상황에서는 내가 알고 있는 최대한을 조합하여 자신감있게 말하자.
- 사람들은 내가 정답을 말하는지 보는게 아니다. 문제를 어떻게 설명하는지, 어떻게 풀어나가는지를 궁금해한다.
- 정확하게 말하는 연습을 하자. 이거, 저거 대신 정확한 명칭을 사용하자.
- 네트워크 입출력은 스레드를 추가한다고 반드시 성능이 높아지지는 않는다. 수업 시간 때 배웠던 것 같은데, 어차피 네트워크 입출력은 네트워크 어댑터와 관련되어 수행되며, 하나의 회선은 한번에 가져올 수 있는 데이터 크기가 제한되어 있다. 한 순간에 최대 100의 데이터를 받을 수 있다면, 이걸 스레드 단위로 나눠봤자 한번에 각각 20씩 읽어올 뿐이다. 한번에 많은 데이터를 어디선가 읽어와야 하고, 대량의 데이터를 처리해야 하는 상황이라면 애초에 다수의 서버에서 해당 데이터들을 나눠서 읽고 처리하는 것이 좋을 것 같다.
나름대로 코딩이나 CS 공부를 열심히 했다고 생각했는데, 아직 아쉬운 점이 많았던 것 같다. 좀 더 철저하고 깊은 수준에서 파악할 수 있도록 노력해야겠다.
'일상&생각' 카테고리의 다른 글
라즈베리 파이를 구매했다. (0) | 2024.07.03 |
---|---|
정처기 필기 후기 (0) | 2023.05.15 |
새로구미 젤리 (0) | 2023.03.27 |
SSD 구매시 고려할 점 (1) | 2022.10.20 |