최근에 의존성 주입을 알게되어서 (신나서?) 마구마구 의존성을 주입하다보니 한 클래스를 생성하는데에 너무 많은 의존성을 주입하는 경우가 생기더군요. 가장 많은 건 13개까지… 그래서 과연 내가 잘하고 있는 것이 맞나 싶어 궁금해하고 있었는데, 오랜만에 들춰본 Laravel Testing …
Continue readingTag: 이상한모임
ORM 좋네요 좋아
Eloquent ORM을 이용하여 아래의 데이터를 조회하기 위한 코드를 작성했습니다. A가 가진 모든 B들과 그 B들이 가진 모든 C들 중 A와 관련 있는 것만 추린 것들과 그 C들이 가진 모든 D들 그 결과 아래와 같은 코드가 …
Continue readingMyISAM을 쓰면 좋은 경우
스토리지 엔진 선택 – 로그 고속기록에는 MyISAM 에 이름과 시간이 있는 컬럼을 만들어서 기록하는 것이 유리. – 읽기 전용 테이블에는 MyISAM 이 절대적으로 빠르다. – 트랜잭션에는 InnoDB 추천 MySQL 퍼포먼스 향상 (1) 아키텍처 중 발췌 …
Continue readinggit 사용시 커밋하지 않은 변경사항들을 다른 브랜치에 커밋하기
오늘 한참 작업을 하고 나서 보니, master 브랜치에서 작업을 하고 있었더군요. 뜨어! 지금까지 작업한 내용을 다른 브랜치(제 경우에는 develop 브랜치)에 커밋할 순 없나 찾아보니 다행히 방법이 있었습니다. stash를 사용하는 방법입니다. git stash // 커밋하지 않은 …
Continue readingLaravel 마이그레이션 작성시 index 존재 여부 확인하는 방법
Laravel에 테이블이나 컬럼이 존재하는지 확인하는 메소드는 있는데 index 존재 여부를 확인하는 메소드는 지원하지 않아서 다소 아쉬운 면이 있었습니다. 찾아보니 doctrine schema manager 를 사용하면 확인이 가능하더군요. Laravel로 마이그레이션 작성해보신 분들은 아래 예제 코드 보시면 바로 …
Continue readingLaravel 컨트롤러 테스트 작성 요령
테스트를 작성할 때 무엇을 테스트 할 것인지를 결정하는 것이 참 어려운 것 같습니다. Jeffrey Way 의 조언을 따르니 컨트롤러 테스트 작성에 꽤 도움이 되네요. “Controller tests should verify responses, ensure that the correct database access …
Continue readingLaravel 테스트 작성중 POST로 리퀘스트 전송시 응답으로 200이 아닌 500이 온다면
csrf 토큰 때문입니다. app/Http/Middleware/VerifyCsrfToken.php 를 public function handle($request, Closure $next) { if (‘testing’ !== app()->environment()){ return parent::handle($request, $next); } return $next($request); } 이렇게 수정해서 test 환경에서는 토큰을 확인하지 않도록 해주는 방법이 있습니다. 다른 더 좋은 …
Continue readingLaravel 로 Todo list 따라 만들어보기 발표 자료와 코드
안녕하세요. 어쩌다보니 또 XE 오픈 세미나에서 발표를 하게 되었네요. 2015년 5월 20일에 발표했던 자료와 코드입니다. 복습할 때 참고하시겠다는 분이 계셔서 허접한 코드지만 올려봅니다. Github https://github.com/smartbos/xe_laravel_practice
Continue readingLumen 에서 timezone 을 서울로 바꾸는 방법
.env 파일을 사용하는 경우에는 .env 파일에 다음 내용을 한 줄 추가합니다. APP_TIMEZONE=Asia/Seoul .env 파일을 사용하지 않는 경우에는 시간 관련 기능을 사용하는 곳 상단에 아래의 내용을 한 줄 추가합니다. date_default_timezone_set(env(‘APP_TIMEZONE’, ‘Asia/Seoul’));
Continue readingoak-online-alter-table를 이용하여 중단 없이 MySQL 테이블 변경하기
MySQL에서 테이블을 변경하면 테이블이 잠긴다. 그리고 데이터양에 따라 테이블 변경에 걸리는 시간이 달라진다. 그래서 데이터양이 많아지면 테이블을 변경시 서비스가 중단되는 경우가 발생할 수 있다. 중단 없이 MySQL 테이블을 변경할 수 있도록 해주는 툴로 아래의 것들이 …
Continue reading