이전에 하나의 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. 수동으로 트랜잭션..
객체지향 개발 과정에서 겪는 다양한 이슈를 종합해보면, 각기 다른 문제가 아니라 서로 비슷한 유형의 문제가 됩니다. 개발자들은 서로 자신의 경험을 바탕으로 그 비슷한 유형의 문제들을 각기 다르게 해결해나갔습니다. 이러한 비슷한 유형의 문제를 다르게 해결해 나갈 필요성이 없다고 생각한 GoF는 객체지향 설계 시 발생하는 문제점을 목록화하여 24가지 패턴으로 정리하였고 이를 오늘날 디자인 패턴(Design Patterns)이라고 부르게 되었고, 이는 디자인 패턴 24가지를 학습한다면 소프트웨어 설계에 있어서 공통된 문제들에 대하여 표준적인 해법과 직영 법으로 접근이 쉬워짐을 뜻 하기에 우리는 디자인 패턴을 배워고 이해해야 합니다. 지금 추천하는 책의 예제는 PHP 언어를 기반으로 이루어져 있기 때문에 Jav..
해가 바뀌면 가장 먼저 하는 일은 버킷리스트(Bucket List)를 최신화시키는 것이다. 다이어트, 금연, 월급의 반은 적금하기 등 수많은 리스트들을 적는데 그중 꼭 껴있지만 지켜지지 않는 항목 '한 달에 책 1권 읽기'. 이제서라도 지키기 위해 최근에 책을 읽고 있고 그중, 재미있게 읽은 책을 추천하려고 글을 쓴다. 나는 자기 계발서를 그다지 좋아하지 않는다. 누구나 다 알고 있는 내용을 자신의 지혜인 것처럼 조언의 형식으로 글을 풀어나가 더 노력할 수 있는 독자들에게 '넌 충분히 열심히 했어'라는 자기 위로를 하게 하기 때문이다. 스스로 위로하는 것만큼 나태해지는 마약은 세상에 없다고 생각하기 때문에 몇몇 자기 계발서는 '마음의 마약'이라고 까지 생각이 되었다. 그럼에도 굳이 자기 계발서를 읽는 이..