AWS SDK For PHP를 사용하여 CloudFrontClient 라이브러리로 Invalidation을 생성하려 했었는데 아래와 같은 문제가 생겼다. 1. 각 인스턴스 별 ACCESS KEY 및 ACCESS SECRET KEY를 발행하여. env에서 관리해야 한다 2. 발급받은 각각의 키를 분실하거나 공유하게 될 경우 발생하는 어마무시한 후처리 작업..(키 재발행 및 적용 등) 물론, AWS에서 자체적으로 제공하는 PHP를 위한 SDK가 있는데 굳이 CLI command reference를 사용하려는 이유는 1. AWS로 구성되어 있는 서비스지만 S3,CloudFront 작업 이외에 SDK를 사용하여 develop 해나갈 기능이 없다고 판단. 2. iam의 EC2인스턴스 서버별 작업 권한(S3접근, ..
이전에 하나의 DB 스키마 아래에 테이블 앞에 글자만 다르고, 모든 형태가 일치(칼럼, 키, 색인 등 모든 게 일치)하는 경우에 Laravel Model에서 1개의 Model로 여러 테이블에 동적으로 바인딩해서 사용하는 방법을 포스팅 한 적이 있다. 다만 아쉬웠던 게 Laravel의 핵심 기술인 Eloquent ORM의 relastionships를 사용할 수 없는 단점이 존재하였고, 이 단점을 어떻게 해결할 수 있을지 고민하여 그 해답을 찾았다. [상황] [동일한 DB 스키마] - 상품 관련 테이블 : A_Products , B_Products, C_Products..... - 주문 관련 테이블 : A_Orders, B_Orders, C_Orders..... [이전 글] [Model] 같은 형태에 대한 ..
라라 벨에서는 데이터베이스 트랜잭션 내에서 일련의 작업을 실행하기 위해 DB파사드에서 제공하는 transaction 메서드를 사용할 수 있습니다. 이는 Eloquent ORM, Query Builder 모두에 대한 트랜젝션을 제어하는데 2가지 방식이 있습니다. 1. 클로저가 성공적으로 실행되면 트랜잭션을 자동으로 커밋하게 하고, 실패하면 예외가 발생하며 자동 롤백되는 아래와 같은 자동 형태의 사용 방식 ## 자동 형식의 트랜잭션 use Illuminate\Support\Facades\DB; DB::transaction(function () { DB::update('update users set votes = 1'); DB::delete('delete from posts'); }); 2. 수동으로 트랜잭션..
최근 라라벨을 사용하여 API를 만드는 작업을 진행하던 중, 같은 Database 내부에서 사용되는 table이 아래와 같은 경우가 생겼습니다. 상품 관련 테이블 : A_Products , B_Products, C_Products 주문 관련 테이블 : A_Orders, B_Orders, C_Orders ..... ..... ..... 라라벨에서 table에 따른 Eloquent model을 만들 때 지향하는 것은 [App/Models/] 하위에 아래와 같이 model을 각각 생성하겠죠. $ php artisan make:model AProject; $ php artisan make:model BProject; $ php artisan make:model CProject; $ php artisan make..
데이터 대량 Insert Or Update 방법에 관한 고찰 개발자가 새로운 프로젝트만 개발하면 좋겠지만, 운영팀에서 종종 Data 관련 대량 작업을 요구할 때가 있습니다. db관련 작업만 insert or update 하는것이라면 sql문법으로 쿼리실행만 해주면 되지만 Input시 observer 작업 혹은 API까지 동시에 처리해주어야 한다면 이건 꽤나 골치아픕니다. 본인의 경우 아래와 같은 작업으로 작업을 진행하는데 더 좋은 방법이 있다면 댓글로 알려주시면 감사하겠습니다. 1. DB Query문 짜기 예시로 products table에 있는 1~5000 까지의 id값에 해당하는 컬럼 몇가지를 update 하는 요청이 들어옵니다. 각 row당 barcode,box_width,box_length,bo..