페미위키:기술/archive

최근 편집: 2022년 12월 24일 (토) 11:27
보존된 페미위키 문서 아래 내용은 오랫동안 편집이 이루어지지 않아 기록 열람 용으로만 사용되고 있을 가능성이 높습니다. 이 점에 유의하여 읽어주세요.

페미위키 사이트 개발 중 기술 관련 내용을 정리한 문서입니다. 디자인 관련 문서는 페미위키:디자인을 참고하세요.

페미위키 서버 현황

AWS를 사용하고있다. 비용은 페미위키:보고서/재정 참고

  • mediawiki EC2 (ap-northeast-1)
    • Docker
      • Caddy
      • php7.2-fpm
      • mediawiki
      • Parsoid: node.js
  • database EC2 (ap-northeast-1)
    • Docker
      • 페미위키 디비: mysql
      • memcached
      • 트윗봇: 파이썬
      • 랭킹봇: 파이썬
  • ELB (ap-northeast-1)
  • S3
  • AWS SES (us-east-1)
  • femiwiki.com Route53

서버 배포 방법

본 문서에서는 docker 기반으로 이전하기 전에 임시적으로 사용하는 배포 방법을 설명합니다.

## 배포 절차

### rsync로 복사

```bash
$ cd femiwiki.com
$ git pull
...
$ rsync -avz --rsync-path="sudo rsync" -e "ssh -i fw.pem" * [USER]@[WWW_HOST]:/vagrant
```

### 서버 접속

```bash
$ ssh -i fw.pem [USER]@[WWW_HOST]
```

### provision.sh 스크립트 실행

```bash
$ cd /vagrant
$ sudo ADMIN_PW=[ADMIN_PW] ./www/provision.sh https femiwiki.com parsoid.femiwiki.com [ADMIN_PW]
```
이 때 `if [ ! -f /opt/femiwiki-provisioned ]; then ... fi` 블록에 들어있는 내용은 실행되지 않으니 주의.

## 롤백

롤백할 git 커밋 id를 확인 후에 git checkout을 실행한다. 이후 배포 과정을 동일하게 진행한다.

```bash
$ git checkout [COMMIT_ID]
```

개발 프로세스

원칙

  • 각자가 최대한 자율적으로 의사결정을 하고 원하는 시간에 원하는 방식으로 원하는만큼 참여한다
  • 되도록 모든 과정을 기술팀 내부와 외부에 투명하게 실시간으로 공개하여 누구나 살펴보고 의견을 주거나 참고할 수 있도록 한다

새로운 할 일 추가하기

  • 페미위키:로드맵의 목적 및 체크리스트를 살펴보고 이에 따라 필요하다고 생각하는 일이 있으면 자유롭게 "할 일 후보" 섹션에 적는다. 각 항목은 되도록 작고 독립적인 단위로 나누어 적는다.
  • "할 일 후보"에 새로운 항목이 추가되면 카톡 대화방에서 해당 항목에 대해 충분히 이야기를 나누어 기술팀 전원이 해당 항목에 대해 충분히 이해한 후 이를 "할 일"로 채택할지 여부를 정한다. 대화 내용 중 기록으로 남길 필요가 있는 부분은 정리하여 위키로 옮겨 적는다.
  • "할 일"로 채택된 항목은 "할 일" 섹션으로 옮긴다.

작업 진행하기

  • "할 일" 목록에 있는 항목 중 자신이 할 수 있는 일이 있으면 해당 항목에 서명을 하고 "진행 중인 일" 섹션으로 옮겨 놓는다. "할 일 후보"에 있는 일을 진행하거나, 다른 사람이 이미 진행 중인 일을 별도로 진행해서는 안된다.
  • 해당 작업이 다른 작업과 관련되어 있거나 시스템 전반에 큰 영향을 줄 수 있는 경우 진행하기 전에 카톡 대화방에서 충분히 이야기를 나눈다. 대화 내용 중 기록으로 남길 필요가 있는 부분은 정리하여 위키로 옮겨 적는다.
  • 한 번에 두 가지 이상의 작업에 서명을 하지 않는다.
  • 작업이 완료되면 "완료된 일" 섹션으로 옮긴다.

기술팀 칸반

다음 마일스톤 할 일 후보

이번 마일스톤 할 일 후보

  • [스킨] 문서 쓰기 화면
  • [스킨] 검색 결과 화면
  • [스킨] 비교하기 화면

할 일

  • [스킨] 데스크탑 화면 상단 메뉴
  • [스킨] 본문 읽기 화면 다듬기
  • [스킨] 검색 결과 화면
  • [스킨] 시각편집기 다듬기 (편집)
  • [스킨] 위키편집기 다듬기 (원본 편집)
  • [스킨] 회원 가입 화면
  • [스킨] 환경설정 화면
  • [스킨] 로그인 화면
  • [기능] 베스트 기여자(종합 10위) 대문에 띄우기
  • [기능] 떠오르는 글 목록 표시(내부링크와 기여자수가 높은 문서 등)
  • [스킨] 분류 화면
  • [기능] 페미위키:바뀐글에 "더 읽어오기" 기능 넣기
  • [기능] 페미위키:바뀐글에 각종 필터 적용하기
  • [기능] 페미위키:바뀐글에서 일자별로 묶어서 보여주기
  • [기능] 페미위키:바뀐글에서 같은 제목 연속으로 편집하면 묶어서 보여주기

진행중인 일

  • [스킨] 측면에 바뀐글 보여주기 --탕수육 2016년 10월 16일 (일) 09:44 (KST)

완료된 일

  • 파일 업로드 설정 --탕수육
  • 한국표준시로 변경 --탕수육
  • 모바일 화면 지원하기 --탕수육
  • 외부 접근 차단. 외부인은 페미위키:대문페미위키:초보자 도움말 페이지에만 접근 가능. 회원 가입 후 관리자가 seeder 권한을 명시적 부여해야 나머지 문서를 읽고 쓸 수 있도록 --탕수육
  • 외부 링크 클릭시 우리 사이트 주소(HTTP_REFERER)가 노출되지 않도록 숨기기 --탕수육
  • femiwiki.com 도메인 연결하기 --탕수육
  • 짧은 URL 형태로 변경하기 (주소에서 index.php 제거) --탕수육
  • 채널 암호화 (HTTPS 적용하기) --탕수육
  • 패스워드 재발급 메일 발송 --탕수육
  • Visual Editor 붙이기 --탕수육
  • 페미위키:디자인에 필요한 작업 내역 나열하기 --탕수육
  • [안정화] 데이터 백업 자동화 --멘동
  • [안정화] 데이터 백업 정책 정하기 --멘동
  • [기능] 베스트 기여자(최근 10위) 대문에 띄우기 --탕수육 2016년 8월 28일 (일) 23:18 (KST)
  • [기능] 훈장봇 순위에 exponential smoothing 적용하기 --탕수육 2016년 9월 1일 (목) 00:03 (KST)
  • 시각편집기 안정화 - AWS Lambda로 옮기기 시도. 가능은 하지만 응답 시간이 약 10초라서 이용 불가 --탕수육 2016년 9월 14일 (수) 16:05 (KST)
  • 시각편집기 서버 분리 --탕수육 2016년 9월 15일 (목) 10:37 (KST)
  • robots.txt 작성 --탕수육 2016년 9월 19일 (월) 23:03 (KST)
  • [SEO] Google Search Console 설정하기 --탕수육 2016년 9월 19일 (월) 23:21 (KST)
  • [SEO] 네이버 웹마스터 도구 설정하기 --탕수육 2016년 9월 19일 (월) 23:50 (KST)
  • [SEO] sitemap.xml 등록하기 --탕수육 2016년 9월 19일 (월) 23:21 (KST)
  • 새 AWS 계정으로 서버 옮기기 --탕수육 2016년 9월 18일 (일) 17:00 (KST)
  • [SEO] Schema.org 적용하기 --탕수육 2016년 9월 24일 (토) 11:02 (KST)
  • 사용자:헤럴드봇 개발 --탕수육 2016년 9월 24일 (토) 11:03 (KST)
  • [스킨] 공통 영역 --탕수육 2016년 9월 29일 (목) 21:39 (KST)
  • [스킨] 문서 읽기 화면 --탕수육 2016년 9월 29일 (목) 21:39 (KST)
  • [성능] Memcached --탕수육 2016년 9월 29일 (목) 22:02 (KST)
  • [스킨] 최근 바뀜 화면 #1/2 (HTML을 수정하지 않고 CSS만으로 할 수 있는 최소한의 개선) --탕수육 2016년 9월 29일 (목) 22:02 (KST)
  • [분석] 구글 태그 관리자 도입 --탕수육 2016년 10월 2일 (일) 00:12 (KST)
  • [성능] HTTP cache, 압축 등 응답 최적화 --탕수육 2016년 10월 9일 (일) 22:53 (KST)
  • [스킨] 대문 --탕수육 2016년 9월 30일 (금) 18:07 (KST)
  • 생성되지 않은 분류의 열람 디자인 --탕수육 2016년 10월 15일 (토) 20:44 (KST)
  • [스킨] 상단 디자인 개편 --탕수육 2016년 10월 15일 (토) 22:39 (KST)
  • [스킨] 최근 바뀜 화면 #2/2 --탕수육 2016년 10월 16일 (일) 09:44 (KST)