라라벨 게시판 만들기 - 라라벨 기초 (라라벨 동작원리, 라우트)

참고
https://velog.io/@seo_kk/Laravel-life-cycle
https://blog.naver.com/sksk3479/221056398790

라라벨이란 ??

~~ 란 으로 시작하는 글 별로 안좋아하지만 이게 제일 정석인듯 하다.
각설하고 라라벨은 PHP언어를 사용하는 풀스텍 웹 프레임워크이며 오픈소스이다.
Ruby의 Ruby on Rails의 영향을 받아 설계되었다고하며. 개발 생산성을 높이는 방향으로 만들어졌다.
써보니 생상성 증가 맞다 ㅇㅇ
편리한 개발환경 구축툴, cli(aratisan), ORM (eloquent)를 제공한다. 지속적으로 업데이트 되고있는 php에서는
가장 많이 사용하는 프레임워크!!
국내에서는 OP.GG , 마켓컬리 웹에서 사용중이다.

라라벨의 특징, 장점

1.MVC 패턴의 아키텍쳐이다.
2.BLADE 템플릿 (Frontend)엔진을 제공한다. react나 vue도 지원한다.
3.액티브레코드 패턴의 ORM인 Eloquent와 쿼리빌더를제공한다 => 첫 ORM이었는데 혁신이었다.(편리함)
4.미들웨어를 통한 AOP 지원 AOP는 spring에서 자주나오는 관점지향 프로그래밍인데. 공통적으로 사용하는 기능과
핵심적으로 객체에서 사용하는 기능을 나누는것이다. ex)로그인 여부 체크 등이 미들웨어로사용된다. 추후 설명할게
5.CLI 기반의 Artisan 제공, Artisan 명령어를 이용하여 마이그레이션 생성 모델생성 등 여러가지 작업을 단축명령어로
만들수가 있다. 나는 사용하면서 굉장히 편리했다

  • 독립서버가 아닌 웹호스팅을 이용하면 쉘 기능에 제약을 받는다고 한다.

6.파사드를 구현해서 라라벨 내장클래스 사용시 의존성 주입을 쉽게 할수있다 => 사실 내가 의존성 주입에 대한 개념이 아직없다.
지송하지만 나중에 알게되면 추가하겠음 내 코드 어딘가 사용되었을지도 모르지만 이 개념을 알고 적용한것은 아닐것이다.
7.http 요청을 route에서 받아서 처리한다.
8.보안이 훌륭하다 (잘모름)

Route 기본

라라벨을 공부하면서 가장 처음본 개념이다. Router를 아시는가 ? 라우터는 네트워크 장비의 일종으로 주요 역할은 다른
네트워크 간의 중계, 전송경로 설정이다.
라라벨에서 Route는 HTTP 요청을 모두 라우터에서 받아서 지정된 요청명과 요청메소드(GET,POST등)에따라 처리한다.
주로 리다이렉트, Model의 정보 (데이터) 를 반환 하는등의 동작을한다.

Route::get('/hello', function () {
    return 'Hello, World!';
}); 

위의 코드는 /hello로 get 요청이 왔을때 Hello, World를 리턴한다. 사실 위의 코드같은경우는 잘없고
컨트롤러에 연결되어 어떠한 동작을 수행한다. 컨트롤러는 각 모델별 메소드 같은 느낌으로 이해만해두자
밑에서 설명해보겠다.

라우트는 클라이언트의 요청에따라 특정한 동작을 수행한다는것만 인지하자!

Route::resource('boards', BoardController::class);
//RESTful Model 라우터 

Route::post('/comments/update', [CommentController::class, 'update'])->name('comment.update');
Route::delete('/comments/delete', [CommentController::class, 'delete'])->name('comment.delete');
일반 라우터 

라우터는 Route::메소드(GET,POST)('URI', 컨트롤러 or 클로저)->name('라우트명');
으로 주로 선언된다. ->name은 이 라우트의 이름을 설정하는것인데

 <a href="{{ route('register') }}">회원가입</a>

이런식으로 사용가능하다.

RESTful URL 패턴

resource는 RESTful 모델 api를 구현하는것을 도와주는 라우트 명령어이다. resource로 board컨트롤러에연결하게되면
CRUD에 관련된 index,delete,store,update등 여러 메소드가 자동으로 생성되고 연결된다.

GET /chirps: index 액션에 자동으로 연결됩니다.
POST /chirps: store 액션에 자동으로 연결됩니다.
GET /chirps/create: create 액션에 자동으로 연결됩니다.
GET /chirps/{id}: show 액션에 자동으로 연결됩니다.
GET /chirps/{id}/edit: edit 액션에 자동으로 연결됩니다.
PUT/PATCH /chirps/{id}: update 액션에 자동으로 연결됩니다.
DELETE /chirps/{id}: destroy 액션에 자동으로 연결됩니다

라라벨의 동작원리

https://velog.io/@seo_kk/Laravel-life-cycle
이글이 너무좋은글이기에 이글을 보는것을 추천드립니다.
웹요청부터 bootstrap response까지 이해하게됨