[JAVA, SPRINGBOOT] 대량 1만건 데이터 insert 처리시 for문을 순회해서 처리하는게 맞을까? 속도 이슈 해결방법
java springboot 에서 select한 데이터가 1만건이야.. 이걸 for문 돌리면서 insert하는데, 너무 느려.. 병렬로 처리하거나.. 개선 방법이 있을까? 개선 방법 1. Batch Insert (배치 처리) 예시...
[STS] Spring JwtTokenProvider(Claims) 토큰 오염 문제 해결하기 (ThreadLocal 사용)
프로젝트 오픈 전 부하(성능)테스트를 진행하는데, 아주 큰 문제가 발생하였다. 여러 계정을 동시에 api를 호출하여 결과를 확인하는데, 데이터가 이상하다고 한다. 가령, 1번에서 100번까지 툴을 이용해서 UserList를...
[java] LinkedHashMap에 대한 데이터 set, get 예제 총정리 맵 유틸 등
✅ LinkedHashMap<String, Object> 예제 주요 포인트 안전한 꺼내기: null 체크 + 타입 체크 ✅ null 체크만 필요한 경우 ✅ 안전한 get 메서드 유틸리티 (예시) 실무에서는...
[Android] 휴대폰 하단 시스템 네비게이션 바(뒤로가기, 홈, 최근 앱 버튼이 있는 바)를 숨기는 방법
앱 하단의 시스템 네비게이션 바를 숨기고 전체 화면(몰입 모드, Immersive Mode)으로 만들려면, 액티비티의 Window 객체를 통해 시스템 UI 관련 플래그를 설정해야 한다. 앱의 Activity (예:...
[JAVA] 파일명과 확장자를 아주 쉽게 분리하는 방법: lastIndexOf쓰지말자.
org.apache.commons.io.FilenameUtils 의 getExtension() 메서드를 사용하여 확장자만 가져올 수 있다. 파일이름 가져오는 예제코드 lastIndexOf를 쓰는방법 파일명만 가져오기 getBaseName() 메서드를 이용하여 확장자를 제외한 파일 이름만 가져올 수...
[JAVA] 파일 생성 예제 코드 : FileWriter 및 BufferedWriter 샘플
다음은 파일 생성 및 txt추가하는 예제코드로, ArrayList에 텍스트를 추가한 후 파일 생성하는 메소를 호출하는 예제이다. 파일생성 메소드 예제 디렉토리 생성 및 파일 생성함수인 mkdir()은 아래...
[JAVA] 디렉토리 생성시 파일경로(directory)와 파일명 분리방법 : lastIndexOf 쓰지말자
파일경로에서 파일명과 디렉토리를 간단하게 분리해서 폴더 생성 및 파일을 생성할 수 있다. 폴더와 파일명 분리 예제 코드 getParentFile() 메소드를 통해 실제 파일 명 전까지의 절대경로를...
[Java Spring] 독립적인 트랜잭션(@Transactional) 처리방법
TransactionManager를 사용한 트랜잭션 수동 처리는 지양하고 @Transactional 어노테이션 사용을 지향한다. 가령, 스프링배치 Job의 기본 트랜잭션과 별도로 트랜잭션을 생성하여 처리하고 싶다면 @Transactional(propagation = Propagation.REQUIRES_NEW)을 사용한다. 내부함수...
[Java Spring] 오류발생시 트랜잭션(@Transactional) 롤백이 안될 때 코드 확인 방법
AOP에서 다뤄지는 큰 이슈 하나 AOP기반으로 동작하는 트랜잭션 어노테이션은 내부함수 호출에서 트랜잭션 보장이 안된다. 그럼 어떻게 해야할까? 정답은 Proxy로 자기자신 객체를 생성하여 사용한다. 다음 예제를...
[JAVA] 자바 폴더 생성 및 파일 생성시 java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 오류 해결방법
파일쓰기를 할때 디렉토리 경로가 없다면 자동으로 생성해주고 파일쓰기를 하면 되는데 개발환경은 윈도우이고 테스트서버는 리눅스 환경이라면? 파일 구분자는 OS마다 서로 다르다. 윈도우 운영체제는 파일 구분자로 \...