[OAuth] 1. 로그인 app 만들기 - 기본 세팅

목숨이하나's avatar
Jun 11, 2024
[OAuth] 1. 로그인 app 만들기 - 기본 세팅
Contents
환경세팅
오호스 패턴을 이용해 쇼핑몰 로그인 앱 만들기
 

환경세팅

프로젝트 생성

notion image
notion image

application 파일 수정, 작성

notion image
확장자를 yml (야물)파일로 변경합니다.
 
server: servlet: encoding: charset: utf-8 force: true port: 8080 spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:test;MODE=MySQL username: sa password: h2: console: enabled: true jpa: hibernate: ddl-auto: create # none, update show-sql: true properties: hibernate: format_sql: true
코드복붙
 

파일 세팅.

notion image
 
 

기본세팅

엔티티 테이블 생성
User.java
package loginapp.user; import jakarta.persistence.*; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @NoArgsConstructor @Getter @Table(name = "user_tb") @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String username; private String password; private String email; private String provider; // facebook, kakao, apple, naver @Builder public User(Integer id, String username, String password, String email, String provider) { this.id = id; this.username = username; this.password = password; this.email = email; this.provider = provider; } }
shop.java
package shop.mecoding.loginapp.shop; import jakarta.persistence.*; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; @NoArgsConstructor @Getter @Table(name = "shop_tb") @Entity public class Shop{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column(unique = true) private String name; private String price; private String qty; @Builder public Shop(Integer id, String name, String price, String qty) { this.id = id; this.name = name; this.price = price; this.qty = qty; } }
 
머스테치 다운
notion image

(뷰) 템레이트 작성 - 〰️mustache 👨

경로
notion image
join-form.mustache
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>회원가입 페이지</h1> <hr> <form action="/join" method="post"> <input type="text" placeholder="유저네임" value="ssar" name="username"> <br> <input type="password" placeholder="비밀번호" value="1234" name="password"> <br> <input type="email" placeholder="이메일" value="ssar@nate.com" name="email"> <br> <button type="submit">회원가입</button> </form> </body> </html>
login-form.mustache
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>로그인 페이지</h1> <hr> <form action="/login" method="post"> <input type="text" placeholder="유저네임" value="ssar" name="username"> <br> <input type="password" placeholder="비밀번호" value="1234" name="password"> <br> <button type="submit">로그인</button> </form> <a href="#">카카오 로그인</a> </body> </html>
main.mustache
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>메인(인증된) 페이지 : ssar</h1> <hr> <div> 상품이름 : 바나나 <br> 가격 : 1000 <br> 재고 : 20 <br> <hr> </div> <div> 상품이름 : 바나나 <br> 가격 : 1000 <br> 재고 : 20 <br> <hr> </div> </body> </html>
 
 

db 더미 만들기

INSERT INTO shop_tb(name, price, qty) VALUES ('바나나', 1000, 10); INSERT INTO shop_tb(name, price, qty) VALUES ('아보카도', 2000, 10); INSERT INTO shop_tb(name, price, qty) VALUES ('산딸기', 3000, 10);
 

application.yml 파일 수정

notion image
db data.sql을 초기데이터로 사용하겠다.
 
notion image
테이블이 만들어 진 후 더미데이터를 넣겠다 ( 이걸 하지 않으면 테이블이 만들어 지기 전, 더미를 넣어 터진다.)
 
 
 
notion image
JpaREpository : 기본CRUD를 다 만들어준다.
 
notion image
 
Share article

MiracleCoding