Home 라라벨로 배우는 php 웹 프로그래밍
Post
Cancel

라라벨로 배우는 php 웹 프로그래밍

라라벨로 배우는 실전 PHP 웹 프로그래밍

PART 1 라라벨 입문

12. 즉시 로드와 페이징

프로그래머는 항상 극단적인 상황을 고려하며 코드를 작성해야 한다. 웹 개발에서 가장 극단적인 상황 중 하나가 큰 데이터다. 일억 개의 데이터베이스 레코드에 대고 SELECT * FROM big_table where foo LIKE ‘%bar%’ 같은 쿼리를 날렸다거나, 운이 좋아 쿼리 결과가 천건만 나옸는데 이 결롸를 뷰에 바인딩해서 웹 브라우저로 내보낸다고 상상해 보자. 두 경우 모두 컴퓨터 및 네트워크 자원을 많이 사용할 뿐만 아니라, 결과를 얻거나 화면을 출력하는 데 오랜 시간이 걸린다. 문제 해결은 인프라나 데이터페이스 등 어느 한 부분에서만 한다고 다 되는 것이 아니다. 이때 라라벨이 할 수 있는 조치는 즉시 로드와 페이징이다. 극단적인 상황을 머릿속에 그려 보며 개발하는 것은 좋은 습관이다.

12.1 즉시 로드

천 건의 데이터를 뷰에 표현할 때, 연결된 테이블 값을 가져와야 할 수도 있다. 어떤 시나리오인지 경험해 보자

routes/web.php

1
2
3
4
5
6
7
8
9
10
11
<?php

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index');

Route::resource('articles', 'ArticlesController');

app/Http/Controllers/ArticlesController.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class ArticlesController extends Controller
{
     /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $articles = \App\Article::get();

        return view('articles.index',compact('articles'));
    }
}

코드 12-3을 참고해서 포럼 글 목록을 표시할 뷰를 만들자. 9장을 공부할 때, 라라벨이 자동으로 만든 마스터 레이아웃()을 상속한다.

This post is licensed under CC BY 4.0 by the author.

전자정부트렌젝션

자바스터디 12주차

Comments powered by Disqus.

Trending Tags