.gitignore에 분명히 추가했는데도 파일이 계속 변경 목록에 뜨는 경우가 있다. 오타를 의심하고 경로를 몇 번씩 확인하게 되는데, 열에 아홉은 문법 문제가 아니다.원인: gitignore는 "이미 추적 중인 파일"에는 안 먹는다이게 핵심이다. .gitignore는 아직 Git이 모르는 파일을 무시하라는 규칙이다. 한 번이라도 git add 된 파일은 이미 인덱스(스테이징 영역)에 등록돼 있고, 그 뒤에 gitignore에 추가해봐야 Git은 계속 추적한다.그래서 순서가 이렇게 꼬인 경우에 문제가 생긴다.프로젝트를 만들고 git add . 로 전부 커밋나중에 .env나 node_modules가 들어간 걸 발견.gitignore에 추가여전히 변경 목록에 뜸해결: 인덱스에서 캐시를 걷어낸다git rm -..
자바스크립트의 만능키(?) 그만큼 위험 부담도 큰 것이 eval이다. 사용을 자제하라는 게 일반적인 평이다.그럼 어떻게 eval을 대응 혹은 대신할 것인지 알아보자.왜 쓰면 안 되나막연히 "위험하다"가 아니라 이유가 명확하다.보안 — 문자열에 사용자 입력이 섞이면 임의 코드 실행(XSS)이 된다. 서버라면 더 심각하다성능 — JS 엔진은 코드를 미리 최적화(JIT)하는데, eval은 런타임에 코드가 생기므로 최적화를 포기한다. 주변 스코프 최적화까지 무효화된다디버깅 — 스택 트레이스가 eval 내부로 찍혀서 어디가 문제인지 찾기 어렵다번들러 — 정적 분석이 불가능해서 트리 셰이킹이나 minify가 제대로 동작하지 않는다CSP — Content-Security-Policy를 적용하면 eval은 기본적으로 ..
개발자는 도구만 잘 써도 생산성이 배로 올라간다. PHP의 대표적인 IDE인 PhpStorm은 기능이 워낙 많아서, 설치해놓고 메모장처럼만 쓰는 경우가 의외로 많다.가장 좋은 학습 자료는 Laracasts의 무료 시리즈다.How to Be Awesome in PhpStorm여기서는 그중에서도 익히면 체감이 확 오는 것들만 추려본다.1. 이동 관련 단축키 (이것만 외워도 절반)마우스로 파일 트리를 뒤지는 시간이 하루에 얼마나 되는지 생각해보면, 여기가 가장 효율이 좋다.Shift Shift — Search Everywhere. 파일·클래스·설정·액션 전부 검색Cmd/Ctrl + B — 정의로 이동. 메서드 이름에서 누르면 구현부로Cmd/Ctrl + Alt + B — 구현체로 이동. 인터페이스에서 실제 구현..
사용자가 올린 이미지를 그대로 저장하면 문제가 금방 생긴다. 요즘 폰 사진은 한 장에 5MB를 넘고, 목록 화면에서 원본을 그대로 뿌리면 로딩이 느려진다. 세로로 찍은 사진이 가로로 뒤집혀 보이는 문제도 흔하다.Laravel에서 이미지를 다룰 때 표준처럼 쓰이는 게 Intervention Image다. 리사이즈, 크롭, 회전, 워터마크, 포맷 변환을 전부 지원한다.설치composer require intervention/imagev2와 v3의 사용법이 꽤 다르다. 신규 프로젝트라면 v3를 쓰는 게 좋다.v2 (레거시)v2는 서비스 프로바이더와 파사드를 수동 등록해야 했다.// config/app.php'providers' => [ Intervention\Image\ImageServiceProvide..
IDE로 Laravel을 개발할 경우 자동완성 및 goto 기능을 지원해주는 패키지다. 파사드와 Eloquent 매직 메서드 때문에 IDE가 타입을 못 잡는 문제를 해결해준다.왜 필요한가Laravel은 편의성을 위해 PHP의 동적 기능을 적극적으로 쓴다. 문제는 IDE가 정적 분석으로 타입을 추론하는데, 이런 코드는 분석이 안 된다는 점이다.파사드 — Auth::user() 는 실제로 __callStatic으로 뒤에서 인스턴스에 위임한다. IDE는 Auth 클래스에 user()가 없다고 본다Eloquent 매직 메서드 — User::where() 는 모델이 아니라 쿼리 빌더의 메서드다모델 속성 — $user->email 은 DB 컬럼이라 클래스에 프로퍼티 선언이 없다매크로 — 런타임에 등록되는 메서드ID..
# Ubuntu 16.04 / PHP 7.2 설치 (아마존 AWS EC2 생성 직후 PHP 설치하기) # GIT 주소GIT : https://github.com/yousung/ubuntu16.04-php7.2-install # 사용방법 wget https://raw.githubusercontent.com/yousung/ubuntu16.04-php7.2-install/master/script/install-php7.2.sh adduser user-id usermod -G www-data user-id id user-id // uid=xxx(user-id) gid=xxx(user-id) groups=xxx(user-id),xx(www-data) sudo -s bash install-php7.2.sh user..
