API(Application Programming Interface)란? API 는 다른 소프트웨어 시스템과 통신하기 위해 따라야하는 규칙을 정의한다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다. 여기서 Interface는 서로 다른 두 개의 시스템, 장치 사이에서 정보를 주고 받는 경우의 접점이나 경계면을 의미한다. 즉, API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있다. 클라이언트는 웹에서 정보에 액세스하려는 사용자이다. API를 사용하는 사람이거나 소프트웨어 시스템일 수 있다. 리소스는 다양한 애플리케이션이 클라이언트에게 제공하는 정보이다. 서로 다른 애플리케이션이 약속한 방식의 API 요청을 수행하면 정해진 결과..
문제상황 개인 과제의 요구 사항 중에서 validation의 유효성을 검사하고 이에 따른 예외를 처리하는 것이 있었다. Controller에서 try-catch 로 이에 해당하는 MethodArgumentNotValidException을 처리하려고 했는데 아직 이유는 잘 모르지만 오류가 발생했다. 다른 방법을 찾아보니 @ExceptionHandler로 예외를 처리할 수 있었다. @ExceptionHandler @Controller, @RestController가 적용된 Bean내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해주는 기능 Controller, Restcontroller에만 적용이 가능하다 (@Service 같은 빈에서는 안된다.) @ExceptionHandler에 등록한 Controll..
ERD API 명세서 User API Blog API Comment API 과제 전체 링크 https://github.com/hakjunjoo/blog-spring-prac GitHub - hakjunjoo/blog-spring-prac Contribute to hakjunjoo/blog-spring-prac development by creating an account on GitHub. github.com KPT Keep 모르는 부분이 있으면 적극적으로 구글링, 강의 수강 등을 함 할 수 있을 것이라는 마음가짐을 가진 것 같음 기록 잘 남기기 Problem 아직 심화적인 내용은 이해를 하지 못함 기본적인 내용도 헷갈리는 경우가 종종 있음 Try 모르는 부분은 잘 정리해서 튜터님께 여쭤보기 기본적인 내..
오늘 만났던 에러는 403 error이다. 작동중인 서버에 클라이언트의 요청이 도달했으나, 서버가 클라이언트의 접근을 거부할 때 반환하는 HTTP이자 오류 코드이다. 이 에러는 서버 자체 또는 서버에 있는 파일에 접근할 권한이 없을 경우에 발생한다. 서버에는 외부 접근을 제어하기 위한 수많은 권한 설정이 있고, 서버에서 설정해 둔 권한과 맞지 않는 접속 요청이 들어오면 접근을 거부하고 접근거부 코드를 반환하는데, 이 때 뜨는 것이 바로 403 Forbidden 에러다. 내가 떴던 이유는 토큰 검사했을 때 유효하지 않았던 토큰이라 에러가 떴던 것이다. 앞으로 403 error가 뜨면 인증부터 확인해보자 !
오늘의 문제점은 댓글을 달려있을 때 그와 연관된 댓글들은 어떻게 처리할 것인지에 대해서 해결하는데 조금 오래 걸렸다. 해결책은 cascade 옵션을 설정해서 연관된 데이터를 처리할지 정해야한다. cascade = CascadeType.REMOVE 위의 코드를 Blog entity에 설정해주면 해당 게시글을 지울 때 연관된 댓글들을 DB에서 모두 지우게 만드는 것이다. 적용한 것은 다음과 같다. @OneToMany(mappedBy = "blog", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) private List comments; 위와 같이 적용하면 해당 게시글이 삭제되면 이와 연관된 댓글들이 모두 지워진다. 혼자 구현을 하다보면 만났던 오류들도 또 만..