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
37 changes: 0 additions & 37 deletions .gitignore

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
package com.example.springhw31.controller;

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

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

@RestController
@RequiredArgsConstructor
@RequestMapping("/users")
public class UserController {

private final UserService userService;

@PostMapping
public UserDto join(@ModelAttribute UserDto userDto) {

return userService.join(userDto);
}
}

}
6 changes: 3 additions & 3 deletions src/main/java/com/example/springhw31/dto/UserDto.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.example.springhw31.dto;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
* UserDto 클래스는 수정 X
*/

@Getter
@Setter
@NoArgsConstructor
public class UserDto {

private String username;
Expand Down
20 changes: 16 additions & 4 deletions src/main/java/com/example/springhw31/entity/User.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
package com.example.springhw31.entity;


/**
* TODO: 완성된 코드 아닙니다~
*/
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;

@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,14 @@
package com.example.springhw31.repository;

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

@Repository
public interface UserRepository extends JpaRepository<User, Long> {

boolean existsByUsername(String username);

boolean existsByNickname(String nickname);

}
37 changes: 34 additions & 3 deletions src/main/java/com/example/springhw31/service/UserService.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,45 @@
package com.example.springhw31.service;

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

/**
* Controller에 반환할 때도 DTO 객체를 반환합니다.
*/
@Service
@RequiredArgsConstructor
public class UserService {

private final UserRepository userRepository;

@Transactional
public UserDto join(UserDto userDto) {

if (userDto.getUsername() == null || userDto.getUsername().isEmpty()) {
throw new RuntimeException("아이디를 입력해 주세요.");
}
if (userDto.getPassword() == null || userDto.getPassword().isEmpty()) {
throw new RuntimeException("비밀번호를 입력해 주세요.");
}
if (userDto.getNickname() == null || userDto.getNickname().isEmpty()) {
throw new RuntimeException("닉네임을 입력해 주세요.");
}

if (userRepository.existsByUsername(userDto.getUsername())) {
throw new RuntimeException("아이디가 이미 존재합니다.");
}
if (userRepository.existsByNickname(userDto.getNickname())) {
throw new RuntimeException("닉네임이 이미 존재합니다.");
}

Comment on lines +19 to +35
Copy link
Member

Choose a reason for hiding this comment

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

예외 처리 엄청 잘했어!!!
그런데 만약에 19~34번째 줄이 없을 경우 한번 테스트 해볼까???

  • 아이디, 비밀번호, 닉네임이 null인경우 저장되는지
  • 아이디와 닉네임이 중복 저정이 가능한지 한번 테스트해봅시당

Copy link
Author

Choose a reason for hiding this comment

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

테스트 했슴다

User user = new User();
user.setUsername(userDto.getUsername());
user.setPassword(userDto.getPassword());
user.setNickname(userDto.getNickname());

userRepository.save(user);
return userDto;
}

Copy link
Member

Choose a reason for hiding this comment

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

로그인 로직도 만들어주세용~~

Copy link
Author

Choose a reason for hiding this comment

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

하하 만드는 중

}
15 changes: 0 additions & 15 deletions src/main/resources/application.yml

This file was deleted.