[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마다 서로 다르다. 윈도우 운영체제는 파일 구분자로 \...
[Java] 스네이크(언더바 표기법 대문자) 타입의 문자열을 카멜타입(Camel)으로 변환방법
스네이크(언더바 표기법 대문자) 타입의 문자열을 카멜타입의 문자열로 변경하는 유틸리티 성격을 띠는 코드를 만들어보자. [Java] 카멜타입(Camel)을 스네이크(언더바 표기법 대문자) 타입으로 변환방법 public static final String convertUnderScopeToCamel(final...