오늘의 잔디
저번에 백엔드 코드들도 깃허브에 연동해서 잔디가 심어졌다.
근데 왜 오늘 수정한 코드들은 잔디가 안심어지지
커밋은 잘 됐는데....
이번 포스트에서는 일정 관리 캘린더 웹앱의 백엔드 개발을 시작하면서,
MySQL 연동 및 기본적인 CRUD 준비 과정을 기록합니다.
✅ 프로젝트 목적
Spring Boot 기반 백엔드로 일정 데이터 관리
프론트엔드에서 등록한 일정을 DB에 저장하고 조회/삭제
실무에 가까운 환경 구성 (MySQL + JPA)
초기 디렉토리 구조:

CREATE DATABASE calendar_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'calendar_user'@'localhost' IDENTIFIED BY 'dlatjsrn1!';
GRANT ALL PRIVILEGES ON calendar_db.* TO 'calendar_user'@'localhost';
FLUSH PRIVILEGES;
MySQL 드라이버 + JPA 설정
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-j:8.0.33'
}
repositories {
mavenCentral()
}
# 앱 이름
spring.application.name=calendar
# MySQL 연결 정보
spring.datasource.url=jdbc:mysql://localhost:3306/calendar_db?useSSL=false&serverTimezone=Asia/Seoul
spring.datasource.username=calendar_user
spring.datasource.password=dlatjsrn1!
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA 설정
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
Event.java
// 일정 정보를 담는 모델 클래스
@Entity
public class Event {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title; // 일정 제목
private String type; // 일정 종류
private String date; // 일정 날짜
// 기본 생성자 필수
public Event() {}
public Event(String title, String type, String date) {
this.title = title;
this.type = type;
this.date = date;
}
// Getters and Setters 생략
}
EventRepository.java
@Repository
public interface EventRepository extends JpaRepository<Event, Long> {
// 기본적인 CRUD는 JpaRepository가 자동 제공
}
Public Key Retrieval is not allowedallowPublicKeyRetrieval=true 추가 필요✅ 최종 URL 예시:
spring.datasource.url=jdbc:mysql://localhost:3306/calendar_db?useSSL=false&serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true
지금까지 설정한 내용으로 MySQL과 연결된 JPA 기반 백엔드 환경 구성이 완료되었습니다.
다음 포스트에서는 실제로 프론트엔드와 연결되는 일정 저장/삭제 API 구현을 진행할 예정입니다.

