본문 바로가기
Spring Boot

Spring Boot 무작정 시작하기 회원가입

by 긴소리 2024. 2. 18.
728x90
반응형

 

빠르게 이해하고 현업에 적용이 필요해서 퇴근 후 찍먹해본 스프링 부트

개념은 조금 부족한 상태지만 일단 아래와 같이 구성되는 것 같다

 

1 프로젝트 구성

나의 테스트 프로젝트는 회원가입을 기준으로 한다

스프링부트의 기본 구성은 아래와 같다

com
└── example
    └── demo
        ├── controller
        │   └── UserController.java
        ├── service
        │   └── UserService.java
        ├── repository
        │   └── UserRepository.java
        └── model
            └── User.java

 

 

각 파일의 역할

 

  • controller: 컨트롤러 클래스들이 위치하는 패키지 / 클라이언트의 요청을 받아서 처리하는 역할
  • service: 서비스 인터페이스 및 구현 클래스들이 위치하는 패키지 / 비즈니스 로직을 처리하는 역할
  • repository: 리포지토리 인터페이스들이 위치하는 패키지 / 데이터베이스와의 상호작용 담당
  • model: 애플리케이션에서 사용되는 모델 클래스들이 위치하는 패키지 / 일반적으로 데이터베이스 테이블과 매핑되는 엔터티 클래스들이 여기에 위치

 

2. 대략적인 파일의 구성

@Entity
public class Member {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    private String phoneNumber;
    
    // Getter와 Setter 메서드
}

 

모델 클래스 (Entity):

  • 회원 정보를 나타내는 객체인 Member 클래스
  • Member 클래스에는 이름(name)과 번호(phoneNumber) 필드 포함
  • 주로 데이터베이스 테이블과 매핑되는 엔티티 클래스로 사용

 

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

 

 

리포지토리 인터페이스:

  • Member 객체를 데이터베이스에 저장하고 조회하기 위한 메서드를 포함하는 인터페이스인 MemberRepository

 

@RestController
@RequestMapping("/members")
public class MemberController {

    @Autowired
    private MemberService memberService;

    @GetMapping
    public List<Member> getAllMembers() {
        return memberService.getAllMembers();
    }

    @GetMapping("/{id}")
    public Member getMemberById(@PathVariable Long id) {
        return memberService.getMemberById(id);
    }

    @PostMapping
    public Member addMember(@RequestBody Member member) {
        return memberService.addMember(member);
    }

    @PutMapping("/{id}")
    public Member updateMember(@PathVariable Long id, @RequestBody Member member) {
        return memberService.updateMember(id, member);
    }

    @DeleteMapping("/{id}")
    public void deleteMember(@PathVariable Long id) {
        memberService.deleteMember(id);
    }
}

 

컨트롤러(Controller):

  • 클라이언트의 요청을 받아 해당 요청을 처리하는 역할
  • 컨트롤러는 클라이언트와의 HTTP 통신을 처리하고, 서비스로부터 받은 결과를 클라이언트에게 반환

@Service
public class MemberService {

    @Autowired
    private MemberRepository memberRepository;

    public List<Member> getAllMembers() {
        return memberRepository.findAll();
    }

    public Member getMemberById(Long id) {
        return memberRepository.findById(id).orElse(null);
    }

    public Member addMember(Member member) {
        return memberRepository.save(member);
    }

    public Member updateMember(Long id, Member member) {
        if (!memberRepository.existsById(id)) {
            return null;
        }
        member.setId(id);
        return memberRepository.save(member);
    }

    public void deleteMember(Long id) {
        memberRepository.deleteById(id);
    }
}

 

 

서비스(Service)

  • 비즈니스 로직을 처리하는 역할
  • 컨트롤러로부터 받은 요청을 서비스에서 처리하고, 데이터베이스와의 상호작용은 리포지토리를 통해 수행

 

 

반응형

'Spring Boot' 카테고리의 다른 글

mac os localhost:8080/login 해결 방법  (0) 2024.02.17
mac os port 8080 was already in use 해결 방법  (0) 2024.02.17

댓글