고객 컨텐츠 데이터 손실에 대한 이야기

간단한 자기소개


18일 외로이 비었기 때문에, 고목도 산이었다...내가 쓸게.
나는 엔지니어로서 벌써 7년이 다 되어 간다.전공은 백엔드(주요: Java/C#)입니다.
그러나 소수의 사람이 개발하고 불안정한 현장이 많기 때문에 부족한 역할은 대부분 말아서 일하고, AWS 구축도 일부 했으며, 애플리케이션(iOS/Android/ReactNative)도 배려했다.
최근 1년 동안 가장 즐거웠던 일은 bitrise stg 응용 환경을 발표하고 구축하는 것이다.
가장 싫어하는 일은 전통을 초월한 ReactNative 앱을 안드로이드 64비트로 업그레이드하는 것이다.(그리고 저는 백엔드 담당자입니다.)
백엔드랑 전혀 상관이 없네요.

완료된 안건 개요


나는 엔지니어로서 벌써 두 번째 가을이다.
내가 엔지니어로서 어떤 사이트 구축상으로 전근되었을 때
이 현장에서 듣기 좋은 말을 하면 개인적인 능력과 자유가 있는 회사입니다.
기본적으로 회의는 단지 먼저 설명할 뿐이다.그리고 납기일만 표시하고 그 전에 하면 돼요.
코드 검사가 없으면 테스트도 구축자가 직접 진행한다.테스트 내용이나 고객의 요구가 없으면 할 필요가 없다.
이 시기에 영업회는 정식 업무 환경의 정보를 엔지니어에게 전달하고 엔지니어는 정해진 날짜에 혼자서 업무를 발표한다.
뭔지 모르면 근처 사람들을 잡아서 내 말을 들으세요 ♪
그런 현장WordPress(WP)에서 짧은 인도 기간으로 2건의 새로운 웹 사건을 구축한 뒤MovableType(MT) 안건이 결단됐다.
사건의 대략적인 내용은
  • 기존 웹 사이트의 리디렉션 건
  • 구축 사이트가 비교적 작고 납기일: 3주.
  • 기존 웹사이트도 MT로 구축해 MT로 계속 구축한다.
  • 공지와 블로그의 내용을 상속하시기 바랍니다.
  • 유행 추세


    나: "MT 같은 경험이 없는데 3주 동안 갈 수 있어요?"
    영업: "괜찮아! 괜찮아! 워드프레스처럼!"

    어쨌든 선배 엔지니어에게 물어보고 구축하기 시작한다


    나: "MT가 현재의 환경을 계승한 상황에서 어떻게 해야만 현지 환경을 창조할 수 있습니까?"
    선배 엔지니어: "현지 환경을 만들고 정식 DB를 뒤집어 현지 환경의 일부분을 수정하고 다시 시작하면 됩니다."
    따라서 다음 순서에 따라 실시한다.
  • 로컬 개발 환경 구축
  • 공식 환경을 위한 DB
  • 덤프
  • 로컬 수정
  • 로컬 환경의 DB로 리디렉션
  • 실장 한계에 빠지다


    MT와 WP는 크게 다르다. 완전히 자기 생각대로 진행됐지만, 여러 가지 생각이 다르다는 것을 실감하면서
    문서도 대충 마무리했기 때문에 실제 설치하는 방법으로 확실히 완성하는 방향으로 전진했다.
    그렇지만실장의 마지막 단계에서 원인을 전혀 모르는 현상을 만났다.
    어떤 내용과 관련된 다른 내용을 하위 구조(1대 다)의 템플릿으로 설치했을 때의 일.
    하위 컨텐트가 변경되었으므로 모든 페이지의 해당 컨텐트가 변경될 것으로 기대됩니다.
    왜 하위 내용의 내용은 전혀 변하지 않았는가.
    어쨌든 나는 이렇게 간단하고 알기 쉬운 잘못이 있다고 생각하지 않는다.
    무슨 이상한 일 있어?...하지만아무리 확인해도 틀린 척한 느낌이 없다.
    결론적으로 MT는 내용을 저장할 때 사이트 구축 동작을 실행하고 영향을 미치는 페이지를 정적 HTML로 한다
    출력 구조지만 설치 방법이 좋지 않아 구축 동작이 적용되지 않는 것 같습니다.
    (이미 구체적인 실시 내용은 기억나지 않지만, 지식이 부족한 탓인 것 같다.)
    결과적으로 기한은 가능한 한

    발행 일자


    번거로운 일이 많았지만 드디어 발매일을 맞았다!!
    발표 순서 등은 전혀 확인되지 않았지만, 기본적으로 개발 시작과 반대되는 순서는 문제가 없을 것으로 보인다.
    다음은 발표 순서(기본적으로 개발 시작 방법과 상반된 전환)
  • 로컬 환경의 DB 덤프
  • 정식 사용으로 수정(로컬 환경의 URL/전체 경로를 정식 사용으로 교체)
  • 공식 환경에 로그인하여 공식 DB에 적용
  • 공식 환경 MT를 새로운 DB 쪽으로 연결
  • 문제가 발생하면 DB의 방향 복원
  • 이 순서에 따라 발표하고 동작을 확인합니다.문제 없이 움직이는 것 같으니 고객님께서 확인해 주세요.
    (2~3시간 후 OK)

    훗날


    영업 연락을 받다.
    "저... 최근 3주 전에는 블로그 기사가 없었던 것 같은데, 뭘 아시나요?"
        !?

    무슨 일이 있었는지


    로컬 개발 환경 구축에서 실현 완료 사이.고객 측도 블로그와 알림을 보내고 있습니다.
    개발 환경의 내용을 흡수하지 않은 상황에서 현지 개발 데이터를 정식 환경으로 끌어올렸다.

    이런 현상이 일어나지 않기 위해서 뭘 해야 돼요.


    [꼭 필요한 일!]
    선배 엔지니어가 상황을 잘 설명하고 평가해 주세요.
    적어도 과거에 하지 않았던 발매(MT도 그렇고 데이터를 물려받은 재방송 자체는 처음)는 꼭 봐야 한다.
    [꼭 필요한 일 2]
    고객을 대상으로 현재 개발 중이기 때문에 콘텐츠를 추가·편집·삭제하는 경우 이 정보를 발표 때까지 공유할 계획이다.
    [기술적으로]
    이번 구축은 내용 데이터와 템플릿 데이터를 구축했다.
    그리고 MT의 템플릿과 내용은 모두 DB와 묶여 있기 때문에 기본적으로 DB만 적용해서 발표할 수 있다고 생각합니다.
    나중에 선배 엔지니어한테 들었는데 설계 가져오기 및 내보내기 기능 있고 디자인만 기존 DB에 포함할 수 있다고...송이경(신지현):먼저 말해줘...
    물론 내용 데이터는 개발자와 고객 쌍방이 추가한 것으로 이 부분은 합병이 필요하다
    기존 DB에 이쪽에서 만든 새로운 데이터만 제출하면 되기 때문에 최소한 고객 측 데이터에 대한 두려움은 해소되지 않았다.

    행운도 아끼지 않고 끝났어...


    기존 DB가 남아있기 때문에 이를 전환하면 바로 복구할 수 있다.
    기존 DB에서 영업사원이 고객과 소통해 3주간의 데이터 차이를 추출해 주십시오
    새로운 DB에 이식함으로써 데이터가 사라지는 것을 방지할 수 있다.(이 때문에 제목 사기가 될 수 있음
    자기가 다른 회사 사람인데 직접 사과하지 않았어요.
    사과하는 종업원.이번 일로 디자이너는 고객으로부터 추가 요청을 받은 js의 IE 7에 대한 대응 대응을 받아들였다.
    이럴 때 정말 고마워요...

    최후


    "이번에도 어떻게 해볼 수 있어요!"이번에 우리는 오만함으로 인한 사태를 소재로 삼았다.
    이번에 나는 이런 기회를 다시 한 번 되돌아보았다.
    발행일에 이런 사태를 막을 방법이 있나요?
    ...아마 안 되겠지.그때는 기술력도 없었고 오류를 눈치채지 못한 프로그램이 오류였죠.
    그렇다면단체로서 어떻게 방지하면 좋을까요?
    그때 선배 엔지니어였다면 무슨 일이 있었을까?
    이런 상황이 발생하기 전에 젊은 엔지니어에게 알려줘야 할 것은 무엇일까?
    - 정신을 차려보니 핵심 엔지니어로서 연수가 짧은 엔지니어와 함께 일하는 경우가 늘었다.
    나는 지금 자신의 경험에 근거하여 사람들이 자신이 이해하지 못한다는 것을 깨닫게 하는 환경을 만드는 것이 가장 중요하다고 생각한다.
    이렇게 되면 자신과 같은 경험을 가진 엔지니어가 줄어들면 이보다 더 행복한 것은 없다.
    끝까지 함께 해주셔서 감사합니다.
    마지막으로 이렇게 멋진 Advent 달력의 주최자가 열렸습니다.
    그리고 졸렬한 글이지만 이 글을 읽어주신 여러분 정말 감사합니다.

    좋은 웹페이지 즐겨찾기