싱글톤 패턴이란? 하나의 인스턴스만을 생성하여 사용하는 패턴이다. 최초로 생성된 객체 하나만을 가지고 호출하는 방식을 사용한다. 싱글톤 패턴의 장점 하나의 객체만 생성하여 불필요한 객체 생성을 막을 수 있다. 단점 하나의 객체를 공유하는 것이기 때문에 상태를 가진 객체를 공유하면 문제가 생길 수 있다. 또한 아무 객체나 자유롭게 접근하고 사용하는 것은 객체지향이랑 어울리지 않는다. 의존성이 높아지게 되므로 유지보수와 테스트에 어려움이 생긴다. 이처럼 싱글톤패턴은 장점보다 단점이 더 많은 패턴이기 때문에 주의해서 사용해야한다. 의존성 문제는 싱글톤 객체가 다른 객체와 바로 연결되어있어 의존성이 매우 높아 변경사항이 생기면 상당히 까다로워지기 때문에 중간에 의존서 주입자를 두어 A객체를 수정하더라도 B객체의..
템플릿 메소드 패턴이란? 전체적은 구조는 바꾸지 않으면서 반복되는 패턴을 정형화한 것이다. //추상 클래스 선생님 abstract class Teacher{ public void start_class() { inside(); attendance(); teach(); outside(); } // 공통 메서드 public void inside() { System.out.println("선생님이 강의실로 들어옵니다."); } public void attendance() { System.out.println("선생님이 출석을 부릅니다."); } public void outside() { System.out.println("선생님이 강의실을 나갑니다."); } // 추상 메서드 abstract void teach..
MSA Micro Service Architecture는 위 그림과 같이 하나의 서버를 여러 개의 마이크로 서버로 쪼개서 운영하는 방식이다. 하나의 서버를 여러 개로 나눠서 관리하는 것에 초기 비용이 들어가기 때문에 큰 규모의 프로젝트에 적합하다. 장점 각각의 서비스가 독립적이기 때문에 빌드 및 테스트, 배포 시간이 단축된다. 장애 발생 시 확산 범위가 작다. 새로운 서비스를 확장하기 좋다. 각각의 서비스가 독립적이기 때문에 서비스마다 다양한 언어와 프레임워크를 적용할 수 있다. 단점 배포해야할 서비스의 수가 많아진다. 서비스 간 통신을 추가로 구현해야하며, 이로 인해 트래픽 양이 증가하게 된다. 모든 서비스를 한 눈에 모니터링하기 어렵다. 즉, 통합 관리가 어렵다. 빌드 테스트 횟수도 서비스 개수 만큼..