Versions Compared

Key

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

...

최근 핫한 스칼라/언랭/파이썬 등에서 위와같은 컨셉이  나왔고 그것을 이용하는것만이 모던한 개발 이고나머지는 아니라고 잘못된 정의를 내리는 경우를 보았다.이라는 정의는 하지말자

템플릿/람다/제네릭/함수형 그 컨셉이 메니지드 언어에 존재하지도 았을때-예를 들면 자바 4혹은 닷넷 프레임웍 2.0 이하시절

이미 오래전, 10년도 더 전에 C++에서 시도 되었고  Boost(https://www.boost.org/)로 집약이 되어있다.


다만 기존언어를 형태를 유지한체, 새로운개념이 적용되니 사용성에서 약간 불편하며

다시 작성되어진 언어에서는 과감한 버젼업을 통해 비교적, 평셔널,람다등을 우아하게 사용할수 있게됨으로 부분적으로 유행을 타고 있습니다.


만약 함수형+스트리밍을 통해 서비스를 처리하는 방식에 도전하고 싶다면

akka http 에서 그 컨셉이 잘 정리되었으니 참고가 될듯하다.  -akka는 비교적 모던한 개발방식뿐아니라, 앞으로 유행될 내용에대해 컨셉을 잘정리하면서 빨리적용되는 편이다. 

+스트리밍(리액티브)을 모두 잘사용할수 있는 방식으로 개발을 하고 싶다고하면

Scala + Playframework를 추천해본다.

Scala언어는 내가아는한 언어의 장점이외에 Spark를 통해 함수형언어의 장점을 빅데이터를 처리하는곳에 유행시켰고

Akka라는 분산 메시지처리를 가지고 있으며,  또한 내가 아는 어떠한 웹프레임워크보다 성능을 위한 디테일한 스레풀설정이 가능하다.

그리고 이것은 Akka Http라는 녀석으로 이어진다. 

하지만, 웹서비스에서 Java코드를 사용하는 Spring Boot(의존성자동주입과,어노테이션의 천국)이 여전히 안정적이고

...


하지만, 왜 웹서비스시장에 이러한것이 주류가 되지 못하고 , Spring Boot의 점유율이 높은가? 를 분석해볼 필요가 있다.

왜 스프링에 두꺼운 사용자층이 이탈하지않고 머무는지에 대해 질문을 던질 필요가 있다. 단순하게 JAVA여서는 아닌것같다.

오픈스택의 단점이 무엇인가? 유용한 오픈소스를 발견하고 추가하고,조합이 되었을때 의존성 문제를 파악해야 한다.

오픈소스를 제약할 어떠한 단체가 없기때문이다. 조합에 따른 책임은  그것을 사용하는 사용자가 전담해야하는부분이다.

그리고 그러한 문제는 빌드타임에 발생하는것이아니고 런타임에 발생할수 있기때문에 골치아픈 문제가 될수도 있다.

하지만 그러한 조합의 안정성을 검증하고 웹스택에 안정적으로 사용할수 있게끔 그룹화를 시켜주는 똑똑한 단체가 있고 프레임워크를 내놓았다고하면

이야기가 달라진다. Spring Boot은 정확하게 웹에서 쓸만한 오픈스택을 테스트되고 안정적인 버젼만을 조합하여 그것을 사용할수 있는 방법을

프레임워크를 통해 단일화시키고 제공해주기때문이다,또한 Boot를 통한 웹서비스의 경량화에도 신경쓰고 있기때문이며

WAS에 벚어나려는 시도가 최근 모던웹의 공통 관심사이고 , MS역시 정신을 차리고 윈도우 서버를 과감히 포기하면서 닷넷코어를 밀고 있는 이유도 동일하며

Spring Boot 의 성공한 전략을 따라가고 있다라고 볼수있다. ( Java 8부터는 Future및 Stream을 포함하여 쓸만한 언어스펙을 가지고 있기때문에 이제는 큰 단점이 되지 못한다.)


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

...