1. 계획한 일
- 과제제출하기
2. 내일 할 일
- 09:00 발제 참석
- 2주차 강의 시작하기
- 알고리즘 공부 어떻게 할지 정리하기(목요일부터 팀별로 진행)
- 12:00 베이직 수업
3. 오늘의 공부
과제에는 강의에 나온 내용 외에 게시글 목록을 가져오는 게 요구되고 있어서 다음과 같은 코드를 삽입했다.
@GetMapping("/list")
public List<PostResponseDto> getAllPosts() {
List<PostResponseDto> responseList = postList.values().stream()
.map(PostResponseDto::new)
.collect(Collectors.toList());
return responseList;
비밀번호 일치 여부를 따져서 수정, 삭제가 이뤄지도록 하기 위해서 작업한 부분은 이렇다.
@PostMapping("/post")
public PostResponseDto createPost(@RequestBody PostRequestDto requestDto) {
// 작성자 이름과 비밀번호를 가져와서 확인
String userName = requestDto.getUserName();
String userPassword = requestDto.getUserPassword();
if (isUserValid(userName, userPassword)) {
Post post = new Post(requestDto);
post.setUserName(userName); // 작성자 이름 설정
post.setUserPassword(userPassword); // 비밀번호 설정
// DB
postList.put(post.getUserName(), post);
PostResponseDto postResponseDto = new PostResponseDto(post);
return postResponseDto;
} else {
throw new IllegalArgumentException("이름 또는 비밀번호가 올바르지 않습니다.");
}
}
private boolean isUserValid(String userName, String userPassword) {
Post post = postList.values().stream()
.filter(p -> p.getUserName().equals(userName))
.findFirst()
.orElse(null);
if (post != null) {
// 게시물의 비밀번호가 일치하면 인증 성공
if (post.getUserPassword().equals(userPassword)) {
return true;
}
}
// 인증 실패
return false;
}
@GetMapping("/post")
public List<PostResponseDto> getRead() {
// Map to List
List<PostResponseDto> responseList = postList.values().stream()
.map(PostResponseDto::new).toList();
return responseList;
}
그런데 아직 제대로 적은 건지 모르겠어서.. 이거 하느라 시간이 이렇게 오래 걸린 것에 대한 슬픔이 가득한 밤이다...
강의를 여러 번 들으면 막연하게 따라하다가도 감이 온다던데 조금 더 노력해봐야겠다.
개인 과제에 대한 피드백이 오면 코드를 다시 고쳐보기로...
'Java & Intellij' 카테고리의 다른 글
231109 TIL (0) | 2023.11.09 |
---|---|
231107 TIL (0) | 2023.11.09 |
231026 TIL (1) | 2023.10.26 |
231025 TIL (0) | 2023.10.25 |
231024 TIL (1) | 2023.10.24 |