일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- start.spring.io
- Scanner
- Jenkins
- 무한
- Short
- 클래스
- 박싱
- dependency
- 언박싱
- 인텔리제이
- wrapper
- 빌드
- 싱글턴
- 컬렉션
- 메소드
- Java
- 싱글톤
- 콜렉션
- 루프
- unboxing
- bootstrap
- boxing
- 제네릭
- 내장객체
- 스프링
- 제너릭
- 자동형변환
- https://start.spring.io
- suvlet
- maven
Archives
- Today
- Total
Developer Gonie
[스프링 부트] 12. 회원 서비스 개발 본문
* 서비스 코드 작성시 메소드의 이름을 비지니스에서 가져온 용어들로 사용해야 하는 이유
service 패키지 내의 MemberService 클래스 내부의 메소드를 구현할 때, 비지니스에서 가져온 용어들로 사용하였다.
이는 이전에 repository 패키지 내의 클래스 내부의 메소드 이름을 지정한 것과 다른 점인데, 이래야 기획자들하고의 의사소통이 원활하기 때문이다. 예를들면, 기획자가 회원가입쪽이 이상해요 하면 join 메서드 쪽을 살펴봐야 하는구나 하고
바로 매칭이 되어 편리해진다.
1. java/hello.hellospring 아래에 service 패키지 생성
2. 위 패키지 내에 MemberService 클래스 생성 후 코드 작성
package hello.hellospring.service;
import hello.hellospring.domain.Member;
import hello.hellospring.repository.MemberRepository;
import hello.hellospring.repository.MemoryMemberRepository;
import java.util.List;
import java.util.Optional;
public class MemberService {
private final MemberRepository memberRepository = new MemoryMemberRepository();
/*
* 회원가입
* */
public Long join(Member member){
//같은 이름이 있는 중복 회원이 있다면 예외를 발생시킴
// 직관적인 코드
// Optional<Member> result = memberRepository.findByName(member.getName());
// result.ifPresent(m -> { // ifPresent : 만약 값이 있다면 즉, null이 아니라면 실행부를 실행하라.
// throw new IllegalStateException("이미 존재하는 회원입니다.");
// });
//위 코드를 간소화 시킨것
// memberRepository.findByName(member.getName())
// .ifPresent(m -> {
// throw new IllegalStateException("이미 존재하는 회원입니다.");
// });
//바로 위 코드를 드래그 해서 Alt + Enter를 눌러 extract method 하여 생성한 메소드
validateDuplicateMember(member);
// 같은 이름이 없다면 정보를 저장하며 회원가입 완료
memberRepository.save(member);
return member.getId();
}
private void validateDuplicateMember(Member member) {
memberRepository.findByName(member.getName())
.ifPresent(m -> {
throw new IllegalStateException("이미 존재하는 회원입니다.");
});
}
/*
* 전체 회원 조회
* */
public List<Member> findMembers(){
return memberRepository.findAll();
}
/*
* 1개 회원 조회
* */
public Optional<Member> findOne(Long memberId){
return memberRepository.findById(memberId);
}
}
'인프런 김영한님 강의 > 1 . 스프링 부트 입문' 카테고리의 다른 글
[스프링 부트] 14. 스프링빈을 등록하는 방법1 (0) | 2022.06.27 |
---|---|
[스프링 부트] 13. 회원 서비스 테스트 (0) | 2022.06.26 |
[스프링 부트] 11. 회원 리포지토리 테스트 케이스 작성 (0) | 2022.06.26 |
[스프링 부트] 10. 회원 도메인과 리포지토리 만들기 (0) | 2022.06.23 |
[스프링 부트] 9. cmd 에서 빌드하고 실행해보기*** (0) | 2022.06.23 |
Comments