Skip to content

냉장고의 식재료 관리와 식재료로 가능한 레시피의 관리를 위한 웹 서비스

Notifications You must be signed in to change notification settings

Two-Potatoes/BobJoying-Back

Repository files navigation

develop build check and CI check on docker

🍚 밥조잉 🍚

🙆‍♀️ 내 손 안에 냉장고 🙆‍♂️

기간 : 2024.01.31 ~ 06.24 (5개월)

🙋‍♀️ 우리 서비스는요...

  1. 냉장고의 식재료를 관리해줘요! - 개발 완!✅
  2. 냉장고의 식재료로 할 수 있는 레시피를 등록하고 관리할 수 있어요! - 개발 중⏩
  3. 냉장고를 공유하는 그룹원에게 먹고 싶은 레시피를 요청할 수 있어요! - 개발 중⏩
  4. 식사 기록이 가능하고 그룹원들의 오늘 식사 기록을 피드에서 확인할 수 있어요! - 개발 중⏩

📐 Architecture



💬 ERD

토글을 누르면 ERD를 확인할 수 있습니다!
ERD 보기

🛠️ 기술 스택

         

         

       


✨ 프로젝트 자랑

토글을 누르면 해당 내용을 확인할 수 있습니다.
1. 🐳 CI에서 test 코드를 check하고 프로젝트를 도커에서 build해본 후 결과를 슬랙으로 알림이 오도록 했어요!
  • CI test code 통과 결과를 PR comment에 남기도록 했어요!
  • 도커에서 프로젝트를 build test 해봐요!
  • CI 결과를 슬랙 채널에서 커스텀한 알림으로 받아볼 수 있어요!

2. 🤝 Backlog와 스프린트를 이용하여 협업과 작업의 효율을 높였어요!
  • 개발과 관련된 할 일들은 생각나는 대로 Backlog에 쌓아요!
  • Backlog에 있는 작업 중 우선적으로 해야 할 일을 스프린트에 커밋한 후 작업해요!

3. 🔔 Pull Request에서 리뷰 요청, 리뷰 제출 시 슬랙으로 알림이 오도록 했어요!
  • Pull Request에서 리뷰어를 할당하면 슬랙으로 메시지가 와요!

리뷰어가 할당되면~

image

슬랙에서 리뷰어를 멘션하고 PR TitlePR 링크를 걸어 리뷰를 할 수 있도록 했어요!

image


  • Pull Request에서 리뷰를 제출하면 슬랙으로 메시지가 와요!

리뷰를 제출하면(submit)~

image

슬랙에서 PR 요청한 사람을 멘션하고 누가 리뷰를 달았는지 알려주고 PR 링크를 걸어 리뷰를 확인할 수 있도록 했어요!

image



🎯 Trouble Shooting

해당 항목을 클릭하면 트러블 슈팅 과정을 정리한 블로그로 이동합니다.

1. GraphQL - mutation 실행 시 필드값이 null로 들어오는 오류

2. Docker에서 Spring Boot 프로젝트 build 시 GraphQL 요청을 보내지 못하는 오류

3. Slack Webhook을 이용한 메시지 미리보기가 안 되는 오류

4. 만료된 토큰에서 토큰에 저장된 정보를 가져올 수 없는 오류

5. Redis Docker Container와 Spring Boot 연결이 안 되는 오류


🐳 Docker Compose build

토글을 누르면 해당 내용을 확인할 수 있습니다.
1️⃣ application-docker.yml 파일을 main/resources에 생성합니다. (Docker용 프로젝트 설정 파일)
application-docker.yml
spring:
  graphql:
    schema:
      locations: file:/app/graphql/**
    graphiql:
      enabled: true
  datasource:
    url: { Docker_DB_URL }
    username: { Docker_DB_Username }
    password: { Docker_DB_Password }
    driver-class-name: org.postgresql.Driver
  data:
    redis:
      password: { Docker_Redis_Password }
      port: 6378      # 로컬 Redis의 port와 충돌이 생길 수도 있으므로
      host: host.docker.internal
JWT_SECRET_KEY: { BASE64로 encoding된 key }
2️⃣ 프로젝트 가장 상위 폴더에 .env 파일을 생성합니다. (Docker compose script 환경변수 설정)
.env
POSTGRES_DB={ Docker_DB_Name }
POSTGRES_URL={ Docker_DB_URL }
POSTGRES_USER={ Docker_DB_Username }
POSTGRES_PASSWORD={ Docker_DB_password }

POSTGRES_LOCAL_PORT={ Docker_Postgres_Local_Port }
POSTGRES_DOCKER_PORT=5432

SPRING_LOCAL_PORT={ Spring_Local_Port }
SPRING_DOCKER_PORT=8080

SPRING_GRAPHQL_SCHEMA_LOCATIONS={ Spring_GraphQL_Schema_Locations }

REDIS_LOCAL_PORT={ Redis_Local_Port }
REDIS_DOCKER_PORT=6379

REDIS_HOST=host.docker.internal
REDIS_PASSWORD={ Redis_Password }

JWT_SECRET_KEY={ Base64_Encoded_Secret_Key }
3️⃣ application.properties 파일을 main/resources에 생성합니다. (로컬 build용)
application.properties
spring.datasource.url={ 로컬_DB_URL }
spring.datasource.username={ 로컬_DB_Username }
spring.datasource.password={ 로컬_DB_Password }
spring.datasource.driver-class-name=org.postgresql.Driver

# GraphQL
# graphiql을 통해 테스트 가능 여부 (localhost:8080/graphiql)
spring.graphql.graphiql.enabled=true

# JWT
JWT_SECRET_KEY={ BASE64로 encoding된 key }

# Redis
spring.data.redis.password={ 로컬_Redis_Password }
spring.data.redis.port=6379
spring.data.redis.host=localhost
4️⃣ 로컬에서 project를 build해서 jar파일을 생성합니다.
5️⃣ 터미널에서 docker compose 실행 명령어를 입력하여 프로젝트를 build합니다.
docker-compose -f docker-compose-dev.yml up -d
➕ Docker Postgres 컨테이너 접속 명령어
docker exec -it {postgres 컨테이너 이름} bash

👭 우리 팀은요

Team 감자두리 🥔🥔

🌱 감자 둘이서 꿈틀꿈틀 성장하는 중입니다! 🌱


역할 이름 GitHub
BE 표지수 https://github.com/JisooPyo
FE 조도흔 https://github.com/doheuncho

Releases

No releases published

Packages

No packages published

Languages