본문 바로가기

Spring

(4)
[질문]많은 필드를 가진 서비스 클래스 어떻게 해결해야 할까요? 현재 페이스북을 따라 만드는 미니프로젝트를 진행 중입니다. 기능이 추가되면서 어느 순간 하나의 Service가 5개의 필드를 가지게 되었고, 리팩토링을 할 시점이 왔구나!를 느꼈습니다. 하지만 아무리 생각해도 좋은 방안이 생각나지 않아서 이렇게 질문을 남기게 되었습니다. 현재 문제점과 제가 생각한 해결 방법에 대해서 정리했습니다. 제 해결 방법에 대한 의견이나 혹은 다른 방법에 대해서 조언해 주시면 감사하겠습니다. 현재 상태 게시글 이미지 위 이미지는 프로젝트의 게시글로, 게시글에서 보여줘야 할 부분은 총 5가지입니다. 내용, 작성일, 수정일, 작성자 이미지 혹은 동영상 댓글 개수 좋아요 개수 공유 횟수 (현재 미구현) Post 엔티티의 연관관계 Post는 현재 User와 UploadFile을 단방향으로.. Spring 2019. 12. 28. 18:42
Service Layer Testing in Spring Boot (feat. Mockito) 이번에 서비스 레이어 테스트 코드를 작성하면서 겪었던 고민과 해결 과정을 작성해보려고 합니다. 주의 저도 아직 배우는 과정으로 잘못된 부분이 있을 수 있습니다. 혹시라도 잘못된 부분을 발견하시면 피드백 부탁드립니다. 서비스 레이어 역할 먼저 제가 생각하는 서비스 레이어의 역할을 간단하게 정리해봤습니다. 컨트롤러에 대한 프로바이더 도메인을 연결, 협업 및 흐름 제어 실제 비즈니스 로직은 도메인에 위임 리포지터리로부터 도메인 객체를 구한다 트랜잭션 관리 주체 과연 서비스 레이어는 어디까지, 얼마나 테스트해야 할까? 고민이 되었습니다. '블로그 보니까 Mockito를 사용하라는데?' '음.. 이거 짜인 시나리오대로 테스트가 진행되니까 성공이 당연한 거 아냐?' 'Mockito 잘 모르겠고 그냥 아는 방식으로 .. Spring 2019. 12. 28. 18:24
[Spring Security] loadUserByUsername(String username)에서 username이 empty일 때 스프링 시큐리티를 이용해서 로그인을 하는데 public class MemberDetailsService implements UserDetailsService { public final MemberService memberService; @Override @Transactional(readOnly = true) public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {loadUserByUsername 메소드의 파라미터 email의 값이 넘어오질 않았다.바로 구글에 loaduserbyusername username empty를 치니까 역시나 나같은 사람들이 많았고 https://stackoverflow.com/q.. Spring 2019. 1. 18. 16:27
[Error] JPA를 이용한 테이블 생성후 외래키 있는 테이블 insert할 때 에러 (MyISAM , InnoDB) create table wishlist ( member_id bigint not null, product_id bigint not null, primary key (member_id, product_id) ) engine=MyISAM alter table wishlist add constraint FKqchevbfw5wq0f4uqacns02rp7 foreign key (product_id) references product (id) 스푸링부트에서 JPA를 이용해서 이렇게 테이블을 선언해주고 외래키를 주었을 때product에 row가 아무것도 없음에도 불구하고 wishlist에서는 insert가 추가됩니다.(원래는 product_id가 product의 id를 외래키로 받기때문에 생성되면 안됩니다.)이유는 .. Spring 2018. 12. 8. 15:52