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

일부 프로그래머는 프레임워크를 사용하는 것에 열렬히 반대합니다. 프레임워크가 부풀려지고 느리며 배우기 어렵다고 주장합니다. 그들은 프레임워크가 불필요하며 그들 없이 더 나은 코드를 작성할 수 있다고 말합니다. 프레임워크를 사용하는 단점에 대해 몇 가지 타당한 이유가 있습니다. 그러나 프레임워크를 사용하는 장점도 많이 있습니다.

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

프레임워크를 사용해야 하는 몇 가지 이유는 다음과 같습니다:

  • 빠른 개발: 프레임워크는 많은 기능을 제공합니다. 이는 웹 애플리케이션을 빠르게 구축할 수 있다는 것을 의미합니다. 프레임워크가 필요한 기능을 많이 제공하기 때문에 많은 코드를 작성할 필요가 없습니다.
  • 일관성: 프레임워크는 일관된 방식으로 작업하는 방법을 제공합니다. 이는 코드가 작동하는 방식을 이해하기 쉽게 만들고 다른 개발자가 코드를 이해하기 쉽게 만듭니다. 팀 개발자와 함께 작업하는 경우 스크립트별로 작업하는 경우 스크립트 간의 일관성을 잃을 수 있습니다.
  • 보안: 프레임워크는 보안 기능을 제공하여 일반적인 보안 위협으로부터 웹 애플리케이션을 보호하는 데 도움을 줍니다. 이는 프레임워크가 보안에 대해 크게 걱정할 필요가 없다는 것을 의미합니다. 프레임워크가 많은 부분을 처리하기 때문입니다.
  • 커뮤니티: 프레임워크에는 프레임워크에 기여하는 개발자들의 큰 커뮤니티가 있습니다. 이는 다른 개발자들이 질문이나 문제가 있을 때 다른 개발자로부터 도움을 받을 수 있다는 것을 의미합니다. 또한 프레임워크 사용 방법을 배우는 데 도움이 되는 많은 리소스가 있다는 것을 의미합니다.
  • 최선의 방법: 프레임워크는 최상의 방법으로 구축됩니다. 이는 프레임워크에서 배울 수 있고 자신의 코드에서 동일한 최상의 방법을 사용할 수 있다는 것을 의미합니다. 이는 당신을 더 나은 프로그래머로 만들 수 있습니다. 때로는 알지 못하는 것이 있을 수 있으며 그것이 마지막에 당신을 과중하게 할 수 있습니다.
  • 확장성: 프레임워크는 확장할 수 있도록 설계되었습니다. 이는 프레임워크에 자신의 기능을 추가할 수 있다는 것을 의미합니다. 이를 통해 당신은 특정한 필요에 맞는 웹 애플리케이션을 구축할 수 있습니다.

Flight은 일종의 마이크로 프레임워크입니다. 이는 작고 가벼워서 많은 기능을 제공하지 않습니다. Laravel이나 Symfony와 같은 큰 프레임워크만큼의 기능을 제공하지는 않습니다. 그러나 웹 애플리케이션을 구축하는 데 필요한 많은 기능을 제공합니다. 또한 학습과 사용이 쉽습니다. 이는 빠르고 쉽게 웹 애플리케이션을 구축하는 좋은 선택입니다. 프레임워크가 처음이라면, Flight는 시작하기에 좋은 초보자 프레임워크입니다. 프레임워크를 사용하는 장점에 대해 배우며 복잡성이 너무 많지 않도록 도와줍니다. Flight 경험 후에는 Laravel이나 Symfony와 같이 더 복잡한 프레임워크로 전환하기가 쉬워질 것입니다만, 여전히 Flight로도 강력하고 견고한 애플리케이션을 만들 수 있습니다.

라우팅이란 무엇인가?

라우팅은 Flight 프레임워크의 핵심이지만 정확히 무엇일까요? 라우팅은 URL을 가져와 코드에서 특정 함수와 일치시키는 과정입니다. 요청된 URL에 따라 웹사이트가 다른 작업을 수행할 수 있습니다. 예를 들어, '/user/1234'를 방문하면 사용자 프로필을 보여줄 수 있지만 '/users'를 방문하면 모든 사용자 목록을 표시할지도 모릅니다. 모두 라우팅을 통해 이루어집니다.

이것은 다음과 같이 작동할 수 있습니다:

  • 사용자가 브라우저를 열고 http://example.com/user/1234를 입력합니다.
  • 서버가 요청을 받아 URL을 확인하고 Flight 응용 프로그램 코드로 전달합니다.
  • 예를 들어 Flight 코드에 Flight::route('/user/@id', [ 'UserController', 'viewUserProfile' ]);와 같은 것이 있다고 가정해 봅시다. Flight 응용 프로그램 코드는 URL을 확인하고 정의한 경로와 일치하는 것을 확인한 다음 해당 경로에 대해 정의한 코드를 실행합니다.
  • 그런 다음 Flight 라우터는 'UserController' 클래스의 'viewUserProfile($id)' 메서드를 호출하여 메서드 내의 $id 인수로 1234를 전달합니다.
  • viewUserProfile() 메서드의 코드가 실행되어 코드를 실행하고 사용자 프로필 페이지를 위한 HTML을 출력할 수 있으며, 이것이 RESTful API인 경우 사용자 정보와 함께 JSON 응답을 출력할 수도 있습니다.
  • Flight는 깔끔하게 감싸고 응답 헤더를 생성하여 사용자 브라우저로 보내줍니다.
  • 사용자는 기쁨에 충만하고 따뜻한 포옹을 합니다!

그리고 왜 중요한가요?

적절한 중앙 집중형 라우터를 가지고 있다면 실제로 여러분의 삶이 크게 쉬워질 수 있습니다! 처음에는 약간 복잡해 보일 수도 있습니다. 다음은 몇 가지 이유입니다:

  • 중앙 집중식 라우팅: 모든 라우트 정보를 한 곳에 유지할 수 있습니다. 어떤 라우트가 있고 그들이 무엇을 하는지 보는 것이 쉽습니다. 필요한 경우 라우트를 쉽게 변경할 수 있습니다.
  • 라우트 매개변수: 라우트 매개변수를 사용하여 데이터를 라우트 메서드로 전달할 수 있습니다. 이것은 코드를 깨끗하고 정리된 상태로 유지하는 좋은 방법입니다.
  • 라우트 그룹: 라우트를 그룹화할 수 있습니다. 코드를 정리하고 middleware를 라우트 그룹에 적용하는 데 유용합니다.
  • 라우트 별칭: 라우트에 별칭을 지정하여 URL을 동적으로 생성할 수 있습니다. 예를 들어, 코드에서 '/user/1234'를 직접 코딩하는 대신 'user_view'와 같은 별칭을 참조하고 매개변수로 'id'를 전달할 수 있습니다. 나중에 '/user/1234'를 '/admin/user/1234'로 변경해야 하는 경우 모든 하드 코딩된 URL을 변경할 필요가 없습니다. 라우트에 연결된 URL만 변경하면 되므로 훌륭합니다.
  • 라우트 미들웨어: 라우트에 미들웨어를 추가할 수 있습니다. 미들웨어는 특정 동작을 추가하는 데 매우 강력합니다. 예를 들어 특정 사용자가 라우트나 라우트 그룹에 액세스할 수 있는지 작업을 인증하는 데 사용됩니다.

아마도 'index.php'에 여러분의 웹사이트를 만드는 스크립트별 방법에 익숙하실 것입니다. 'index.php'라는 파일이 있고 URL을 확인하고 URL에 따라 특정 함수를 실행하는 많은 'if' 문이 있는 것일 것입니다. 이것은 라우팅 방식 중 하나일 수 있지만 조직화되지 않았으며 빠르게 복잡해질 수 있습니다. Flight의 라우팅 시스템은 라우팅을 처리하는 더 정리되고 강력한 방법입니다.

이렇게 하시겠습니까?


// /user/view_profile.php?id=1234
if ($_GET['id']) {
    $id = $_GET['id'];
    viewUserProfile($id);
}

// /user/edit_profile.php?id=1234
if ($_GET['id']) {
    $id = $_GET['id'];
    editUserProfile($id);
}

// etc...

아니면 이렇게 하시겠습니까?


// index.php
Flight::route('/user/@id', [ 'UserController', 'viewUserProfile' ]);
Flight::route('/user/@id/edit', [ 'UserController', 'editUserProfile' ]);

// 아마도 여러분의 app/controllers/UserController.php에서
class UserController {
    public function viewUserProfile($id) {
        // 무언가 수행
    }

    public function editUserProfile($id) {
        // 무언가 수행
    }
}

중앙 집중식 라우팅 시스템을 사용하는 이점을 보시기 바랍니다. 나중에 오랜 기간동안 관리하고 이해하기 쉽습니다!

요청과 응답

Flight는 요청과 응답을 처리하는 간단하고 쉬운 방법을 제공합니다. 이것이 웹 프레임워크의 핵심입니다. 사용자 브라우저에서 요청을 받아들이고, 처리한 다음 사용자에게 응답을 보냅니다. 사용자 프로필 표시, 사용자 로그인 허용 또는 사용자가 새 블로그 글을 게시할 수 있도록 하는 웹 애플리케이션을 구축할 수 있습니다.

요청

요청은 사용자 브라우저가 여러분의 웹사이트를 방문할 때 서버로 보내는 것입니다. 이 요청에는 사용자가 할 작업에 대한 정보가 포함되어 있습니다. 예를 들어, 사용자가 방문하려는 URL, 사용자가 서버로 보내려는 데이터 및 서버에서 사용자가 받기 원하는 데이터에 대한 정보가 포함될 수 있습니다. 이 요청은 읽기 전용임을 알려드립니다. 요청을 변경할 수는 없지만 읽을 수는 있습니다. Flight은 요청에 관한 정보에 액세스할 수 있는 간단한 방법을 제공합니다. Flight::request() 메서드를 사용하여 요청에 관한 정보에 액세스할 수 있습니다. 이 메서드는 요청에 관한 정보를 포함한 Request 객체를 반환합니다. 이 객체를 사용하여 요청에 관한 정보에 액세스할 수 있으며, URL, 메서드 또는 사용자가 서버에게 보낸 데이터와 같은 정보를 액세스할 수 있습니다.

응답

응답은 사용자 브라우저가 여러분의 웹사이트를 방문할 때 여러분의 서버가 사용자 브라우저로 보내는 것입니다. 이 응답에는 서버가 하려는 작업에 대한 정보가 포함되어 있습니다. 예를 들어, 사용자에게 보내기 원하는 데이터, 사용자로부터 받기 원하는 데이터 또는 서버가 사용자의 컴퓨터에 저장하길 원하는 데이터에 대한 정보가 포함될 수 있습니다. Flight는 사용자 브라우저로 응답을 보내는 간단한 방법을 제공합니다. Flight::response() 메서드를 사용하여 응답을 전송할 수 있습니다. 이 메서드는 Response 객체를 매개변수로 받아 사용자 브라우저로 응답을 전송합니다. 이 객체를 사용하여 사용자 브라우저로 응답을 보낼 수 있으며, HTML, JSON 또는 파일과 같은 응답을 보낼 수 있습니다. Flight는 응답의 일부를 자동으로 생성하여 작업을 쉽게 만들어줍니다. 그러나 최종적으로 사용자에게 반환할 것을 완전히 제어할 수 있습니다.