Parallel Programming and Applicative in Scala
Parallel Programming and Applicative in Scala Monolithic 아키텍쳐로 개발하기 Monolithic 아키택쳐로 개발시에는 일반적으로 하나의 저장소만 고려해야 하는 경우가 많았습니다. Monolithic 아키텍쳐를 사용하면 편리한점이 많습니다. 코드가 한곳에 모여 있고 데이터가 한곳에 집중이 되어 있다는 것입니다. 일반적인 정규화 된 테이블에서 상품과 관련된 정보를 가져온다고 가정해보겠습니다. 데이터는 여러개의 테이블로 쪼개져 있기 때문에 필요한 데이터를 조합이 필요하다면 아래와 같이 SQL을 이용해서 여러개의 테이블을 join해서 데이터를 조합하여 가져올수 있습니다. SELECT * FROM items, catalogs, wishes, categories, details, certificiations WHERE items.id = ? AND items.id = catalogs.itemId AND items.id = wishes.itemId … 단순함을 가지고 있는 Monolithic은 장점도 많이 있지만 단점이 많은 개발 방법론입니다. 하나의 코드 베이스안에서 모든것이 관리 되기 때문에 경계선이 애매하고 많은 컴포넌트가 서로 의존을 가지고 강결함을 이루고 있게 됩니다. 코드가 늘어남에 따라 시스템은 무거워지고 조금만 고쳐도 여러곳에서 side effect가 생기며 외부 변화에 빠르게 대처하지 못하게 됩니다. 이런 단점을 극복하기 위해서 마이크로 서비스란 개념이 2011년도에 [ more… ]