99호. 팅커웰 (Tinkerwell) free

2019-12-20

안녕하세요! 어느새 금요일이네요. 며칠 연속으로 라라벨 새 기능만 소개하고 있자니 살짝 지겹긴 하네요? ㅎㅎ 오늘은 Beyond Code사에서 만든 팅커웰(Tinkerwell)이라는 애플리케이션을 소개할까 합니다.



팅커는 다들 잘 아시리라 생각합니다. 38호에서 웹 팅커를 소개해드리기도 했는데요. 팅커웰은 맥용 팅커 애플리케이션 입니다. 유료 애플리케이션으로 14.99 달러인데요, 한국에서 사면 부가세가 붙어서 16.49 달러에 구입하실 수 있습니다.


웹 팅커를 소개해드렸을 때 웹 팅커의 장점으로



  • 여러 줄로 된 코드를 작성하고 실행하기 편리함

  • 코드가 실행 후 사라지지 않게 할 수 있어서, 코드를 조금씩 수정해가면서 실행해볼 수 있음


이라고 말씀 드렸었는데, 팅커웰은 이에 더해 몇가지 장점을 더 가지고 있습니다.


SSH 지원


원격에 있는 라라벨 애플리케이션에 접속해서 팅커를 활용할 수 있습니다. 별도의 패키지가 필요하지 않고 애플리케이션 코드도 변경되지 않는다고 하네요.


IDE 통합


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을 사용하는 것보다 훨씬 편할 수도 있을 것 같아요.


마치며


겸사겸사 팅커웰을 구입했습니다. 평소에 팅커를 많이 쓰는 편은 아니어서 과연 어마나 도움이 될까 의문이 들기도 하지만 그래도 왠지 기대가 되네요. 써보고 정말 좋으면 다음에 또 소식 전하겠습니다. :)



  • 팅커웰 https://tinkerwell.app/

  • 팅커웰 웹 https://web.tinkerwell.app/


1일 1식 라라벨 99호

2019년 12월 20일


이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.