Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
226 changes: 26 additions & 200 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,204 +1,30 @@
# Created by https://www.toptal.com/developers/gitignore/api/java,gradle,intellij,macos,windows
# Edit at https://www.toptal.com/developers/gitignore?templates=java,gradle,intellij,macos,windows

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
.idea

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr

# Sonarlint plugin
# https://plugins.jetbrains.com/plugin/7973-sonarlint
.idea/**/sonarlint/

# SonarQube Plugin
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
.idea/**/sonarIssues.xml

# Markdown Navigator plugin
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator-enh.xml
.idea/**/markdown-navigator/

# Cache file creation bug
# See https://youtrack.jetbrains.com/issue/JBR-2257
.idea/$CACHE_FILE$

# CodeStream plugin
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml

# Azure Toolkit for IntelliJ plugin
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
.idea/**/azureSettings.xml

### Java ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### macOS Patch ###
# iCloud generated files
*.icloud

### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

### Gradle ###
HELP.md
.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
/src/main/resources/application.yml

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
.env

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
### STS ###
.apt_generated
.classpath

### Gradle Patch ###
# Java heap dump
*.hprof

# End of https://www.toptal.com/developers/gitignore/api/java,gradle,intellij,macos,windows
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/
27 changes: 13 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
FROM openjdk:21-jdk-slim
FROM bellsoft/liberica-openjdk-alpine:17
# 다른 JDK 옵션:
# FROM openjdk:8-jdk-alpine
# FROM openjdk:11-jdk-alpine

RUN apt-get update && apt-get install -y dos2unix
CMD ["./gradlew", "clean", "build"]
# 또는 Maven
# CMD ["./mvnw", "clean", "package"]

WORKDIR /app
VOLUME /tmp

COPY gradlew ./
COPY gradle gradle
COPY build.gradle ./
COPY settings.gradle ./
ARG JAR_FILE=build/libs/*.jar
# Maven을 사용하는 경우
# ARG JAR_FILE_PATH=target/*.jar

RUN dos2unix gradlew

COPY src src

RUN ./gradlew build --no-daemon
COPY ${JAR_FILE} app.jar

EXPOSE 8080

# 만약 루트 디렉토리 이름이 다르다면 "build/libs/(디렉토리이름)-0.0.1-SNAPSHOT.jar" 으로 바꿔주기!
ENTRYPOINT ["java", "-jar", "build/libs/techeer-partners-api-session-0.0.1-SNAPSHOT.jar"]
ENTRYPOINT ["java", "-jar", "/app.jar"]
19 changes: 0 additions & 19 deletions HELP.md

This file was deleted.

8 changes: 2 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,2 @@
# Docker Desktop 활용법
https://melodic-walleye-2ab.notion.site/Docker-Desktop-1395051bdea58049bcb9f9ebb10631f6?pvs=4


# 과제 요구사항
https://melodic-walleye-2ab.notion.site/1395051bdea580f3855cf4d35803dd5f?pvs=4
## Techeer Partners에서 백엔드 공부하는 김홍석이라고 합니다
<img width="475" alt="image" src="https://github.com/user-attachments/assets/b665c3d1-fdc8-43d0-934d-626ea2f90ec7">
43 changes: 19 additions & 24 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,40 +1,35 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.5'
id 'io.spring.dependency-management' version '1.1.6'
id 'java'
id 'org.springframework.boot' version '3.3.5'
id 'io.spring.dependency-management' version '1.1.6'
}

group = 'com.example'
group = 'TecheerPartners'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
//implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'com.mysql:mysql-connector-j' // MySQL 드라이버 추가
compileOnly 'org.projectlombok:lombok:1.18.24' // 최신 버전을 확인하고 사용하세요
annotationProcessor 'org.projectlombok:lombok:1.18.24'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'



testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
useJUnitPlatform()
useJUnitPlatform()
}
34 changes: 32 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,39 @@
version: '3.8'

services:
spring:
application:
container_name: backend
restart: always
build:
context: .
context: ./
dockerfile: Dockerfile
ports:
- "8080:8080"
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql_db:3306/${MYSQL_DATABASE}?useSSL=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD}
SPRINGDOC_SWAGGER_UI_PATH: /
depends_on:
- database
networks:
- team_h # 네트워크 추가

database:
container_name: mysql_db
image: mysql:latest
restart: always
ports:
- "3306:3306"
volumes:
- ./mysql/conf.d:/etc/mysql/conf.d/my.cnf
- ./mysql/initdb.d:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
networks:
- team_h # 네트워크 추가

networks:
team_h: # 네트워크 정의
driver: bridge # 기본 브리지 네트워크 사용
Loading