개발일기

Laravel Framework의 구조 본문

프로그래밍 언어/PHP - Laravel

Laravel Framework의 구조

Flashback 2021. 6. 22. 17:40
728x90
반응형

라라벨 프레임워크

1. 프레임워크를 사용하는 이유는???

다양한 프로그래밍 언어를 사용하다보면 체계적인 구조를 잡고, 추후에 유지보수를 쉽게하기 위해 프레임워크를 사용하곤 한다. 그 중에서 PHP라는 언어를 대표하는 프레임워크에 라라벨 프레임워크가 있다.

PHP라는 언어가 하향세를 띄고 있고 대부분의 개발자들이 다른 언어를 사용하기 있기에 프레임워크의 기능이 상대적으로 빈약할 것이라고 추측하였으나, 의외로 많은 기능을 탑제하고 있어 놀랐다. API 통신, 리액트, 뷰 등 프론트3대장에 관한 기술적인 부분도 지원을 하기에 한 번 쯤은 관심을 가지고 사용해봄직한 것 같다.

 

 

2. MVC패턴

라라벨은 기본적으로 MVC패턴 구조로 이루어져 있다.

Model - View - Controller

MVC패턴에 대해 간략하게 설명하자면, 사용자가 컨트롤러를 통해 요청을 하면 모델을 통해 데이터를 가져온 후, 해당되는 데이터를 컨트롤러에 전달해 준다. 내용을 전달받은 컨트롤러를 뷰에 해당하는 내용들을 전달해주고, 사용자는 요청한 것의 결과를 뷰를 통해 확인할 수 있다.

 

MVC패턴을 사용하는 이유는 3가지의 부분으로 분리하여 해당하는 부분을 따로따로 처리할 수 있기 때문이다. 이와같이 분리를 하게 되면 에러가 어디서 발생하였는지 추적이 쉬우며, 추후에 유지보수를 진행할 때도 분리된 부분을 살펴보며 원활하게 진행할 수 있다.

 

 

3. 라라벨 프레임워크의 구조

라라벨 8.0 버전 기준 프레임워크 구조 (  tests 그냥 만든거다.)

대략 구조는 이러하다. 중요한 부분만 설명하겠다.

 

app에는 백엔드 소스코드가 담겨져 있는 컨트롤러가 존재한다. 이 부분을 통해 비즈니스 로직을 구현하게 된다. 또한 Model이라는 폴더가 포함되어져 있다. MVC패턴 중에 M과 C가 모두 이 폴더에 들어있는 것이다. 모델이란 데이터베이스의 테이블명과 기본키등의 간략한 정보를 입력한 후, 나중에 컨트롤러를 통해 모델을 호출하게 되면 입력한 정보들을 바탕으로 해당 테이블의 내용을 불러오는 기능을 한다. 쉽게 말하면 모델파일에 테이블명과 기본키를 기술한 후, 컨트롤러에서 해당 모델을 호출할 경우, 그에 따른 테이블 select, update, delete, insert 등으 테이블 조작을 할 수 있는 것이다. 

 

config에는 인증, 세션 등의 애플리케이션 설정파일들이 존재한다.

 

database에는 DB마이그레이션의 내용이 존재한다. php파일에 테이블명, 컬럼명 등을 기술한 후, 실행하게 되면 해당되는 내용을 기반으로 테이블이 생성되고 수정되는 기능을 한다. 마이그레이션을 통해 데이터베이스의 테이블 버전 관리를 진행할 수 있으므로 유용한 기능이 탑제되어 있다고 볼 수 있다. 

 

public에는 js, css, font 등의 정적 파일들이 존재한다.

 

resources에는 public과 마찬가지로 js, css, font 등의 파일을 보관할 수 있으나 가장 중요한 view가 포함되어져 있다는 점이 다르다. MVC패턴 중에서 View를 담당하는 내용이 이 폴더에 포함되어져 있다. 라라벨에서 지원하는 템플릿 엔진인 블레이드 템플릿으로 뷰파일이 구성되어져 있다.

 

route에는 URL링크에 컨트롤러 함수를 부여하거나 화면 URL를 직접적으로 부여할 수 있다. route안에는 web.php라는 파일이 존재한다. 이동하는 URL 주소들을 정의한 후, 콜백함수를 등록하여 해당되는 컨트롤러의 함수를 실행할 수 있도록 하는 기능을 한다. 즉, 페이지 이동, 게시글 작성 등의 URL이동 작업이 필요하거나 API를 호출하는 등의 행동을 할 때, 이 라우트를 거친 후 함수가 실행되게 된다. 즉 컨트롤러와 뷰를 연결해주는 매개체 역활을 한다고 할 수 있다.

 

 

라라벨 프레임워크의 구조에 대해 간략하게 살펴보았다. 라라벨 프레임워크를 관통하는 MVC패턴에 대한 내용을 학습한 후, 프레임워크의 흐름을 이해하면 쉽게 개발을 진행할 수 있다. 이러한 것이 바로 프레임워크의 장점이자 매력이다.

 

https://laravel.kr/docs/8.x

 

라라벨 8.x

라라벨 한글 메뉴얼 8.x

laravel.kr

https://laravel.com/docs/8.x/readme

 

Laravel Documentation - Laravel - The PHP Framework For Web Artisans

Become a Laravel Partner Laravel Partners are elite shops providing top-notch Laravel development and consulting. Each of our partners can help you craft a beautiful, well-architected project.

laravel.com

프레임워크에 포함되어져 있는 기술들과 사용법들이 공식문서에 잘 적혀있다. 공식문서를 토대로 필요한 부분을 참조하여 개발을 하면 차근차근 개발을 진행할 수 있을 것이다.

 

 

 

다음 포스팅에는 블레이드 템플릿에 대한 내용을 다뤄볼 것 이다. 라라벨 프레임워크를 사용할 때 권장되는 템플릿엔진이기 때문이다. 라라벨과 잘 호환이 되기 때문에 2~3 챕터로 나눠서 간략하게 알아볼 것이다.

728x90
반응형
Comments