| 이름 | 역할 |
|---|---|
| 조성우 | Mocking, API 설계 및 관리, 요구사항 구현 |
| 양규현 | 프로젝트 관리, Storybook 관리, 요구사항 구현 |
| 최요하 | 인프라, 깃허브 관리, 요구사항 구현 |
| 항목 | 버전 |
|---|---|
| Node | 20.16.0 |
| Npm | 10.8.1 |
| React | 18 |
| TypeScript | 5.5.4 |
| Visual Studio Code | 1.92 |
| 항목 | 도구 |
|---|---|
| 형상 관리 | GitHub |
| 협업 & 문서 관리 | Notion |
| 디자인 | Figma |
| IDE | Visual Studio Code |
Project Convention
GitHub Convention
#!/bin/bash
cd~/solsol-high/staticgitfetchorigingitcheckout$1gitpullorigin$1cd~/solsol-high/static/ssh-webnpminstallnpmrunbuild- 위의 스크립트를 실행시키는 쉘 스크립트 파일을 웹 프로젝트를 배포하고자 하는 서버에 심어놓는다.
name: SolSolHigh-FEDeploy
on:
push:
branches: develop
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# stage : ssh-name: SSH
uses: appleboy/ssh-action@v1.0.3with:
host: ${{secrets.SSH_KRO_HOST}}
username: ${{secrets.SSH_KRO_USERNAME}}
password: ${{secrets.SSH_PASSWORD}}script: |cd~/solsol-high./static.shdevelop- develop 브랜치에 push 이벤트가 발생하면 서버로 통합 후 배포
- 웹 프로젝트를 배포하고자 하는 서버에 SSH 로 접속한다.
- 위에서 작성한 쉘 스크립트를 실행시킨다.
| 이유승 | 김현진 |
|---|---|
| 인프라, 요구사항 구현, 테스팅 | AI, API 문서 관리, 요구사항 구현, 테스팅 |
| 항목 | 버전 |
|---|---|
| Java corretto | 17.0.4.1 |
| Spring Boot | 3.3.2 |
| Intellij Ultimate | 2024.2 |
| MySQL | 8.3.0 |
| Docker | 24.0.2 |
| nginx | 1.26 |
| redis | 5.0.7 |
| firebase cloud messaging | 9.3.0 |
| 항목 | 도구 |
|---|---|
| 형상 관리 | GitHub |
| 협업 & 문서 관리 | Notion |
| IDE | Intellij |
./docker-compose.yml
services:
solsol-app:
container_name: solsol-appbuild: .ports:
- "8080:8080"depends_on:
- solsol-mysql
- solsol-redisenvironment:
SPRING_DATASOURCE_URL: jdbc:mysql://solsol-mysql:3306/solsolhighSPRING_DATASOURCE_USERNAME: "root"SPRING_DATASOURCE_PASSWORD: # DB 비밀번호 작성TZ: "Asia/Seoul"restart: alwaysnetworks:
- internal_networksolsol-mysql:
container_name: solsol-mysqlimage: mysqlports:
- "3307:3306"environment:
MYSQL_DATABASE: solsolhighMYSQL_ROOT_HOST: '%'MYSQL_ROOT_PASSWORD: # DB 비밀번호 작성TZ: "Asia/Seoul"healthcheck:
test: [ 'CMD-SHELL', 'mysqladmin ping -h 127.0.0.1 -u root --password=$MYSQL_ROOT_PASSWORD' ]interval: 10stimeout: 2sretries: 100volumes:
- ~/solsol-high/database/mysql:/var/lib/mysqlnetworks:
- internal_networksolsol-redis:
image: rediscontainer_name: solsol-redisports:
- "6380:6379"networks:
- internal_networknetworks:
internal_network:src/main/resources/application.yml
server:
servlet:
encoding:
charset: UTF-8spring:
profiles:
include: dev, oauth, secretjpa:
show-sql: trueopen-in-view: falsehibernate:
ddl-auto: noneproperties:
hibernate:
highlight_sql: trueformat_sql: truedefault_batch_fetch_size: 100sql:
init:
mode: alwaysservlet:
multipart:
max-file-size: 50MBmax-request-size: 50MBsrc/main/resources/application-dev.yml
solsol:
front:
base: # 프론트 서버 주소masterbank:
api-key: # 싸피 금융망 api keybase: # 싸피 금융망 api urlinstitution-code: #기관 코드fintech-app-no: # 핀테크 앱 일렬번호src/main/resources/application-oauth.yml
spring:
security:
oauth2:
client:
registration:
naver:
client-name: naverclient-id: client-secret: redirect-uri: http://localhost:8080/login/oauth2/code/naverauthorization-grant-type: authorization_codescope: name, emailkakao:
client-name: kakaoclient-id: client-secret: redirect-uri: http://localhost:8080/login/oauth2/code/kakaoauthorization-grant-type: authorization_codeclient-authentication-method: client_secret_postscope: account_email, nameprovider:
naver:
authorization-uri: https://nid.naver.com/oauth2.0/authorizetoken-uri: https://nid.naver.com/oauth2.0/tokenuser-info-uri: https://openapi.naver.com/v1/nid/meuser-name-attribute: responsekakao:
authorization-uri: https://kauth.kakao.com/oauth/authorizetoken-uri: https://kauth.kakao.com/oauth/tokenuser-info-uri: https://kapi.kakao.com/v2/user/meuser-name-attribute: idapplication-secret.yml
spring:
ai:
openai:
api-key: # openai 에서 발급받은 키cloud:
aws:
credentials:
access-key: # IAM 발급받은 엑세스 키secret-key: # IAM 발급받은 비밀 키s3:
bucket: # s3 버킷이름region:
static: # s3 지역stack:
auto: falseyaml 파일 모두 필요한 값들 채운 후 필요한 위치로 전송.
docker 설치 후 docker-compose.yml가 존재하는 경로로 이동.
docker-compose up -d 실행.

