안녕하세요! 어느새 금요일이네요. 며칠 연속으로 라라벨 새 기능만 소개하고 있자니 살짝 지겹긴 하네요? ㅎㅎ 오늘은 Beyond Code사에서 만든 팅커웰(Tinkerwell)이라는 애플리케이션을 소개할까 합니다.
팅커는 다들 잘 아시리라 생각합니다. 38호에서 웹 팅커를 소개해드리기도 했는데요. 팅커웰은 맥용 팅커 애플리케이션 입니다. 유료 애플리케이션으로 14.99 달러인데요, 한국에서 사면 부가세가 붙어서 16.49 달러에 구입하실 수 있습니다.
웹 팅커를 소개해드렸을 때 웹 팅커의 장점으로
이라고 말씀 드렸었는데, 팅커웰은 이에 더해 몇가지 장점을 더 가지고 있습니다.
원격에 있는 라라벨 애플리케이션에 접속해서 팅커를 활용할 수 있습니다. 별도의 패키지가 필요하지 않고 애플리케이션 코드도 변경되지 않는다고 하네요.
VSCode, Sublime Text 3, PhpStorm 용 플러그인이 있어서 IDE에서 바로 팅커웰을 실행할 수 있습니다.
아래 스크린샷에서 볼 수 있듯이 쿼리를 바로 확인할 수 있습니다.
팅커에서는 불가능 한 것 중 하나인데, 라라벨과 같은 방식으로 화면을 만들어 출력할 수 있습니다.
팅커웰 웹(팅커웰의 웹 버전으로, 웹 팅커와는 다른 것입니다.)이 며칠 전 부터 서비스를 제공하기 시작했습니다. 팅커웰 웹에 라라벨 매뉴얼 상의 코드 조각을 바로 팅커로 확인할 수 있는 서비스가 있는데 여기에서 이 기능의 진가가 나타나는 것 같아요.
팅커웰 홈페이지에서 튜토리얼도 제공하고 있습니다. 아직은 한 편 밖에 업로드가 되지 않았지만 앞으로 팅커웰을 유용하게 쓸 수 있는 팁이 계속 올라 올 것 같아요.
우선 현재 올라와있는 팁은 데이터베이스에서 뭔가 확인하고자 할 때 데이터베이스 클라이언트를 실행해서 SQL문을 작성하는 대신 팅커를 사용하는 예시입니다.
특정 제목의 코스에 접근할 수 있는 전체 사용자 수를 구하는 예시를 들었는데요. SQL로 하면 다음과 같이 할 것을
SELECT
COUNT(*)
FROM
`users`
INNER JOIN `user_courses` ON `users.id` = `user_courses`.`user_id`
INNER JOIN `courses` ON `courses.id` = `user_courses`.`course_id`
WHERE
`courses`.`title` = 'PHP Package Development'
팅커로 하면
User::whereHas("courses", function ($query) {
$query->where("title", "PHP Package Development");
})->count();
혹은
Course::where("title", "PHP Package Development")
->first()
->users()
->count();
로 조회할 수 있는 것이죠. 라라벨을 쓴다면 어차피 엘로퀀트는 어차피 자주 사용하니까 SQL을 사용하는 것보다 훨씬 편할 수도 있을 것 같아요.
겸사겸사 팅커웰을 구입했습니다. 평소에 팅커를 많이 쓰는 편은 아니어서 과연 어마나 도움이 될까 의문이 들기도 하지만 그래도 왠지 기대가 되네요. 써보고 정말 좋으면 다음에 또 소식 전하겠습니다. :)
1일 1식 라라벨 99호
2019년 12월 20일
메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 처음부터 제대로 배우는 라라벨(Laravel Up & Running 2nd Edition)을 번역했습니다.