맥북으로 개발을 시작한 지 어느덧 6개월. MacOS 개발 환경에 익숙해져서 그런지 Windows OS에서 개발을 진행하기 여간 적응되지 않았습니다. VPN 문제로 인해 강제적으로 Windows 환경에 익숙해져야 했기 때문에 Windows에서 최대한 MacOS 느낌을 살리고자 노력했습니다. 1. Windows 11 Update 하기 macOS의 장점중 하나인 트랙패드를 활용한 분할 데스크톱 기능이 Windows 11에서 가능하게 되었습니다. 별도의 트랙패드가 없는 데스크톱에서 작업할 때에는 윈도우 11 환경에서 [ctrl + windows + 방향키] 조합으로 사용이 가능합니다. 아래처럼 새로운 데스크톱을 생성하여 프로그램을 띄운 후 위의 조합으로 자유롭게 이동하며 사용합니다. 2. MacOS의 터미널 ..
이전에 하나의 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..