Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

4세대 : 1~3세대의 장점을  잘 융합하는 마이크로서비스의 시대

...

최근에는 다양한 최근에 다양한 마이크로  서비스를 통해 분산처리되고 관리가 되는 어플리케이션 구성에 고민을 하고 있으며

시대에따라 달라 질수도 있지만 그러한 관점에서 모던한 개발에서 필요한것이 무엇인가? 를 정의를 할필요가 있다고 봅니다.

예를 들면 도메인 처리는 여전히 OOP가 안정적이고  분석은 함수형에 이점이 있으며  배치는 절차형이 안정적이다.

어떠한 기준을 잡고 언어와 플랫폼을 선택할수 있어야합니다. 그리고 느리게 발전하는 메이져 언어에서도 일부 도입이 되었다란 사실입니다.


어떠한 언어나 플랫폼이 아니라, 우리 도메인에서 필요한게 무엇이고? 개발자에게 필요한 역량이 무엇인가를  정리하고 탐구하는것입니다.

이미 잘하고 있는 CRUD만 하는 방식을 최신언어 최신 플랫폼으로 변경하는것은 다시 작성하는것은 의미가 없으며 모던한 개발이 아니란점입니다. 

모던한 개발은 대용량 처리를위해 CQRS,이벤트소싱,클러스터처리등 언어에 상관없이 설계할수 있고 활용할수 있는것을 의미합니다.

그 과정에서 람다를 사용하고 함수형을 이용하는것은 옵션이며 도커화를 하여 통합 테스트환경구축도 모던개발의 일부일수 있습니다.

 , 최신 언어기법만을 사용한것이 모던한 개발을 의미 하지 않습니다.


모던한 개발의 도전과제

  • 도메인 객체인 엔티티,Aggregate,Repository를 OOP를 통해 분리하는 방법 (OOP설계능력 향상을 통한 도메인처리)
  • 대용량 처리에서 역압력 사용을 위한 스트림의 활용과 메시지큐의 활용 ( Akka,Kafka 등등)
  • 분산처리를 위한 라우팅설계및 클러스터활용과 다른 플랫폼을 상호 연동하는 방법
  • 전통적인 예외처리를 개선하는 패러다임의 활용 ( Let it Crash By Supervisor )
  • 통합 다양한 테스트 개발환경 구축과 유닛테스트 커버리지를 올릴수 있는 방안등등방안및 지속적 통합(도커CI)


5세대 : 클라우드의 전성기

 도메인과 관련한 룰생성,API생성을 포함하여 마이크로서비스를 오케스트라를 할수 있는 방법이 이미 있으며

더 성숙을 한다고 하면 응용레벨의 코딩이 사라지고, UI에서 드래그앤 드랍을 하는 서비스가 성공하는 시대가 올지도 모르며

...

분산처리를 다루기위한 또 어떠한 신기방기한 녀석이 나올지도 모른다. 클라우드에는 우리가 필요로하는 모든것이 갖추어지기 시작했으며, 몇가지 개발이 필요했던 인프라들을 그냥 가져다 쓸수가 있으며

도커의 발전과 함께 베어메탈의 시대에서 급격히 변화하고 있습니다. 


지금 시대에 개발자의 지식탐구 방향은 무엇인가방향을 어떻게 할것인가? 를 고민해볼필요가 있으며

언어와 플랫폼은 어느정도 성숙했기때문에, 무엇을 선택하던 팀이 잘하는것을 사용하면되며

여기에 투자하던 시간을  시대가 변해도 가치가 유지되는것에 집중을 해야한다고 보며 다음 주제로 이어집니다.

Next :어디까지 구현하고 설계할것인가(온프레미스) VS 비용을 지불하고 잘 가져다 사용할것인가(AWS)?

고민을 하게 됩니다. 무엇이되든 가치가 변하지 않는 핵심은 언어및 플랫폼에 종속적이지 않다는것입니다.

 

Next : 무엇이 중헌디?

...