본문 바로가기

Java & Intellij

231106 TIL: 과제를 했다

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