Attached image

TSBOARD v1.0.5 업데이트 안내!

1 0 169 2025-05-06

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


TSBOARD 기반으로 만들어진 커뮤니티를 위한 안드로이드 전용 앱, SENSTA의 공개가 이제 코 앞으로 다가왔습니다.

Kotlin 언어와 함께한 시간들을 마무리하면서, 앱에서 필요했던 기능들과 앱에 이미 구현된 기능들을 이번 업데이트에서

아래와 같이 반영해 보았습니다.




[Backend - GOAPI]

  • 안드로이드 네이티브 앱 SENSTA 와의 원할한 연동을 위해 아래 사항들이 반영되었습니다.

    • id_token 값을 받으면 구글 OAuth2 API로 인증 후 사용자 정보를 JSON 형태로 바로 반환하도록 추가하였습니다.

    • 채팅 메시지를 저장할 때 가끔 처리되지 않던 nil pointer exception 문제를 수정하였습니다.

    • 앱에서 사용자 정보를 요청할 때 사용자 고유 번호를 생략하던 문제를 수정하였습니다.

  • 삭제 처리된 댓글은 댓글 개수에 반영하지 않도록 수정하였습니다.

  • 채팅 메시지를 받으면 중복 여부를 검사하지 않고, 매번 새 알림이 되도록 변경하였습니다.

  • 최근 사용된 해시태그 목록을 조회하는 기능을 추가하였습니다.

  • 작성자명, 분류명 검색 시 부분 문자열로 검색해도 되도록 개선하였습니다.

  • 첨부 이미지에 대해서 AI가 설명한 내용으로 게시글을 검색하는 기능을 추가하였습니다.

    • 갤러리 게시판 좌측 하단의 검색에서도 이제 이미지 항목으로 검색이 가능합니다.

    • 홈화면 상단 전체 검색에서도 이미지로 검색이 가능합니다.


[Frontend - TSBOARD]

  • 홈 화면에서 현재 로그인 상태일 경우 액세스 토큰을 갱신합니다.

  • 구글 및 외부 CDN으로 사용하던 폰트들을 서버에서 직접 제공하는 방식으로 변경하였습니다.

    • 모든 폰트는 압축된 woff2 형식으로 제공됩니다.

    • Cal Sans, 0xProtoNerdFontMono, Pretendard 3종이 제공됩니다.

  • 백엔드 변경사항에 맞춰 UI 부분도 개선 하였습니다.

  • 사용중인 라이브러리들을 본 배포 시점에서 최신 버전으로 모두 업데이트 하였습니다.

    • npm install 실행이 필요합니다!




[Android - SENSTA]

  • 안드로이드 네이티브 앱으로 곧 구글 플레이 스토어에 출시 예정인 SENSTA 는 아래와 같은 특징을 가지고 있습니다.

    • TSBOARD v1.0.5 이상으로 만들어진 사이트와 연동됩니다.

    • TSBOARD에서 만들어진 (갤러리) 게시판 하나를 앱에서 접근합니다. (일종의 커뮤니티 전용 인스타그램인 셈입니다)

    • SENSTA 앱을 여러분이 운영하시는 커뮤니티 사이트에 맞게 일부분 수정이 필요합니다.

      • data/src/main/java/me/data/env/Env.kt 파일을 열어서 아래 코드를 살펴보시고, 수정하시면 됩니다.

    package me.data.env
    
    object Env {
        const val TITLE = "SENSTA"                      // 앱 타이틀
        const val DOMAIN = "https://sensta.me"          // TSBOARD로 개발된 웹사이트 주소
        const val BOARD_ID = "photo"                    // Board ID on TSBOARD
        const val BOARD_UID = 2                         // Board UID on TSBOARD
        const val CATEGORY_UID = 5                      // 기본 카테고리 고유 번호, 게시판 설정에서 카테고리 안쓸 경우 무시됨
        const val MAX_UPLOAD_COUNT = 9                  // 한 번에 9장까지 업로드 가능
        const val MAX_UPLOAD_SIZE = 100L * 1024 * 1024  // 한 번에 최대 100MB까지 업로드 가능
    
        const val VERSION = "v1.0.0"
        const val MIN_TSBOARD_VER = "≥ v1.0.5"          // 이 앱은 운용중인 서버의 TSBOARD가 v1.0.5 이상이어야 동작합니다
        const val MIN_ANDROID_VER = "≥ 14"              // 안드로이드 14 (Samsung Galaxy S23 시리즈 이후) 이상 버전 필요
        const val GITHUB_URL = "https://github.com/sirini/sensta" // 이 앱의 전체 소스코드 GitHub 주소
    }
  • SENSTA 앱의 소스코드를 GitHub에서 포크(fork)하신 후, 여러분의 사이트에 맞게 수정하셔서 별도의 전용 앱을 만들어보세요!

    • 앱을 제작하신 후에는 직접 구글 플레이 스토어에 심사를 거처 등록을 하셔야 합니다.

    • SENSTA 앱은 안드로이드 네이티브 앱으로, iOS 버전은 현재 없으며 개발에는 Kotlin 언어가 사용되었습니다.

    • 추후 TSBOARD가 업데이트 되면서 앱도 계속 개선될 예정이니, 가급적 변경점을 최소화 하시는 걸 권장합니다!

  • TSBOARD가 이미 모바일 기기도 잘 지원하는데 왜 별도의 안드로이드 전용 앱을 만들었는지 궁금하신가요?

    • 제 블로그에 뒷얘기가 있습니다 : https://tsboard.dev/blog/sirini/66

    • TSBOARD 기반으로 직접 만들어서 운영중인 sensta.me 사이트 이용자분들을 위해 만들기 시작했습니다.

    • 만들다보니, 조금만 고치면 다른 TSBOARD 기반 커뮤니티에서도 유용하게 쓰일 것 같아 코드를 공개하였습니다.




TSBOARD는 이제 커뮤니티 사이트를 위한 종합선물세트가 되어가고 있습니다.

아직도 많이 알려지진 않았습니다만, 언젠가는 이 글을 보실 여러분들 혹은 다른 개발자분들에게 도움이 되리라 생각합니다. 😊

개인적으로는 TypeScript / Go / Kotlin과 같은 쓰기 좋은 언어들과 함께 시간을 보낼 수 있어 기쁩니다. (C++이 없어서 천만다행…?!)


마지막으로 TSBOARD v1.0.5 태그 페이지 링크로 마무리 하겠습니다!


👉 https://github.com/sirini/tsboard/releases/tag/v1.0.5

tsboard
sensta
goapi
업데이트
github
안드로이드

시리니님

프로필

최근 댓글들