From acddb532d07926257b03a752be328d192edf16cf Mon Sep 17 00:00:00 2001
From: Seonghun Jeong <119427233+zzoe2346@users.noreply.github.com>
Date: Thu, 14 Nov 2024 23:56:20 +0900
Subject: [PATCH] =?UTF-8?q?docs:=20=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20?=
=?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EC=95=84=EB=9E=98=EB=A1=9C=20=EC=98=AE?=
=?UTF-8?q?=EA=B9=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 126 +++++++++++++++++++++++++++---------------------------
1 file changed, 64 insertions(+), 62 deletions(-)
diff --git a/README.md b/README.md
index dcb4318..e0ac9ba 100644
--- a/README.md
+++ b/README.md
@@ -20,9 +20,10 @@
- [2. 포인트](#2-포인트)
- [3. 콜백 서비스](#3-콜백-서비스)
- [4. 안부 전화 서비스](#4-안부-전화-서비스)
-- [📂 디렉토리 구조](#-디렉토리-구조)
- [🧑💻 관리자 및 개발자 편의기능](#-관리자-및-개발자-편의기능)
- [👩👩👧👧 협업 효율](#-협업-효율)
+- [📂 디렉토리 구조](#-디렉토리-구조)
+
## 🚀 배포 주소
### ✔️ Client
[https://sinitto.life/](https://sinitto.life/)
@@ -431,6 +432,68 @@ redis-server
’보호자‘는 ’서비스 이용내역‘ 페이지에서 완료 대기 상태인 안부전화 서비스를
완료상태로 변경할 수 있습니다.
+
+## 🧑💻 관리자 및 개발자 편의기능
+
+### 1. 서버 업데이트(무중단 배포)시 Slack 채널을 통한 알림기능
+> Github Action을 통해 서버 업데이트 트리거가 발생하면, 서버 무중단배포 쉘스크립트가 작동하며
+슬랙 페이지 서버-로그 채널에서 백엔드 서버 재부팅 로그 (하단 50줄), 무중단 배포 관련 결과를 제공합니다.
+> #### 슬랙 초대링크 : [https://join.slack.com/t/sinitto/shared_invite](https://join.slack.com/t/sinitto/shared_invite/zt-2uqws45gg-bsPq8cuH2iQV6Jk1Y3Zglw)
+
+![image](https://github.com/user-attachments/assets/c5202037-a313-443a-b0fa-700e372344b6)
+
+### 2. 사용자의 포인트 충전 및 출금 요청시, Slack 채널을 통한 알림기능
+> 보호자의 충전, 시니또의 출금 요청이 들어오면 관리자의 원활한 확인을 위해 슬랙에 메시지를 전송하고, 버튼을 통해 어드민페이지로 접속할 수 있습니다.
+> #### 슬랙 초대링크 : [https://join.slack.com/t/sinitto/shared_invite](https://join.slack.com/t/sinitto/shared_invite/zt-2uqws45gg-bsPq8cuH2iQV6Jk1Y3Zglw)
+
+![image](https://github.com/user-attachments/assets/b5927b13-08a8-4345-b31a-cb0e42896075)
+
+### 3. 더미데이터 로그인기능
+> 개발 과정에서의 개발자들의 실제 더미데이터 기반 웹 사용 및 테스트를 위해, Server Side Rendering 방식의 더미데이터 로그인 페이지를 구현하였습니다.
+서버에 저장된 더미데이터로만 로그인이 가능하며, 개발환경(로컬환경에서 프론트 서버가 열려있을 시) 및 배포서버로 로그인이 가능하고,
+로그인시 해당 더미데이터 유저의 JWT(AccessToken 및 RefreshToken)을 발급하여 함께 전송합니다
+> #### 더미데이터 로그인 페이지 : https://sinitto.site/dummy [비밀번호 : 1234]
+>
+
+
+
+
+## 👩👩👧👧 협업 효율
+
+프론트엔드-백엔드 간 협업 과정 중 제공된 api를 연결하는 과정에서 소통에 어려움이 있었습니다.
+
+학업과 병행할 수 있는 카카오테크캠퍼스의 특성 상 조원들마다 개발을 진행하는 시간이 달라 실시간으로
+문제를 해결하기 어려운 문제점이 있었습니다. 또한 프론트엔드에서 백엔드 서버로 api를 통해 요청을 보냈을 때,
+에러가 발생했을 경우 자세한 오류 메시지가 응답을 통해 나타나지 않았으며, 실제 오류 내용은
+백엔드 서버에 기록되는 문제가 있었습니다.
+
+또한 백엔드 담당 조원에게 질문을 하더라도 답변을 받기 전까지는 그동안 하던 작업을
+진행하지 못하는 문제가 생겨, 전체적인 개발 속도가 느려지는 문제가 있었습니다.
+
+이러한 방법을 어떻게 해결할 수 있을까 고민해보던 중, 가장 먼저 떠오른 방법은 '에러 코드가 생기면
+Slack의 채널에 전송을 하는 것' 이었습니다.
+
+백엔드 서버에서 자바 파일을 실행할 경우 nohup 명렬어를 통해 실행하는데, 이 때 자바 파일을 실행한 기록이
+out 확장자 파일에 남게 됩니다. 이 중에서 에러가 발생한 경우 'ERROR' 라는 단어가 포함이 되는데,
+이러한 패턴을 확인하여 'ERROR'이 포함된 단어가 out 확장자 파일에 기록되면 Slack의 '서버-로그' 채널에
+전송되도록 하였습니다. 이를 통해 프론트엔드 개발자분들이 어떠한 오류인지 확인할 수 있게 하였습니다.
+
+그러나 한 가지 문제가 더 있었습니다. 개발 언어가 다르기 때문에 프론트엔드의 경우 자바에서 발생하는
+에러코드를 읽는데 어려움이 있다는 것이었습니다. 실제로 프론트엔드 개발자분들께 해당 에러코드에 대해
+이해가 되는지 물어봤을 때, 이해하기가 어려워 ChatGPT와 같은 LLM 모델에 에러코드를 복사하여 질문을
+한다는 답변을 받았습니다.
+
+이러한 불편함을 해결하기 위해, 현재 무료로 이용할 수 있는 LLM 모델인 Upstage의 'Solar-pro' 모델과
+연결을 하여 이를 해결하였습니다. 기존의 에러코드를 Slack에 바로 전송하는 대신, 해당 메시지를
+rest 요청을 통해 LLM 모델에 답변을 받고, 해당 답변을 포함하여 에러코드와 같이 보내도록 변경하였습니다.
+
+이러한 과정을 통하여 개발 과정에서의 소통의 어려움을 해결할 수 있었습니다.
+
+아래는 실제 개발 과정에서 사용된 내역입니다. 해당 내용과 관련된 쉘 스크립트는 백엔드 내부 쉘스크립트 모음
+(https://www.notion.so/3ce05a49e06046469bde14c12b8b9c00) 중 '서버에러 자동 공지 관련코드' 에서
+확인할 수 있습니다.
+![image](https://github.com/user-attachments/assets/0f7ee6d3-f468-4f48-9e5f-91beaaeefb8a)
+
## 📂 디렉토리 구조
```c
@@ -553,65 +616,4 @@ Team8_BE
└── service
```
-## 🧑💻 관리자 및 개발자 편의기능
-
-### 1. 서버 업데이트(무중단 배포)시 Slack 채널을 통한 알림기능
-> Github Action을 통해 서버 업데이트 트리거가 발생하면, 서버 무중단배포 쉘스크립트가 작동하며
-슬랙 페이지 서버-로그 채널에서 백엔드 서버 재부팅 로그 (하단 50줄), 무중단 배포 관련 결과를 제공합니다.
-> #### 슬랙 초대링크 : [https://join.slack.com/t/sinitto/shared_invite](https://join.slack.com/t/sinitto/shared_invite/zt-2uqws45gg-bsPq8cuH2iQV6Jk1Y3Zglw)
-
-![image](https://github.com/user-attachments/assets/c5202037-a313-443a-b0fa-700e372344b6)
-
-### 2. 사용자의 포인트 충전 및 출금 요청시, Slack 채널을 통한 알림기능
-> 보호자의 충전, 시니또의 출금 요청이 들어오면 관리자의 원활한 확인을 위해 슬랙에 메시지를 전송하고, 버튼을 통해 어드민페이지로 접속할 수 있습니다.
-> #### 슬랙 초대링크 : [https://join.slack.com/t/sinitto/shared_invite](https://join.slack.com/t/sinitto/shared_invite/zt-2uqws45gg-bsPq8cuH2iQV6Jk1Y3Zglw)
-
-![image](https://github.com/user-attachments/assets/b5927b13-08a8-4345-b31a-cb0e42896075)
-
-### 3. 더미데이터 로그인기능
-> 개발 과정에서의 개발자들의 실제 더미데이터 기반 웹 사용 및 테스트를 위해, Server Side Rendering 방식의 더미데이터 로그인 페이지를 구현하였습니다.
-서버에 저장된 더미데이터로만 로그인이 가능하며, 개발환경(로컬환경에서 프론트 서버가 열려있을 시) 및 배포서버로 로그인이 가능하고,
-로그인시 해당 더미데이터 유저의 JWT(AccessToken 및 RefreshToken)을 발급하여 함께 전송합니다
-> #### 더미데이터 로그인 페이지 : https://sinitto.site/dummy [비밀번호 : 1234]
->
-
-
-
-
-## 👩👩👧👧 협업 효율
-
-프론트엔드-백엔드 간 협업 과정 중 제공된 api를 연결하는 과정에서 소통에 어려움이 있었습니다.
-
-학업과 병행할 수 있는 카카오테크캠퍼스의 특성 상 조원들마다 개발을 진행하는 시간이 달라 실시간으로
-문제를 해결하기 어려운 문제점이 있었습니다. 또한 프론트엔드에서 백엔드 서버로 api를 통해 요청을 보냈을 때,
-에러가 발생했을 경우 자세한 오류 메시지가 응답을 통해 나타나지 않았으며, 실제 오류 내용은
-백엔드 서버에 기록되는 문제가 있었습니다.
-
-또한 백엔드 담당 조원에게 질문을 하더라도 답변을 받기 전까지는 그동안 하던 작업을
-진행하지 못하는 문제가 생겨, 전체적인 개발 속도가 느려지는 문제가 있었습니다.
-
-이러한 방법을 어떻게 해결할 수 있을까 고민해보던 중, 가장 먼저 떠오른 방법은 '에러 코드가 생기면
-Slack의 채널에 전송을 하는 것' 이었습니다.
-
-백엔드 서버에서 자바 파일을 실행할 경우 nohup 명렬어를 통해 실행하는데, 이 때 자바 파일을 실행한 기록이
-out 확장자 파일에 남게 됩니다. 이 중에서 에러가 발생한 경우 'ERROR' 라는 단어가 포함이 되는데,
-이러한 패턴을 확인하여 'ERROR'이 포함된 단어가 out 확장자 파일에 기록되면 Slack의 '서버-로그' 채널에
-전송되도록 하였습니다. 이를 통해 프론트엔드 개발자분들이 어떠한 오류인지 확인할 수 있게 하였습니다.
-
-그러나 한 가지 문제가 더 있었습니다. 개발 언어가 다르기 때문에 프론트엔드의 경우 자바에서 발생하는
-에러코드를 읽는데 어려움이 있다는 것이었습니다. 실제로 프론트엔드 개발자분들께 해당 에러코드에 대해
-이해가 되는지 물어봤을 때, 이해하기가 어려워 ChatGPT와 같은 LLM 모델에 에러코드를 복사하여 질문을
-한다는 답변을 받았습니다.
-
-이러한 불편함을 해결하기 위해, 현재 무료로 이용할 수 있는 LLM 모델인 Upstage의 'Solar-pro' 모델과
-연결을 하여 이를 해결하였습니다. 기존의 에러코드를 Slack에 바로 전송하는 대신, 해당 메시지를
-rest 요청을 통해 LLM 모델에 답변을 받고, 해당 답변을 포함하여 에러코드와 같이 보내도록 변경하였습니다.
-
-이러한 과정을 통하여 개발 과정에서의 소통의 어려움을 해결할 수 있었습니다.
-
-아래는 실제 개발 과정에서 사용된 내역입니다. 해당 내용과 관련된 쉘 스크립트는 백엔드 내부 쉘스크립트 모음
-(https://www.notion.so/3ce05a49e06046469bde14c12b8b9c00) 중 '서버에러 자동 공지 관련코드' 에서
-확인할 수 있습니다.
-![image](https://github.com/user-attachments/assets/0f7ee6d3-f468-4f48-9e5f-91beaaeefb8a)
-