TSBOARD v1.0.0 정식 버전 공개합니다
0 10 531 2024-12-30
TSBOARD v1.0.0 출시 소식을 전하기에 앞서서
제주항공 여객기 참사로 희생된 모든 분들을 깊이 추모합니다.
안녕하세요. TSBOARD 개발하고 있는 시리니입니다.
지난 RC (출시 후보) 글에서 말씀드린대로, 2024년이 저물기 전에 (체감상) 1년 가까이 개발해 온 TSBOARD의 정식 버전을 공개합니다.
처음에는 프론트엔드와 백엔드 모두 타입스크립트로 작성한 고성능 웹 게시판(?)을 목표로 개발을 진행 했습니다.
그러다 백엔드 런타임으로 선택했던 Bun 초기 버전의 가상 cpu 동작 불가 버그 및 패키지 관리 문제를 만났습니다.
고심 끝에 v1.0.0 출시 전에 Go 언어로 백엔드를 완전히 새로 개발 한다는 결정을 내렸고, 마침내 v1.0.0 공개에 무리가 없는 수준까지 오게 되어서 내놓게 되었습니다.
많은 시행착오와 어려움이 있었지만, 새로웠던 Bun 런타임의 가능성과 한계를 알게 되어 행복했습니다.
또한 전혀 배운 적이 없던 Go 언어로 우여곡절 끝에 그럴듯한 백엔드 설계/구현까지 진행 할 수 있게 된 점이 가장 큰 성과라고 생각합니다.
그리고 TSBOARD라는 프로젝트를 시작하지 않았더라면 알 수 없었을 “만드는 즐거움”을 다시 되찾은 것이 무엇보다 가장 기쁩니다.
아직 많이 부족하고, 그러기에 TSBOARD는 계속해서 앞으로 전진할 생각입니다.
언젠가 많은 분들이 새로운 웹사이트를 TSBOARD로 개발하고, 또 여러 동료 개발자분들께서 새로운 웹서비스를 개발하실 때 기꺼이 참고가 되고 도움이 될만한 프로젝트로 거듭날 수 있도록 계속해서 즐겁게 하나씩 만들고 여러분들과 나누겠습니다.
아래는 v1.0.0 정식 버전의 출시 노트입니다.
전체 사이트 설계는 Client Side Rendering 방식으로 구성되어 있습니다. 즉, 페이지 라우팅의 기준은 클라이언트입니다.
DB는 MySQL 혹은 Mariadb를 사용합니다. 설치 단계에서
mysqld.sock혹은mysql.sock파일 경로를 기입하실 수 있습니다.사용을 위해 설치 후 자동으로 생성되는
.env파일 및tsboard.config.ts파일의 수정이 필요합니다.Windows 환경은 지원하지 않습니다. 아래 후술할
libvips라이브러리 설치 및 링크 과정이 매끄럽지 못해 제외하였습니다.TSBOARD에서 이미지 처리는 서버에 미리 설치된
libvips라이브러리에 의존합니다. (README.md에서 설치 안내 참조)프론트엔드 개발을 위해
Node.js는 여전히 필요합니다. TSBOARD 프로젝트를 clone 하신 후npm i를 한 번 실행해주세요.Bun 런타임에 대한 의존성은 제거되었습니다. 설치 및 백엔드 실행은 TSBOARD 프로젝트 내
goapi-linux를 사용하세요.소셜 로그인 및 AI 기능 사용을 위해서는 각 서비스 업체에서 제공하는 정보들을
.env파일에 기입해 주셔야 합니다. (필수 아님)회원 가입, 댓글 알림 등에 사용되는 메일 발송 기능을 사용하기 위해선 구글 지메일의 앱 비밀번호가 있어야 합니다. (필수 아님)
사용을 위해 반드시
README.md를 읽어주시고, 웹서버의 프록시 및 SSL 설정도 꼭 잊지 말고 해주시길 당부 드립니다.프론트엔드의 개발 스택은 아래와 같으며, 모두 타입스크립트로 작성되었습니다.
Vue3 (Composition API), Pinia, Vue Router, Vuetify (UI 프레임워크), Tiptap (에디터)
TSBOARD UI의 핵심은 Vuetify 입니다. 디자인 수정 등을 위해선 Vuetify에 대한 사전 지식이 필요합니다.
백엔드의 개발 스택은 아래와 같으며, Go 언어로 작성되었습니다.
Fiber v3 (웹 프레임워크), go-mysql-driver (DB 드라이버), bimg (이미지 라이브러리) 등
백엔드에서 참조하는 설정은
.env파일에 있습니다.goapi-linux실행 파일이.env파일과 같은 폴더에 있어야 합니다.
goapi-linux파일에 실행 권한이 있어야 백엔드가 실행됩니다.chmod +x ./goapi-linux등으로 부여해주세요.백엔드 코드는 TSBOARD 기본 프로젝트와 분리되어 개발되고 있습니다. 기본적으로는 TSBOARD 프로젝트 내에서 필요하신 부분들을 수정하여 사용하시고, 필요한 경우에만 goapi 프로젝트를 clone 하셔서 목적에 맞게 수정하여 사용하시는 걸 권장합니다.
TSBOARD는 일반적인 게시판, 블로그 및 갤러리를 기본으로 제공하고 있습니다. 더 많은 기능들이 앞으로 제공될 예정입니다.
가장 이상적인 TSBOARD의 활용처는 중소 규모의 커뮤니티 사이트입니다.
TSBOARD 프로젝트는 MIT 라이선스로 제공됩니다.
버그 제보 및 의견 제안 등 환영합니다. (가급적이면 여기 공홈에서 부탁드려요!)
아래는 쇼케이스 입니다. (제가 운영하고 있습니다)

사진 커뮤니티 : SENSTA.ME
TSBOARD v1.0.0 정식 버전 출시 소식을 보러 와주신 모든 분들께 감사 드립니다.
마지막으로 아래 GitHub 링크들을 공유드립니다. (개발자 여러분들, 스타 한번씩 부탁드려요!)
TSBOARD - https://github.com/sirini/tsboard
GOAPI - https://github.com/sirini/goapi
당분간은 v1.0.z 마이너 버전 업데이트로 찾아 뵙겠습니다.
2025년 새해 복 많이 받으시고, 새해에는 올해 연말의 여러 어려움들을 함께 극복할 수 있기를 바래봅니다.
감사합니다.
시리니님
최근 게시글들
최근 댓글들
node → go로 전환한게 흥미롭네요 재미있게 봤습니다.
ㅎㅎㅎ 재밌게 봐 주셔서 감사합니다. 새해 복 많이 받으세요!
올해 마지막 커밋으로 답글 작성 시 보여지지 않던 문제를 수정 하였습니다…!
이 글을 봐 주신 모든 분들께 새해 복 많이 받으시고 새해에도 TSBOARD 프로젝트에 많은 관심 부탁드립니다!
제가 사용하는 테스트 서버 oracle cloud에 있는 arm 서버인데 기본 tsboard 프로젝트 내 goapi-linux 는 exec format error 가 발생합니다. 그래서 goapi 프로젝트를 직접 clone 받아서 cmd 폴더 내에서 go build 를 실행 후에 생성된 바이너리 파일에 설치 프로세스를 진행하면 제일 마지막에 → Are you sure all the information you entered is correct? [Yes/No/Quit]: Y
2025/01/02 13:41:03 💣 Failed to install TSBOARD, the database connection details you provided may be incorrect or you may not have the necessary permissions to create a new .env file. Please leave a support request on the [tsboard.dev] website! 에러가 나오네요. 입력한 mysql 계정에는 grant all 로 *.* 권한을 주었고 mariadb는 10.11.8 버전입니다. mariadb 에는 error log가 올라오는 건 없고, goapi를 생성하는 폴더의 소유자 및 권한은 ubuntu 계정 및 755 권한입니다.
안녕하세요! 먼저 시간 내어 주셔서 테스트를 해주심에 감사드립니다!
oracle cloud에서 제대로 동작하지 않는 문제가 있네요. 제가 무료 oracle clound (ARM cpu) 계정을 추후 생성해서 직접 디버깅을 해보겠습니다.
조금 시간이 걸릴 수도 있는데 최대한 빠르게 디버깅해서 내용 공유드리겠습니다!
앗 아닙니다. 새로 빌드해서 동작시켰습니다 ㅎㅎ.
다만 첫 화면 블로그 관련 최근글과 클릭 시 이동에서 param id 미 설정 으로 나오는 부분만 한번 확인 부탁 드려도 될까요?
테스트 주소는 https://tsboard.ggoban.com 입니다. 감사합니다.
앗 다행히 빌드 후 동작은 가능해졌군요!
말씀해주신 부분 다시 확인해서 필요시 고치고 말씀드리겠습니다!
사이트에 잠깐 들어가 보았는데, Nginx 서버 설정 /etc/nginx/sites-enabled/default 부분 수정이 아직 안된 것 같습니다!
README.md 파일을 보시면 Nginx 서버 설정 부분이 나타나는데, Vue Router의 원할한 동작을 위해서
아래의 부분처럼 수정이 필요합니다.
location / {
try_files $uri $uri/ /index.html; # Vue Router 활용을 위한 설정 (CSR)
}위 부분을 다시 확인해 보시고 어떻게 되어 있는지 말씀 부탁드릴께요!
바쁘신 와중에도 테스트를 도와주셔서 너무나도 감사드립니다…!
아직 부족한 부분이 많습니다. 설치 과정에서 좀 더 나은 사용 경험을 위해 어떤 부분을 개선하면 좋을지 많은 의견 부탁드립니다!
답변 감사합니다. 우선 아래 nginx 쪽 설정을 중간에 안봤네요 ㅎ 보고 설정은 다 했습니다. 안그래도 admin 쪽 router가 왜 동작이 이상한가 했더니… 내일 일단 DB랑 .env를 지우고 다시 셋팅한번 해보려고 합니다. 답변 감사합니다.


