얼음꽃의 일지

[5주차] 팀 과제 본문

9기 주차 팀과제 내용

[5주차] 팀 과제

얼음꽃 2022. 10. 19. 22:50
728x90

Q1. Class는 대체로 추상화를 위해 사용됩니다. ES5 자바스크립트에서 Class는 어떻게 동작할까요?

 

Class는 객체를 생성하려고 만든 것으로 데이터, 코드가 하나로 추상됩니다.

ex ) 붕어빵 만들기 : class : 붕어빵 틀, 데이터, 코드 : 재료, 객체 : 결과물

 

Q2. Class는 var 변수처럼 호이스팅이 일어날까요?

 

호이스팅이란 변수화 함수의 선언문을 해당 스코프의 꼭대기로 끌어올리는 동작을 말합니다. 보통 JavaScript는 초기값 할당할때만 호이스팅이 발생하기에 컴파일 과정 전까지는 undefined 이후에는 들어가는 값을 받게 됩니다. 클래스는 var 변수처럼 호이스팅이 안일어나고, let, const 처럼 호이스팅이 일어납니다. 따라서 클래스 선언문 이전에 TDZ에 빠지는건 let, const와 같습니다.

 

Q3. 현재 백엔드에서 가장 일반적으로 사용되는 테스팅 기법은 어떤게 있으며, 가장 효과적인 테스팅 방법은 무엇인가요?

 

단위 테스트 : 가장 작은 규모의 기능을 테스트, 클래스, 함수 테스트

통합 테스트 : 기능을 합쳤을때 생기는 문제를 테스트, 모듈, 라우터 간의 상호작용이 되는지 테스트

E2E 테스트 : 시작부터 끝까지 싹다 테스트, 프론트, 백 둘다 데이터 받을 시에 원하는대로 작동이 되는지 테스트

 

가장 효과적인건 그때 그때 다르다고 봅니다. 어느 수준에서 테스트하냐에 따라 각각의 장단점이 존재하기 때문에 다 좋은 테스트라고 봅니다.

 

Q4. 각 객체 간 의존성/결합도가 높을수록 예상치 못한 문제(Side effect)가 발생할 가능성이 높아집니다. 이를 해결할 수 있는 Decoupling이라는 개념이 존재하는데 Decoupling을 위한 디자인 패턴은 어떤게 존재할까요?

 

코딩을 할 시 의존성이 높아진다? 그럼 코드 수정이나 변경을 하게 될 경우 그 변경해야할 코드와 관련된 모든 코드들을 수정해줘야합니다. 그럼, 프로젝트가 간단한게 아닌 복잡한 경우에는 고치는게 많이 많이 많이 힘들어지기 때문에 의존성을 낮출수 있는 Decoupling을 하게됩니다.

 

Decoupling 디자인 패턴

- 싱글톤

- 팩토리

- 빌더

- 프로토타입

 

https://yceffort.kr/2021/01/nodejs-4-design-pattern

 

Home

yceffort

yceffort.kr

Q5. 마이크로 서비스 아키텍쳐에서 서비스를 나눌 때 보통 각 서비스의 경계를 도메인으로 나눕니다. 도메인이란 뭘까요?

 

마이크로 서비스는 소프트웨어가 잘 정의된 API를 통해 소규모의 어플리케이션을 연결하여 결합된 접근 방식입니다. 한 마디로 기능들을 세분화 시켜서 나누어둔 것입니다.

 

이제 세분화해서 나누었다는건 각각의 기능 서비스 자체가 작기 때문에 수정 및 업데이트 하기에 좋고 다른문제가 생겨도 세분화 된 상태에서는 다른 서비스한테 문제가 옮겨갈 일이 없기때문에 그 부분만 수정이 가능해집니다.

 

도메인이란 프로세스가 지원하는 활동(구현해야 하 소프르웨어의 대상)을 의미합니다. 예를 들어서 가구 판매회사의 도메인은 구매 및 조달, 제품 설계, 물류 및 배달이 되겠네요.

 

https://learn.microsoft.com/ko-kr/dotnet/architecture/microservices/architect-microservice-container-applications/identify-microservice-domain-model-boundaries

 

각 마이크로 서비스의 도메인 모델 경계 식별

대규모 애플리케이션을 마이크로 서비스로 파티셔닝하여 사운드 아키텍처를 달성하는 데 필요한 핵심을 탐색합니다.

learn.microsoft.com

 

728x90

'9기 주차 팀과제 내용' 카테고리의 다른 글

[4주차] 팀 과제  (0) 2022.10.19
[3주차] 팀 과제  (0) 2022.10.19