2025/12 4

포스트 CRUD 기능 - 컨트롤러단 + API 테스트

프론트엔드 페이지 만드는 부분은 별도의 포스팅으로 분리하도록 하겠다.@Controller@RequestMapping("/anthive")@RequiredArgsConstructorpublic class PostController { private final PostService postService; @GetMapping("/{userId}/catalog-list") public String list_catalog(Model model, @PageableDefault(size = 20) Pageable pageable, @PathVariable("userId") String userId) { Page posts = postService.getUsersPosts(userId, ..

포스트 CRUD 기능 - 테스트 코드

테스트 코드 작성이 클린코드에서 중요하다고 말씀하셨으니 만들어야지.도메인 영역일단 게시글 엔티티의 도메인 규칙 테스트를 작성해 보자.class PostTest { Member member; Post post; @BeforeEach void setUp() { // given PublishBlogpostFormRequest request = getPublishBlogpostFormRequest(); // when member = Mockito.mock(Member.class); post = Post.of(request, member); } @Test @DisplayName("Post.of(): 요청값과 Mem..

포스트 CRUD 기능 - 도메인과 서비스단

디렉토리를 주제별로 나누어 주자. 토비님의 강의에서는 애그리거트 단위로 나눠주는 부분에 해당한다.일단 기본적으로 글을 올리고, 수정하고, 삭제할 수 있어야 한다(Create, Read, Update, Delete).포스트 CRUD 기능은 post 디렉토리를 만들어서 넣어주도록 하겠다.@Entity@Getter@NoArgsConstructor(access= AccessLevel.PROTECTED)@AllArgsConstructor(access= AccessLevel.PROTECTED)public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Setter private St..

회원가입 기능 - 테스트 코드 작성

토비님의 강의를 보면 테스트 코드가 클린코드 책에서 제일 중요한 부분이라고 말씀하신다.헥사고날도 클린코드의 기법중 하나이므로 테스트 코드를 작성해보자. 도메인 영역 테스트class MemberTest { Member member; PasswordEncoder passwordEncoder; @BeforeEach void setUp() { var registerRequest = createRegisterRequest(); passwordEncoder = createPasswordEncoder(); member = Member.register(registerRequest, passwordEncoder); } @Test void regi..