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
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
package com.example.springhw31.controller;

import com.example.springhw31.dto.UserDto;
import org.springframework.web.bind.annotation.ModelAttribute;
import com.example.springhw31.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

/**
* 회원가입 메서드처럼 UserDto를 파라미터로 받아주세요
*/

@RestController
@RequiredArgsConstructor
public class UserController {

private final UserService userService;

public UserDto join(@ModelAttribute UserDto userDto) {
@PostMapping("/signup")
public UserDto signup(@ModelAttribute UserDto userDto) {
return userService.signup(userDto);
}

@GetMapping("/signin")
public String signin(@ModelAttribute UserDto userDto) {
return userService.signin(userDto);
}
}
3 changes: 0 additions & 3 deletions src/main/java/com/example/springhw31/dto/UserDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@
public class UserDto {

private String username;

private String password;

private String nickname;

}
13 changes: 13 additions & 0 deletions src/main/java/com/example/springhw31/entity/User.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
package com.example.springhw31.entity;


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

/**
* TODO: 완성된 코드 아닙니다~
*/
@Entity
@Getter
@Setter
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Column(nullable = false, unique = true)
private String username;

@Column(nullable = false)
private String password;

@Column(nullable = false, unique = true)
private String nickname;
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package com.example.springhw31.repository;

public class UserRepository {
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.springhw31.entity.User;

import java.util.Optional;

public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByUsername(String username);
}
34 changes: 33 additions & 1 deletion src/main/java/com/example/springhw31/service/UserService.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,46 @@
package com.example.springhw31.service;

import com.example.springhw31.dto.UserDto;
import com.example.springhw31.entity.User;
import com.example.springhw31.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.NoSuchElementException;

/**
* Controller에 반환할 때도 DTO 객체를 반환합니다.
*/

@Service
@RequiredArgsConstructor
public class UserService {

public UserDto join(UserDto userDto) {
private final UserRepository userRepository;

//회원가입 로직
//아이디, 비밀번호, 닉네임은 null 불가(@Column 사용)
//아이디 또는 닉네님이 중복된 경우 회원가입불가
public UserDto signup(UserDto userDto) {
User user = new User();
user.setUsername(userDto.getUsername());
user.setPassword(userDto.getPassword());
user.setNickname(userDto.getNickname());
userRepository.save(user);
return userDto;
}

//로그인 로직
//로그인 성공 시 “{회원 닉네임} 님, 환영합니다!!” 라는 문자열 출력
//로그인 실패 시 “아이디 및 비밀번호가 일치하지 않습니다.” 문자열 출력
public String signin(UserDto userDto) {
User user = userRepository.findByUsername(userDto.getUsername())
.orElseThrow(() -> new NoSuchElementException("해당 유저가 없습니다."));

if(user.getPassword().equals(userDto.getPassword())){
return user.getNickname() + "님 환영합니다.!!";
}else{
return "비밀번호가 일치하지 않습니다.";
}
Comment on lines +37 to +44
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기 로직 넘 맘에 들어여 ㅎㅎ

}
}
6 changes: 3 additions & 3 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8
username: your_username
password: your_password
url: jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: na58745874@
driver-class-name: com.mysql.cj.jdbc.Driver

jpa:
Expand Down