728x90
1. 내일배움캠프 Sping
몇일 동안 Spring Security와 Validation에 관하여 공부하였습니다. 오늘 팀 프로젝트를 시작하였습니다.
2. 김영한의 스프링 기본편
세션 7까지 완료하여 싱글톤 컨테이너와 컴포넌스 스캔에 관하여 공부하였습니다.
https://coding-su.tistory.com/163
[Spring] 싱글톤 컨테이너 - 강의 정리
강의스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 강의 | 김영한 - 인프런김영한 | 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질
coding-su.tistory.com
3. 스프링 숙련 프로젝트
이번주에 팀 프로젝트가 시작되었습니다. API명세서를 작성하고 ERD diagram도 작성 후 프로젝트를 시작하였습니다.
저는 오늘 게시글에 관한 CRUD의 기초 부분은 완성 한 상태이고 유저 부분이 완성 된다면 추가적으로 수정할 예정입니다.
https://github.com/KJG04/sparta-news-feed
GitHub - KJG04/sparta-news-feed
Contribute to KJG04/sparta-news-feed development by creating an account on GitHub.
github.com
API명세서
ERD diagram
Boards contorller
@RestController
@RequestMapping("/boards")
@RequiredArgsConstructor
public class BoardsController {
private final BoardsService boardsService;
@PostMapping("")
public BoardsResponseDto createBoard(@RequestBody BoardsRequestDto boardsRequestDto) {
return boardsService.createBoard(boardsRequestDto);
}
@GetMapping("/{boardId}")
public BoardsResponseDto getOneBoard(@PathVariable("boardId") Long boardId) {
return boardsService.getOneBoard(boardId);
}
@GetMapping("")
public List<BoardsResponseDto> getAllBoards() {
return boardsService.getAllBoards();
}
@PatchMapping("/{boardId}")
public BoardsResponseDto patchBoard(@PathVariable("boardId") Long boardId, @RequestBody BoardsRequestDto boardsRequestDto) {
return boardsService.patchBoard(boardId, boardsRequestDto);
}
@DeleteMapping("/{boardId}")
public Long deleteBoard(@PathVariable("boardId") Long boardId) {
return boardsService.deleteBoard(boardId);
}
}
BoardsService
@Service
@RequiredArgsConstructor
public class BoardsService {
private final BoardsRepository boardsRepository;
public BoardsResponseDto createBoard(BoardsRequestDto boardsRequestDto) {
Boards boards = new Boards(boardsRequestDto);
return new BoardsResponseDto(boardsRepository.save(boards));
}
public BoardsResponseDto getOneBoard(Long boardId) {
return new BoardsResponseDto(getOneBoardWithId(boardId));
}
public List<BoardsResponseDto> getAllBoards() {
return boardsRepository.findAll().stream().map(BoardsResponseDto::new).toList();
}
@Transactional
public BoardsResponseDto patchBoard(Long boardId, BoardsRequestDto boardsRequestDto) {
Boards board = getOneBoardWithId(boardId);
return new BoardsResponseDto(board.update(boardsRequestDto));
}
@Transactional
public Long deleteBoard(Long boardId) {
boardsRepository.delete(getOneBoardWithId(boardId));
return boardId;
}
private Boards getOneBoardWithId(Long boardId) {
return boardsRepository.findById(boardId).orElseThrow(() -> new IllegalArgumentException("게시글 ID를 찾을 수 없습니다."));
}
}
BoardsRepository
@Repository
public interface BoardsRepository extends JpaRepository<Boards, Long> {
}
728x90
'TIL' 카테고리의 다른 글
20240904_TIL (0) | 2024.09.05 |
---|---|
20240903_TIL (0) | 2024.09.03 |
20240826_TIL (0) | 2024.08.27 |
20240816_TIL (0) | 2024.08.19 |
20240813_TIL (0) | 2024.08.14 |