jongpak / dev-tip

My Dev tips
1 stars 0 forks source link

awsome plta readme #13

Open jongpak opened 3 years ago

jongpak commented 3 years ago

Platanus BBS (http://bbs.canxan.com/)

백엔드 학습을 진행하면서 얻은 지식들을 녹여 만든 Platanus BBS (게시판)

💻 개발환경

🛠️ 기능구현

🔥 개발과정

💡 구조도

                         ┌────────────────────────────────────────────────────────────────────────┐
                         │  Spring boot (tomcat)                            ┌───────────────────┐ │
                         │                                                  │      Database     │ │
                         │                                                  └──────────▲────────┘ │
                         │                                                     ┌───────┴──────┐   │
                         │                                                     │  Repository  │   │
                         │                                                     └───────▲──────┘   │
                         │                                                     ┌───────┴──────┐   │
                         │                                                     │    Service   │   │
                         │                                                     └───────▲──────┘   │
                         │                                                     ┌───────┴──────┐   │
  ┌──────┐   ┌───────┐   │  ┌───────────────────────┐ ┌──────────────────────┐ │              │   │
  │ USER ├──►│ nginx ├──►├──► LoginCheckInterceptor ├─► BoardListInterceptor ├─►  Controller  │   │
  └──────┘   └───────┘   │  └───────────────────────┘ └──────────────────────┘ │              │   │
                         │                                                     └──────────────┘   │
                         └────────────────────────────────────────────────────────────────────────┘

⚙️ 실행 & 배포

$ gradlew build
$ java -jar build/libs/webboard-0.0.1-SNAPSHOT.jar

DB 연결정보

DB 연결정보는 환경변수에서 가져옵니다. 그래서 아래와 같이 환경변수가 세팅되어야 합니다.

export WEBBOARD_MARIADB_JDBC=jdbc:mariadb://localhost:3306/webboard
export WEBBOARD_MARIADB_ID=webboard
export WEBBOARD_MARIADB_PASSWORD=webboardPassword

스키마정보

스미카 정보는 src/main/resources/db.sql 파일에 위치합니다. 이 스키마를 이용하여 테이블을 생성할 수 있습니다.

mysql -u USER -p PASSWORD < src/main/resources/db.sql

Github Actions (Continuous Deploy)

깃허브 액션을 활용하여 지속적인 배포를 합니다. GitHub Secrets에 다음 변수 세팅이 필요합니다. 브랜치 머지가 되면 개발서버로 자동 배포를 합니다.

시크릿 설명
WEBBOARD_HOST 호스트의 주소
WEBBOARD_PORT 호스트의 SSH 포트
WEBBOARD_ID 호스트의 계정
WEBBOARD_KEY 호스트의 SSH 키