Skip to content

Commit

Permalink
docs: 디렉토리 구조 아래로 옮김
Browse files Browse the repository at this point in the history
  • Loading branch information
zzoe2346 authored Nov 14, 2024
1 parent 62a806c commit acddb53
Showing 1 changed file with 64 additions and 62 deletions.
126 changes: 64 additions & 62 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@
- [2. 포인트](#2-포인트)
- [3. 콜백 서비스](#3-콜백-서비스)
- [4. 안부 전화 서비스](#4-안부-전화-서비스)
- [📂 디렉토리 구조](#-디렉토리-구조)
- [🧑‍💻 관리자 및 개발자 편의기능](#-관리자-및-개발자-편의기능)
- [👩‍👩‍👧‍👧 협업 효율](#-협업-효율)
- [📂 디렉토리 구조](#-디렉토리-구조)

## 🚀 배포 주소
### ✔️ Client
[https://sinitto.life/](https://sinitto.life/)
Expand Down Expand Up @@ -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]
>
<img width="480" alt="image-3" src="https://github.com/user-attachments/assets/45fa7e58-9451-4d3b-857b-93c78f3b0794">
<img width="500" alt="image-3" src="https://github.com/user-attachments/assets/c0cac5df-2214-4004-b7dd-043971fe4274">
## 👩‍👩‍👧‍👧 협업 효율
프론트엔드-백엔드 간 협업 과정 중 제공된 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
Expand Down Expand Up @@ -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]
>
<img width="480" alt="image-3" src="https://github.com/user-attachments/assets/45fa7e58-9451-4d3b-857b-93c78f3b0794">
<img width="500" alt="image-3" src="https://github.com/user-attachments/assets/c0cac5df-2214-4004-b7dd-043971fe4274">

## 👩‍👩‍👧‍👧 협업 효율

프론트엔드-백엔드 간 협업 과정 중 제공된 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)


0 comments on commit acddb53

Please sign in to comment.