멋쟁이사자처럼 13기/정기 세션

[멋사/Mac OS] 5주차 정기 세션 (Part 1. 실습환경 세팅)

개발자 지망생 리네 2025. 6. 20. 20:19

1. 실습환경 세팅

(1) DB 생성

- likelionmember 데이터베이스 및 member 테이블 생성

CREATE TABLES `member` (
    id int auto_increment primary key,
    username varchar(10) not null,
    age int,
    university varchar(50)
);

(2) SpringBoot 프로젝트 설정

- application.properties

spring.apllication.name = likelionmember

spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver

spring.datasource.url = ${DB_URL}
spring.datasource.username = ${DB_USERNAME}
spring.datasource.password = ${DB_PASSWORD}

 

- Run > Edit Configurations > Environment variables

DB_URL jdbc::mysql://localhost:3306/likelionmember
DB_USERNAME root
DB_PASSWORD  

(3) Member 엔티티 클래스

- src > main > java > com.week5.likelionmember > domain > Member.java

package com.week5.likelionmember.domain;

import jakarta.persistence.*;
import lombok.Getter;

@Getter
@Entity
public class Member {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String username;
    private int age;
    private String university;
    
    protected Member() {}
    
    public Member(String username, int age, String university) {
    	this.username = username;
        this.age = age;
        this.university = university;
    }
}

(4) Repository 인터페이스

- src > main > java > com.week5.likelionmember > repository > MemberRepository.java

package com.week5.likelionmember.repository;

import com.week5.likelionmember.domain.Member;
import org.springframework.data.jpa.repository.JpaRepository;

public interface MemberRepository extends JpaRepository<Member, Long> {
}

(5) 더미데이터 넣기

- src > main > java > com.week5.likelionmember > config > DataInitializer.java

package com.week5.likelionmember.config;

import com.week5.likelionmember.domain.Member;
import com.week5.likelionmember.repository.MemberRepository;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DataInitializer {

    @Bean
    CommandLineRunner initDatabase(MemberRepository memberRepository) {
        return args -> {
            if (memberRepository.count() == 0) {
                memberRepository.save(new Member("yujin", 23, "서울여자대학교"));
                memberRepository.save(new Member("yujin", 25, "서울여자대학교"));
                memberRepository.save(new Member("minji", 22, "서울여자대학교"));
                memberRepository.save(new Member("eunji", 24, "서울여자대학교"));
                memberRepository.save(new Member("chae", 21, "서울여자대학교"));
                memberRepository.save(new Member("hana", 23, "서울여자대학교"));
                memberRepository.save(new Member("jisu", 26, "서울여자대학교"));
                memberRepository.save(new Member("sohee", 20, "서울여자대학교"));
                memberRepository.save(new Member("mirae", 22, "서울여자대학교"));
                memberRepository.save(new Member("sun", 27, "서울여자대학교"));
                memberRepository.save(new Member("nana", 24, "서울여자대학교"));
                memberRepository.save(new Member("yeji", 21, "서울여자대학교"));
                memberRepository.save(new Member("arin", 28, "서울여자대학교"));
                memberRepository.save(new Member("seul", 23, "서울여자대학교"));
                memberRepository.save(new Member("hyejin", 22, "서울여자대학교"));

                memberRepository.save(new Member("yujin", 23, "연세대학교"));
                memberRepository.save(new Member("somin", 22, "고려대학교"));
                memberRepository.save(new Member("jaemin", 20, "서울대학교"));
                memberRepository.save(new Member("yuna", 25, "이화여자대학교"));
                memberRepository.save(new Member("dongha", 28, "중앙대학교"));
                memberRepository.save(new Member("jinyoung", 24, "한양대학교"));
                memberRepository.save(new Member("seojin", 22, "성균관대학교"));
                memberRepository.save(new Member("arin", 27, "이화여자대학교"));
                memberRepository.save(new Member("jiyun", 23, "경희대학교"));
                memberRepository.save(new Member("hyun", 26, "건국대학교"));
                memberRepository.save(new Member("sora", 21, "홍익대학교"));
                memberRepository.save(new Member("jae", 24, "국민대학교"));
                memberRepository.save(new Member("yujin", 29, "한양대학교"));
                memberRepository.save(new Member("yujin", 20, "고려대학교"));
            }
        };
    }
}