본문 바로가기
반응형

백엔드159

StringUtils.hasText 메서드 : C#의 String.IsNullorEmpty 메서드 대응 C#에서 문자열이 null 이거나 공백인지 검사하는 함수는 String.IsNullOrEmpty(string) 자바에서는 뭐 없나? 해서 점(.) 찍어보고 해도 안나와서 그냥 직접 적었는데 있었다. StringUtils.hasText(string) 패키지는 org.springframework.utils 근데 좀 길긴 하다. String에 바로 붙어있는게 아니라 2021. 3. 28.
화면을 실행하는 도중 화면을 종료해야 하는 경우(Shown 이벤트) 화면을 여는 중에 데이터가 안맞거나 없는 경우 이러이러 하다고 메시지띄우고 종료하도록 하는 로직을 만들어야 했다. 화면의 Load 이벤트에서 컨트롤러에서 데이터 조회 함수를 호출하고 데이터가 안맞으면 메시지 띄우고 꺼지도록 코드를 작성했다. 종료가 되긴 했는데 바로 종료되지 않고 로직을 다 돌고 나서 종료가 되었다. 뭔가 플로우가 어색해서 아 뭔가 다른 방법이 없나 물어봤는데 이런 상황에서는 화면의 Shown 이벤트를 사용하면 된다고 한다. Shown 이벤트는 이름 그대로 화면이 로드가 다 되고, 화면에 표시되는 단계 2021. 3. 28.
실수 값 비교할 때 주의할 점 이번 상황은 이렇다. 이번 데이터는 한 묶음으로 버전 관리가 이뤄지는 데이터다. 네가지 데이터가 서로 관계를 가지고 한 묶음으로 버전 관리가 이뤄진다. 이전 버전과 현재 버전 간에 변화 수치를 확인하는 화면이 존재한다. 기본 절차 데이터를 비교 기준에 따라 그룹핑 한다. qodbtn.tistory.com/341 상호 데이터 간에 비교를 진행한다. 추가된 경우, 변경된 경우, 취소된 경우가 존재한다. 추가된 경우 - 현재 데이터에는 존재하는데 이전 데이터에 존재하지 않는 그룹의 경우 취소된 경우 - 이전 데이터에는 존재하는데 현재 데이터에 존재하지 않는 그룹의 경우 변경된 경우 - 현재 데이터와 이전 데이터에 모두 존재하지만 수치가 변경된 경우 이때 문제는 변경된 경우에 비교 수치가 실수값이라는 점이다. .. 2021. 3. 21.
JDBC-90406:I/O error while writing to the server. - Connection reset by peer: socket write error 티베로 에러 파일 업로드 시 발생 다른 화면은 잘 되는것으로 보아 코드 작성에 오류가 있는것으로 보임 테이블스페이스 용량이 부족해서 그랬다. 관리자 계정으로 로그인 원하는 tablespace를 찾아서 사이즈 5기가로 변경 SELECT file_name, tablespace_name, bytes FROM dba_data_files; ALTER DATABASE DATAFILE '' RESIZE 50000M; 오토 익스텐드 돼있는데 왜 그러는지 모르곘네 2021. 3. 18.
Collectors.groupingBy 널(null) 키 사용하기 Map은 키와 밸류가 한 쌍이 되어 저장되는 자료구조 DB 설계가 세가지 데이터를 한방에 관리해서 각자 다른 PK를 가지는 테이블을 그룹핑해서 써야되는 일이 생겼다. 세종류의 PK가 있는데 하나의 데이터는 셋중에 하나의 값만 가지고 나머지는 null 값이 들어있다. 그룹핑을 쓰려니 아! SQL에서 그룹바이하면 null은 무시되는데? 라는 생각이 들어 찾아보니 역시나 는 아니고 SQL때문이 아니라 Map의 Key에는 널이 들어가면 안되기 때문에 에러가 난다고 한다. 좋은 방법은 아니지만 개발은 해야되니까 방법을 찾아야 한다. 해결 방법은 Optional을 쓰는 것이다. Optional을 키로 가지는 Map을 외부에서 접근하도록 유지하고 이러면 큰일난다. 내 경우에는 중간단계에서 Optional로 작업하고 .. 2021. 3. 8.
Optional Optional이 없었을 때 코딩 방식 null 체크 문장을 작성해야 했다. 사람인지라 까먹을 수 있다. null 을 리턴하는거 자체가 문제다. 리소스가 낭비된다. Optional을 써서 더 명시적으로 표현할 수 있게 됐다. 널일 수 있는 값의 경우 Optional 로 감싸서 리턴할 수 있다. 반환값으로만 쓰도록 권장한다. Optional 변수에도 null이 들어올 수 있으므로 외부에서 들어오는 경우 충분히 null일 수 있다. 맵의 키 타입 인스턴스 필드 프리미티브 타입은 그냥 Optional을 쓰면 박싱/언박싱이 자주 일어나서 성능이 떨어진다. 제공되는 OptionalInt, OptioanlLong 같은걸 쓰자. 나는 예외나 isPresent 보다는 간단하게 orElse를 주로 많이 쓴다. ㅋㅋㅋ 그.. 2021. 3. 7.
반응형