보통 date() 함수를 사용할 때, 표시 시간이 다르면 timezone 설정을 바꾸면 되는데 일반적인 PHP 같은 경우는 php.ini 파일에서 date.timezone 값을 Asia/Seoul 로 바꾸면 한국 시간대로 나타나는데, Laravel 에서는 config/app.php 파일에서 아래 설정을 바꾸어야 합니다. /* |-------------------------------------------------------------------------- | Application Timezone |-------------------------------------------------------------------------- | | Here you may specify the default tim..
php
보통 라우트에 등록되지 않은 리소스를 요청할 경우 NotFoundHttpException 예외와 같은 NOT FOUND 화면이 노출이 됩니다. 하지만 production (운영) 환경에서는 이런 예외 케이스가 발생한 경우 어떤 부분이 잘못되었는지를 사용자에게 표시하는 별도의 에러 처리 화면을 제공하는 것이 바람직하다고 한다. 라라벨에서는 이를 처리하고자 하는 HTTP 응답 코드에 맞는 에러 화면을 만들 수 있는 기능을 제공한다고 합니다. > laravel new laravel-error 우선 예제를 만들기 위해서 라라벨 프로젝트를 생성합니다. ..... INFO Application key set successfully. INFO Application ready! Build something amazin..
composer와 php를 설치하고 laravel 프로젝트를 생성할 때 아래와 같은 오류가 발생한다. > laravel new example-app _ _ | | | | | | __ _ _ __ __ ___ _____| | | | / _` | '__/ _` \ \ / / _ \ | | |___| (_| | | | (_| |\ V / __/ | |______\__,_|_| \__,_| \_/ \___|_| Creating a "laravel/laravel" project at "./example-app" Info from https://repo.packagist.org: #StandWithUkraine Installing laravel/laravel (v9.3.10) - Installing laravel/..
PHP 스프레드 연산자는 기존 5.6 부터 함수 인자 전달할 때 사용되던 스프레드 연산자(...)가 7.4 버전 부터 Arrray (배열) 에 사용이 가능해지게 되었는데 아래의 예제처럼 배열 안에 [...[0, 1, 2]]과 같이 코드를 작성하면 [0, 1, 2] 로 나타나게 되는 연산자입니다.
SELECT * FROM 테이블 WHERE 조건문 ORDER BY id (FK) DESC OFFSET 페이지 번호 LIMIT 페이지 사이즈 보통 페이징 쿼리는 OFFSET / LIMIT으로 다음과 같은 형태로 데이터를 가져오는데 이 부분에서 한가지 문제가 발생한다. 데이터가 비교적 적을 때는 무슨 문제가 있나 느낌이 오지 않지만 뒤로 갈수록 느려진다는 큰 문제점이 있다. 왜 뒤로 갈수록 늦어지냐? 앞에서 읽었던 행을 다시 읽는다는 문제가 있기 때문이다. 예로 들어서 offset 50,000 / limit 20 이라고 가정한다면 최종적으로 50,020개의 행을 읽어야 한다는 것이다. 행을 50,020개를 읽는다는 부분도 문제지만 20개의 데이터를 얻기 위해 앞의 50,000 개 행이 버려진다는 것이다. 이..
평소 때와 다름 없는 업무 시간, API 작업을 하는 도중 프론트에서 긴급한 이슈사항이 넘어왔다. { "title": "1111111111", "content": "222222222222222222222" } 등록 API에서 제목과 내용을 프론트에서 유닛 테스트를 진행하던 도중 숫자로만 구성된 문자열을 보냈는데 오류가 발생했다는 것이다. 보통 게시글에서 제목이라 하면 `🐱👤 공지사항 테스트` 문자가 들어간 문자열로 들어갈텐데 무슨 큰 일이 있겠어라는 생각으로 DB에서 결과값을 확인해보았는데 경악을 금치 못했다. { "title": 12341265+7ef, "content": 123452+2cf } 상세 API에서 호출된 결과값은 문자열이 아닌 숫자로 반환해 주는게 확인되었다. 그러다 보니 프론트에서는 ..
📖 AutoLoad 인스턴스를 생성하면 자동으로 호출되는 함수 회사에서 작업을 하던 도중, 문득 소스 코드를 보니 require_once가 여러개가 되어 있는걸 보았는데 본 프로젝트는 사이즈가 크기에 후에 불편함이 많아질 것 같아 매우 그렇다. 😅 이런 부분을 어떻게 해결할까 고민을 했는데 AutoLoad 라는걸 발견했다. AutoLoad 쓰기는 해야 하는데 어떻게 쓸까? 우리는 AutoLoad를 쓰기 전에 우선 알아야할 부분이 있는데 바로 spl_autoload_register입니다. sql_autoload_register는 자동으로 클래스를 인식해서 OOP를 쉽게 지원을 해주는데 이런 식으로 인스터스가 필요한 부분에 자동적으로 클래스를 인식을 해준다. 그런데 만약 클래스마다 경로가 다르다면? 🤔 Mo..
📖 Match switch ~ case문과 비슷하지만 좀 더 정형화된, 더 엄격한 조건 판단문이다. ※ 다만, Match 함수는 PHP 8.0.0 이상 버전에서만 사용 가능하니 주의해주시기 바랍니다. 오늘은 PHP Match 함수에 대해서 알아볼까 합니다. 기존에 작업을 진행하면서 switch ~ case문을 많이 사용을 했었던 기억들이 있습니다. switch ~ case를 쓴다면 switch에 넣어줄 파라미터, 그 안에 들어가는 case 조건들.... 하지만 이런 switch ~ case도 PHP에서는 느슨한 약타입 언어로 인해 0 == "0.0" Result: (True) 81 == " 81" Result: (True) 0 == "0" Result: (True) 위의 예제의 내용도 True로 결과값을..