Q1.
MSA(Microservice Architecture)란?
A1.
소프트웨어 시스템을 개발하기 위한 아키텍처 패턴 중 하나, 하지만 정확한 정의는 없다.
작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크
API를 통해서만 상호작용할 수 있고, 접근점을 API형태로 외부에 노출, 실질적인 세부 사항은 모두 추상화한다.
이는 팀 단위로 적절한 수준에서 기술 스택을 다르게 가져갈 수 있고, 서비스 별로 독립적 배포도 가능하다. 각각의 모듈화가 되어있으며 유지 보수도 쉽다.
하지만 비즈니스에 대한 DB를 가지고 있는 서비스도 각기 다르고, 서비스의 연결을 위해 통신이 포함되기에 트랜잭션을 유지하기도 어렵다. 통합테스트도 개발환경과 실제 운영환경을 동일하게 가져가는 것이 쉽지 않다.
Q2.
제네릭에 대해서 설명하고, 컬렉션 클래스에서 왜 제네릭을 사용하는 지 설명해주세요.
A2.
제네릭은 자바에서 제공하는 기능 중 하나, 클래스나 메소드를 작성할 때 사용할 데이터 타입을 미리 지정하지 않고
사용하여 일반화 된 코드를 작성할 수 있게 해준다.
제네릭을 사용하면 코드의 재사용성과 유연성이 향상되고 컴파일 타임에 타입 체크를 수행하기에, 런타임 시 발생할 수 있는 타입 관련 예외를 미리 방지할 수 있다. 타입 변환을 명시적으로 수행하지 않아도 되므로 코드가 더욱 간결해지고 가독성이 좋아진다.
컬렉션은 객체를 저장하고 처리하는데 사용되는 자바의 클래스 중 하나로, 객체의 집합을 저장, 추가, 삭제, 조회 등의 작업을 수행
컬렉션 클래스에서 제네릭을 사용하는 이유는 타입 안정성, 코드 간결성, 재사용성, 성능 개선 등의 이점이 있기 때문이다.
Q3.
List, Set, Map, HashMap의 차이에 대해서 설명해주세요.
A3.
List는 순서가 있고 중복을 허용하는 컬렉션 클래스다. Set은 순서가 없고 중복을 허용하지 않는 컬렉션 클래스다. Map은 Key-Value 쌍으로 데이터를 저장하는 컬렉션 클래스이며, HashMap은 이를 구현한 클래스 중 하나로, Hash 알고리즘을 사용하여 검색 속도가 빠르다.
'개발' 카테고리의 다른 글
데일리과제 230222 (0) | 2023.02.22 |
---|---|
STARTTLS, SSL및 TLS 차이점 (0) | 2023.01.11 |
587포트와 465포트의 차이점 (0) | 2023.01.11 |
절차 지향 프로그래밍(Procedural Programming) (0) | 2022.12.04 |
관점 지향 프로그래밍 (AOP, Aspect oriented Programming) (1) | 2022.12.04 |
댓글