TIL

24.02.21

아리단길아조씨 2024. 2. 21. 23:58
728x90

Class로 리펙토링을 하면 좋은 점
- 코드를 객체 지향적으로 구조화할 수 있다.
- 모듈화와 재사용성 : 모듈화된 클래스는 다른 부분과 독립적으로 사용되거나 재사용될 수 있어 코드의 재사용성이 높아짐
- 상속과 다형성: 상속을 통해 다른 클래스로부터 속성과 메서드를 상속받을 수 있으며, 코드의 재사용성을 높인다.
상속을 통해 다형성을 구현할 수 있다.
* 다형성: 같은 이름의 메서드를 다른 방식으로 구현하여 다양한 객체에서 사용할 수 있게 하는 것.
-캡슐화와 정보 은닉: 클래스는 데이터와 그와 관련된 메서드를 함께 캡슐화가 가능하다. 데이터와 메서드가 하나로 묶여있기 때문에 가독성, 유지보수성이 향상된다. 접근 제어자를 사용하여 데이터에 대한 접근을 제한할 수 있어 정보 은닉을 구현할 수 있음.
- 코드 구조화와 유지보수성: 관련된 데이터와 메서드가 함께 정의되어 있기 때문에 코드의 의도를 파악하기 쉬워진다.
클래스는 인터페이스를 통해 외부와의 상호작용을 정의할 수 있어 코드의 의존성을 낮추고 유연성을 높이게 해준다.
- 테스트 용이성: 클래스는 각각 독립적인 단위로 테스트할 수 있기 때문에 단위 테스트 수행시 클래스의 동작을 개별적으로 확인할 수 있기 때문에 테스트 용이성을 높여준다.

3-Layered Architecture의 장점
- 각 계층이 역할과 책임을 명확히 가지므로 코드의 가독성과 유지보수성이 향상
- 계층 간의 독립성으로 재사용성과 확장성이 높아짐
- 유연성과 확장성을 제공하여 기술이나 플랫폼 변경에 유리

3-Layered Architecture의 단점
- 복잡성과 오버헤드가 증가할 수 있음
- 유연성에 제한이 있을 수 있음

테스트 코드 작성의 장단점
장점
-  코드 결함 감소
- 유지보수의 용이성
- 기능 추가와 변경의 안정성 확보
단점
- 추가적인 시간, 비용
- 전체 커버리지 보장의 어려움
- 유지보수 비용 증가

서버가 2대 이상 있을 경우 장점
-  서버중 하나가 다운 돼도 다른 서버가 역할을 대체하여 서비스의 지속성을 향상시킨다.
- 트래픽을 여러대의 서버가 나눠가지면서 서버에 걸리는 부하를 분산처리하여 성능을 향상시킬 수 있음.
- 필요에 따라 서버를 추가적으로 확장하여 성능증가, 더 많은 트래픽을 처리할 수 있음.

무중단 서비스의 동작 원리
- 로드 밸런싱: 로드 밸런서를 사용하여 트래픽을 여러대의 서버로 분산시켜 부하를 균형있게 분산시킨다.
- 세션 관리: 사용자가 다른 서버로 요청을 해도 세션정보를 유지시킨다.
- 서버 상태 모니터링: 문제가 발생한 서버를 자동으로 탐지하여 제외를 시키고 정상적인 서버로 트래픽을 전달한다.
- 자동화된 배포: 서버 배포 작업을 자동화 하여 서비스의 중단 없이 업데이트가 가능하다.

'TIL' 카테고리의 다른 글

24-02-23  (0) 2024.02.26
24.02.22  (0) 2024.02.23
24.02.20  (0) 2024.02.21
24.02.19  (0) 2024.02.20
24.02.16  (1) 2024.02.16