개발자 영어

1.1 액션, 컨트롤러, Results

토픽 개발자 영어 > 실전! 숟가락 공동번역 > 번역한 꼭지묶음! > (중) 플레이 2.0

액션이란 무엇일까요?

플레이 어플리케이션에서 요청(request)하는 것은 대부분 액션이 처리합니다.

액션이란 기본적으로 자바 메서드입니다. 액션은 요청(request)의 매개변수를 처리하고, 클라이언트에 보낼 결과를 만들어냅다.

public static Result index() {
  return ok("Got request " + request() + "!");
}

액션은  play.mvc.Result 값을 반환합니다.  play.mvc.Result 값은 웹 클라이언트에게 보낼 HTTP 응답을 나타냅니다. 위 예제에서  oktext/plain 응답 본문을 포함하는 200 OK 응답을 만들어냅니다.

컨트롤러(Controllers)

컨트롤러는 액션 메서드를 몇 개 포함하는  play.mvc.Controller를 상속한 클래스입니다.

액션을 정의하는 가장 간단한 방법은 무엇일까요? Result 값을 반환하는 매개변수를 포함하지 않는 정적 메서드를 쓰는 것입니다:

public static Result index() {
  return ok("It works!");
}

액션 메서드는 매개변수를 가질 수도 있습니다:

public static Result index(String name) {
  return ok("Hello" + name);
}

 Router는 이 매개변수를 해석하고, 요청 URL에서 매개변수 값을 채웁니다. URL 경로 또는 URL 질의 문자열(query string)에서 매개변수 값을 추출합니다.

결과(Results)

간단한 result부터 살펴 봅시다 : HTTP 는 상태를 나타내는 코드(status code)를 만들어내며, 상태 코드는 웹 클라이언트에게 보낼 HTTP 헤더와 본문(body)로 구성되어 있습니다.

이런 결과값(result)은 play.mvc.Result에 정의되어 있으며,  play.mvc.Results 클래스는 표준 HTTP 결과값을 만들어주는 헬퍼를 제공합니다. 헬퍼의 예로는, 이전 섹션에서 사용했던 ok 메서드가 있습니다:

public static Result index() {
  return ok("Hello world!");
}

다음은 몇 가지 result를 만들어내는 예입니다:

Result ok = ok("Hello world!");
Result notFound = notFound();
Result pageNotFound = notFound("<h1>페이지가 없습니다</h1>").as("text/html");
Result badRequest = badRequest(views.html.form.render(formWithErrors));
Result oops = internalServerError("웁스!");
Result anyStatus = status(488, "응답유형이 이상합니다.");

헬퍼는  play.mvc.Results 클래스 안에서 모두 볼 수 있습니다.

Redirects도 간단한 results입니다.

브라우저를 새로운 URL로 리다이렉트시키는 것은 다른 종류의 result입니다. 하지만 이러한 result 유형에는 응답의 본문(response body) 부분이 없습니다.

redirect result를 만들어내는데 도움을 주는 헬퍼들이 몇몇 있습니다:

public static Result index() {
  return redirect("/user/home");
}

응답 유형  303 SEE_OTHER를 사용하는 것이 기본입니다. 하지만 상태 코드를 좀더 구체적으로 지정해주어도 됩니다:

public static Result index() {

댓글

댓글 본문