TSBOARD

TSBOARD v0.9.8 업데이트 안내!

2024-10-12 13:19:33 / / 0 reply, written by 시리니

안녕하세요! TSBOARD 개발자 시리니입니다.


v0.9.8 업데이트가 완료되어 아래에 변경사항들을 정리해서 소개 드립니다!


  • 에디터 툴바 기능 개선

    • 이제 글자 색상 변경 시 color picker를 이용하여 보다 자유롭게 색상을 바꾸실 수 있습니다. 말 그대로 색상 추출기이므로, 화면 내 어떤 곳이든 원하는 부분의 색상을 찍어서 글자색으로 사용 하실 수 있습니다.

    • 코드들도 연관된 부분들끼리 좀 더 모아서 별도 하위 컴포넌트로 옮겨두었습니다. 수정이 필요할 때 보다 편하게 원하는 부분을 찾아서 고치실 수 있습니다.

  • 관리화면 대시보드 그래프

    • 첫 화면에서 그동안 숫자로만 주요 지표를 보여드렸었는데, 최근 일주일간의 변동사항을 간단한 그래프로도 보실 수 있도록 변경 하였습니다. 커뮤니티 사이트라면 민감하실 방문자 수 추이나 게시글/댓글의 변동사항등을 보실 수 있습니다.

    • 추후 보다 긴 기간 동안의 변화를 시각적으로 확인 하실 수 있도록 할 예정이며, 관련해서 백엔드 쪽 코드 리팩토링을 진행 하였습니다.

  • 본문 내 이미지 업로드 기능 개선

    • 본문 내 이미지 삽입 시 가끔 게시판 번호가 제대로 기입되지 않아 업로드 한 이미지 목록에 나타나지 않거나, 혹은 업로드가 완료되지 않은 상태에서 이미지가 추가되어 이전에 업로드한 이미지가 본문에 삽입되던 문제가 있었는데 이를 수정하였습니다.

    • 본문에 삽입되는 이미지의 리사이즈 크기가 가로 기준으로 기존 480px 대비 640px으로 소폭 커졌습니다. (tsboard.config.ts에서 언제든지 수정 가능합니다. 아울러 갤러리에 업로드하는 이미지의 최대 크기도 2016px에서 2400px으로 좀 더 커졌습니다.)

  • 글보기 화면에서 다른 게시글로 이동 시 댓글 목록이 새로고침 되지 않는 문제 수정

    • 게시글을 이동하면 현재 위치와 무관하게 항상 최상단으로 스크롤을 이동하도록 수정하였습니다.

  • vite.config.ts에서 chunkSizeWarningLimit 값 추가

    • npm run build 작업 시 Warning 메시지 제거


TSBOARD는 서버의 부담을 최소한으로 하면서, 사용자에게는 풍부한 사용 경험을 제공하는 목적으로 설계되었습니다.

혹시 사용을 고려중이시라면, 테스트를 해보시고 궁금하신 점이나 개선 필요한 점들은 언제든지 이곳 사이트에서 의견 남겨주세요!


  • tsboard
  • 업데이트

멕시코 칸쿤 : 하얏트 지바 리조트

2024-10-05 11:28:46 / / 0 reply, written by 시리니

신혼여행에서 뉴욕을 거쳐 멕시코 칸쿤으로 향했었는데, 칸쿤에서의 첫번째 리조트가 바로 하얏트 지바 칸쿤이었습니다. 쏟아지는 햇살과 아름다운 바다, 그리고 풍족한 먹을 거리가 모두 만족스러웠고 기억에 많이 남네요. ㅎㅎㅎ (또 가고 싶어요오오~)

  • 멕시코
  • 칸쿤
  • 하얏트
  • 지바
  • 리조트
  • 신혼여행

신혼여행을 다녀와서 : 천국은 멀리 있었다 (멕시코 칸쿤)

2024-10-05 11:18:28 / / 0 reply, written by 시리니

8월 31일 인생에서 가장 큰 이벤트라 할 수 있는 결혼식을 마치고, 9월 2일에 뉴욕으로 향했습니다.

뉴욕에서의 5일도 정말 너무나 좋았었는데, 언젠가 한 번 이야기를 해볼 수 있으리라 생각하고, 오늘은 칸쿤에 대해서 짧게 남겨보고자 합니다.


천국은 멀리 있다 : 18시간의 비행

멕시코 칸쿤은 한 10년 전부터도 신혼여행의 성지로 불렸던 곳이라고 합니다.

혹자는 아무리 칸쿤이 좋아봤자, 몰디브에 비할 바는 아니라고 하시기도 하는데, 글쎄요… 둘 다 가보진 못했지만 저는 칸쿤이야말로 감히 신혼여행의 성지라 할만하다고 주장하고 싶습니다. 가히 천국이라 칭해도 부족하지 않은데, 딱 2가지의 문제만 있었습니다. 바로 가는데 걸리는 시간과 돈입니다.


칸쿤은 이 곳 대한민국에서 바로 간다고 하더라도 한 16시간 정도는 걸릴 것 같은데 (최근에 직항이 생겼다고 합니다), 뉴욕을 거쳐서 가게 되면 뉴욕까지 14시간, 다시 뉴욕에서 칸쿤까지 4시간 더 걸려서 최소 18시간이 소요됩니다. 하루가 24시간이니까, 사실 수속하고 이것저것 하다보면 하루를 그냥 비행기에서 보내는 셈입니다. 정말 멀어도 너무 멀다 싶긴 한데, 막상 칸쿤에 도착하고나서 리조트에 짐을 풀고 있노라면 멕시코 만과 카리브 해의 중간에서 맛보는 바다의 풍경이 일품이었습니다.


저는 이번 신혼여행에서 처음으로 10시간이 넘는 장거리 노선을 타보았습니다. 한 6~7년 전에 중국에서 잠깐 살때도 중국 내에서 이동하는데 4시간 정도 걸렸던 게 가장 긴 노선이었는데, 이제서야 미국과 칸쿤을 가게 되면서 장거리를 제대로 경험해 본 셈입니다. 혹자는 그래도 신혼여행이니까 비즈니스 정도는 타지 않았을까 지레 짐작하셨을 수도 있겠지만, 이코노미를 타고서 왕복으로 다녀왔기 때문에 조금 힘들긴 했습니다. 중간 중간에 일어나서 스트레칭도 하고 별 걸 다했는데, 그나마 제가 미리 출발하기 전에 네이버 시리즈나 카카오 페이지에서 볼만한 작품을 완결까지 모두 구매해놓고 출발해서 지루하진 않았던 것 같습니다. 만약 다음에도 장거리 노선을 타야 할 일이 생긴다면 똑같이 준비해서 심심하지 않게 할 생각입니다.


올 인클루시브 매직 : 그래도 팁은 준비해 두세요

칸쿤 리조트들은 대부분 올 인클루시브(All Inclusive)입니다. 즉 호텔 리조트 비용 안에 각종 부대비용들(레스토랑, 카페, 스낵, 아이스크림 등)이 모두 포함되어 있습니다. 따라서 현장에서는 따로 돈을 지불하실 게 사실 거의 없다고 보셔도 됩니다. 여기서 “거의” 없다고 표현한 건, 그래도 리조트마다 추가적인 비용을 지불해야만 이용할 수 있는 게 조금씩은 있기 때문입니다.


저희는 하얏트 지바 칸쿤에서 한 4일 정도 머물렀고, 이어서 스칼렛 아르떼로 이동하여 한 3일 정도 머물렀습니다. 둘 다 모두 훌륭한 곳으로 서로의 장단점이 있는데, 가격 차이가 한 2배 가까이 나는 만큼 스칼렛 아르떼의 시설이나 액티비티 등이 훨씬 가치 있었다고 말씀드릴 수 있겠습니다. 만약 다시 골라야 한다면 여전히 고민은 되겠지만, 아마 좀 무리를 해서라도 스칼렛 아르떼를 선택하지 않을까 싶습니다. 하긴 한국에서도 1박에 100만원이 넘는 곳에 숙박을 한다고 하면 그정도 만족감은 당연히 느껴야 하는 거겠죠? ㅎㅎ


하얏트 지바와 스칼렛 아르떼 모두 훌륭한 서비스를 보여줍니다만, 서비스의 질 자체는 하얏트 지바가 좀 더 좋았습니다. 직원들의 친절함이야 물론 말할 것도 없고, 서비스들도 나쁘지 않았습니다. 스칼렛 아르떼 역시 마찬가지로 친절하고 좋았지만 브랜드 호텔이 보여주는 그런 수준은 아니었던 것 같습니다. 반면 시설 같은 경우에는 지바가 좀 더 오래된 느낌도 있고, 숙박 시설 내부의 컨디션도 스칼렛 아르떼 대비 조금 떨어지는 건 어쩔 수 없었던 것 같습니다.


올 인클루시브는 무언가를 먹고 마시는데 있어 아무것도 신경쓰지 않게 해주니까 정말 좋았습니다. 다음에도 휴양 개념의 여행을 가게 된다면 올 인클루시브를 먼저 살펴보게 될 듯 합니다. 아, 그래도 혹시 모르니 미국 달러로 된 팁은 챙겨가시는 걸 추천드립니다. 여행사에서 제시하는 수준의 팁 까지는 줄 필요가 없어 보였습니다만(계속 관찰해봐도 팁을 주는 외국인들은 한 50% 정도입니다), 방 청소를 해주시는 분께 남기는 2달러 정도의 팁이나, 레스토랑에서 저희 테이블을 담당해준 서버에게 전해주는 2달러 정도의 팁은 괜찮아 보였습니다.


팁을 안준다고 해서 서비스가 형편없어 진다거나 하진 않았고, 팁을 받는 종업원들도 팁이 필수는 아니라고 이야기 해줬습니다. 그럼에도 무언가 메뉴를 전달 받거나 음료수를 주문해서 받았을 때 서로 기분 좋게 최소한 1달러씩 주는 건 나쁘지 않아 보였습니다. 개인적으로는 팁을 주는 문화권에 여행 간 것이 이번이 처음이어서 처음에는 조금 어색했는데, 그래도 와이프 따라서 몇 번 주다보니까 익숙해진 느낌입니다. 그럼에도 한국에는 팁 문화가 들어오지 않았으면 하는 생각도 들었습니다. ㅎㅎ


폭력적인 적도 태양 : 자외선 차단은 필수

칸쿤의 하루는 태양이 어느 정도 떠올랐는가에 따라서 갈립니다. 9월 초 칸쿤은 오전 11시부터 오후 3시까지는 야외에서 생활하는 것이 굉장히 힘들 정도로 태양이 뜨거웠습니다. 저는 적도 태양의 폭력적인 자외선이 얼마나 대단한지 미처 알지 못한 채로 딱 하루 동안 하루 종일 야외 수영장에서 튜브를 잡고 헤엄치며 놀다가 돌아다니다가 했었는데, 그 하루만에 노출된 팔이 모두 시커멓게 변해버리면서 따갑고 후끈거리게 되었습니다. 레쉬가드를 입었어야 했는데 그날 하루 안입었다고 이렇게 타버리나 싶기도 했고 여러모로 놀랬습니다.


리조트 직원분들은 애초에 전신을 꽁꽁 싸매고 근무하고 계셨었는데, 처음에는 날도 더운데 왜 저렇게 있지? 했지만 적도 태양의 폭력적인 뜨거움 앞에 고개를 끄덕일 수 밖에 없었습니다. 혹시 칸쿤으로 여행을 가신다면 레쉬가드 긴팔로 꼭 챙기시고, 자외선 차단을 위해서 썬크림은 자주 바르시기 바랍니다. 선글라스도 무조건 챙기셔야 합니다. 한낮의 태양빛도 무시무시한데, 물살에 반사되는 햇볕들도 눈을 때립니다.


한국 신혼부부들의 정모 장소 : 한국인듯 한국 아닌 한국 같은 칸쿤

우리나라의 혼인율과 출산율 감소는 이미 세계적으로도 잘 알려져 있는 심각한 문제입니다. 뉴스에서도 학계에서도 우리나라가 이대로만 가면 곧 소멸할 거라고 예측하고 있고, 실제로도 회사마다 20대 직원 비율이 현저히 낮아지는 등 문제가 속속 발견되고 있습니다. 그럼에도 칸쿤을 가보면, 그 귀한 신혼부부들을 심심치 않게 만나 보실 수 있습니다. 농담이 아니라 정말 많은 한국인 신혼부부들이 칸쿤 리조트에서 휴양을 만끽하고 있습니다. 그냥 리조트 어디를 걸어 가더라도, 수영장 어디를 가더라도 한국인 신혼부부들을 만나보실 수 있습니다. 정말 국민 신혼여행지라고 보셔도 됩니다.


처음에 뉴욕을 거쳐 멕시코 칸쿤으로 갈 때만 하더라도, 저에게 있어 멕시코라는 나라를 표현하는 단어들은 마약, 카르텔, 나르코스와 같은 다소 무섭고 부정적인 것이었습니다. 그러나 실제로 만나 본 칸쿤은 정말 지상낙원이라는 표현이 부족할 정도로 멋진 곳이었고, 리조트 시설이나 직원들의 친절함도 좋았습니다. 그리고 무엇보다, 젊은 한국인들이 정말 많았습니다! 뭔가 궁금하거나 모르는 게 생기면 근처에 지나가는 한국인 신혼부부 관광객에게 한국말로 그냥 물어봐도 될 정도입니다. 약간 외국이라는 느낌이 조금 덜해지는 아쉬움은 있지만, 반대로 이렇게나 많은 한국인 관광객들에게 선택받은 만큼 안전하겠구나 하는 생각도 들어서 조금 안심이 되었습니다.


언제 또 다시 가볼까… 또 가고 싶은 칸쿤

회사 동료분들 중에 한 분은 칸쿤이 너무 좋아서 결혼 후에 아이와 함께 다시 칸쿤을 찾았었다고 말씀해 주셨었는데, 그 마음을 이제는 좀 알 것 같습니다. 칸쿤이라는 곳이 주는 휴양의 느낌, 그리고 아름다운 바다의 모습과 여유롭게 휴양을 즐기는 사람들의 즐거움이 오래도록 기억에 남습니다. 만약 기회가 된다면 또 한 번 가보고 싶고, 좀 길게 휴양지를 즐겨보고 싶다는 생각이 듭니다. 전세계 어디서든 노트북 하나만 있으면 언제든지 일을 할 수 있다고 하는데, 칸쿤 리조트에서 카리브 해를 바라보며 TSBOARD 개발하면 어떨까 하는 상상도 해보았습니다. ㅎㅎ

  • 신혼여행
  • 칸쿤
  • 멕시코
  • 후기
  • 천국
  • 카리브해
  • 하얏트
  • 지바
  • 스칼렛
  • 아르떼

TSBOARD v0.9.7 업데이트 안내!

2024-10-02 13:50:55 / / 1 reply, written by 시리니

안녕하세요! 지난 글에서 말씀드린대로, v0.9.7 업데이트 소식을 가지고 왔습니다.

TSBOARD GitHub 페이지를 통해서 전체 코드를 내려 받으실 수 있고, Bun 런타임이 동작하는 서버에서 곧바로 사용 가능합니다!


아래 변경사항들이 이번 업데이트에서 반영 되었습니다.


  • 게시판 및 갤러리 부분 디자인 개편

    • 게시판과 갤러리 모두 이제 보시는 것 처럼 배경색이 들어갑니다. 전체적으로 메뉴, 버튼 등의 크기가 조금 더 작아졌고, 글작성 버튼 등 해당 페이지에서 핵심적인 역할을 해주는 버튼색은 메인 컬러로 더 강조되었습니다.

    • 라운딩이 살짝 들어간 박스 디자인들을 좀 더 활용하면서 전반적으로 좀 더 부드러워 보이면서도 단단한 형태로 디자인을 수정해 보았습니다.

    • 갤러리 뷰어의 경우 그 동안 모바일에서만 다크 모드였는데, 이제는 그 외 디바이스에서도 다크 모드로 볼 수 있도록 변경 하였습니다. 이를 통해 메인 컨텐츠인 사진에 좀 더 집중할 수 있도록 하였습니다.

  • 글보기 하단에 작성자의 이전 (댓)글 목록 보여주기 추가

    • 글보기 시 작성자가 이전에 남긴 게시글과 댓글을 볼 수 있도록 하였습니다. 이를 통해 작성자의 다른 글들을 보다 빠르게 확인 할 수 있고, 사이트 입장에서는 더 많은 트래픽을 유도할 수 있습니다.

  • 글보기 내비게이션 추가

    • 글보기 시 우측 중앙 부분에 미니 내비게이션 버튼들을 배치하여 상/하단으로 스크롤하기 및 이전글/다음글로 바로 이동할 수 있도록 하였습니다. 목록보기로 가지 않더라도 앞/뒤의 글들을 빠르게 탐색할 수 있습니다.

  • 에디터 툴바 위치 버그 수정

    • 에디터 툴바의 경우 스크롤 위치에 따라서 페이지 상단에 플로팅 되거나 고정이 되는데, 이 동작이 매끄럽게 동작하지 못했었습니다. 스크롤 위치가 조금만 내려가도 툴바가 떨어져 나와서 올라가버리는 문제가 있었는데, 이번 업데이트에서 문제가 수정되었습니다.

  • 알림 메시지 버그 수정

    • 알림 메시지를 클릭할 때 해당 게시글로 제대로 이동되지 않던 문제를 수정하였습니다. 다른 분들이 댓글을 남겨주거나 좋아요를 눌러주셨을때 이제 정확하게 해당 게시글을 찾아서 보여드립니다.

  • 관리화면에서 최근 (댓)글 열람 시 선택 삭제 기능 추가

    • 가끔 관리화면에서 여러 개의 연속된 게시글이나 댓글들을 선택하여 삭제할 필요가 있는데, 이번 버전부터 해당 기능을 지원합니다. 전체 선택을 통해 화면에 보여지는 게시글이나 댓글들을 한 번에 선택하여 삭제하실 수도 있습니다.

    • 참고로, TSBOARD에서 삭제 작업은 다음과 같습니다: 게시글은 상태값만 변경(데이터는 유지), 첨부파일은 실제로 삭제

  • 위 내용 이외에도 자잘한 버그들 수정


전반적으로 상당히 많은 버그들을 수정 하면서, 디자인 부분도 크고 작은 변경점들이 반영 되었습니다.

아직 v1.0.0 달성까지 가야 할 길이 멀긴 합니다만, 내년에는 v1.0.0 출시 소식을 전해드릴 수 있도록 계속 틈틈히 작업해 나가겠습니다…!


감사합니다!

  • tsboard
  • 업데이트
  • 디자인
  • 변경
  • v0.9.8 버전이 GitHub를 통해서 공개되었습니다…! 자세한 변경점은 주말에 마무리 작업 하고 공유드릴께요!

    2024-10-09 15:12:33 / / written by 시리니

v0.9.7 작업 시작했습니다

2024-09-29 13:10:42 / / 0 reply, written by 시리니

안녕하세요, 꿈같은 신혼여행을 마치고 이제 현실 세계에 적응중인 시리니입니다!


TSBOARD는 약 한 달 동안 업데이트가 잠시 멈췄다가, 이제 다시 업데이트 작업을 재개하였습니다.

저 스스로도 개밥먹기를 하면서 불편사항들을 하나씩 체크해놓고 있는데, 이번 업데이트에서는 진짜 답답해서 빨리 고쳐야겠다 싶은 항목들을 우선적으로 수정 작업중입니다…!


작업은 차주 징검다리 연휴 기간 동안 진행될 예정이며, 다음 주말 정도에 업데이트를 선보일 수 있을 것 같습니다.

더 많은 분들에게 TSBOARD가 도움이 될 수 있도록 더 노력하겠습니다!

  • 업데이트
  • 작업중
  • 신혼여행
  • 복귀

만약 TSBOARD 런타임을 더 고성능으로 만들어본다면?

2024-08-17 14:37:12 / / 0 reply, written by 시리니

요즘 문득 드는 (쓸데없는) 고민이 하나 있는데, 바로 고성능 백엔드 입니다.


물론 지금 신세지고 있는 Bun 런타임의 성능이 낮다거나 한 건 아닙니다. 지금 보여주는 퍼포먼스는 Node.js 와 비교하기에는 미안할 정도로 우수하고, 지금 이 순간에도 계속해서 업데이트 되면서 호환성과 속도를 계속 개선해 나가고 있습니다. 하지만, 특정 규모를 넘어서는 시점에서는 Bun이 아닌 다른 백엔드나 혹은 다른 구조가 요구될 수도 있습니다.


즉 미래 어느 시점에 백엔드를 좀 더 고사양으로 교체하거나, 혹은 고사양 백엔드 옵션을 제공할 필요가 생길 수도 있습니다. 즉 일반적인 상황에서는 TSBOARD가 제공하는 Bun 런타임 기반의 백엔드를 그대로 쓰고, 좀 더 고성능의 백엔드가 요구될 때는 별도의 프로젝트에서 제공되는 고성능 백엔드를 실행시켜서 응답 속도를 더 높이고 더 많은 요청을 처리하는 것입니다.


사실 이 고민은 어떻게 보면 저에게는 굉장히 쓸모 없으면서도 쓸모가 있습니다. TSBOARD 공홈이나 제가 따로 운영하는 사이트들은 그렇게 많은 트래픽을 감당할 필요가 없습니다. 즉 지금 사용하고 있는 Bun 런타임이 아니라 사실 Node.js 런타임이라 하더라도 크게 문제 되지는 않을 것입니다. 하지만 반대로 고성능 백엔드를 TSBOARD가 옵션이든 기본이든 제공할 수 있다면, TSBOARD 도입을 고려하는 분들에게 선택을 좀 더 쉽게 만들어드릴 수 있을 것입니다. 물론 고성능 백엔드를 구성할 수 있다면 저 역시도 배울 점이 많을테니 공부가 되겠죠.


추가적으로, Bun 런타임의 태생적 한계인지는 모르겠으나 가상 CPU에서는 제대로 동작하지 않는 문제고성능 백엔드 바이너리를 통해서 해결할 수 도 있습니다. Bun을 쓰지 못하더라도 다른 옵션이 있는 셈이니 사용자에게는 여러모로 이득이긴 합니다. (사실 저도 이 문제가 마음에 계속 걸려서 백엔드를 어떻게 할까 고민하기 시작했습니다)


고성능 백엔드, 한다면 어떤 언어로?


저에게는 고성능 하면 떠오르는 불멸의 언어 하나가 있습니다. 바로 (Modern) C++ 입니다. 물론 Rust, Zig 등의 언어도 있고 실제로 Bun 런타임의 경우 Zig 언어로 개발되었으니 고려해봄직 합니다. 그러나 여러 대안이 존재함에도, 백악관에서 쓰지 말라고 함에도 불구하고 고성능이 요구되는 프로젝트에서 C++을 빼놓고 생각하긴 어렵습니다. Rust 언어는 써볼려고 잠깐 학습하긴 했습니다만, 뭔가 손이 잘 가지 않습니다. 선생님같은 컴파일러 덕분에 무엇이 문제인지 친절히 배울 수 있다는 점은 좋았습니다만, 이걸로 당장 개발을 시작하기에는 스트레스가 더 많아질 것 같아서 아직은 엄두가 안납니다.


여러 고민들을 해보다가, 문득 Go 언어로 하면 어떨까? 하는 생각이 미쳐서 여러 사례들을 봤는데… 딱 제가 생각하는 고성능 백엔드에 적합한 개발 언어라는 생각이 들었습니다. 똑똑한 GC 덕분에 메모리 걱정을 좀 내려놓아도 되고, 문법도 크게 어렵지 않은데 컴파일도 빠르고 실행도 그만하면 빠르다는 생각이 들었습니다. 타입스크립트로 작성한 백엔드 보다는 개발 속도가 좀 늦어지겠지만, C++로 작성하는 것 보다는 훨씬 빠르게 만들 수 있지 않을까? 하는 막연한 확신(?!)도 들구요. ㅎㅎ


아직 TSBOARD가 v1.0.0 달성도 하지 못한 상태에서 백엔드를 하나 더 만드는 게 가당치도 않은 소리입니다만, 언젠가 백엔드를 필요에 따라서 교체해서 쓸 수 있는 이 아이디어를 구현할 수 있는 날이 왔으면 좋겠습니다. 이참에 저도 Go 언어와 친해져서 이것 저것 재미난 것들 만들어보고 싶네요.


  • 고성능
  • 백엔드
  • tsboard
  • bun
  • 런타임
  • 타입스크립트
  • golang
  • rust
  • zig
  • cpp

TSBOARD v0.9.6 업데이트 안내

2024-08-17 13:58:16 / / 0 reply, written by 시리니

안녕하세요! TSBOARD 개발자입니다.


간만에 업데이트 소식을 전해 드립니다. (사실 이번달에 제가 결혼을 앞두고 있어서 업데이트가 좀 늦어졌습니다…😅)


  • 모바일에서 이제 게시글 목록을 좀 더 시인성 있게 볼 수 있습니다.

  • 게시글 보기에서 긴 제목이 잘려서 출력되는 문제를 수정하였습니다.

  • 관리화면에서 특수문자가 제대로 출력되지 않던 문제를 수정하였습니다.

  • 관리화면에서 그룹 ID 변경이 가능하도록 기능 추가되었습니다.

    • 그룹 ID는 기본적으로 좌측 사이드 메뉴에 표시됩니다.

    • 따라서 이름이 마음에 들지 않을 경우 이번 업데이트를 통해서 손쉽게 바꾸실 수 있습니다.

  • 게시글 이동하기 기능을 추가하였습니다.

    • 아직은 게시판 글보기에서만 제공됩니다.

    • 글보기 화면에서 기존에 “수정” , “삭제” 버튼이 있던 곳이 이제 “작업” 이라는 이름의 버튼으로 통합되었고, 해당 버튼의 드롭다운 메뉴에 “글 이동하기” 기능을 사용 하실 수 있습니다.

  • TSBOARD가 의존하고 있는 여러 패키지들(vuetify, vue, tiptap, …)의 업데이트 작업을 반영하였습니다.


TSBOARD는 타입스크립트로 작성된 풀스택 오픈소스 게시판이자 커뮤니티 빌더입니다.

현재 게시판, 갤러리에 이어서 블로그까지 구현되어 있고 제 목표는 쇼핑몰 기능도 통합하는 것입니다.


새로운 게시판이자 커뮤니티 빌더가 필요하신 모든 분들께 도움이 될 수 있도록 더욱 정진하겠습니다!


감사합니다.

  • tsboard
  • 업데이트

79주년 광복절 기념

2024-08-14 13:53:17 / / 0 reply, written by 시리니

광복절입니다.


요즘은 언론에서 가끔 건국절이니 뭐니 말도 안되는 소리를 가끔 하는 것 같은데

제대로 배우고 역사를 기억하는 사람들은 모두 무엇이 진실인지 알고 있으리라 생각합니다.


과거는 그저 묻어두는 게 아니라 기억하고, 그로부터 교훈을 얻어서 앞으로 나아가기 위해 존재합니다.

왜곡한다고 해서 역사적 사실이 바뀌지 않고, 폄하한다고 해서 그 가치가 훼손되지 않을 것입니다.

기억하고, 선조들의 정신을 마음에 새기는 하루를 보내면 좋겠습니다.

  • 광복절
  • 79주년
  • 역사
  • 진실

사진 업로드 시험중입니다

2024-07-24 08:09:11 / / 0 reply, written by 시리니

이 곳 갤러리는 주로 테스트 할 때만 사용하는 것 같네요. ㅎㅎ

사진은 모두 unsplash 에서 퍼온 사진들입니다.

  • 갤러리
  • 테스트
  • unsplash

TSBOARD v0.9.4 업데이트 안내

2024-07-18 16:05:01 / / 1 reply, written by 시리니

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


이번에도 간만에 업데이트 소식을 전해 드립니다.

지난 번 v0.9.2 업데이트 이후 v0.9.3 업데이트 내용을 아래와 같이 댓글로 추가했었는데요,


  • TSBOARD.PREFIX가 이제 제대로 적용되도록 이미지 출력하는 코드 중심으로 모두 수정이 되었습니다. 만약 TSBOARD가 https://example.com/tsboard 경로에 설치되었다고 가정하면, TSBOARD.PREFIX 값을 /tsboard 로 설정할 경우 이미지나 리소스들이 정상적으로 출력 됩니다.

    • 지금 보시는 TSBOARD 공홈처럼 / 경로에 바로 설치가 되어 있거나, 혹은 apache / nginx 에서 root 경로를 / 로 잡아주신 경우에는 TSBOARD.PREFIX 값은 빈 문자열이 됩니다. 이 때 vite.config 기준으로 base 경로는 / 가 됩니다.

    • TSBOARD를 root 경로에 설치하지 않거나, apache 혹은 nginx 에서 따로 root 경로로 잡아주지 않으신 분들은 TSBOARD.PREFIX 값만 잘 설정하시면 됩니다!


이어서 v0.9.4 에서는 아래의 사항이 변경되었습니다!


  • 이제 기본 게시판 목록보기 시 페이지가 주소 표시줄에 표기되고, 페이지들을 이동하다가 게시글을 열람한 후 다시 목록으로 돌아갈 때 이전 페이지 목록으로 그대로 돌아옵니다.

    • 브라우저의 뒤로가기, 앞으로 이동하기 등과도 호환됩니다.

    • 주소 표시줄에서 임의의 페이지로 바로 이동하려는 경우는 지원하지 않습니다. 예를 들어, 이 곳 게시판에 접속 시 /page/123 처럼 주소에 직접 페이지 번호를 입력하더라도 처음 접속은 무조건 /page/1 로 고정됩니다.


페이징 처리는 처음 TSBOARD 개발을 할 때부터 어떻게 하면 좋을지 고민이 많았습니다.

처리 속도를 고려하고자 페이징 처리를 DB에서 LIMIT 절로 하지 않기로 하면서 이 고민들이 시작되었는데,

결국 편의성을 좀 더 높이면서 너무 복잡해지지 않도록 신경을 쓰느라 반영이 이제서야 되었네요.


페이징 부분에서 혹시 문제가 있거나 버그를 발견하신 분들은 알려주시면 빠르게 수정해 나가도록 하겠습니다!

  • tsboard
  • 업데이트
  • 페이지
  • 게시글
  • 목록
  • Github repo를 통해서 v0.9.5 업데이트가 공개되었습니다!


    • 글 수정에서 이미 첨부한 파일을 삭제한 경우, 해당 게시글이 제대로 불러지지 않는 문제를 수정하였습니다.

      • 이 문제는 특히 이미지 파일을 첨부한 갤러리에서 페이지가 보여지지 않던 문제를 야기했었습니다. 비슷한 문제를 겪으셨던 분들은 이번 버전으로의 업데이트를 추천드립니다.

    • 갤러리와 게시판을 오가며 댓글을 남길 때 게시판에 남겨져야 할 댓글이 갤러리에 남겨지거나 하는 문제를 수정하였습니다.

    • 이제 v0.9.5 설치부터 테이블 간의 의존 관계를 좀 더 명확히 하도록 외래 키 설정이 보강됩니다.

      • 기존 사용자의 경우 업데이트를 제공할 예정입니다.


    버그 제보나 새로운 기능 제안 등은 언제나 환영합니다! 많이 써보시고 필요한 것들은 언제든지 알려주세요~!

    2024-07-24 08:35:19 / / written by 시리니

살면서 언젠가 한 번은 C++를 써야 할 때가 온다

2024-07-07 13:41:36 / / 0 reply, written by 시리니

저는 코딩을 PHP부터 시작했고, 스크립트 언어 위주로 사용하다가 시간이 조금 지나서 이제는 화석이 되어버린 MFC를 써야하는 시점에 C++ 언어를 제대로 접하게 되었습니다. 학부 시절에 로우 레벨 언어로 사용했던 C언어와 간혹 같이 붙여서 C/C++ 로 표현하기도 했었지만, C++의 뜨거운 맛을 맛본 뒤로는 C언어와 동일 선상에서 부르는 건 그만두게 되었지요.


C++언어는 정말 경이로운 언어입니다. 만들어질 당시 컴퓨팅 파워는 지금의 라즈베리파이보다 못한 수준이었을테고, 그럼에도 최적화된 성능을 이끌어내기 위해서 컴파일러나 언어 사용자나 많은 고생을 해야만 했을 겁니다. C언어 수준의 속도를 보장하면서도 여러 패러다임들을 받아들이기 위해 마개조스러운 변화가 반영되었고, 그럼에도 예전 코드가 최신 컴파일러에서 제대로 동작하도록 하위 호환성에도 미친듯한 신경을 썼습니다. 과거의 유산을 포기하지 않으면서 여전히 미래로 도전하는 이 언어는 감히 평해보자면, SW업계에 공기와도 같은 존재로서 어디서나 만날 수 있는 언어라 말할 수 있겠습니다.


C++언어의 창시자와 다른 구루들이 남긴 말을 살펴보면, 이 언어의 진가를 알 수 있습니다.


  1. 50년간 연구를 했다. 결국 C++인가? (Richard A. O’Keefe, Functional Programming 연구에 힘쓰는 컴퓨터 과학자)

  2. C,C++을 쓰는 건 안전가드를 제거한 전기톱을 쓰는 것과 같다. (Bob Gray)

  3. C++ 에서는 스스로 발을 쏘는 행위는 거의 일어나지 않는다. 하지만 그런 일이 일어난다면 다리 전체가 날아가 버릴 거다. (Bjarne Stroustrup, C++언어의 창시자)

  4. C++ : 여기선 친구들이 당신의 Private Members에 접근할 수 있다. 코딩 농담임. (Gavin Russell Baker)

(출처 : https://subokim.wordpress.com/2015/03/12/101-great-computer-programming-quotes/)


제 생애 가장 프로그래밍이 고통스러웠던 순간을 떠올려보면, C++언어를 사용할 때라고 단언할 수 있습니다. 비록 그 때는 모던 C++ 시대가 아니었고, 제가 주로 사용했던 영역은 MFC였습니다만, 그럼에도 이 C++언어는 저로 하여금 스스로 다리 전체를 날려버리는 끔찍한 경험을 몇번이나 하게 만들었습니다.


포인터를 날려버리는 건 귀여운 애교 수준이었고, 가끔은 캐스팅을 잘못해서, 어쩔 땐 참조를 잘못써서 문제가 생기는 게 흔하던 시기였습니다. 저의 실력이 미천했던 것도 물론입니다만, 당시 제 느낌은 헬멧도 쓰지 않은채로 시속 100km로 달리는 오토바이 위에서 눈을 감고 서 있는 그런 느낌이었습니다. 운이 좋으면 오토바이가 멈출 때까지 (프로그램이 종료할 때까지) 아무런 일도 일어나지 않지만, 운이 나쁘면 저는 오토바이가 의도치 않게 멈춰 저는 어디론가 날아가 버릴 수도 있겠죠. ㅎㅎ;;


다른 언어도 마찬가지겠지만, C++언어는 모든 부분을 다 배워서 써먹는 게 불가능합니다. 이 언어만 몇십년동안 사용했던 개발자들도 하는 얘기니 믿을 수 있겠죠. 프로그래밍 언어의 역사가 이 언어 속에 녹아져 있고, 그걸 모두 배워서 써먹는 건 가능하지 않습니다. 그저 필요한 부분만 확실히 익혀서 써먹는 정도가 가능할 뿐이죠. 마치 학창시절부터 배워 온 영어가 아직 입 안 어딘가에 맴돌기만 하는 것과 같습니다.


가능하면 MFC를 쓸 때 이후로 다시는 C++언어와 만나고 싶진 않았습니다. 지금 TSBOARD 프로젝트처럼 이왕이면 타입스크립트 언어나 좀 더 네이티브로 나아간다면 Go 언어 정도를 배워서 써먹어야겠다 생각했는데… 어쩌다 보니 먹고 살기 위해서 다시 C++언어를 만날 준비를 하고 있습니다. 무서운 선생님을 다시 만나는 기분이라 약간 두려운 마음이 크네요. 부디 예전과 다른, 조금쯤은 더 친절해진 C++이 저를 맞이해 주기를 바라며 다시 열공중입니다.


프로그래밍을 하시는 분들이라면, 누구나 한 번쯤은 C++언어를 만나게 되는 순간이 있을 겁니다. 그 때 부디 유쾌한 재회가 될 수 있기를 기원합니다. 저도 이제는 다리 전체를 날려버리는 멍청한 짓은 이제 그만둘 수 있기를 바래봅니다.


  • cpp
  • 프로그래밍
  • 언어
  • mfc

TSBOARD v0.9.2 업데이트 안내드립니다!

2024-06-26 13:21:03 / / 1 reply, written by 시리니

안녕하세요! TSBOARD 개발자 시리니입니다.


간만에 업데이트 소식을 전해드립니다.

이번에는 이미 보신 것처럼 첫화면 디자인 개편이 주를 이루고 있습니다.

아래에 보다 자세히 안내드릴께요!


  • TSBOARD 첫화면에서 이제 게시판 ID로 구분하여 최근 게시물들을 나눠서 보여줄 수 있습니다.

    • 그동안 모든 게시글들이 구분 없이 최신 순서로만 출력이 가능했었는데, 이제는 구분해서 나오며 순서 역시 src/pages/home/HomePageCategoryWindow.vue 파일에서 TARGETS 배열을 수정하면 변경 하실 수 있습니다. (아래 코드 참조)

    const TARGETS = [
      { id: "free", limit: 8 },
      { id: "photo", limit: 4 },
      { id: "sirini", limit: 4 },
    ]
    • 기본의 최신 게시글 순서로 출력되는 것은 LATEST 탭을 통해서 여전히 보실 수 있으며, 첫화면 상단 통합검색 부분에 검색어 입력 시 자동으로 탭이 전환됩니다. 검색어를 지우고 엔터 입력 시 다시 분류 형태의 첫화면으로 돌아올 수 있습니다.

  • 게시글 입력 화면에서 좌측 하단에 불러오기 버튼을 추가하였습니다. 글 작성 도중에 만약 브라우저를 새로 고침 했거나 할 경우 당황하지 마시고 불러오기 버튼을 클릭하시면 직전에 작성하셨던 내용을 그대로 불러오실 수 있습니다.

  • TSBOARD를 여러 서버에 분산하여 설치 후 사용하는 경우에, 작성된 글 내용을 쉽게 동기화하거나 전달할 수 있도록 sync 기능이 추가되었습니다. 이 기능은 대부분의 경우 사용할 일이 없지만, 제가 필요하게 되어서 반영하게 되었습니다.

    • 이 기능은 상대방 서버의 .env 파일에 명시된 JWT_SECRET_KEY 값을 정확히 알고 있어야만 사용이 가능합니다. 즉 일반적으로는 사용이 불가능합니다.

    • 만약 이 동기화 기능을 보다 명확하게 사용하지 않기를 원하신다면, server/routers/sync.ts 파일을 삭제하시면 됩니다.


이 밖에 자잘한 버그 수정이 반영되었습니다!


0.9.z 버전대에서는 블로그 기능 구현에 좀 더 집중을 해야 하는데, 작업을 하다보니 첫 화면에 손을 대기 시작하면서 약간 지체되었습니다.

기본적으로 블로그 형태나 기능(rss 등)은 다 되어 있으므로 목차 자동 생성하기나 읽고 쓰는데 좀 더 편한 기능들을 하나씩 반영해 나가려고 합니다.


TSBOARD를 이용한 다양한 커뮤니티 사이트가 생길 그 날을 기대해 봅니다!


감사합니다.

  • tsboard
  • 업데이트
  • 첫화면
  • 개선
  • 블로그
  • v0.9.3 에서는 아래 사항들이 수정되었습니다.


    • TSBOARD.PREFIX가 이제 제대로 적용되도록 이미지 출력하는 코드 중심으로 모두 수정이 되었습니다. 만약 TSBOARD가 https://example.com/tsboard 경로에 설치되었다고 가정하면, TSBOARD.PREFIX 값을 /tsboard 로 설정할 경우 이미지나 리소스들이 정상적으로 출력 됩니다.

      • 지금 보시는 TSBOARD 공홈처럼 / 경로에 바로 설치가 되어 있거나, 혹은 apache / nginx 에서 root 경로를 / 로 잡아주신 경우에는 TSBOARD.PREFIX 값은 빈 문자열이 됩니다. 이 때 vite.config 기준으로 base 경로는 / 가 됩니다.

      • TSBOARD를 root 경로에 설치하지 않거나, apache 혹은 nginx 에서 따로 root 경로로 잡아주지 않으신 분들은 TSBOARD.PREFIX 값만 잘 설정하시면 됩니다!


    위 업데이트 사항은 v0.9.4 배포 시점에 다시 말씀드리겠습니다.

    2024-06-28 02:38:24 / / written by 시리니

Bun은 언제쯤 가상 CPU에서도 제대로 돌아갈까

2024-06-23 15:12:36 / / 0 reply, written by 시리니

예전에 GeekNews 에서 TSBOARD를 홍보했을 때,

TSBOARD가 의존하고 있는 Bun 런타임에 대한 설명으로 아래와 같이 말씀을 드린 적이 있습니다.


  • Bun 런타임은 가상 CPU에서의 동작이 제대로 안됩니다. 저렴하게 사용 가능한 가상서버 호스팅에서는 제대로 활용하기 어렵습니다. TSBOARD도 Bun에 의지하고 있어서 마찬가지입니다.


사실 좀 더 명확하게 원인을 표현하고 싶은데, 제대로 알지 못하는 상태로 단정짓는 것처럼 보여질까봐 조심스럽습니다.


그저 제가 파악한 바로는, Bun 런타임이 최적화된 성능을 발휘하기 위해서는 특정 CPU 명령어가 필요한데, 가상 CPU의 경우 지원하는 명령어가 그리 많지 않아서 제대로 동작이 되지 않는 것으로 알고 있습니다. 예외적으로 AVX2 명령어셋이 지원되지 않는 CPU의 경우 Bun 측에서 baseline 배포판을 따로 제공해주긴 합니다만, 아무튼 제약이 있다는 점은 분명합니다.


제가 이 문제를 겪었던 대표적인 호스팅 업체가 바로 cafe24 가상서버 였는데요.

직접 cafe24 지원 부서에도 문의해보았습니다만, Bun 런타임이 제대로 동작하지 않는 문제에 대해서는 따로 조치를 취하기 어렵다는 답변을 받았었습니다. 물론 SW 개발자가 어떻게 개발했는지 다 파악하기도 어렵고, 막상 문제를 알아도 수정하는 게 생각처럼 쉽지 않을테니 이해는 됩니다.


그냥 가상서버는 안되나보다, 하고 넘어가다가… 혹시? 싶어서 세계적으로 유명한 도메인 제공 업체인 Namecheap의 VPS는 어떨까 궁금해서 한 번 결제를 해보았습니다. 개발용으로 간단히 테스트를 돌려보고 싶은 게 있어서 사실 겸사겸사 제일 저렴한걸로 결제를 해보고 테스트를 했습니다만…


Namecheap VPS 역시 마찬가지 증상입니다 🥲


cafe24 가상서버와 마찬가지로 Bun이 제대로 동작 안됩니다.

CPU 제약이니까 아무래도 Bun 개발팀이 프로젝트를 새로 만들지 않는 한 어려워 보입니다. (슬프네요…)


참고로 Bun 런타임이 지원되는지 (안되는지) 파악하는 방법을 알려 드리겠습니다.

아주 간단합니다. 먼저 아래와 같이 console.table 을 이용하는 test.ts 코드를 작성합니다.


const test = { name: 'sirini', project: 'tsboard' }

console.table(test)


만약 Bun 런타임이 구동하는 CPU라면, 위의 코드는 문제 없이 표 형태로 데이터를 이쁘게 출력해줘야 합니다. 이는 ts-node 를 이용해서 실행해도 마찬가지입니다. 반면 지원되지 않는 CPU에서는 아래와 같이 나타납니다.


Bun v1.1.16 (bf7b327f) Linux x64 (baseline)
Args: "bun" "test.ts"
Features: jsc
Builtins: "bun:main"
Elapsed: 6ms | User: 4ms | Sys: 4ms
RSS: 1.07GB | Peak: 37.10MB | Commit: 1.07GB | Faults: 0

panic(main thread): Segmentation fault at address 0xFFFD
oh no: Bun has crashed. This indicates a bug in Bun, not your code.

To send a redacted crash report to Bun's team,
please file a GitHub issue using the link below:

 https://bun.report/1.1.16/Ba1bf7b327AC216ymE+xyQ6uzynDopy1iDqto2/Ck2q3/C6ri5/C2661kE61nlgF_A2A6//D

Illegal instruction (core dumped)


결론, Bun 런타임을 쓰려면 가상 CPU 환경은 피하셔야 합니다.

따라서 Bun 런타임에 의존하고 있는 TSBOARD를 사용하고자 하시는 분들은 물리적인 서버를 준비하셔야 합니다. 속도를 위한 선택이었지만, 최근에 Node.js 에서는 동작 안하냐고 물어보시는 분들이 종종 계셔서 뭔가 괜히 저도 아쉽고 그렇습니다. ㅎㅎ


(Go 언어로 백엔드를 다시 만들어야 하나… 🧐)

  • bun
  • 런타임
  • cpu
  • cafe24
  • namecheap
  • vps
  • 가상서버

웹개발, 해야 한다면 풀스택으로 시작하자

2024-06-18 15:38:34 / / 0 reply, written by 시리니

야심한 시각에 코딩하다가 문득 짧게라도 기록해두고 싶은 이야기가 있어서 이곳에 왔습니다.


TSBOARD는 저에게 있어 여러모로 남다른 프로젝트인데, 타입스크립트 단일 언어로 작성하면서도

풀스택으로 개발된 (저에겐) 최초의 프로젝트입니다. 약간 거슬러 올라가면 GR Board라 이름 지었던

PHP 게시판이 있었고, 역시 풀스택 프로젝트였습니다. (그 땐 풀스택이라는 용어조차 생소했던 시기이긴 했네요)


좀 더 거슬러 올라가보니 저에게는 제로보드4 시절의 추억이 있었습니다.

이제는 제로보드를 기억하는 분들이 많이 없으시지만, 당시만 해도 정말 웹호스팅 업계를 먹여 살린 프로그램입니다.


그 때는 PHP 언어에도 익숙하질 않아서 지금 용어로 표현하면 프론트엔드만, 그 때 용어로는 “스킨” 만 만들었습니다.

스킨을 만들고 공유하다가 점점 내가 원하는 기능을 직접 구현해보자 싶어서 PHP 언어를 필요할 때마다 배워서

하나씩 구현한 게 저의 (허접한) 웹개발 역사네요. ㅎㅎ


제가 웹사이트라는 걸 만들고 싶다고 생각한지가 고등학생 때였으니까,

어림잡아서 뻥 좀 보태면 대충 20년이라는 시간이 벌써 흘렀습니다.

그 사이 PHP언어가 주름잡던 웹 생태계가 이제 다양해지면서 어느 새 자바스크립트 시대가 열리고

지금의 다변화된 웹 생태계가 만들어졌네요.


긴 시간을 통틀어서 만약 웹개발에 대해서 제 나름의 생각을 공유할 기회가 있다면

나는 과연 무슨 얘기를 해줄 수 있을까? 하는 생각이 잠시 들었습니다.


제일 좋은 조언은 웹개발은 하지 말고 더 돈이 되는 SW 개발을 하던지 AI/데이터 사이언스에 도전하세요, 라고 해야 겠지만

그럼에도 누군가는 저처럼 웹개발이 하고 싶을 것이고, 그 중에는 Evan You와 같은 슈퍼 개발자가 나타나기도 할겁니다.

순수 웹개발 경력은 사실 얼마 안되는 저입니다만, 그럼에도 만약 조언을 해준다면…

저는 아래의 메시지를 강조하고 싶습니다.


처음부터 풀스택으로 개발하세요


지금의 웹프로젝트는 사실 프론트와 백엔드로 나눠서 개발하는 게 정상일 정도로 충분히 복잡합니다.

백엔드만 해도 고민할 게 얼마나 많습니까? 동시 접속자 처리를 어떻게 하느냐에 따라 투입되는 리소스(=돈)가 달라지니

어떻게든 효율적으로 개발해야 하는 게 맞습니다. 게다가 서버쪽에서 렌더링을 해줘야 SEO에 더 유리하니까

이래 저래 고민할 부분들이 적지 않습니다. 저울질을 해야 할 순간들이 많을테지요.


프론트엔드도 만만치 않습니다. React나 Vue 혹은 Svelte나 Angular같은 프레임워크/라이브러리들을 보면

이건 정말 이것대로 따로 배워서 써먹어야겠다 싶을 정도입니다. 저도 TSBOARD 프로젝트를 시작하기전에

npm은 뭐고 왜 내가 이 수많은 패키지들을 설치해야만 하는 것인지 이해가 안되었습니다. (이제는 좀 이해가 됩니다 ㅎㅎ)

UX 디자이너와의 협업 또한 아무래도 프론트엔드 개발자분이 해주셔야 하는 몫이겠지요.


그럼에도, 저는 만약 새롭게 웹개발에 도전하시는 분이 계시다면 처음부터 풀스택으로 개발해보라고 말씀드릴 겁니다.

결국 웹은 눈에 보여지는 것도 필요하지만, 그 뒤를 받쳐주는 것에 대한 이해도 필요하거든요.

나중에 좀 더 자신에게 맞는 분야를 선택하게 되더라도, 그 전에는 풀스택으로 버튼 UI부터 SQL 실행까지

코드라는 실로 꿰어보는 연습이 필요하다고 생각합니다.


백엔드가 얼마나 힘겹게 여러 사용자들의 요청사항들을 대응하고 있는지 안다면, 프론트엔드에서 이를 해소할만한

아이디어를 궁리해 볼 기회가 생기게 됩니다. 반대로 프론트엔드에서 어떤 식으로 사용자와 상호작용을 하고 싶은지

이해한다면 백엔드를 좀 더 효율적으로 구성할 수 있는 다른 아이디어를 찾아보게 됩니다.

혼자서 역할을 바꿔 가면서 작업을 하다보면, 단순히 1 + 1 = 2 가 아니라 3도 되고 10도 되는 순간을 만끽할 수 있습니다.


TSBOARD처럼 클래식한 프로젝트로 작게 시작해보는 것도 좋고, 여러분이 흥미를 느끼는 그 어떤 웹 프로젝트도 좋습니다.

작게 시작하되, 풀스택으로 영역을 구분하지 말고 시작해보세요. SQL이 혹시 어렵다면 ChatGPT 선생님을 찾아가도 되고

검색만 할 줄 알면 그 어떤 것이라도 해낼 수 있습니다. 필요한 온라인 강의로 개념을 잡아보는 것도 좋습니다.


풀스택 개발, 어렵지 않습니다.

웹개발을 해보고 싶다면 처음부터 풀스택으로 시작해보세요.




야심한 시간에 졸린 와중에 글을 써서 다소 횡설수설 합니다만 ㅎㅎ

마지막 메시지만 기억해주시면 좋겠습니다. 😅

  • 풀스택
  • 웹개발
  • tsboard
  • 프론트엔드
  • 백엔드
  • 이야기

v0.9.1 작업중입니다.

2024-06-17 15:00:10 / / 0 reply, written by 시리니

TSBOARD 업데이트를 조금씩 진행하고 있습니다.


이번에는 이것 저것 자잘한 부분들, 그동안 바빠서 신경을 못썼던 부분들 먼저 소소하게 챙기고

대부분의 사용자에겐 필요 없지만 저에겐 필요한 데이터 전달용 라우터도 추가하였습니다.


저의 경우 물리적으로 분리된 서버 간에 데이터를 주기적으로 동기화해야 할 필요가 가끔 있었습니다.

원래는 정식 코드에 반영하지 않고 따로 분리해서 작성했습니다만, 계속 이런 식으로 코드를 파편화 시키면

나중에 제가 감당이 되지 않을 것 같아서 이번부터 반영을 하였습니다.

(일반적인 사용자는 해당 기능을 신경 쓰실 필요가 없습니다. 😃)


TSBOARD라고 이름 짓지 말고 TSBLOG라고 할 걸 그랬나? 싶을 정도로 사실 지금의 블로그 형태가

저 스스로는 꽤나 마음에 듭니다. ㅎㅎ 디자인이 비록 너무 심플하기도 하고, 아직 워드프레스에

비벼볼 깜냥은 아닙니다만, 그럼에도 직접 개발한 도구를 이용해서 글을 작성하는 즐거움이 있습니다.


가장 보람되는 것은, 처음 TSBOARD를 개발할 때 생각했던 컴포넌트 재활용 전략이 잘 먹혔다는 점입니다.


개발 기간을 줄이면서도 효과적으로 필요한 기능들을 추가하고, 검증하려면

할 수 있는 한 컴포넌트들의 재활용 비율을 높여야 합니다.

하다못해 디자인을 하더라도 서로 비슷하게 구성을 해야 필요할 때 쉽게 가져다 쓰거나

조금만 바꿔서 익숙한 듯 새로운 느낌을 줄 수 있었습니다.


그래서 처음 개발할 때 우선 게시판과 갤러리만 집중해서 개발을 했었고, v0.8.z 버전대를 지나오면서

충분히 기반이 단단해 질 때까지 반년 이상 시간을 쏟아부었습니다. 그 덕분에 사실 블로그는 예상 외로

굉장히 빠르게 틀을 잡아서 만들 수 있게 되었네요. 😋


디자인 관점에서는 여전히 아쉬운 점도 많고, 무엇보다 커스텀 테마까지 제공할 여력이 안되는 점이 제일 아쉽습니다만

천천히 이것 저것 궁리해 나가면서 하나하나 개선해 보려고 합니다.


게시판, 갤러리 그리고 블로그까지… TSBOARD의 도전은 계속 됩니다!

  • tsboard
  • blog
  • 업데이트
  • 주저리
  • 컴포넌트
  • 재활용

TSBOARD v0.9.0, BLOG 기능이 추가되었습니다!

2024-06-11 10:53:07 / / 0 reply, written by 시리니

안녕하세요! TSBOARD 개발자 시리니입니다.


약 9개월간의 v0.8.z 버전대를 거쳐서 이제 공식적으로 v0.9.z 으로 판올림 되었음을 알려드립니다!

이번 판올림에서는 드디어 제가 쓰고 싶었던 블로그 기능이 추가 되었습니다.

블로그니까 당연히 RSS 피드 제공 기능도 제공됩니다. ㅎㅎ


여러 변경점들이 있습니다만, 아래와 같이 간략히 공유드립니다!


  • 이제 게시판 / 갤러리에 이어서 게시판의 형태를 블로그 형태로 변경하실 수 있습니다. 블로그 형태일 때는 게시판 관리자로 지정된 사용자만 글쓰기가 가능합니다.

    • 만약 블로그 사용을 원하는 사용자가 10명이라고 하면, 블로그 형태로 지정된 게시판 10개를 각각 생성해야 합니다.

    • 각 게시판의 고유 ID가 블로그 주소에 사용됩니다. 이곳 TSBOARD 공홈 기준으로는 https://tsboard.dev/blog/sirini 처럼 됩니다. (/blog/ 뒤에 게시판 ID)

  • 블로그는 기본적으로 다크 테마입니다. 이는 게시판이나 갤러리와 달리 보다 개인적인 공간이라는 의미를 부여하기 위해 의도한 것입니다.

    • TSBOARD가 제공하는 Tiptap 기반의 에디터 역시 다크 테마로 제공됩니다. 글쓰기에 좀 더 집중해 보세요!

  • 블로그에 작성된 글은 기본적으로 첫 페이지 최근 게시글에 노출됩니다.

  • RSS 피드를 제공합니다. 이는 SEO를 위해 추가된 sitemap.xml 과 마찬가지로 서버 사이드 렌더링으로 출력됩니다.

  • 블로그 좌측 상단에 블로그 이름과 설명은 게시판 이름 / 설명입니다. 또한 게시판 관리자의 프로필 이미지가 블로그 상단 중앙에 나타납니다.

  • 블로그 게시글에 첨부한 이미지들은 내부 갤러리 형태로 보여지며, 하단에 사진/그림에 대한 텍스트 설명글이 자동으로 노출됩니다. (OpenAI API 연동 시)

  • 이번 v0.9.0 업데이트를 위해서는 bun update.ts 를 한 번 실행해 주시는 걸 추천합니다. (만약 기존에 설치하신 이력이 없다면 안하셔도 됩니다!)


이 밖에도 버전 업데이트를 진행하면서 자잘한 버그 수정을 함께 진행하였습니다.

게시판 / 갤러리 그리고 블로그까지! TSBOARD는 여러분의 웹 공간을 더욱 다채롭고 빠릿하게 만들어드립니다.

많이 알려주시고 한 번 써봐주세요!


감사합니다!

  • tsboard
  • blog
  • 업데이트
  • rss

TSBOARD 블로그 작업을 시작하였습니다.

2024-06-07 17:25:26 / / 0 reply, written by 시리니

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


아직 오피셜하게 업데이트 공지를 드리지는 못했습니다만, 기본적인 블로그 작업은 마무리되어서

우선 제 블로그부터 하나 만들어 보았습니다. ㅎㅎ


사실 이름을 TSBOARD 라고 짓기는 했습니다만, 저는 제가 만든 블로그를 운영해 보는 게 목표였는데

이제 한걸음 다가간 셈입니다. 공식 업데이트 소식에서 좀 더 자세한 내용을 설명드리겠지만,

아래에 간략히 블로그 작업하면서 신경썼거나 의도한 부분들 먼저 소개 드리겠습니다!


  • TSBOARD의 블로그는 기본적으로 어두운 테마 기준으로 작업되었습니다. 이는 게시판이나 갤러리와 구분되도록 의도한 것으로, 블로그라는 게 게시판과 달리 보통은 한명 내지는 소수의 인원만 사용하는 게 일반적이라서 좀 더 개인적인(?) 느낌을 드러내고자 색상을 다르게 가져갔습니다.

  • 블로그는 TSBOARD 게시판 설정에서 게시판 관리자로 지정된 사람만 사용할 수 있도록 할 생각입니다. 만약 TSBOARD로 10명에게 각각 블로그를 만들어주려면 10개의 게시판을 생성해야 합니다.

  • 블로그에 작성된 글은 홈 화면의 최근 게시글에서도 그대로 만나 보실 수 있습니다. 그러고보니 홈 화면의 게시글들을 지금은 최신 순으로만 볼 수 있는데 앞으로는 특정 기간 동안의 좋아요나 조회수 기준으로 정렬하는 것도 구현할 예정입니다.


이제 첫 삽을 퍼올린 셈이라, 여기 저기 손봐야 할 부분들이 많습니다.

어느 정도 정리가 되면 TSBOARD v0.9.0 업데이트 소식으로 공유 드릴께요!

블로그 한 번 씩 봐주시고 어떠신지 의견들도 많이 부탁드립니다 😆

  • tsboard
  • blog
  • 작업
  • 시작

정말 훌륭하네요~

2024-06-03 21:51:24 / / 1 reply, written by Bryan

퀄이 너무 좋습니다~

지금은 홈서버로 돌리고 계신데…

이미지 업로드는 역시 홈서버로 되는 거죠?


중대형으로 가게 되면 이미지 트래픽 비용이 엄청 나게 많이 나온다던데 거기에 대한 대비책은 있을까요?


  • 안녕하세요! 글 남겨 주셔서 감사합니다 ㅎㅎ


    네 말씀하신대로 지금은 홈서버에서 구동중이고, 혹시나 TSBOARD 공홈이 만약 중대형 커뮤니티로

    성장하게 된다면 그 때는 호스팅을 따로 구하던가 해보려고 합니다. 그 때쯤이면 이미지 업로드는

    이미지 트래픽 무제한 호스팅을 이용하던가 해야 할 것 같습니다!


    이미지 트래픽이 무지막지한 점 때문에 고민을 하다가, TSBOARD는 처음부터 .avif 포맷만 적용하게 되었습니다.

    그나마 압축률이 높아서 트래픽을 가장 억제할 수 있는 방법이 아닌가 생각했었습니다. ㅎㅎ

    추가적으로 tsboard.config.ts 파일 설정을 통해서 썸네일 사이즈를 좀 더 줄이거나 하는 방식으로

    트래픽을 어느 정도 제어할 수 있을 것 같습니다.


    모든 건 당해봐야(!) 알겠지만 TSBOARD 공홈은 아마 크게 되긴 어려울 것 같고…

    TSBOARD를 이용한 다른 훌륭한 커뮤니티가 성장해 나가면서 겪는 문제들을 잘 듣고

    같이 해결책을 찾아보던지 해야 하겠습니다.


    의견 주셔서 감사드리고 자주 놀러와 주세요! ㅎㅎ

    2024-06-04 01:01:39 / / written by 시리니

TSBOARD v0.8.40 업데이트!

2024-06-02 09:54:12 / / 0 reply, written by 시리니

안녕하세요, 타입스크립트로 작성된 커뮤니티 빌더 TSBOARD 개발자입니다!


이번 업데이트는 생각보다 많은 변화가 담겨 있어서, 버전 점프를 많이 하게 되었습니다.

v0.9.z 버전 진입 전에 최대한 많은 개선점들을 반영해두고자 노력해 보았는데 어떨지 모르겠네요. ㅎㅎ

혹시 테스트를 해볼까 고민중이신 분들이라면, 이번 v0.8.40 버전을 기점으로 본격적으로

테스트를 해보셔도 좋을 것 같습니다.


이번 v0.8.40에서는 아래의 사항들이 반영되었습니다!


  • 이제 TSBOARD가 검색 엔진 최적화를 위해 sitemap.xml 을 제공합니다.

    • public/robots.txt 파일에 지정된 Sitemap: 경로를 통해서 크롤러는 TSBOARD 사이트의 구조, 데이터 업데이트 빈도 및 링크별 중요도를 명확하게 파악할 수 있습니다.

    • 홈 화면에서 보여지는 최근 게시물 목록처럼, sitemap.xml 파일에 명시된 main.html 파일 경로를 통해 검색 엔진이 수집해야 할 내용들을 명시적으로 알려줄 수 있습니다. 해당 main.html 파일은 서버에서 렌더링되며, TSBOARD 공홈 기준 https://tsboard.dev/tsapi/seo/main.html 경로를 통해 내용을 확인해 보실 수 있습니다.

    • 검색 엔진은 main.html 페이지를 통해 더 빠르게 데이터를 수집할 수 있고, 사용자는 검색을 통해 main.html 로 사이트에 방문하여 내부 링크들을 통해 다시 원래 웹사이트로 접속이 가능해집니다.

  • 테이블 간의 의존 관계를 명확히 하도록 외래 키(FOREIGN KEY)를 추가하였습니다. 기존 사용자는 bun update.ts 를 한 번 실행해야 합니다. 만약 아직 테스트 단계이고, 보존이 필요한 데이터가 없다면 v0.8.40은 클린 설치를 추천드립니다. (모두 삭제 후 다시 설치)

    • 외래 키 지정이 없더라도 TSBOARD 자체적으로는 테이블 간의 의존 관계를 활용하고 있습니다. 다만 이 작업은 보다 명시적인 의존 관계 설정을 통해 DBMS가 좀 더 데이터 무결성을 보장할 수 있도록 해줍니다.

  • TSBOARD가 의존하고 있는 외부 패키지들의 버전대를 최신 버전으로 반영하였습니다. git pull 작업 후 npm i 혹은 bun install 작업으로 외부 패키지들의 업데이트 작업을 진행해 주세요. (vite, elysia 등이 메이저 버전 업그레이드)

  • 글작성에 이어 댓글 작성 시 에디터 툴바 위치가 재조정 되도록 수정하였습니다.

  • 갤러리 뷰어 디자인 소폭 변경 및 util 스토어 리팩토링이 반영되었습니다.

  • 홈 화면 최근 게시글 및 게시판 최근글 디자인이 소폭 변경되었습니다.


위 내용과 더불어 README.md 내용도 v0.8.40 업데이트에 맞춰 내용을 갱신하였습니다.

(혹시 설명된 내용 중에 이해가 잘 안되는 부분이 있다면 알려주세요!)


TSBOARD 기반으로 더 많은 웹 커뮤니티가 생겨나길 바랍니다!


감사합니다.

  • tsboard
  • 업데이트
  • seo
  • sitemap
  • 외래키
  • 무결성
  • 에디터
  • 툴바

TSBOARD v0.8.30 업데이트 안내!

2024-05-28 15:12:05 / / 1 reply, written by 시리니

안녕하세요, TSBOARD 개발자 시리니입니다.


이번 v0.8.30 업데이트에서는 아래의 내용들이 변경되었습니다!


  • 이제 갤러리에 올려진 사진에 대해서 원본 파일 (.avif 로 압축된 파일이 아닌 .jpeg 처럼 사용자가 처음에 업로드한 원본) 을 내려받을 수 있습니다. 갤러리 뷰어 우측의 사이드바를 보시면 중간 쯤에 작성일과 조회수가 나타나는데, 우측에 원래는 작성자 이름이 나왔으나 이제는 원본 받기 버튼이 나타납니다. (사용자가 설정한 언어에 맞춰 표기됩니다)

    • 원본 파일 받기는 게시판의 다운로드 레벨 제한 및 필요 포인트 설정에 영향을 받습니다. 포인트가 차감되도록 설정하신 경우 비회원은 받을 수 없고, 마찬가지로 비회원의 경우 원본 파일은 내려 받을 수 없도록 되어 있습니다.

    • TSBOARD에서는 목록 보기나 글 내용 보기 이외에 (댓)글 작성, 수정, 다운로드 등의 활동에 사용자 세션을 요구합니다. 즉, 비회원은 원칙적으로 해당 행위를 할 수 없도록 제한되어 있습니다.

  • Adobe lightroom 과 같은 사진 편집 프로그램을 사용하여 수정한 파일을 업로드 할 때, EXIF 정보 일부가 유실되어 업로드 시 처리가 실패하는 현상을 수정하였습니다. 해당 프로그램으로 편집된 사진의 경우 가로 세로 크기 정보가 사라지는데, 이전 TSBOARD에서는 width 정보 유무로 판단하는 로직이 있어서 문제가 있었습니다.

  • 갤러리 뷰어의 디자인이 소폭 변경되었습니다. 원본 받기 버튼이 기존 사용자 이름 위치에 배치되면서 사용자 이름은 제목 하단으로 옮겨졌고, 그 옆에 EXIF 정보 보기/닫기 버튼이 배치되었습니다.


이번 v0.8.30은 댓글을 통해 업데이트 소식을 전해드린 v0.8.29 업데이트 내용을 모두 포함합니다!

(글자 색상 표현 추가, 회원 가입 시 알파멧 대문자 및 소문자 각각 필요한 것으로 수정)


TSBOARD는 여러분의 커뮤니티를 응원합니다!

타입스크립트 단일 언어로 작성되고, 종단간 타입 안정성을 가지며, Bun 런타임으로 더 빠르게

여러분들의 커뮤니티를 움직입니다. 궁금하신 점들은 언제든지 물어봐주세요!

  • tsboard
  • 업데이트
  • 갤러리
  • 원본파일
  • 다운로드
  • exif
  • v0.8.31 업데이트가 반영되었습니다. 곧 v0.8.32 업데이트 소개를 드리겠지만,

    댓글을 통해서 먼저 공유드립니다!

    (참고로 TSBOARD에서 끝자리 숫자가 지금처럼 홀수가 되면 아직 작업중이라는 뜻입니다.)


    • 이제 긴 글을 작성할 때, 에디터 툴바가 상단에 반투명한 상태로 항상 고정됩니다. 화면 내에 항상 툴바가 보여지므로, 글자 색상을 바꾸거나 스타일을 다르게 지정하고 싶을 때 매번 상단 스크롤까지 이동해서 클릭하고 다시 내려와서 텍스트를 입력할 필요가 없습니다.

      • 단, 아직 코멘트의 경우 굳이 상단으로 가지 않아도 되는데 올라가는 문제가 있어서 이는 수정할 예정입니다. 급하지 않다면 v0.8.32를 기다려주세요!

    • TSBOARD가 의존하고 있는 여러 (개발) 패키지들의 메이저 버전대를 올렸습니다. vite나 elysia의 경우 앞자리가 바뀌었고, 그 밖에 여러 패키지들이 오늘자 기준으로 가능하면 최신 패키지를 유지하도록 했습니다. 단, 일부 패키지들간의 의존성 문제가 있어 가장 최신 버전은 아닐 수 있습니다. npm i 명령어 혹은 bun install 명령어를 통해서 패키지들이 최신으로 업데이트 되도록 해주세요!

    • SEO에 조금이나마 도움이 되고자, GeekNews에서 받은 피드백대로 우선 sitemap 기능을 추가 하였습니다. sitemap.xml 경로를 통해 검색엔진이 사이트 구조 파악에 도움이 된다고 합니다. 아직은 SPA 경로라서 크게 도움이 안되는 건 맞습니다만, 곧 서버쪽에서 렌더링한 페이지 경로로 교체해서 제공할 예정이므로 SEO 최적화에 도움이 될겁니다. (어차피 같은 데이터지만 사용자는 SPA로, 크롤러는 따로 차려진 SSR로 접근하는 셈. 수집된 페이지로 사용자가 접근하면 링크를 통해 다시 SPA로 넘어올 수 있도록 해보겠습니다.)

      • public/robots.txt 파일을 열어서 하단에 https://tsboard.dev 라고 작성된 부분을 본인의 도메인으로 교체하여 저장하시고, 그 후 npm run build 를 통해서 /dist 폴더 아래에 저장되도록 해야 합니다. 이 작업은 한 번 만 하시면 됩니다.

      • SEO에도 TSBOARD가 더 이상 약점을 가지지 않도록 sitemap 관련 기능을 보완하도록 하겠사오니 조금만 더 기다려주세요!


    블로그 작업 전에 SEO 최적화 문제를 좀 더 해결해 보겠습니다!

    혹시 도움말을 주실 수 있으신 분들은 주저 마시고 댓글이나 글을 통해서 알고 계시는 내용들을 공유 부탁드릴께요!

    2024-05-29 13:58:24 / / written by 시리니

GeekNews 에 소개하길 잘했네요. ㅎㅎ

2024-05-23 14:56:41 / / 0 reply, written by 시리니

TSBOARD를 GeekNews(https://news.hada.io/topic?id=14914#cid25515)에

소개한 이후 생각보다 많은 관심과 의견들을 들을 수 있었습니다!


개발자로서 가장 기쁜 순간이라고 하면 당연히 다른 개발자분들이 프로젝트에 대해서 관심을 표해 주시고

이것 저것 물어봐 주시는 게 아닐까 싶은데, 감사할 따름입니다. 놓쳤던 부분들을 다시 상기할 수 있었고,

보완해야 할 부분들도 점검 받을 수 있어 기뻤습니다. ㅎㅎ


GeekNews에서 받은 피드백들을 바탕으로 다음 버전 업데이트를 좀 더 재미나게 준비해 나갈 수 있을 것 같습니다.

아직 타입스크립트 기반으로 작성된 게시판 프로그램이 없었던 만큼, 앞으로 나타날 여러 프로젝트들에

부끄럽지 않도록 기초를 다지고, 이어서 제가 쓰고 싶고 다른 분들에게도 쓰고 싶은 그런 커뮤니티 빌더로 만들어 나가겠습니다!


참, GeekNews 댓글 중에 TSBOARD가 사용하고 있는 Bun 런타임에 대한 이야기가 나와서 제가 답글을 남겼었는데요,

아래에도 인용해서 공유해 드리고자 합니다.


GeekNews [dogtree 님]

저도 취미로 만드는 프로젝트를 bun으로 돌릴까 생각중이었는데, 가상CPU에서 동작이 제대로 안된다니 놀랍네요.


저의 답변

Bun은 저도 뭐랄까 깊게 써본 것은 아닙니다만, 쓰면서 여러 가지 의미로 놀라운 경험들을 많이 할 수 있었습니다. Node.js 에서는 당연히 되던 기능이 무슨 이유 때문인지 안되던 경험도 많았고 (그중에는 가령 폴더 생성 시 recursive: true 옵션이 지원 안되는 문제도 있었네요), 놀라울 정도로 속도에 집착하는 (그래서 제가 더 애정을 가질 수 밖에 없었던) 모습들도 많았습니다.


지금은 Bundows 라고 하던데 Windows 에서 Bun 런타임이 이제 공식 지원입니다만, 1.1 이전엔 안되어서 WSL2 상에서 돌렸어야 했었습니다. 말씀하신 가상 CPU에서의 동작은 Bun이 앞으로도 지원하지 않을 가능성이 높습니다. AVX2 명령어를 지원하지 않는 CPU를 위한 배포판 (baseline) 까지는 제공하고 있지만, 가상 CPU 미지원은 Bun 개발 언어인 Zig 의 한계인지 몰라도 여러 모로 아쉬운 상황이긴 합니다. 그냥 사용하면서 느낀 건 속도를 위해 Bun 역시 희생한 부분이 있는 것 같다, 이 정도입니다.


혹시 이 댓글을 보실 미래의 Bun 사용자분들이 계실지 몰라 조금만 더 첨언하자면, 여러 제약이 있음에도 불구하고 Bun은 매력적인 선택지입니다. 특히 웹 프레임워크로 ElysiaJS 를 선택하신다면 속도 측면에서는 적어도 아쉬울 점이 없으리라 생각하고 있습니다. 저는 다시 처음으로 돌아가서 런타임을 선택해야 하는 시점이 온다면... 조금 더 고민을 해보겠지만 결국 여러 문제에도 불구하고 Bun을 역시 선택할 것 같습니다. 처리 속도에 광적으로 집착하는거나, 이미 정답이 있는 JS 런타임 생태계에 도전하는 모습들이 뭔가 마음을 움직이더라구요. ㅎㅎㅎ


여기서 좀만 더 얘기해 보자면 (어차피 여기는 자유롭게 글 남기려고 만든 게시판이니 😆)


Bun은 정말 속도 하나만큼은 절대 어떤 런타임에도 지지 않겠다는 아주 강력한 의지를 매 릴리즈마다 보여주고 있습니다.

Node.js 대비 40배가 빠른 땡땡 함수, 뭐보다 8배 더 빠른 API 같은 표현은 일상적으로 나옵니다.


뭐랄까요, 이성적으로 생각하면 호환성 측면에서나 안정성 면에서 사실 TSBOARD 같은 게시판 프로그램은

당연히 Node.js를 선택해야 한다고 머리로는 납득을 했는데, 마음 한켠에서는 JS 생태계에 매드 맥스처럼 불지르러 나타난

이 Bun 프로젝트에 마음을 뺏겨버렸다고 해야 할까요? ㅎㅎㅎ


TSBOARD를 처음 만들기 시작했을 때, 다른 건 몰라도 서버 부담 만큼은 확실하게 줄여주고 무엇보다 빠르게 동작하는

게시판이면 좋겠다는 생각도 했었습니다. 그 때 제 마음을 마치 읽은 것처럼 Bun 이 등장하고 ElysiaJS 웹프레임워크가 나타나서

저도 어쩌다보니? Bun을 선택하게 되었고 이제는 Bun처럼 저도 약간 속도에 집착하게 되었습니다. ㅎ


혹시 상업적인 목적이나 공공기관 등 뭔가 안정성이 필요한 곳에서 JS 런타임을 쓰실 일이 있으시다면,

Bun 말고 Node.js LTS 버전을 쓰시길 추천 드립니다. 합리적인 선택이고, 당연한 선택입니다.


하지만, 만약 취미 프로젝트나 다소 도전적인 개발 스택도 허용되는 JS 프로젝트를 하시게 된다면,

마음 한켠에 JS 생태계의 매드 맥스가 꿈틀대고 있다면, Bun을 선택해 보세요. 후회하지 않으실 겁니다. 😁


  • tsboard
  • bun
  • javascript
  • typescript
  • runtime
  • node.js
  • 매드맥스
  • elysiajs

TSBOARD v0.8.28 업데이트 안내

2024-05-22 09:34:23 / / 2 replies, written by 시리니

안녕하세요! TSBOARD 개발자 시리니입니다.


먼저 GeekNews에서 TSBOARD를 소개한 이후 생각보다 많은 관심을 받았습니다. 감사드립니다!

이 관심은 이제 곧 사그러들겠지만, 저는 계속해서 Bun 기반의 빠르고 쓸만한 커뮤니티 빌더이자 게시판인

TSBOARD 개선에 최선을 다 하겠습니다. 많이 테스트 해주시고, 혹시 괜찮으시면 한 번 써봐주시면 좋겠습니다!

(주변에도 TSBOARD 라고 들어봤니~? 라고 소개해 주시면 더더욱 좋겠습니다. ㅎㅎ)


v0.8.28에서는 아래의 업데이트가 반영되었습니다.


  • 이제 비밀글 기능이 지원됩니다.

    • 비밀글은 글 작성자와 TSBOARD의 관리자(들)만 볼 수 있습니다.

    • TSBOARD의 관리자 정의는 슈퍼 관리자 / 그룹 관리자 그리고 글이 작성된 해당 게시판의 관리자입니다.

    • 비밀글 기능은 게시판 설정이 따로 없습니다. 기본적으로 제공되며 쓰고 싶지 않을 땐 src/pages/board/Write.vue 파일을 수정하시면 됩니다. (더 좋은 방법은 별도의 Write.vue 파일을 생성하여 수정 후 Vue Router 에서 경로 변경!) 옵션으로 빼두지 않은 이유는 게시판 설정값이 지나치게 비대해지는 걸 막기 위함입니다. TSBOARD는 빠르게 동작하기 위해 모든 것을 옵션화하지 않습니다.

  • 전체 / 게시판 / 갤러리 검색에서 이제 검색어 기록이 최대 10개까지 나타납니다.

    • 사이트를 새고로침하면 검색어 기록은 사라집니다.

  • 공지글로 등록하기는 이제 TSBOARD의 관리자에 해당하지 않으면 애초에 보여지지 않습니다.


이제 약 반년 넘게 이어진 v0.8.z 버전대를 곧 마무리하고, v0.9.z 로 넘어가고자 합니다.


사실 TSBOARD 라고 이름을 짓긴 했습니다만, 저는 블로그쇼핑몰이 가지고 싶었습니다!

이제 게시판과 갤러리 같은 기본적인 기능이 준비되었으니, 다음으로 블로그부터 작업을 할 예정입니다.

중간 중간에 계속 소식 공유드리고자 합니다. 많은 관심과 의견 부탁드립니다!


감사합니다.

  • tsboard
  • 업데이트
  • 블로그
  • 쇼핑몰
  • v0.8.29 마이너 업데이트 안내드립니다!

     

    • 이제 게시글과 댓글에서 글자 색상 표현이 가능해졌습니다. 아울러 게시글과 댓글에 대한 사용자 입력값 검사 필터가 하나로 통일됩니다. (editor 와 comment 에 있던 htmlFilter 가 util/tools 로 이동하면서 DEFAULT_HTML_FILTER 로 설정)

    • 이미지 파일 업로드 시 Vision AI (ChatGPT-4o API) 가 제대로 동작하지 않을 경우 한장만 업로드 되던 문제를 수정 (이 부분은 테스트를 좀 더 해보면서 추이를 지켜보겠습니다)

     

    추가적인 업데이트가 있다면 다시 댓글로 알려드릴께요!

    2024-05-26 04:53:11 / / written by 시리니
  • v0.8.29 추가 마이너 업데이트 입니다!


    • 회원 가입 시 비밀번호 규칙에 알파벳 대문자 및 소문자를 포함하는 걸로 안내 문구를 변경하였습니다. (GeekNews 에서 받은 댓글 피드백 반영)

      • [GeekNews dogtree님] 그리고 회원가입할때 비밀번호 조건에 대문자 라고 써있어서 소문자는 포함 안시켜도 되는줄 알았는데 낚였네요 ㅋ 대소문자라고 쓰셔야할듯

    2024-05-26 12:45:01 / / written by 시리니

GeekNews에서 받은 질문들에 대한 답변 공유

2024-05-21 05:45:33 / / 1 reply, written by 시리니

안녕하세요! TSBOARD 개발자 시리니입니다.


어젯밤에 TSBOARD v0.8.26 업데이트 후 처음으로 외부 사이트에 TSBOARD 홍보를 게시했습니다.

평소에 GeekNews (https://news.hada.io) 사이트에서 유용한 정보들도 많이 보고 해서 처음 홍보는 GeekNews로 정했는데

예상외로 따뜻한 관심과 응원의 댓글을 받아서 감동이었습니다…!


그 중에 첫 댓글에서 받은 질문 내용이 아무래도 다른 분들도 궁금해 하실 것 같아

아래에 다시 정리해서 공유드리고자 합니다.


GeekNews [Superwoou] 님:

글을 보고 궁금한게 생겨 댓글을 남겨봅니다. (코드를 보진 않았습니다)

백엔드를 Nodejs compatible로 개발하지 않은 이유가 궁금합니다 (말씀하신 단점을 상쇄하기엔 너무 퍼포먼스가 안나오나요?)
CSR이면 SEO 처리는 어떻게 하실 계획인가요? 커뮤니티는 검색 유입도 신경써야될 것 같은데요


저의 답변

안녕하세요! 댓글 남겨 주셔서 감사합니다. (사실 무관심 속에 뭍힐 거라 생각했는데 감동입니다)


질문해주신 내용들이 저도 고민을 굉장히 많이 했었는데, 그냥 이런 생각도 있구나 하고 봐주시면 좋겠습니다.
아, 참고로 저는 PHP 이후로는 현생에서 단 한번도 웹개발을 이어간 적이 없었습니다. Node.js 개혁의 시대도, React가 웹 세상을 바꿀 때도 관심을 두지 않았었기 때문에 다소 생소한 관점도 있을 수 있겠습니다. ㅎㅎ


  1. 백엔드를 왜 Node.js 호환되게 하지 않았나?
    저는 처음에 TSBOARD를 개발할 때, 이미 Node.js 기반의 (제가 모르는) 유명한 게시판이나 블로그나 여하간 제가 만들려던 거랑 유사한 게 있을거라고 지레짐작했습니다. 서두에도 언급했지만 현생에서 웹개발을 할 일이 없기도 했고, 따로 사이드 프로젝트라는 걸 해본적이 없어서 더 그랬던 것 같습니다. 저는 당연히 Node.js 기반으로 나온 뭔가가 있을텐데 내가 또 새로운 걸 하는 건 큰 의미가 없겠다 싶어서 기왕 새로 배우는 거 Bun 기반으로 해보자, 하고 결정한 게 지금까지 오게 되었습니다.

    퍼포먼스 문제를 고민해보면, 사실 제가 목표로 했던 소규모 커뮤니티 사이트 (동접 10명 미만) 에서는 Node.js 로 충분하다고 생각합니다. Bun 검토하기 전에 Node.js + Hono 기반으로도 테스트를 해봤었는데 사실 제 생각엔 문제가 없었습니다. 그러나 Bun 이 제시했던 압도적인 퍼포먼스와 더불어, 그 Bun 을 기반으로하는 ElysiaJS 퍼포먼스가 정말 인상적이어서, 이걸 포기하고 싶지 않았습니다. 이미 다른 누군가가 Node.js 기반으로 훌륭하게 만든 게시판이 있을 거라 생각한 저는 그 가상의 게시판과 경쟁하려면 더 높은 퍼포먼스가 필요하다고 생각했고, 결국 Node.js 호환성을 포기하고 Bun 의존적으로 설계를 하게 되었습니다. (지금은 살짝 후회중입니다. Node.js 기반으로 그누보드나 라이믹스, XE 같은 유명한 게시판이 없...더라구요. 제가 못찾은 걸까요??)

  2. CSR을 선택하면 SEO는?
    말씀하신 부분이 전적으로 맞습니다. 검색 유입을 하려면 어쨌든 구글 크롤러가 내용을 읽어드리고, 검색 매칭이 되도록 해야 합니다. 이 부분은 아직 구현하지 않았습니다만, 사용자가 원할 경우 마치 RSS 피드를 노출하는 것처럼 최신 컨텐츠들을 정적 형태로 따로 공유하면 어떨까 생각하고 있습니다. JSON 형태로 외부 노출을 하면 수집기가 더 편하게 데이터를 갱신할 수 있지 않을까? 하는 생각을 가지고 있는데 좀 더 고민해 보겠습니다. (RSS 를 생각했었는데 요즘엔 이걸 대부분 안쓰시더라구요?? 제가 너무 오래 웹을 안했나봐요 ㅠ)

    SEO 보완책과는 별개로, CSR로 간 이유는 서버 부담을 좀 더 적극적으로 줄이고자 했기 때문입니다. 최근에 생긴 다모앙(이거 커뮤니티 이름을 막 공개해도 되나 모르겠네요) 사이트의 경우에도 트래픽 부하나 서버 부담이 상당히 되는 걸로 알고 있습니다. 커뮤니티 빌더라는 걸 생각했을 때 SEO도 중요하지만 우선 비용과 직결되는 문제부터 해결해야겠다는 생각에 CSR를 우선적으로 선택하였습니다. PHP를 여전히 사랑하는 저로서는 SSR이 오히려 익숙합니다만, 클라이언트가 좀 더 적극적으로 컴퓨팅 파워를 쓰면 서버가 더 여유를 되찾지 않을까? 하는 생각으로 한 선택이라 보시면 되겠습니다.


궁금증이 좀 해소되셨으면 좋겠습니다. 아울러 제가 한 선택들은 장단점이 명확해서 사실 TSBOARD가 정답이라고 생각하진 않습니다. 여러 트레이드오프를 고려했고, 저의 짧은 생각으로 내린 결정들이라고 보시면 될듯 합니다. 추후에 TSBOARD가 좀 더 많이 활용된다면 언제든지 제 생각을 바꿔서 다른 시도를 해볼 수 도 있겠습니다. ㅎㅎ

웹 생태계에는 이미 그누보드나 XE(라이믹스) 같은 훌륭한 게시판 엔진들이 존재하고,

각 엔진마다 선택한 전략이 비슷한 것도 있고 다른 것도 있을 겁니다.


TSBOARD는 그런 선택에 있어서 조금 뭐랄까요, 좀 더 극한의 케이스를 고려해서 만들고 있다고 생각해주시면 좋겠습니다.

서버의 부담을 줄이고, 클라이언트에서 JS엔진이 좀 더 많은 일을 하도록 하면서 빠르게 동작하도록 했습니다.

또한 더 작은 서버에서 더 많은 트래픽을 소화해 내도록 하는데 집중했다고 봐주시면 좋겠습니다.


디자인 과정에서 선택한 전략이 어떤 경우에나 정답은 아닙니다.

만약 여러분들에게 필요한 전략이 제가 선택한 것과 조금 다르다면, 다른 언어/엔진을 선택하시는 것이 당연히 더 좋습니다.

혹은 TSBOARD를 포크해서 본인의 입맛에 맞게 수정하여 쓰셔도 좋구요!


이번에 GeekNews를 통해서나 혹은 다른 경로로 TSBOARD를 접하신 분들께

언젠가 필요해질 그 날을 기다리며 계속해서 더 개선해 나가도록 하겠습니다. :D


감사합니다!

  • geeknews
  • 홍보
  • tsboard
  • 소개
  • 댓글
  • 문답
  • 인용
  • 그누보드
  • xe
  • 라이믹스
  • 추가로 비회원 기능 지원과 관련된 문의가 있었습니다. 아래에 좀 더 정리해서 답글을 남겨놓고자 합니다.


    TSBOARD는 현재 구조상 사용자가 회원 가입을 해야만 제대로 사용할 수 있도록 되어 있습니다.

    물론 비회원도 게시글을 읽거나 목록을 보거나 혹은 사진을 구경하는 정도는 가능합니다만,

    TSBOARD가 제공하는 게시판마다의 레벨 및 포인트 설정에 따라 비회원의 경우 해당 작업이 안될 수도 있습니다.


    글작성의 경우는 현재 구조상 더더욱 비회원이 하기 어렵도록 되어 있는데, 설계상의 단순함을 유지하려면

    어쩔 수 없는 선택이었습니다. 예외 케이스가 많아지는만큼 고려되어야 할 부분들이 많은데,

    한정된 개발 리소스를 고려하지 않을 수 없었습니다. TSBOARD가 내부적으로 회원 번호 기반으로 의존하는 부분들이

    적지 않기 때문에, 앞으로도 비회원에 대한 글쓰기나 포인트/레벨 제한이 걸린 게시글 열람 등은 어려울 것으로 예상합니다.

    (v2.0.0 에서는 근본적으로 가능한 방안을 좀 더 고려해 보겠습니다)


    대신 회원가입을 아무리 단순화해도 번거롭기 때문에, 소셜 로그인 기능을 처음부터 고민했었고

    현재 나름 성공적으로 반영된 것 같습니다. 게시글을 남기거나 사진을 올리고 싶을 땐 소셜 로그인으로 보다 편하게

    해당 작업을 하실 수 있습니다. 장기적으로는 커뮤니티라는 것이 회원들이 더 많이 활동하도록 유도하는 게

    중요하다고 생각하고 있어서, 비회원 관련 기능들은 앞으로 한동안 반영되지 않게 되는 점 미리 양해를 부탁드립니다!


    TSBOARD는 빠르게 동작해야 한다는 제 나름의 목표 아래 여러 디자인적인 선택을 했었습니다. (비회원 기능 포함)

    앞으로도 이런 얘기들은 많이 나누고 또 그 과정에서 대안을 발견할 수 있길 희망해 봅니다. ㅎㅎ

    2024-05-22 09:49:45 / / written by 시리니

TSBOARD v0.8.26 업데이트 안내

2024-05-20 12:09:29 / / 0 reply, written by 시리니

안녕하세요 TSBOARD 개발자입니다.


v0.8.26 업데이트를 아래와 같이 안내드립니다!


  • 이제 업로드된 이미지 사진에 대해서 Vision AI 기능으로 어떤 사진이 올려졌는지 텍스트로도 함께 보여줍니다. 이는 갤러리 뿐만 아니라 게시판에서도 가능하며, 본 게시글의 첨부파일들에서도 확인 하실 수 있습니다. (사진 출처 : https://unsplash.com/ko)

    • 이 기능은 OpenAI의 API 키가 .env 파일에 등록되어 있을 때에만 동작합니다. (ChatGPT-4o 모델 사용)

    • 이 기능을 사용하기 위해서, bun update.ts 를 한 번 실행하여 DB 테이블을 하나 생성해야 합니다.

    • 이 기능은 필수 기능이 아닙니다, 사용을 원하지 않을 경우 .env 파일에 키 값을 등록하지 않으시면 됩니다. (하지만 update.ts 는 한 번 실행해주세요!)

    • .env 파일에 추가해야 하는 OpenAI API 키 값은 아래와 같은 형태를 가집니다.

OPENAI_API_KEY=thi-s-is-an-examPlE-aPi-kEy-VaLuE_Of-opEN-Ai
  • 게시글 작성 시 키보드의 방향키 동작이 제대로 안되던 문제를 수정하였습니다. (마침내!)

  • 게시글 작성 시 잠시만 기다려달라는 메시지가 (선택하신 언어에 맞춰) 나타납니다. 모바일 기기에서 사용자에게 좀 더 분명한 피드백을 제공해 줍니다. 또한 작성 완료 버튼을 누른 경우 로딩 화면에 나타나면서 글작성 버튼도 비활성화 됩니다.


이 밖에 다양한 버그들을 수정하였고, v1.0.0 버전 달성을 위한 밑작업들을 진행중입니다.


v0.9.x 버전에서는 게시판과 갤러리에 이어서 블로그 기능을 본격적으로 추가할 예정입니다.

먼저 게시판과 갤러리 기능들이 충분히 사용성 있고 안정화 될 때까지 계속 작업하면서,

블로그 기능에 대해 천천히 고민해보고 기능 추가를 시작하도록 하겠습니다.


감사합니다!

  • tsboard
  • 업데이트
  • vision
  • openai
  • chatgpt4o
  • 블로그

TSBOARD v0.8.24 업데이트 안내!

2024-05-11 06:59:10 / / 0 reply, written by 시리니

안녕하세요 TSBOARD 만들고 있는 개발자입니다.


아래에 주요 업데이트 내용들을 소개 드립니다!


  • 이제 구글에 이어 네이버와 카카오 계정으로 로그인하기 기능이 추가되었습니다. 기존에 계정이 없으셨던 분들은 로그인과 동시에 회원 가입이 완료되고 별도의 비밀번호 등록 과정 없이 바로 로그인 됩니다. 원하실 경우 내정보 화면에서 비밀번호를 수정하여 다음부터는 소셜 로그인을 해도 되고, 직접 로그인을 하셔도 됩니다.

    • TSBOARD는 OAuth 로그인 기능 구현만 되어 있고, 여러분들이 이 기능을 사용하시려면 각 서비스 제공자들이 요구하는 등록 절차를 따르고 client_id / client_secret 등의 코드도 받으셔야 합니다.

    • client_id / client_secret 정보는 TSBOARD의 .env 파일을 열어보시면 입력하는 란이 나옵니다.

  • 게시판에서 게시글 목록이 제대로 출력 안되는 케이스가 발견되어 수정되었습니다. 공지 사항 개수에 따라 최신 글이 안나오던 문제가 있었는데 수정이 되었고, 이전/다음 왔다갔다 하다가 목록 버튼을 클릭할 경우 (이전 클릭 후 목록 클릭 케이스) 게시글이 나오지 않던 문제도 수정되었습니다.

  • 게시판에서 이제 첨부파일로 이미지를 선택하신 경우, 글보기 화면에서 작은 썸네일이 함께 표시되어 어떤 내용인지 확인해 볼 수 있습니다. 게시글 보기에서는 한 줄에 최대 4개의 썸네일 이미지가 출력되고, 그 이상의 파일들이 올려질 경우 4 x n 배열로 출력이 됩니다.


이 밖에 안정화를 위한 자잘한 업데이트를 반영해 놓았습니다.

이제 진짜 어디든 홍보를 좀 해보긴 해야 할 것 같네요! 😆

  • tsboard
  • 업데이트
  • 소셜로그인
  • naver
  • kakao

TSBOARD v0.8.22 업데이트!

2024-05-04 15:28:15 / / 0 reply, written by 시리니

TSBOARD v0.8.22 업데이트 소식을 아래와 같이 전해드립니다!


  • 이제 갤러리에 올려진 사진들 중에서 EXIF 정보가 포함된 사진은 자동으로 EXIF 정보를 추출하여 저장합니다. 사용자는 갤러리의 뷰어 다이얼로그에서 글제목 우측의 EXIF 버튼을 통해 해당 내용을 확인 하실 수 있습니다.

  • 게시판과 갤러리를 오갈 때 게시판 글보기에서 갤러리 글쓰기로 갈 경우 게시판 설정을 제대로 가져오지 못하는 문제를 수정하였습니다. 이제 게시판 상단의 게시판 이름과 설명이 제대로 출력됩니다.

  • 스마트폰에서 접속할 때 홈화면과 게시판 / 갤러리 목록보기 화면 우측 하단에 퀵 버튼이 생성됩니다. 이 버튼은 각각 게시판 글쓰기와 갤러리 사진 업로드를 바로 할 수 있는 버튼을 제공하며, 해당 버튼 설정은 tsboard.config.ts 파일에서 QUICK_BUTTONS 객체를 참조하시면 됩니다.

  • 홈화면에서 포스트의 댓글 숫자도 함께 표기되도록 수정하였습니다. 더불어 여백 부분을 조금 더 조정했습니다.

  • 이제 글작성 시 링크 삽입이 제대로 동작합니다. https://tsboard.dev/ 복붙하시면 링크가 바로 생성됩니다.


이 밖에 자잘한 버그들이 수정되었고, Bun v1.1.7 버전에 맞춰 테스트 되었습니다.

기존 버전을 사용하신 분들은 아마 없으시겠지만...? 혹시 있으시다면 bun update.ts 를 한 번 실행하셔서

exif 테이블을 새로 생성해주셔야 합니다!


아직 갈 길이 멀지만 조금씩 꾸준히 개선해 나가겠습니다!


감사합니다.

  • tsboard
  • 업데이트
  • exif
  • 퀵버튼

EXIF 정보 보기가 이제 가능해졌습니다.

2024-05-04 15:15:29 / / 0 reply, written by 시리니

TSBOARD v0.8.22부터 EXIF 정보를 확인하실 수 있습니다.

혹시 후보정 등을 하시다가, 혹은 앱에서 편집을 하고나서 EXIF 정보가 유실되는 경우도 있는데, 이 때는 확인할 수 있는 버튼이 나타나지 않습니다.

이 사진은 우측 상단의 글제목 옆에 EXIF 버튼을 클릭하시면 정보를 보실 수 있습니다!

  • exif
  • 테스트

TSBOARD v0.8.20 업데이트 안내

2024-04-26 04:59:33 / / 0 reply, written by 시리니

TSBOARD 업데이트 소식입니다!


  • 이제 채팅방 디자인이 조금 더 세련되게(?) 수정되었습니다. 좀 더 채팅방 같은 느낌이 되도록 했습니다.

  • 글 작성 시 글 내용을 브라우저에 계속 저장합니다. 실수로 새로 고침을 하더라도, 글쓰기 화면으로 돌아오시면 언제든지 작성중인 내용 그대로를 만나 보실 수 있습니다! (하지만 긴 글을 쓰실때는 항상 본문을 수시로 저장하는 습관을 들여두세요!)

  • 기타 버그들을 수정하였고, 현재도 수정중입니다. 아무래도 외부에 제대로 소개하려면 아직도 갈길이 멀어 보입니다...


글 작성 관련 안전장치를 하나 마련해 두었고, 사용성 개선을 진행하고 있습니다.

좀 더 안정화되면 외부에도 소개 하도록 하겠습니다!


감사합니다.

  • tsboard
  • 업데이트

TSBOARD v0.8.18 업데이트

2024-04-24 13:20:03 / / 0 reply, written by 시리니

TSBOARD v0.8.18 업데이트 안내드립니다.


  • 사용자 세션 관련 로직이 전면적으로 리팩토링 되었습니다. 최초 로그인 시 액세스, 리프레시 토큰 발급은 동일하고, 이후 액세스 토큰 만료 때 리프레시 토큰을 검사하여 유효할 경우 새 액세스 토큰 발급하는 흐름은 같으나, 내부 구현을 좀 더 명료하게 다듬었고 리프레시 토큰의 경우 유효 검사 시 SHA256 알고리즘으로 한 번 더 해싱해서 대조하는 문자열 길이를 64개로 고정시켰습니다.

  • 게시글 목록 보기 시 공지글이 있을 때 이전 / 다음 이동에서 순서가 잘못되던 문제를 수정하였습니다. 아울러 게시글을 가져올 때도 공지글 개수를 제외하고 항상 카운팅이 되도록 수정하였습니다.

  • 다음 페이지로 넘어가는 건 큰 문제가 없었는데, 이전 페이지로 갈 때 TSBOARD는 서버로부터 전달받은 목록을 한 번 뒤집어서 보여줘야 합니다. 이 작업을 서버에서 해서 줄지 고민을 했으나, 이러한 종류의 부담은 클라이언트에서 짊어지는 게 낫겠다는 판단 하에 해당 로직을 유지하고 대신 코드를 좀 더 깔끔하게 정비하였습니다.

  • 홈 화면에서 이제 무한 스크롤 기능을 구현해 두었습니다. 모바일로 접속할 때 이전 게시글을 보기 위해 리프레시 버튼을 클릭하지 않아도 되도록 하였는데, 사용하는 서버 반응성에 따라 조금 늦게 되거나 할 수도 있습니다.

  • 관리 화면 상단에 메뉴 부분들이 가끔 안나오는 문제가 있었는데 항상 나오도록 수정했고, 폭도 조절했으며, 하단에는 사용하시는 TSBOARD의 버전이 항상 표기되도록 변경하였습니다.


이 밖에도 여러가지 개선이 있었습니다.

v0.8.16 이전 버전을 사용하신 분들은 update.ts 파일을 참조하여 필요한 테이블 업데이트 작업을 진행하셔야 합니다.

(물론 아직까지는 사용자가 없으신 것 같습니다만...ㅎㅎㅎ)


원래는 v0.8.0 으로 버전 명명할 때 외부에 홍보를 좀 더 해보려고 했는데, 아직 제가 기대하는 완성도가 나오지 않아서

홍보는 보류하고 코드 개선에 집중하고 있습니다. 이번 v0.8.18 버전은 기대하는 초기버전에 가까워 졌습니다만,

좀 더 보강해서 v0.8.20 부터 홍보도 좀 해볼 수 있도록 하겠습니다.


감사합니다!

  • tsboard
  • 업데이트

처음에 올린 고양이 사진이 조금 무서워 보여서 한 번 더 업로드 실험

2024-04-19 12:36:12 / / 0 reply, written by 시리니

업로드 실험중입니다!

TSBOARD는 일반적인 게시판 형태와 더불어, 지금 보고 계시는 갤러리 형태를 기본으로 제공하고 있습니다.

아직은 기본으로 2개 형태만 제공하지만, 앞으로는 더 많은 변형된 스타일을 제공할 예정입니다.

  • 업로드
  • 실험중
  • 테스트

갤러리 테스트 입니다.

2024-04-19 12:33:03 / / 0 reply, written by 시리니

첨부의 이미지는 챗GPT 선생님께서 만들어주셨는데, 글자를 TSBOARD로 적어달라고 했더니

엉뚱한 글자들을 생성하셨군요. ㅎㅎ 스테이블 디퓨전3 나왔던데 그걸 설치해야하나... 🤣

  • 갤러리
  • 테스트

강릉 안반데기에서 촬영한 밤하늘

2024-04-19 11:45:47 / / 0 reply, written by 시리니

테스트를 위해 업로드를 해보고 있습니다.


이미지 파일은 TSBOARD 내부에서 모두 AVIF 형식으로 인코딩되어 저장됩니다.

원본 파일은 형식 그대로 보관되지만, 보여지는 이미지들은 모두 AVIF 형식입니다.

이를 통해 트래픽을 조금이라도 더 줄이면서 더 빠른 로딩 속도를 보여줄 수 있습니다.


예전 컴퓨터나 스마트폰에서는 AVIF 처리가 굉장히 많은 리소스를 필요로 하지만,

최근 기기들은 문제 없이 빠르게 로딩됩니다.

  • 이미지
  • 업로드
  • 테스트
  • avif

TSBOARD 사이트 초기화

2024-04-19 10:28:58 / / 0 reply, written by 시리니

안녕하세요 TSBOARD 만들고 있는 시리니입니다.


방구석 한켠에서 묵묵히 홈서버로 돌아가고 있던 미니PC를 좀 더 고사양으로 교체하면서,

사이트 초기화를 진행하게 되었습니다. 어차피 기존 데이터들이 모두 테스트 데이터들이어서

굳이 복구하지 않고 새롭게 시작하고자 합니다. 😎


현재 Github 에서는 v0.8.17 업데이트가 계속 반영되고 있고, 차주 정도에 v0.8.18로 릴리즈 안내를 드릴 예정입니다.

이번 업데이트에서는 MySQL 예약어를 회피하기 위한 DB 업데이트 작업이 포함됩니다. (bun update.ts 실행 필요)

아울러 API 경로도 기존 /api 에서 /tsapi 로 변경되고, 관리 화면쪽의 쿠키 관련 버그 일부가 수정됩니다.


쓰시기 편하도록 열심히 작업하고 있습니다. 곧 많은 분들께 소개 드릴 수 있는 날이 오기를 바랍니다! 😊

  • tsboard
  • 업데이트
  • 사이트
  • 초기화
  • 미니pc
  • 업그레이드