Home 게시판 커뮤니티 자유게시판 세로 본능 워드프레스!

4개 답변, 2 voices Last updated by Avatar of codeicodei 7 years, 6 months 전
  • Avatar of codeicodei
    Participant
    @codei
    #37119

    최근 이직을 고려중인 codei 입니다.  [이유는 묻지 말아 쥬세염]

     

    아무튼 이번 주제는 바로 세로 본능 워드프레스! 입니다.

    윅? 갑자기 뭔 세로 본능?

     

    웹 사이트 라는것은 백엔드 관점에서 볼때  단언 해도 좋습니다.

    DB 스키마가 전부 입니다.

    워드프레스에서 후크 시스템이 들어가고, 루프를 돌고, 플러그를 쓰고 테마를 가져다 쓰고…

    이건 그냥 개성 이라고 해야 할까요?

    [사실 워드프레스 비슷무리 한 솔루션도 한국엔 꽤 있었습니다. 제법 비슷한 것도 있었고 판매도 했고 버전관리도 몇년 했는데도 그냥 묻혀서 없어진 것도 있습니다.]

     

    좀 더 쉽게 이야기 해서 php 레벨에서 노는 기능들은 사실 아무래도 좋은 겁니다.

    날고 뛰어봐야 그래봐야 웹 사이트에요. php로 만들어진 웹사이트 라구요.

     

    이보다 중요한 것은 오히려 DB 라는 존재 입니다.

    데이터베이스 설계는 그 사이트의 중추 핵심 입니다.

    과거에 DB 스키마 한장 보여주고는 사이트 만들라고 한 사람도 있었습니다.

    자세한 설계/기획서 따윈 필요없고 DB 스키마만 보면 이게 뭘 하려는 건지 알 수 있거든요.

    디자인 입히는 일은  사실 프론트엔드 일이죠.

     

    즉 DB 스키마를 보면 리버스엔지리어링으로 사이트 구축이 바로 나온다고 볼수 있습니다.

    [리버스 라고 하기에도 웃긴게, 그 사이트의 영혼을 본셈인데 그냥 해석만 다르게 해서 만드는 거죠 뭐.]

     

    서론이 길었네요 ㅋㅋㅋ

    세로 본능! 네. 워드프레스의 DB 에 관련된 이야기입니다.

     

    워드프레스는 세로 본능 입니다.

    딱히 알아도 그만 몰라도 그만 이긴 하지만 한번 쯤 꼭 집어보고 싶어서 써봅니다.

     

    우리는 DB를 배울때 전부 관계형 데이터베이스라고 배웁니다.

    1세대 2세대 3세대 거쳐서 ㄷ 자 형태가 되면 안되다 서부터 해서 마지막에 관계형으로 만드는게 우왕굳! 이라고 배웁니다.

    지금도 대학에선 그렇게 가르칠 겁니다.

    그리고 데이터는 항상 row열을 기준으로 쌓이고 이걸 관계로 맺어서 가져옵니다.

    이것을 출력해 보면 한줄의 데이터로 묶이게 됩니다.

    네! 마치 가로 본능입니다. 가로 형태로 데이터가 쌓이거든요.

     

    하지만 워드프레스는 관계형으로 만들지 않습니다.

    메타 데이터를 만들고 세로로 데이터를 추가 합니다.

    이걸 묶어서 출력하면 세로로 출력 됩니다.

     

     

    좀더 쉽게 예를 들죠.

     

    가로본능 의 유저 데이터 일 경우

     

    id pw name email user_status
    codei …… codei codei@gmail.com 0

     

    세로본능의 경우

    meta value
    id codei
    pw ……
    name codei
    email codei@gmail.com

    이런식 입니다.

     

    엥? 그냥 세로냐 가로냐 차이일 뿐이자나?

    하고 하시는데 사실 이건 엄청난 차이 입니다!

     

    일단 쿼리문이 전혀 다르거든요.

     

    관계형 DB의 최대 오류는 관계를 계속 가질 수록 컨트롤이 어렵다는 겁니다.

    이는 마치 그거에요.

    우리가 폴더를 여러개 쌓아서 만들고 계층형으로 저장 합니다.

    그중에서 5번 계층의 파일을 지우고 싶어요.

    그럼 5번 계층의 폴더안에 파일을 지우면 됩니다. 그런데 관계형은 그 밑에 10번부터 지우고 올라와야 합니다 ㄱ-

    왜냐면 그 밑에도 영향을 주기 때문입니다.

    [아 물론 무시 하는 방법도 있지만 일반적이지 않으니 제외해 두고]

     

    하지만  관계가 아닌 워드프레스 방식으로 만들면 계층 구조가 평면화 됩니다.

    그냥 5번째 파일 지우면 되요. 참 쉽죠?

     

    즉 데이터의 생성 방식이 전혀 다른 겁니다.

     

    그럼 세로본능 방식이 최고 인가요?

    아뇨. 세로본능에는 단점이 존재합니다.

     

    그것은 메타 데이터를 만들기 때문에  가로 방식보다 더 많은 데이터를 만들어 쓴다는 겁니다.

    데이터는 많이 만들 수록 더 퍼포먼스가 떨어집니다.

    거기에 동일한 쿼리라도 퍼포먼스가 메타데이터 쪽이 훨씬 더 어렵고, 효율도 떨어집니다.

     

    Why?

    그럼 왜?

     

    이 부분에 대한 해설은 여기서 글로 표현은 좀 어렵습니다.

    사실 단점을 적지말까 고민도 했습니다. [괜히 이상하게 결론으로 받아 들일거 같아서]

    이 부분에 대해서 장단점과 왜 그런지에 대한 이해를 시키려면 한참을 설명해야 하는데, 이걸 딱 한 마디로 표현해 드릴께요.

     

    “당신이 무엇을 하는 사람인지, 얼마나 논리적인 프로그램을 하는 사람인지는 모르겠다만, 적어도 당신 보다 머리 좋은 사람들이 만든 겁니다.”

     

    보통 프로그래머들이 비 효율적인 로직을 도입 할때 2가지를 봅니다.

    1 단점보다 장점이 많아서

    2 상사(클라)가 그렇게 시켰거나, 그렇게 배워서.

     

    워드프레스는 1번을 선택 한겁니다.

    세로본능으로 가로본능 보다 비교적 느리고, 쿼리도 복잡하게  만드는 대신에 뛰어난 확장성을 확보 했습니다.

    이게 워드프레스의 진수라면 진수 이죠.

     

    그런 구조적인 차이 때문에 어지간한 cms 솔루션을 워드프레스로 바로 import가 쉽지 않은 것입니다.

    [그런 플러그인 만들어달라고 하면 또 만들겠다만…]

     

    결과적으로 워드프레스를 백엔드 단위에서 파본 사람은 느낄 것입니다.

    ‘어 잠깐? 내가 배운거랑 좀 다른데? 왜 이렇게 했지?’

    라는 의문에서 출발해서

    ‘어? 그럼 이런건 안될거 같은데… 어? 되네? 안 되는게 없네?’

    이걸로 마무리가 됩니다.

     

    다 생각해 두고 만든거에요.  보면 볼 수록 하나의 룰이 있다는 것을 확연하게 알 수가 있죠.

    다만 몇몇 플러그인들은 이 룰을 제멋대로 바꿔버리는 애들이 있는데 하아 -_-… 이 근본 없는 것들!

    Avatar of Matthew ParkMatthew Park
    Moderator
    @hackya
    #37122

    뮬런버그 (뮬런웨그 아닙니다. 왜 자기들 멋대로 사람이름을 바꿔 부르는지.. ㅋㅋㅋ) 가 처음에 워드프레스를 만든게, 자기 재즈 컨서트 하는 거 홍보하기 위해서 b2/cafelog http://cafelog.com/ 라는 매우 원시적인 php 코드를 포크해서 시작한겁니다. 포크한 이유가 이 php 코드를 개발하던 사람이 개발을 중단해서 뮬런버그가 가져온거죠.

    왜냐하면 자기는 콘서트 홍보하기 위해서 계속 써야 하니까. (색소폰 실력은 그저 그런걸로 알고 있습니다.)

    뮬런버그는 정치학을 공부했고, 재즈음악을 하고 싶었던 친구 입니다. (애초부터 프로그래밍이랑 거리가 매우 멀었어요. 학교에서 프로그래밍 공부를 한적도 없고.)

    암튼 그래서 워드프레스는 초창기부터 어마어마하게 까였어요. 프로그래밍 개떡 같고, 메모리 사용 엄청나고, 완전 병맛이고, 어쩌고 저쩌고…

    페북도 똑같습니다. 페북은 어떻게 이렇게 php 프로그래밍을 못하냐? 제대로 된 프로그래머가 한명도 없는 것 같아. 어쩌고 저쩌고..

    워드프레스가 드루팔과 비교될때 꼭 나오는 말이 있습니다. 드루팔은 프로그래머 중심이고, 워드프레스는 사용자 중심이다.

    저는 솔직히 드루팔로 저혼자서 사이트 짤 자신이 없습니다. 오래전에는 (version 6 정도까지) 개삽질을 해서라도 사이트를 짤수 있을지도 모르는데, 지금은 엄두도 안납니다.

    대다수의 프리랜서들은 php, js, css, 각종 API 사용 등등… 커버해야 하는 범위가 넓습니다. 워드프레스가 드루팔 처럼 난해하고 모듈 맞추기도 한달씩 걸린다면, 저는 워드프레스 개발자로 밥먹고 살지 못했을 겁니다.

    워드프레스의 최대강점은, 원래 음악하고 싶었던, 정치학을 공부했던, 프로그래밍과는 거리가 먼 뮬런버그에 의해 시작되었기에, 누구라도 쉽게 사용할 수 있게 시작되었고, 지금도 이 철학이 유지되고 있는 점 입니다.

    반면 드루팔은? 소수의 프로그래머들만 자기만족하며 씁니다. 그리고 드루팔로 밥먹고 사는 사람은 극소수고. 그나마 일거리들도 떨어져서 드루팔 개발만 하던 개발회사들이 몇년전 부터 워드프레스로 옮기는 경우가 많았습니다.

    워드프레스를 프로그래밍 쪽으로 깔려면 하루종일 까겠죠.

    프로그래머들이 이해를 못하는건,

    비지니스 오너들은, MVC 고 class 고 뭐고 관심도 없어요. 내 사업체가 원하는 솔루션을 얼마나 빨리 제공해 줄 수 있고, 비용이 얼마 들어가느냐. 이것밖에 신경쓰는게 없다는 사실입니다.

    이상과 현실은 다르다고 생각합니다.

    아, XX님, 이거 inline 으로 짜면 어떻게해요? 이러면 나중에 다른 자스랑 충돌생길수도 있잖아요!! – 라고 안합니다. 그냥 제 마음속에 담아둘 뿐이죠.

    왜냐하면 사이트는 오늘 올라가야 하는데, 이런것 까지 다 지적질 하면, 언제 작업을 끝내나요? 못끝내거든요. – 이게 워드프레스 정신이라고 생각합니다.


    아, 근데 정말, 왜 연락을 안주시나… 저 이제 자야되는데…. ranker 님 연락좀 주셈!!! ㅋㅋㅋㅋ

    나 몰라요. 1시간안에 저 그냥 잘겁니다. 알아서 하세요. ㅋㅋㅋㅋ

    Avatar of Matthew Park
    Attorney, front-end developer, digital media artist, WordPress enthusiast, & a father of 4 wonderful children.

    Lives in Colorado.

    Avatar of codeicodei
    Participant
    @codei
    #37127

    메뉴얼 보고 깜놀 한것중 하나가 그거네요 ㅋㅋㅋ

     

    아, 그러니깐 그건 너님이 알건 없고, 이렇게만 하세요.

     

    정말 저렇게 쓰여있 ㅋㅋㅋ [물론 의역이긴 하다만]

     

    저도 워드프레스 엄청나게 깔 수 있어요. 왜 이따위야! 라고 말이죠.

    그런데 그걸 넘어서는 장점이 있는 겁니다.

    원래 깔려면 제대로 알고 까야 제맛이잖아요? ㅎㅎ

    근데 제대로 알고 보면 생각보다 틈이 없죠.

     

    뭐 그건 그렇고, 저도 에이전시 뛸때 어렴풋이 느낀 건데

    의뢰자들은 뭘로 만들든 거의 관심없어요.

    그냥 원하는 화면 결과만 보여주면 됩니다.

     

    그래서 백엔드가 개판이든 관심 없음 ㅋㅋㅋ

    화면만 예쁘면 됨.

    그러다가 과거에 에잇18! 로 개판 쳐놓은 사이트 한번 구경 시켜줘야 정신 차릴려나…. 하는 생각도 간혹 들었습니다. ㅋㅋㅋ

     

    대학 과제를 맡겨도 이렇게 안 만들겠다 한 수준 말이죠. ㅋㅋㅋ

    Avatar of Matthew ParkMatthew Park
    Moderator
    @hackya
    #37142

    “대학 과제” ㅋㅋㅋㅋㅋ

    몇년전에 제 사이트를 통째로 뜯어다가 대학과제로 제출하신 어느 컴공과 대학생 분들이 계셨는데, 문제가 제 애드센스 코드까지 그대로 노출되고 있는….

    “제 사이트 뜯어서 가져다 쓰시는건 괜찮은데, 제 애드센스 코드 (javascript) 는 삭제좀 해주세요.” 라고 공지를 해야 했던 적이 있습니다.

    제 애드센스 코드가 어느 대학교 웹사이트에 노출되고 있는 상태라 부정행위로 구글한테 징계먹을까봐… ㅋㅋㅋㅋㅋ

    Avatar of Matthew Park
    Attorney, front-end developer, digital media artist, WordPress enthusiast, & a father of 4 wonderful children.

    Lives in Colorado.

    Avatar of codeicodei
    Participant
    @codei
    #37143

    애드센스 ㅋㅋㅋㅋ

    아 미치겠네요 ㅋㅋㅋ

     

    과거에 이쪽업계 전설이 하나 내려오는데, 과거에 쇼핑몰이 붐을 이룰때 신입 한명 에게 개발을 맡겼더니만

    금방 만들었다는 겁니다.

    이상해서 소스 까보니 쇼핑몰 만들기 책 사면 주는 부록 cd 소스 그대로 넣음 ㅋㅋㅋ

    주석문까지 그대로 라고 ㅋㅋㅋ

     

    문제는 그런 책에 들어간 소스는 추가로 처리 해줘야 하는 부분들 [보안 누수]이 필요한 코드라서 보안에 취약하거든요 ㅋㅋㅋ

    그걸 그대로 제출한 신입이나, 그걸 그대로 납품한 업체나 ㅋㅋㅋ

5 글 보임 - 1에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.