[카테고리:] 작게 기록
대충대충 대강대강 써내려가는 글.
-
워드프레스 개발 키워드: 문자열
프로그래밍에서 상수와 참조는 중요하다. 변하지 않는다는 약속을 하는 상수는 에러로 가득한 코드에서 유일한 희망이고, 참조는 효율적인 관리를 위한 기본이다.
그런데 곰곰히 생각하면 상수은 변하지 않는다는 약속을 전제로 정의하긴 하지만, 그 기반이 부서지면 상수는 효력을 발휘하기 어렵다. 참조 또한 마찬가지. 참조의 대상이 되는 원본이 변화하는 상황이면 참조는 신뢰를 잃게 된다.
데이터베이스는 ID, 주 키 (primary key)를 기준으로 참조를 진행한다. 해당 데이터베이스 상에서는 유일한 식별자이기 때문에 의미가 있다. 그러나 워드프레스 입장에서 볼 때 이것이 유일하다는 보장을 하기 어렵다. 여러 워드프레스 사이트가 있다고 하자. 각 사이트끼리 비슷한 DB 테이블 구조와 스키마를 가지고 있다. 사이트간에는 이런 ID는 큰 의미가 없다. 그 레코드의 유일함을 보장할 수 없기 때문이다.
그러므로 우리는 워드프레스에서 유사한 개체임을 식별하기 위한 수단으로 문자열을 사용하게 된다. 텀에서는 슬러그, 포스트에서는 메타 키나 포스트 타입을 이용하게 된다.
결국 이런 것들은 문자열이다. 규약은 사람들의 약속으로 이뤄지며 중복의 방지는 제안하는 이가 최대한 중복되지 않도록 노력해야 한다.
개발을 진행하며 플러그인과 테마를 개발할 때도 이 사실은 매우 중요하다. OOP나 기타 세련된 개발 기법을 적용할 때 이 관점을 잘 녹여내는 것이 매우 중요하다. 워드프레스가 가진 기능을 액션, 필터의 콜백을 이용해 확장할 시 깔끔하게 각각의 기능을 모듈화하는 것이 매우 어려워 보인다. 결국 이런 기능들이 여러 조각으로 분산되며 프로그래머들은 이런 분산이 불편해 보일 수도 있다.
그러나 완벽한 구조는 존재하지 않는다. 워드프레스의 기본은 결국 문자열도 된 식별자이다. 정의된 문자열에 의한 식별자를 통해 각각의 모듈은 서로 교차되고 상호 작용할 수 있다고 생각해야 한다.
-
테마 만지는 거 재밌네
요즘 내 블로그에 이것저것 건드리는 게 많아졌다. 테마를 TwentyTwenty로 바꾸고 나서 여러 가지 바꾸고 있다. 일단 이 테마, 글씨가 커도 너무 크다. 장난하나? 싶을 정도로 크다. 글씨 크기 좀 조정하고 색상 같은 것 좀 취향에 맞게 바꾸고 스크린샷을 찍었다. 블로그 기념 사진 같은 걸로 해서 남겨 둬야지.
(더 보기…) -
지메일의 ‘별’ 기능으로 이메일 업무 효율 늘리기
지메일 > 설정 > 기본 설정에 보면 아래 그림처럼 “별” 항목이 있습니다. 별을 클릭하면 순서가 변경되는데, 이 별을 잘 활용하면 이메일 업무 효율이 상당히 좋아집니다. 요령을 간단하게 기록해 둡니다. 유용하게 활용되었으면 좋겠습니다.
(더 보기…) -
옵션 테이블을 수동으로 정리해 보다
블로그를 운영하는 서버가 열악해서 블로그 또한 가능한 만큼 가볍게 만들어야 한다. 그러나 운영한 기간만큼은 꽤 되어서 이런저런 시도를 꽤 했었다고 기억한다. 과연 사용량에 비해 옵션 테이블의 사이즈가 너무 커 보였다.
옵션테이블을 직접 수동으로 점검하고 정리해 봤다. 도대체 그동안 어떤 찌꺼기들이 사라지지 않고 고스란히 남아서 성능에 영향을 준 것인가? 대부분의 플러그인과 테마들은 삭제되면서 자신의 옵션을 철저하게 지우지 않는 편이다. 애초에 테마는 삭제 옵션이 없기도 하고. 대략 옵션 이름을 보면서 없어진 플러그인에서 사용했던 것들은 다 지워 보았다.
물론 프로그래머가 플러그인에서 필요하니까 옵션을 사용하지만, 좀 과한 것들이 있다. 우선 젯팩. 옵션이 젯팩 투성이였다. Enlighter 라는 코드 하이라이트 플러그인도 심각했다. 너무 많은 옵션 항목을 생성하고 있다. 그리고 테마. 테마를 이것저것 설치하고 활성하면 그 테마의 옵션, 테마가 만드는 위젯 등등 여러 값들이 생성된다.
그리고 이 값들이 지워지지 않고 영속하고 있다. 이게 문제였다. 그동안 재미삼아 여러 테마, 플러그인을 깔고 지우고를 반복했다. 그 결과 꽤 사용하지도 않지만 남아 있는 옵션들이 테이블 안에 덕지덕지 남아 있었고, 이런 값들이 워드프레스 로딩 때 같이 불려오고 있었다.
모든 값들을 다 알고 고칠 수 없겠지만 대략 접두사로 추측하여 불필요한 옵션들을 제거했다. 그리고 젯팩과 Enlighter도 사용을 해제하고 옵션 테이블에서 값을 제거해 봤다. 그 결과 관리자 페이지에서도 페이지 로딩이 좀 더 빨라진 느낌이 든다. 아마도 젯팩이 제거되어 퍼포먼스 향상이 더 컸을지도. 제대로 퍼포먼스를 비교하면서 체계적으로 진행한 것이 아니니까 확신하기는 어렵다. 그러나 옵션값을 정리한 것이 나름 의미는 있을 것으로 보인다. 한 번 실험해 볼 만한 주제가 되지 않을까?
-
워드프레스 개발자로 고인물
다른 분야의 개발자들이 얼마나 치열하게 사는지 모른다. 그들의 전문 지식은 어떤 것들인지 또 어떤 일들을 하는지 모른 채 살고 있다.
CMS 하나로도 의미가 있을 수도 있을 것이다. 또한 모든 것을 알 수는 없겠지만, 너무 모른 채 살고 있는 것 같다.