본문 바로가기

PHP

(6)
[Laravel]CQRS 적용, Elasticsearch (1) 개요 개발 규모가 커짐에 따라 나타나는 문제의 하나로, 레코드 수 증가나 데이터베이스 쿼리 복잡화로 인한 응답 속도 지연이 있습니다. 웹 서비스의 규모 확대에 따라 검색이 복잡해지고, 출시 시에는 문제가 되지 않았던 대규모 데이터 검색이나 문장 검색 시에 일반적으로 사용하는 Like 검색, 구현 코드의 복잡성 증가 등에 의한 성능 저하가 해당 됩니다. CQRS(커맨드 쿼리 책임 분리) Command(쓰기): 데이터베이스 입력 Query(읽기): 데이터베이스 검색 애플리케이션 규모에 관계없이 데이터 입출력은 변하지 않으며, 보통 RDBMS를 사용해 쓰기 읽기가 함께 사용됩니다. Command 할땐 정확하지 않는 데이터가 발생하지 않도록 제약이나 정규화를 하면서 테이블 설계를 수행합니다. 하지만, 실무에선 ..
[Laravel]queue를 이용한 비동기 분산 처리 개요 실제 어플리케이션에서 이벤트를 도입하려면 프레임워크에서 제공하는 무언가의 처리를 트리거로 만들어 특정한 처리를 실행하고 싶을때 이용하는 것이 좋습니다. 대규모 애플리케이션에서 복잡해지기 쉬운 비즈니스 로직의 처리를 분산하기 위해서는 애플리케이션에서 제공하는 기능을 세세하게 분할하고, 처리 로직에 발생하는 사용자의 해동을 분석해 이를 트리거로 정의하는 것도 가능합니다. Queue 메일 송신, 엑셀이나 PDF를 보고서 출력 등 큰 데이터를 다루는 처리 로직이 있을 때, 사용자의 요청을 받아 처리 완료 시점까지 사용자를 기다리게 하는 것은 사용자의 이탈에 직접적인 영항를 주므로 웹 애플리케이션 개발에서는 금기 사항입니다. 시간이 걸리거나 부하가 높은 처리를 해결 하기 위해서는 라라벨에서 제공하는 큐Que..
[laravel]리포지토리 패턴 도입하기, 인터페이스 의존성 주입(DI) 1. 개요 애플리케이션 개발시 데이터는 다양한 위치에 저장합니다. RDB나 NoSQL 또는 캐시,파일 를 이용 하기도 합니다. 규모가 작거나 크지 않는 요구사항에는 필요없지만, 점차 요구사항이 많아지고 규모가 커지게 되면 확장성을 고려한 개발을 해야합니다. 데이터 저장 위치가 바뀌더라도 프로그램은 가능한 변경되지 않도록 하는 것이 좋습니다. 이런 문제에대응한 방법의 하나로 리포지터리 패턴을 이용 할 수 있습니다. 이전에 작성한 SOLID 중 OCP원칙을 지킬수 있습니다. [JAVA] - [SPRING] 좋은 객체지향 설계의 5가지 원칙(SOLID) [SPRING] 좋은 객체지향 설계의 5가지 원칙(SOLID) 클린코드로 유명한 로버트 마틴이 좋은 객체지향 설계의 5가지 원칙을 정리하였습니다. SOLID ..
모던 PHP, PSR, clean code 모던 PHP 오래전에 쓰여진 코드들은 정상 동작하지 않거나, 보안취약점이 있거나, 잘못된 방식으로 작성하는 경우가 있습니다. 모던 php는 이런 관습적인 코드를 타파하고 php를 개발하는 모든 개발자들 공통적인 코드로 개발하며 현대적인 방식으로 php를 개발 하기 위한 것입니다. 모던 PHP 조건 - 최신버전의 PHP - PSR(표준권고) 준수 - 패키지 매니저 https://www.php-fig.org/psr/psr-1/ PSR-1: Basic Coding Standard - PHP-FIG PSR-1: Basic Coding Standard www.php-fig.org https://github.com/yujineeee/clean-code-php GitHub - yujineeee/clean-code-p..
laraval sail을 이용한 환경 구축 개요 도커는 컨테이너라 불리는 가상 환경을 만들고 실행할 수 있는 소프트웨어입니다. VirualBox에 비해 가볍고 빠르게 동작합니다. 또한, 서버와 같은 인프라 리소스나 미들웨어, 각종 환경 설정 내용도 코드로 관리할 수 있고, 이를 이용해 같은 환경을 간단하게 재현할 수도 있습니다. 라라벨 세일은 도커의 컨테이너 가상 환경에서 라라벨 애플리케이션을 실행합니다. 먼저, 라라벨 세일의 동작에 필요한 도커를 설정합니다. 1. 도커 설치 도커 공식 다운로드 페이지에 접속해, 다운로드 및 설치를 해줍니다. https://www.docker.com/ Docker: Accelerated Container Application Development Docker is a platform designed to help..
PHP strtotime 이전 달 구할때 주의 할 점! 개발하다 보면 날짜 계산하는 경우가 아주 많다. php에선 기본적으로 날짜 함수 strtotime를 제공하고 있고 날짜 계산하는 방법은 아주 쉽고, 간단하다. 그래서인지 특히, 이전달을 구할때 strtotime -1 month를 쓰고 그냥 되겠거니 하고 코딩했다가 운영하고있는 사이트가 큰 이슈를 발생시킬수 도있다. 구글 검색으로 날짜 계산하기로 여러 곳에 찾아봐도 해당 이슈를 찾아보기도 어려웠다. https://www.php.net/manual/en/function.strtotime.php PHP: strtotime - Manual I tried using sams most popular example but got incorrect results.Incorrect: Then I read the note..