본문 바로가기

개발 공부/소프트웨어6

Moduler Monolithic 아키텍처 이번 포스팅에서는 모듈러 모놀리스 아키텍처에 대해 알아보겠습니다.모듈러 모놀리스를 알아보기 전에 먼저 MSA부터 간단히 살펴보는게 좋을 것 같습니다.MSAMSA란 Microservice Architecture의 약자로 독립적으로 배포가 가능한 서비스들로 구성된 아키텍처입니다.쉽게 말해 기존의 거대한 하나의 프로젝트로 되어있는 서비스가 아닌 각 도메인 별로 잘게 나누어진 프로젝트들이 모여 서비스를 제공하는 것입니다.MSA의 장점은 대략 적으로 정리하면 다음과 같습니다.단일 서비스의 장애가 전체 시스템에 영향을 미치지 않도록 합니다.필요에 따라 유연하게 서비스를 추가하거나 제거하는 등 확장에 용이합니다.독립적인 배포가 가능하기 때문에 빠르게 변화하는 시장에 대응할 수 있습니다.반면에 단점은 다음과 같습니다... 2024. 12. 2.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 마무리 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에 이어서 점수 계산과 화면 출력에 대해 구현해보겠습니다. 자세한 코드는 깃 허브 에 저장되어 있습니다. 이제 본격적으로 점수 계산 기능을 구현하겠습니다. 10개의 Frame이 자신의 점수를 가지고 있고, 점수에 따른 Frame의 상태 즉, STRIKE, SPAIRE 인지 아니면 단순히 평범하게 점수를 획득한 Frame인지에 대한 값을 가지게 됩니다. 먼저 Score 객체를 수정하겠습니다. private int firstShot; private int secondShot; private int finalShot; 기존의 Score 객체가 가지는 상태 값입니다. int 형 변수를 3개 사용하고 있습니다. 이 3개의 변수는 점수라는 하나의 공통.. 2020. 7. 6.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 구현하기(2) 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에 이어서 Frame 클래스를 인터페이스를 이용하여 추상화 시키는 작업을 진행하겠습니다. 자세한 코드는 깃 허브 에 저장되어 있습니다. Frame Interface public interface Frame { boolean hasTurn(); void deductTurn(); } 프레임은 공통적으로 투구의 횟수가 남았는지와 투구 후에 턴을 계산하는 메세지를 수신할 수 있습니다. NomalFrame public class NomalFrame implements Frame { private static final int NOMAL_FRAME = 2; private static final int TOTAL_PIN = 10; private int .. 2020. 6. 10.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 구현하기(1) 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에서는 객체간의 메시지들을 생각해보고 객체가 외부에 공개하는 인터페이스를 통해 메시지를 어떻게 수신할지 간단하게 작성해봤습니다. 이번 포스트부터는 기능의 구현을 통해 객체 간의 협력이 어떻게 이루어지는지 살펴보도록 하겠습니다. 먼저 Pin 클래스를 구현해보도록 하겠습니다. 한 프레임에 볼링 핀은 총 10개가 세워지게됩니다. 플레이어가 공을 투구하여 세워진 10개의 볼링 핀을 맞추게됩니다. 물론 못 맞출수도 있겠죠. 그리고, 각각의 볼링 핀 구현이 아닌 최대 10개까지, 즉 0개 이상의 볼링 핀을 구현하기 때문에 Pin -> Pins로 클래스 이름을 변경하겠습니다. public class Pins { private static final in.. 2020. 6. 5.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 메시지 생각하기 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에서 볼링 게임 점수판을 구현하기에 앞서 생각해야할 것들을 정리해봤습니다. 이번 포스트에서는 볼링 게임 점수판을 구현하기 위해 어떤 객체들이 있고, 어떤 메시지들이 필요한지 살펴보겠습니다. 다만 주의할 점은 설계는 구현 과정에서 변할 수 있다는 점과 구현 전에 생각해보는 설계에 너무 큰 공을 들이지는 않을 것이라는 점입니다. 먼저 볼링 게임 점수판에는 어떤 객체들이 있을지 생각해보겠습니다. 플레이어 첫번째로 볼링 게임을 플레이하는 플레이어가 있습니다. 플레이어는 투구를 해서 볼링 핀을 넘어뜨리게 됩니다. 지금 프로젝트는 볼링 게임 프로젝트가 아닌 볼링 게임 점수판 프로젝트이기 때문에 플레이어가 어떤 식으로 투구할지는 생략하겠습니다. 볼링 핀.. 2020. 5. 26.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 생각해보기 객체지향 연습하기 (Java) - 볼링 게임 점수판 객체지향의 사실과 오해를 읽고, 객체지향 패러다임을 좀 더 이해하고, 연습하기 위한 자바 프로젝트입니다. 프로젝트의 주제는 객체 지향 프로그래밍 연습하기 좋은 방법은? 이라는 글을 읽고 볼링 게임 점수판으로 결정했습니다. 틀린 점, 개선해야할 부분이 있다면 피드백 주시기 바랍니다. 아무래도 경험이 부족하다보니 '~~ 것 같습니다' 같은 표현이 많이 등장하는 점 양해부탁드립니다. 구현에 앞서 프로젝트에 대한 분석과 설계를 해보겠습니다. 가장 먼저 해야할 것은 볼링 게임의 점수가 어떤식으로 계산이 되는지 알아보는 것 입니다. 볼링 점수 계산법 위의 내용을 간략히 정리해보면 볼링 핀은 10개 이다. 프레임은 총 10번 진행된다. 플레이어는 한 프레임에 두번 .. 2020. 5. 19.