더북(TheBook)

3.1.5 예제 웹 페이지

사용자가 보내고 받은 메시지의 총 수를 보여주는 새로운 통계 탭을 구현하라는 지시를 받았다고 가정해 보자. 백엔드에서의 단순한 SQL 쿼리는 다음과 같다.

SELECT COUNT(*) as Sent FROM Messages WHERE FromId=@userId
SELECT COUNT(*) as Received FROM Messages WHERE ToId=@userId

API 계층에서 이러한 쿼리를 실행할 수 있다. ASP.NET 코어나 웹 개발, SQL에 익숙하지 않더라도 모바일 앱으로 반환할 모델을 정의하는 코드 3-1 정도는 쉽게 이해할 수 있을 것이다. 모델을 자동으로 JSON 형식으로 직렬화한다. 그런 다음 SQL 서버 데이터베이스를 위한 연결 문자열을 가져온다. 이 문자열로 데이터베이스에 연결하고 쿼리를 실행한 다음 결과를 반환한다.

코드 3-1의 StatsController 클래스는 웹 처리에 대한 추상화이다. 여기에는 수신된 쿼리 변수가 함수 인수로 있고 URL은 컨트롤러 이름으로 정의되며 결과는 객체로 반환된다. 따라서 코드 3-1의 https://yourwebdomain/Stats/Get?userId=123과 같은 URL을 사용하면 MVC 인프라가 쿼리 변수를 함수 인수에 매핑하고, 반환된 객체를 JSON 결과에 자동으로 매핑한다. URL, 쿼리 문자열, HTTP 헤더, JSON 직렬화를 실제로 처리하지 않아도 되기 때문에 웹 처리 코드를 작성하는 것이 훨씬 간단하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.