개발 공부/JAVA

스프링 핵심 원리 기본 - 회원 도메인 개발

공부하는개발자_ 2023. 12. 13. 15:26

 

 

 

 

 

 

생성자 생성

 

 

getter , setter 생성 (private filed값을 세팅하기 위함)

 

 

 

 

 

 

회원저장

회원 아이디로 회원 찾는 기능

 

인터페이스와 구현체를 다른 패키지에 두면 설계 상 좋음

 

DB확정 안된 상태에서 MemoryMemberRepository만 만들어놓은 상태

개발 진행은 할 수 있음

HaspMap<> 동시성 이슈가 발생할 수 있으므로 실무에서는 ConcorrentHashMap사용 권장

 

 

 

 

 

구현체가 하나만 있는 경우 인터페이스 명뒤에 impl 관례상 많이 씀

가입을 하고 회원을 찾으려면 memberRepository 인터페이스 필요

 

구현 객체를 선택해 주어야함

 

join에서 save호출하면 다형성에 의해 MemoryMemberRepository에 있는 save호출 됨

 

 

순수한 자바 코드로 자바 메서드 실행. 애플리케이션 로직으로 테스트 하는 것은 한계가 있음

Junit으로 테스트 

빌드해서 나갈 때 main에 대한 코드만 나가고, test에 대한 코드는 운영환경에 배포가 안 됨.

 

 

 

memberService가 인터페이스, 구현까지 의존

 

MemberRepository는 MemberServiceImpl인터페이스 의존

MemoryMemberRepository실제 할당하는 부분이 구현체를 의존하는 것이 문제

MemberServiceImpl은 memberRespository도 의존하고 MemberMemberRepository도 의존한다

추상화에도 의존하고 구체화에도 의존 (DIP위반). 변경이 생기는 경우 문제 생김

 

'개발 공부 > JAVA' 카테고리의 다른 글

생성자  (2) 2024.02.06
자바 입문 - 코드로 시작하는 자바 첫걸음 (변수)  (0) 2023.11.29
JDBC 연결 실습  (0) 2023.06.20
thread  (2) 2023.06.09
입출력 (InputStream/Reader), file 라이브러리  (2) 2023.06.08