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

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

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

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


보너스로 아래 내용을 도전할 예정입니다.

  • 도커환경을 활용
  • 유닛테스트를 활용하고 각서비스를 모니터링하는 방법
  • ORM 과 AKKA를 활용한 메시지기반 도메인 중심의 마이크로 서비스
  • 분산서비스에 적합한 구조적용
  • 다른 플랫폼의 상호연동
  • API Document의 자동화



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를 포함하여 여러가지 선택가능

참고: 리눅스에서 사용가능한 .net core 2.x 을 다룰예정입니다.

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