데일리 문제(230329)

성준혁·2023년 3월 29일
post-thumbnail

질문#5 MSA(Microservice Architecture)란?

MSA (Microservice Architecture)는

하나의 애플리케이션을 작은 서비스 단위로 분리하여 개발, 배포, 확장하는 방법입니다. 이를 통해 개발과 유지보수가 용이해지고, 애플리케이션의 확장성과 유연성이 높아집니다. 하지만 서비스 간의 통신, 데이터 일관성, 분산 시스템 관리 등의 문제가 있을 수 있습니다.

MSA와 모놀리식 아키텍처 비교

모놀리식 아키텍처 (Monolithic Architecture)는 하나의 애플리케이션을 하나의 큰 코드 베이스로 구성하는 방식입니다. 모든 기능이 하나의 애플리케이션에 통합되어 있으며, 일반적으로 데이터베이스나 사용자 인터페이스와 같은 여러 가지 부분을 포함합니다.

이러한 구조는 초기 개발 단계에서는

구현 및 관리가 용이할 수 있으나, 애플리케이션 규모가 커지면서 유지보수 및 확장성 문제가 발생할 수 있습니다. 애플리케이션의 일부를 수정하면 전체 애플리케이션을 다시 배포해야 하며, 모든 기능이 하나의 애플리케이션에 집중되어 있기 때문에 대규모 애플리케이션에서는 작업 효율성이 떨어지고, 확장성이 제한될 수 있습니다.

질문#6 제네릭에 대해서 설명하고, 컬렉션 클래스에서 왜 제네릭을 사용하는 지 설명해주세요.

제네릭 (Generics)은

자바에서 타입 안정성을 보장하고, 재사용성을 높이기 위해 도입된 기능입니다. 제네릭을 사용하면, 컴파일러가 컴파일 시간에 타입을 검사하므로 런타임 에러를 방지할 수 있습니다.

제네릭을 사용하면

클래스, 인터페이스, 메서드를 정의할 때, 타입 매개변수를 사용하여 타입을 일반화할 수 있습니다. 이렇게 일반화된 타입 매개변수는 실제 사용할 때 구체적인 타입으로 대체됩니다.

컬렉션 클래스에서 제네릭을 사용하는 이유는,

컬렉션에 저장되는 요소의 타입을 컴파일 시점에 검사하여, 런타임 에러를 방지하고, 타입 안정성을 보장하기 위해서입니다. 예를 들어, ArrayList 클래스에서 제네릭을 사용하여, ArrayList에 저장되는 요소의 타입을 지정할 수 있습니다. 이렇게 하면, 잘못된 타입의 요소를 추가하는 것을 방지할 수 있습니다. 또한, 제네릭을 사용하면, 컬렉션에 요소를 추가할 때 매번 타입 캐스팅을 해줄 필요가 없어서 코드의 가독성과 유지보수성이 향상됩니다.

0개의 댓글