이름 | 역할 |
---|---|
조성우 | 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/static
git fetch origin
git checkout $1
git pull origin $1
cd ~/solsol-high/static/ssh-web
npm install
npm run build
- 위의 스크립트를 실행시키는 쉘 스크립트 파일을 웹 프로젝트를 배포하고자 하는 서버에 심어놓는다.
name: SolSolHigh-FE Deploy
on:
push:
branches: develop
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# stage : ssh
- name: SSH
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SSH_KRO_HOST }}
username: ${{ secrets.SSH_KRO_USERNAME }}
password: ${{ secrets.SSH_PASSWORD }}
script: |
cd ~/solsol-high
./static.sh develop
- 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-app
build: .
ports:
- "8080:8080"
depends_on:
- solsol-mysql
- solsol-redis
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://solsol-mysql:3306/solsolhigh
SPRING_DATASOURCE_USERNAME: "root"
SPRING_DATASOURCE_PASSWORD: # DB 비밀번호 작성
TZ: "Asia/Seoul"
restart: always
networks:
- internal_network
solsol-mysql:
container_name: solsol-mysql
image: mysql
ports:
- "3307:3306"
environment:
MYSQL_DATABASE: solsolhigh
MYSQL_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: 10s
timeout: 2s
retries: 100
volumes:
- ~/solsol-high/database/mysql:/var/lib/mysql
networks:
- internal_network
solsol-redis:
image: redis
container_name: solsol-redis
ports:
- "6380:6379"
networks:
- internal_network
networks:
internal_network:
src/main/resources/application.yml
server:
servlet:
encoding:
charset: UTF-8
spring:
profiles:
include: dev, oauth, secret
jpa:
show-sql: true
open-in-view: false
hibernate:
ddl-auto: none
properties:
hibernate:
highlight_sql: true
format_sql: true
default_batch_fetch_size: 100
sql:
init:
mode: always
servlet:
multipart:
max-file-size: 50MB
max-request-size: 50MB
src/main/resources/application-dev.yml
solsol:
front:
base: # 프론트 서버 주소
masterbank:
api-key: # 싸피 금융망 api key
base: # 싸피 금융망 api url
institution-code: #기관 코드
fintech-app-no: # 핀테크 앱 일렬번호
src/main/resources/application-oauth.yml
spring:
security:
oauth2:
client:
registration:
naver:
client-name: naver
client-id:
client-secret:
redirect-uri: http://localhost:8080/login/oauth2/code/naver
authorization-grant-type: authorization_code
scope: name, email
kakao:
client-name: kakao
client-id:
client-secret:
redirect-uri: http://localhost:8080/login/oauth2/code/kakao
authorization-grant-type: authorization_code
client-authentication-method: client_secret_post
scope: account_email, name
provider:
naver:
authorization-uri: https://nid.naver.com/oauth2.0/authorize
token-uri: https://nid.naver.com/oauth2.0/token
user-info-uri: https://openapi.naver.com/v1/nid/me
user-name-attribute: response
kakao:
authorization-uri: https://kauth.kakao.com/oauth/authorize
token-uri: https://kauth.kakao.com/oauth/token
user-info-uri: https://kapi.kakao.com/v2/user/me
user-name-attribute: id
application-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: false
yaml 파일 모두 필요한 값들 채운 후 필요한 위치로 전송.
docker 설치 후 docker-compose.yml가 존재하는 경로로 이동.
docker-compose up -d 실행.