분류 전체보기

@EqualsAndHashCode 애너테이션 Equals는 문자열을 비교할 때 많이 사용한다 그렇다면 hashcode는 무엇일까? hashcode는 문자열과 숫자 특수기호로 이루어진 무작위한 값인줄 알았다. 하지만 여기서 hashcode는 객체 내부의 값만을 나타낸다. @EqualsAndHashCode애너테이션은 객체의 값이 같은지 비교하는 equals() 객체내부의 값이 같은지 숫자로 확인하는 hashcode() 위 두가지를 추가해준다. 8080포트가 이용중인 Error mac 터미널에서 lsof -i tcp:8080을 실행하면 8080포트로 실행중인 프로세스가 아래와 같이 나온다. 해당하는 PID 번호를 sudo kill -9 {PID번호} 해당 명령어로 프로세스 종료시켜준다.
배달 서버 개발 도중 문제 Entity설계에 문제 발생 Shop이라는 가게를 관리하는 BackOffice에서 가게 주인을 찾을 수 없는 문제 발생, Menu에서도 어떤가게의 메뉴인지 찾지 못하는 문제 발생 시도한 것 User가 Shop을 가짐으로 가게 주인을 찾으려는 시도 menu도 shop과 menu가 서로를 가짐으로 어떤가게 메뉴인지 찾는 시도 해결 Shop에 주인user의 정보를 넣어주는 것으로 해당 유저가 주인인지 조회해서 확인하는 방법을 사용 메뉴에만 shop을 넣어줘서 찾도록 만들었다. 양방향 필요x 알게된 것 JPA의 쿼리 사용법을 조금이나마 더 알게 되었고, 테이블들 관계에대해 더 효율적으로 생각해보는 시간이었다.
문제 오늘은 카테고리별 음식점들을 조회하는 API를 짜던중 계속 403에러가 났다. 이상하다고 생각해서 에러를 잡으려고 코드를 뒤지는데 정상 작동해야하는 코드가 이상하게 동작하지않았다. 시도해본 것 구글 검색도많이 해봤지만 정상적인 코드인것처럼 보였고, 디버그 포인트를 찍고 디버그하던 중 이상하게 어느순간 Null값이 들어가는 것을 발견했다. 해결 해결은 알고보니 Dto에 @Getter어노테이션을 빼먹어서 생긴 이슈였다. 코드를 꼼꼼히 체크하자... 그리고 하나는 Postman에서 headers아래에 Authorization을 넣고 잘못 건드렸는지 저렇게 빨간불이 들어온걸 모르고 있었다.. 빨간 느낌표가 떠 있으니 403에러를 출력했었다. 이건 다음에 또 실수하는 팀원이 있을 수 있으니 알려주자.. 알게..
오늘은 새로운 팀원들과 배달 프로그램 프로젝트 설계를 했다. ERD를 만들고 API명세도 쓰고, 와이어 프레임도 만들었다. 그 뒤 언제나처럼 역할을 정하고 작업을 하는데, 카테고리를 어떻게 만들어야할지 고민이 되기 시작했다. 1번 방법 프론트 단에서 HomeController를 이용해 처리하고 여러 프론트 화면을 불러온다. 2번 방법 조회 API에서 JPA를 이용해 받아온 id값으로 카테고리를 찾아서 해당카테고리와 같은 카테고리를 가진 Shop데이터만 뽑아와서 조회한다. 난이도는 1번방법이 간단하지만 당연하게도 2번 방법인 백단에서 해결하는 방법을 이용했다. List postList = shopRepository.findAllByCategory_IdOrderByModifiedAtDesc(categoryI..
심화주차 과제의 마무리였다. 어제까지 만든 기능들에 Exception으로 예외처리를 해줬다. GlobalExceptionHandler를 이용해 한곳에서 모든 에러들을 핸들링 할 수 있었다. 동일한 에러들을 마크할 수 있어 생산성이 올라가고, 한곳에서 에러들을 모두 관리할 수 있어 관리하기도 수훨했다. 사용방법은 @RestControllerAdvice를 이용하는 방법이다. @RestControllerAdvice : @ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드들에 AOP를 적용해 Controller 단에 적용하기 위해 고안된 어노테이션이며, ResponseBody도 같이 적용되어있어 객체를 리턴해줄 수 도 있다. ExceptionHandler들을 컨..
정규표현식 예외처리 회원가입 컨트롤러에서 BindingResult로 FieldError를 받아온다. BindingResult는 검증 오류가 발생할 경우 오류 내용을 보관하는 스프링 프레임워크에서 제공하는 객체이다. 스프링은 이런 좋은 기능도 지원해준다. 아래는 내가 짠 회원가입 컨트롤러 코드다. @PostMapping("/auth/signup") public ApiResponseDto signupUser(@RequestBody @Valid UserRequestDto userRequestDto, BindingResult bindingResult){ List fieldErrors = bindingResult.getFieldErrors(); ApiResponseDto apiResponseDto = new Ap..
오늘은 전에 했던 포스팅 프로젝트를 새로운 기능을 넣은 과제를 받아서 처음부터 다시 만들어보기로 했다. 그랬더니 걸린게 있는데 예전 과제에선 권한부여기능을 필수기능으로 넣지 않아 모두 빼고 만들었지만, 이번엔 구현기능으로 들어가있어 새로 만들었다. role을 이용했는데, UserRoleEnum이라는 클래스를 하나 만들어 유저와 어드민을 컨트롤 했다. public enum UserRoleEnum { USER(Authority.USER), // 사용자 권한 ADMIN(Authority.ADMIN); // 관리자 권한 private final String authority; UserRoleEnum(String authority) { this.authority = authority; } public String..
프로젝트는 저번주에 끝났지만 프로젝트가 끝나고 정리하지 못한 I Learn을 작성한다. 일단 이미지를 프론트에서 서버로 가져오기 위해선, html에 다음과 같이 선언해준다. type을 file타입으로 하여 file형태로 내 컴퓨터에서 파일을 받아온다. Controller에서도 역시 file형태로 받아오고( @RequestParam("file") MultipartFile file, 다음과같이 file값을 클라이언트에서 받아온다. 그리고 Service public void createPost(String title, String content, User user, MultipartFile files) throws IOException { if (files.isEmpty()) { return; } // 원래 ..
나모_
'분류 전체보기' 카테고리의 글 목록 (3 Page)