반응형

 

Laravel 애플리케이션의 생명주기를 여행에 비유해 볼까요? 이 여행은 사용자가 웹사이트에 접속하는 순간부터 시작됩니다.

 


1. 여행의 시작

    - 사용자가 웹사이트 주소를 입력하면, 그 요청이 'Public/index.php' 파일에 도착합니다. 이것은 여행의 출발점입니다.

2. 짐 꾸리기

    - 애플리케이션은 필요한 모든 것을 준비합니다. 이과정을 '부트스트래핑'이라고 합니다.

3. 여행 가이드 만나기

    - 요청은 HTTP 커널이라는 '여행 가이드'를 만납니다. 이 가이드는 요청이 어디로 가야 할지 안내해 줍니다.

4. 여행 준비 점검

    - 서비스 프로바이더들이 데이터베이스 연결, 보안 설정 등 여행에 필요한 모든 것을 점검합니다. 

5. 길 찾기

    - 라우터가 요청이 가야 할 정확한 목적지(컨트롤러나 특정 기능)를 찾아줍니다.

6. 검문소 통과

    - 요청은 미들웨어라는 여어 '검문소'를 통과합니다. 각 검문소는 요청이 적절한지 확인합니다.

7. 목적지 도착

    - 요청이 컨트롤러에 도착합니다. 컨트롤러는 요청을 처리하고 필요한 작업을 수행합니다.

8. 응답 준비

    - 컨트롤러가 작업을 마치면, 사용자에게 보낼 응답을 준비합니다.

9. 여행의 종료

    - 준비된 응답이 사용자의 브라우저로 전송되며, 여행이 끝납니다.


 

이렇게 Laravel은 사용자의 요청을 받아서 처리하고, 그 결과를 다시 사용자에게 보내는 전체 과정을 체계적으로 관리합니다.

이 구조 덕분에 개발자는 각 단계에서 필요한 기능을 쉽게 추가하거나 수정할 수 있습니다.

반응형

'Web Programming > Laravel' 카테고리의 다른 글

[LARAVEL] 라라벨 디렉터리 구조  (0) 2021.10.18
반응형

- APP
:: 어플리케이션에 필요한 핵심코드들이 있는 디렉토리

- BOOTSTRAP
:: app.php와 cache디렉토리가 있다.
:: app.php는 프레임워크의 부트스트래핑을 담당, cache 디렉토리는 라우트나 서비스 캐시파일과 같은 퍼포먼스 향상을 위해 생성

- CONFIG
:: 애플리케이션의 구성/설정 파일이 있다

- DATABASE
:: 데이터베이스 마이그레이션 파일, 모델 팩토링, 시딩파일들이 있다
:: 이 디렉토리를 SQLite 데이터베이스가 저장되는 곳으로 사용 가능

- PUBLIC
:: 애플리케이션에 진입하는 모든 request-요청들에 대한 진입점 역할과 오토로딩을 설정하는 index.php 파일을 가지고 있다.
:: 이미지나 자바스크립트, CSS와 같은 asset파일들을도 포함되어 있다.

- Resources
:: 뷰 파일과 LESS, SASS, 자바스크립트와 같이 컴파일 되기 전의 asset파일들을 가지고 있다.
:: 다국어파일도 있다.

- Routes
:: 애플리케이션에서 정의된 모든 라우트들이 있다
:: 기본적으로 라라벨에서 제공하는 web.php, api.php, console.php 그리고 channels.php 파일이 포함
:: web.php 파일은 RouteServiceProvider 의 web 미들웨어 그룹안에 포함되는 라우트들을 포함하고 있으며, 세션 상태, CSRF 보호, 쿠키 암호화 기능을 제공
:: api.php 파일은 RouteServiceProvider 의 api 미들웨어 그룹안에 포함되는 라우트들을 포함하고 있으며, 접속 속도 제한 기능을 제공한다. 
이 라우트들은 상태를 저장하지 않는것을 대상으로 하며 따라서 requests-요청들이 애플리케이션에 진입하면 이 라우트들을 통해서 토큰을 통해서 인증되고, 세션 상태에 엑세스 할 수 없다.
:: console.php 파일은 클로저 기반의 명령어들을 정의해 놓을 수 있는 파일이다.
각각의 클로저는 각각의 명령어 IO 메소드와 상호작용하는 간단한 명령어를 구현하는 명령어 인스턴스에 바인드 되어 있습니다. 이 파일에는 HTTP 라우트가 정의되어 있지는 않지만, 애플리케이션에 콘솔 기반의 진입점(라우트와 비슷하게)을 정의한다.
:: channels.php 파일은 애플리케이션에서 지원하는 모든 이벤트 브로드캐스팅 채널을 등록하는 파일이다.

- Storage
:: 블레이트 템플릿, 파일 기반의 세션, 파일 캐시 그리고 기타 프레임워크에서 생성된 파일들이 있다
:: app, framework 그리고 logs 디렉토리로 구성되어 있다
:: app 디렉토리는 애플리케이션에 의해서 생성된 파일을 저장하는데 사용
:: framework 디렉토리는 프레임워크가 생성한 파일들과 캐시를 저장하는데 사용
:: logs 디렉토리는 애플리케이션의 로그 파일들을 가지고 있다.

- Tests
:: 테스트관련 디렉토리
:: 별다른 설정없이 PHPUnit 테스트의 예제가 제공
:: 각각의 테스트 클래스는 Test 라는 단어가 붙어 있어야 합니다. phpunit 또는 php vendor/bin/phpunit 명령어를 통해서 테스트를 실행할 수 있다.

- Vendor
:: Composer의 의존성 폴더

반응형

'Web Programming > Laravel' 카테고리의 다른 글

[LARAVEL] 이해하기 쉬운 Laravel의 생명주기  (0) 2024.12.13

+ Recent posts