콘텐츠로 이동

포트폴리오 사이트 리뉴얼

맥락 및 문제 설명

홈 서버에 올려두었던 기존의 워드프레스 포트폴리오 사이트가 홈 서버로 사용하던 라즈베리파이의 문제로 다운되었다. 사이트 제작 및 배포에 대한 방안을 마련해서 리뉴얼을 해야 한다.

결정 동인

  • 유지보수가 간단하고 편했으면 좋겠다.
  • 글 작성이 쉬웠으면 좋겠다.
  • 디자인에 대한 완성도는 높지 않아도 된다.
  • 한국어/영어 페이지 설정이 가능하면 좋겠다.

후보안

  • 홈서버 혹은 외부 서버에 워드프레스 사이트를 만들어서 배포
  • React로 홈페이지 직접 제작
  • Jekyll을 활용하여 제작
  • Gatsby를 활용하여 제작
  • Sphinx를 활용하여 제작
  • MkDocs를 활용하여 제작

선택안

"MkDocs를 활용하여 제작"을 선택했다. 왜냐하면

  • 해당 안이 배우는 데에 가장 진입장벽이 낮았다.
  • 해당 안이 모든 결정동인들을 만족했다.

후보안의 장단점

홈서버 혹은 외부 서버에 워드프레스 사이트를 만들어서 배포

기존에 제작해둔 워드프레스 사이트를 재활용하는 방법이다.

  • Good, 기존 사이트를 재활용할 수 있다.
  • Bad, 기존 사이트를 운영하면서 가지고 있던 이슈들(직접 html, js 등으로 이루어진 소스코드를 뜯어보지 못한다면 디자인 자유도 낮음, 플러그인 업데이트를 주기적으로 해주어야 함)이 그대로 유지된다.
  • Bad, 홈 서버를 운영하려면 rpi를 고쳐야 하고, 외부 서버를 사용하려면 비용이 들어간다.

React로 홈페이지 직접 제작

  • Good, 구현만 가능하다면 디자인에 대한 자유도가 높다.
  • Good, 정적 사이트로 구현하면 github pages를 활용하여 무료로 배포할 수 있다.
  • Bad, 한 페이지를 만드는 데에 react로 코드를 짜야 한다. 즉, 내용 작성 외에도 추가로 작업이 필요하다.
  • Bad, React 문법에 그리 익숙하지 않다.
  • Bad, 장기적으로 봤을 때에 유지보수를 위해서는 React를 쓸 줄 알아야 한다. 그런데 평소에 React로 코드를 짤 일이 그다지 많지 않다.

Jekyll을 활용하여 제작

  • Good, Jekyll로 만든 각종 포트폴리오 사이트들이 이미 세상에 많이 존재한다. 즉, 참고할 자료들이 많다.
  • Good, github pages를 활용하여 무료로 배포할 수 있다.
  • Bad, 여기서는 ruby를 주된 언어로 쓴다. 나는 ruby를 한 번도 써본 적이 없고, 앞으로도 쓸 일이 있을지 잘 모르겠다.

Gatsby를 활용하여 제작

  • Good, Gatsby로 만든 각종 포트폴리오 사이트들이 이미 세상에 많이 존재한다. 즉, 참고할 자료들이 많다.
  • Good, github pages를 활용하여 무료로 배포할 수 있다.
  • Bad, 제작을 시도해봤다가 wiki 페이지 같이 더 단순하고 추가 기능이 별로 붙어있지 않은 사이트 생성기를 쓰는 것이 낫겠다는 생각이 들어서 그만뒀다.

Sphinx를 활용하여 제작

  • Good, 파이썬 프로젝트를 문서화 하는 데에 주로 사용되는 툴이라 익숙하다.
  • Good, github pages를 활용하여 무료로 배포할 수 있다.
  • Good, 유저들이 만들어놓은 각종 템플릿들이 존재한다.
  • Bad, 문서 작성에 rst파일 형식을 사용해야 하는데, 지금까지 sphinx를 쓸 때 말고는 이를 활용하는 곳을 본 적이 없다.
  • Bad, 아직 rst에 익숙하지 않아서 추가 공부가 필요하다.

MkDocs를 활용하여 제작

  • Good, 마크다운 기반으로 문서화를 하는 데에 사용되는 툴이라 익숙하다.
  • Good, github pages를 활용하여 무료로 배포할 수 있다.
  • Good, 사용자 커뮤니티가 활발하게 유지되고 있고 사이트 제작에 활용할 수 있도록 material이라는 프레임워크가 개발되어 있어서 포트폴리오 페이지를 만들기 위한 편의 기능들이 많이 제공되어 있다.
  • Neutral, material의 전체 기능을 활용하고 싶다면 결제가 필요하다(github에서 support를 해야 한다.).