리팩터링 2판 스터디의 두 번째 글입니다. 책을 순서대로 읽기보다 관심도 순서대로(그래야 중간에 때려치더라도 제가 관심있는 부분을 최대한 많이 정리해 놓을 수 있죠!) 매번 한 챕터씩 정리하는 식으로 진행하려고 합니다.
그리고 생각보다 엄청나게 분량이 많더라고요! 여기에는 간단히 각 리팩터링 기법의 절차와 요점만 요약해 놓았지만, 책에서 설명해 주는 방대한 예시 없이 이 내용만 읽어서는 이해가 어려울 수 있으니 책을 읽어 보시는 것을 추천합니다. 책을 읽고 나서 나중에 필요한 기법만 찾아볼 때는 이 정리가 유용할 거예요.
#MySQL 에 뷰(View)라는 기능이 있다는 것 알고 계셨나요? 대충 다른 테이블의 값을 참조해서 가상의 테이블 같은 걸 만들어 주는 기능입니다. 그런데 혹시 뷰가 색인(인덱싱)을 지원하지 않는다는 사실도 알고 계셨나요? 오늘 저는 그걸 몰라서 멀쩡한 테이블을 놔두고 뷰에 쿼리를 넣는 코드를 (보기 더 깔끔하다는 이유로) 만들었다가 쿼리 한 번에 2분이 걸리는 광경을 목도하고 말았습니다. 여러분은 저와 같은 실수를 저지르지 않도록 조심하세요.
nginx 설정 파일에서 정적 파일 불러오기 경로를 이전 서버의 경로로 놔두는 바람에 403 오류가 뜨던 문제를 해결했습니다.
요즘 우분투에서는 home/{username} 경로를 다른 사용자는 접근할 수 없게 되어 있다는 사실 알고 계셨나요? 정적 파일 경로에 chown -R :www-data ./static도 해 보고 chmod -R 755 ./static도 해 봤는데 nginx의 www-data 유저가 접근을 못 하더라고요. 어떻게 고치는지는 몰라서 그냥 정적 파일을 전부 var/www로 옮겼습니다.