Health-Genie
-
[배운점] ParseInt() vs valueOf()Health-Genie 2023. 11. 29. 14:15
두개의 메소드 모두 String 을 Integer로 변경하기 위한 메소드이지만, 약간의 차이가 있다. parseInt 의 리턴 타입은 기본 자료형( int 타입 반환 ). [ 원시 데이터 int가 필요하면 이걸 쓴다 ] public static int parseInt(String s, int radix) throws NumberFormatException { return parseInt(s,radix); } valueOf 의 리턴 타입은 객체( Integer 래퍼 객체 반환 ). [ 객체 Integer가 필요하면 이걸 쓴다 ] public static Integer valueOf(String s, int radix) throws NumberFormatException { return Integer.val..
-
[주의점] 변경감지Health-Genie 2023. 11. 28. 11:52
해당 로직을 진행할때 마다 나는 level 필드의 값을 변경 감지를 통해 DB에 저장 시키려고 했다. @Transactional(readOnly = true) public List getAllGenieRoutine(Level level, Long userId) { User user = userServiceImpl.findById(userId); user.updateLevel(level); // 이 부분 [ 매번 level update ] List genie = routineRepository.findByLevel(level); return genie.stream() .map(RoutineResponseDto::ofGenie) .collect(toList()); } 문제점 updateLevel()을 통해서..
-
[배운점] @ElementCollectionHealth-Genie 2023. 11. 24. 21:35
해당 애노테이션은 값 타입의 컬렉션을 사용할 때 사용하는 애노테이션입니다. RDB는 컬렉션 같은 형태의 데이터를 컬럼에 저장할 수 없기에, 별도의 테이블을 생성해 관리합니다 엔티티에서 기본타입으로 켈렉션을 만드려고 할때 에러가 발생했습니다. List part = new ArrayList(); 이런식으로 사용하니 "'기본' 타입 속성의 컨테이너가 될 수 없다" 라는 에러가 납니다 위에 설명 했듯이 컬렉션 같은 형태의 데이터를 컬럼에 저장할 수 없기에 나타나는 에러인데, 아래와 같이 작성하면 해결이 됩니다.. @ElementCollection private List part = new ArrayList(); 이렇게 해서 @Entity가 아닌 Basic type 이나 Embeddable class로 정의된 컬..
-
[error] Data truncation : Data too long for columnHealth-Genie 2023. 11. 22. 15:11
aws s3를 통해서 다중 파일 처리를 하는 중에 만난 에러입니다. 해당 에러 메세지는 데이터 타입의 크기에 비해 입력된 파일의 크기가 커서 생기는 문제였습니다 해결 방법은 1. 입력하는 데이터의 크기를 줄인다 2. 저장하는 데이터의 타입을 키운다 ( varchar(255) -> varchar(500) or Longtext ) 저 같은 경우는 데이터의 크기를 줄였습니다. s3를 사용하는데 크기 조절을 안해서 기본값 1MB이였어서 발생했던 문제였습니다. 지금 현재는 아래와 같이 설정을 했습니다! servlet: multipart: max-file-size: 10MB max-request-size: 10MB
-
[이미 사용중인 포트 넘버] Port number was already in use 해결하기Health-Genie 2023. 11. 21. 11:40
localhost 내에서 실행을 중인데도, 위와 같은 에러가 나왔다. 필드 하는 부분이 2개가 띄워져 있을 가능성이 있지만, 위를 배제하고 해결하는 방법을 공유하려 한다 iterm에 lsof -n -i -P | grep 8080 lsof: 현재 실행중인 프로세스를 확인한다. -n: 호스트네임을 제거한다. -i: IPv[46] 파일들을 선택한다. -P: 포트의 이름을 제거한다. 을 명령해서 해당 port number 8080에 띄워져 있는 프로그램을 확인한다 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 12345 user 128u IPv6 0x5210d6 0t0 TCP 127.0.0.1:8080 (LISTEN) 이런식으로 나오는데 PID라고 적혀 있는..