You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

웹프레임워크는 각기 다른 진영에서 상호 영향을 주며 발전을 해왔으며

사용방법의 차이일뿐, 모던한 웹 프레임워크는 거의 공통 요소를 가지고 있습니다.

  • WAS에서 분리되어 스탠드얼론 마이크로 서비스를 할수 있는 방법
  • 접근하는 하위 엔드포인트 라우터를 일괄적으로 정의하는 방법
  • DB를 포함하여 다양한 저장소를 핸들링하고 성능을 위해 캐싱을 할수 있는 방법
  • 다양한 뷰 템플릿엔진을 선택할수 있는 방법과 다양한 JS 프레임워크과 매끄럽게 연계하는방법
  • 웹소켓을 포함하여 실시간 스트리밍처리를 할수 있는방법

어느것이 더 우월하고 그럴것없이 하나만 잘 사용하면 나머지도 자연스레 잘 활용할수 있게됩니다.


다만 데이터 분석을위해 파이썬의 이점이 있다고 하면 django를 선택한다던지,

요즘 대세인 Spark 스칼라의 언어의 이점을 활용한다면 PlayFramework를 선택한다던지

웹소켓 브라우져호환이 중요하고 트랜스포터가 가장 잘지원되는 socket.io사용을 위해서 node.js 를 선택한다던지

특수한 목적을 위해서 어떠한 웹 프레임워크가 장점이 있을수 있습니다.


특수목적이 없고 공통요소의 스펙이 유사한 상태에서 웹프레임워크를 변환할 이유는 없습니다.

모던웹 프레임웍의 개발방법을 포함하여 공통 스펙은 거의 동일하기때문에 익숙한것을 잘 활용하면 되며

특수한 목적이 필요할경우 다른 방식으로 개발을 할수 있게

마이크로 웹서비스의 관점에서 다양한 웹 프레임워크를 정리하였습니다.

Recently Updated

Spring Boot


Routee 정의 방법

@Controller
@RequestMapping(path="/")   //이 클래스의 루트 Router를 설정한다.
public class UserSearchAPI {
}

Get Method 코드 샘플

    @GetMapping(path="/usersearch") //이 멤버함수의 하위 주소를 설정한다.
    public @ResponseBody List<User> userSearch(          
            @RequestParam String name,
            @RequestParam int pagenum,
            @RequestParam int pagesize
             
    ){
        PageRequest pageReq = new PageRequest(pagenum, pagesize);
        Page<User> userPage =userPageRepo.findByNameContaining(name,pageReq);    
        return userPage.getContent();      
    }


PlayFrameWork

  • 주언어:Java/Scala
  • Link : https://www.playframework.com/
  • Websocket: AkkaStream or Atmosphere
  • MVC : Twirl 포함됨 ( ASP.NET Razor 에서 고안됨)
  • 사용한 사례:상용 게임 로비 API 서비스에서 이것을 이용하여 개발함 PokerGame

Routee 정의 방법

GET     /rest/GameInfo GameInfo()


Get Method 코드 샘플

def GameInfo = Action {
    Ok( Json.toJson( "할롱") )
  }


서비스 실행코드

play run "9000"


Microsoft.Owin.Hosting(ASP.net)

  • 주언어:C# , Open소스이지만, Micorosoft의 네임스페이스에 포함된것으로 보아 IIS와는 별개로 MS에서 밀어주는듯
  • 변경사항 : Asp.net 에 표준으로 입성함 (IIS가 없어도 서비스가 가능함 )
  • Link : http://owin.org/
  • Wesocket:WesocketSharp,SuperWebSocket , SignalR 
  • MVC : ASP.net 에 IIS.Hosting을 밀어내고 이미 통합되었으며 ASP.net의 Razor를 포함하여 여러가지 선택가능


Routee 정의 방법

Get["/GameInfo/{tid}", runAsync: true] = async (_, token) => .......

Get Method 코드 샘플

public async Task<Response> GameInfo(int tourId){...}


서비스 실행코드

var host = new NancyHost(new Uri("http://localhost:9000");  //Host 여러가지 선택가능,Nancy는 한가지 호스팅 방법임(IIS 종속을 없애기위해 NancyHost를 선택함)
host.start()


Node.js

Routee 정의 방법

app.use('/', routes);

Get Method 코드 샘플

router.get('/GameInfo', function(req, res, next) {
  res.send('respond with a resource');
});


서비스 실행코드

server.listen(80, function () {
        console.log('Example app listening on port 80!');
});


  • No labels