Attached image

TSBOARD v0.9.9 업데이트 및 개발 로드맵 변경사항 안내 [중요!]

0 0 98 2024-10-19

안녕하세요! TSBOARD 개발하고 있는 시리니입니다.


열심히 v1.0.0을 향해 나아가고 있는 와중에, 중간 업데이트로 v0.9.9를 소개드립니다.

아래와 같은 사항들이 반영되었습니다.


  • 본문을 클립보드에 복사하기

    • 로그인 한 사용자는 게시글 보기 화면 우측 하단에 “작업” 부분을 클릭 하시면 본문을 클립보드에 복사할 수 있는 버튼이 활성화 됩니다. 클릭하시면 본문 내용을 간편하게 복사 하실 수 있습니다.

  • 게시글 작성 시 HTML 입력하기 기능 추가

    • 위의 클립보드에 복사한 본문은 기본적으로 HTML 태그가 반영되어 있습니다. 그래서 그냥 에디터에 붙이시면 태그가 제대로 적용되지 않으므로, 글 작성란 좌측 하단에 HTML 버튼을 클릭하여 붙여 넣고자 하는 내용을 넣으신 후 APPLY 버튼을 클릭하시면 에디터 화면에서도 HTML 태그가 적용된 상태로 보실 수 있습니다.

  • home.color.header 값 변경으로 대부분의 색상값들이 변경될 수 있도록 수정

  • 새로 TSBOARD를 설치할 때 .env 파일에 GOAPI용 변수 미리 추가

    • 아래 내용처럼 지금 운영하는 TSBOARD에 수동으로 추가하실 수 있습니다.

    • GOAPI_VERSION=1.0.0

    • GOAPI_PORT=3003

  • 게시글 목록 가져오기 시 로딩 효과 추가, 처음 페이지 로드 시 게시판 폭이 너무 작게 나오는 문제 수정


그리고, 중요한(?) 개발 로드맵 변경사항을 안내드립니다.


  1. TSBOARD v1.0.0부터는 백엔드를 더 이상 Bun 런타임에 의지하지 않습니다. 대신, Go언어로 작성된 새로운 백엔드 바이너리 파일이 포함되어 배포됩니다. 새로운 백엔드 바이너리 파일들은 운영하시는 OS 버전에 맞춰 사전 빌드된 후 함께 전달되며, 수정을 원하시는 경우 GOAPI 리포지토리를 통해 코드를 내려 받으셔서 작업 하실 수 있습니다.

  2. TSBOARD 쇼핑몰 모듈은 v1.1.0 공개 때 소개 예정입니다. ‘25년 5월 중으로 공개하고자 하며, 그 전까지 게시판/갤러리 및 블로그 모듈의 기능 개선 및 안정화에 더 노력 하겠습니다.

  3. Client Side Rendering 방식 및 프론트엔드 쪽 스택은 변경사항이 없을 예정입니다. (검색 엔진을 위한 sitemap.xml 및 최신 글보기 기능 유지)


TSBOARD는 Bun 런타임과 ElysiaJS 웹프레임워크 기반의 커뮤니티 빌더입니다. (현재까지)

Bun 런타임 덕분에 타입스크립트를 프론트엔드에서 백엔드에 이르기까지 두루 사용할 수 있었고, 성능 측면에서도 크게 아쉬움없이 타입 안정성을 유지하면서 개발을 해 나갈 수 있었습니다. GeekNews에 소개한 후로 많은 분들의 관심을 받았었는데, 감사하게 생각하고 있습니다. 😉


제가 선택한 스택들에 대해서는 후회하지 않습니다. 만약 다시 선택한다 하더라도 똑같은 선택을 했을듯 합니다.

그러나, 아래의 몇가지 이유들로 인해 백엔드를 Go언어로 재작성하고자 합니다.


  1. Bun 런타임은 한동안 가상 서버 CPU에서 제대로 동작하지 못했습니다. 이제는 해결되어서 무리없이 동작하고 있습니다만, 이 문제는 한동안 저를 괴롭혔습니다. 아마도 이 문제가 처음부터 없었더라면, 백엔드를 재작성하겠다는 무시무시한 결정을 하진 못했을 겁니다.

  2. Node 혹은 Deno 기반으로 가는 것도 고려 했습니다만, Bun만큼의 성능이 나오지 않아 제외하였습니다. TSBOARD를 만들면서 가장 중요하게 생각했던 건 서버 쪽 리소스를 최대한 효율적으로 사용하면서도 고성능을 유지하는 것입니다. 국내 중소 규모의 커뮤니티 사이트에서도 무리 없이 트래픽을 감당할 수 있어야 하고, 더 빠른 피드백을 제공할 수 있도록 하기 위해 더 이상 자바스크립트/타입스크립트 런타임에는 의존하지 않기로 하였습니다.

  3. 그누보드가 선택한 파이썬부터 Rust, Go 등의 언어를 검토했고, 개발 생산성과 성능 등의 관점에서 최종적으로 Go언어를 선택하고 현재 초기 구조를 잡고 있는 상태입니다. 물론 이제는 좀 익숙해진 자바스크립트 기반으로 개발하는 것에 비할 바는 아니지만, 그럼에도 Go언어만의 간결함과 높은 개발 생산성, 그리고 크로스 컴파일러가 선택의 이유입니다.


Bun 런타임이 가지고 있던 고질적인 문제(가상 CPU에서의 버그)가 해결된 마당에, 굳이 백엔드를 바꿔야 할까 많이 고민했습니다. 사실 지금도 성능 측면에서는 꽤나 만족하고 있으니까요. 그러나, 더 개선할 여지가 분명히 있고 백엔드쪽 성능을 한단계 높이고 싶은 마음도 분명히 있기 때문에 일단 실행에 옮기기로 하였습니다. (이래놓고 후회하는 건 아닌가 모르겠군요)


계획대로 진행된다면 12월 말에 선보일 수 있을 것 같습니다.

아무쪼록 잘 진행할 수 있게 응원 부탁드립니다… 🥹


백엔드 교체와 관련한 보다 상세한 내용은 추후 블로그를 통해서 소개 하겠습니다!

tsboard
업데이트
goapi
백엔드
재작성
golang
bun

시리니님

프로필

최근 댓글들