Linux) 대용량의 더미 파일 생성하기

Intro 10GB가 넘는 대용량의 파일 업로드 처리에서 문제가 있었습니다. 해당 파일을 제공받아 테스트를 진행 해 보았는데 이후에 다양한 파일 용량별로 처리 여부와 핸들링에 걸리는 시간을 확인해보려고 하는데, 적당한 파일을 구할 방법이 생각나지 않았습니다. https://testfiledownload.com/ 인터넷에 이런식으로 더미 파일을 제공하는 사이트가 있기는 하지만, 초당 300kb/s 정도의 처참한 속도가 나오기 때문에 테스트를 위한 파일을 다운로드로 해결 할 수는 없었습니다. 다행히도 이런 경우에는 간단한 명령어로 더미 파일을 생성 할 수 있습니다. 여러가지 명령어를 모두 정리 해 두었으니 각자 편하신 명령어를 사용 해서 더미 파일을 생성하시면 됩니다. Linux dd 첫번째로 가장 흔하게 ..

IT ⁄ Computer/Linux 2022.05.25
JAVA) Date 를 LocalDateTime 으로, 혹은 그 반대로 변환하기

Intro 제법 오래된 프로젝트를 유지보수 하고 개선하다보니, Date 타입을 다루어야 할 일이 제법 많이 있습니다. Date API는 JDK 1.0 부터 제공된 유구한 역사를 가진 클래스인데요, 워낙 문제가 많다보니 JDK 1.1에서 바로 Calendar 클래스가 추가 되며 Date의 많은 메서드들을 @Deprecated 시켜버렸지만 여전히 오랜기간 꾸준히 애용되어 왔습니다. 그러다 마침내 JDK 1.8 버전에서 JodaTime 의 날짜와 시간 API가 추가되면서 LocalDateTime 이나 LocalDate를 사용 할 수 있게 되었습니다. 기존에 있는 Date를 걷어낼 수 있으면 참 좋겠지만, 그럴 여유가 없을 경우에는 일단 새로 작성하는 코드들에서 최대한 Date 사용을 피하지만, 어쩔 수 없이 ..

Programming/Java 2022.05.23
IntelliJ) 자동 임포트 정렬시 이클립스와 같은 규칙으로 설정하기

Intro Eclipse IDEA를 사용하며 습관처럼 Ctrl + Option(Alt) + O 키를 눌러 Optimize import 기능을 사용 하다 보면, 혼자서 진행하는 프로젝트가 아닌 이상은 각자의 IDE 환경설정 등에 따라 import 문을 모두 재 정돈 해 줍니다. 매번 커밋 할 때 마다 import 문 변경 사항이 너무 많다보니 프로젝트의 코드변경 히스토리때문에 버전관리 용량도 커지고, 변경사항을 trace 할 때에도 쓸데없는 변경 사항들이 눈에 보이다 보니 통일을 위해 이클립스와 같은 방식으로 변경해야겠다는 생각이 들었습니다. import 설정 변경 일단 Settings > Editor > Code Style > Java > imports 로 찾아 들어 가 줍니다. Scheme이 보이는데,..

Development/Develop Tools 2022.05.17
Spring) 스프링의 "redirect:" 리다이렉트 처리

Intro Spring Framework 를 사용한다면 컨트롤러에서 리턴타입은 String으로 하고 view 이름 대신 "redirect:" 로 시작하는 문자열을 반환 하면 해당 주소로 리다이렉트를 시켜 줍니다. "redirect:" 를 했는데 리다이렉트가 되지 않고 있다는 질문을 받아서 코드를 확인해보는데, 일단 redirect에 오타는 없었습니다. 그러면 혹시 @ResponseBody 어노테이션이 적용된건지 확인을 하는데 그렇지 않기에 코드를 맨 위로 올려보니 아니나 다를까 @RestController 어노테이션이 보였습니다. 이럴땐 간단하게 @Controller로 바꾸고 필요한 부분들에만 @ResponseBody 어노테이션을 작성 하거나 아니면 리턴타입을 ResponseEntity로 하는 방법이 있..

Programming/JPA ⁄ Spring 2022.05.13
Java) HashMap에서 특정 value를 제거하기

Intro Map에서 특정 key를 가진 EntrySet을 제거하는건 어렵지 않습니다. map.remove(삭제할key객체) key로 제거 하는 것 뿐만 아니라, key와 value를 모두 인자로 넘겨서 해당하는 key-value 쌍이 있을때에만 제거하는 방법도 있습니다. 그렇다면 특정 값만 제거 하고 싶다면 어떻게 해야 할까요? values().remove(Object value) 단순 궁금증에 values()로 값들이 들어있는 컬렉션 객체를 불러 온 뒤에, 거기에서 remove 메서드를 호출 해 보았는데 정말 감쪽같이 key, value 쌍이 모두 사라졌습니다. values는 제거가 될 거라고 생각했지만, keySet은 변화가 있기 때문에 오류가 발생하거나 혹은 문제가 생길 거라고 예상 했는데 기대한..

Programming/Java 2022.05.13