Java static final인데 왜 동시성 문제가 생길까?

·
Server/Java
서비스 접속을 위한 Google OTP 시크릿을 저장하는 과정에 오류가 발생했다.로그에 찍힌 내용을 살펴보니 DB 오류였다. 컬럼에 넣으려는 값이 너무 길다는 것이다.ORA-12899: value too large for column ...(actual: 176, maximum: 100)여기까지만 보면 컬럼 크기를 늘리면 될 것처럼 보인다. 그런데 생각해보니 해당 컬럼에 들어갈 값은 원래 92자였다. 100이면 충분한데, 왜 176이 들어온 걸까?관련 코드를 확인해보니, 암복호화에 사용하는 Cipher 객체가 static final로 선언되어 있었다.이번 글에서는 이 문제를 따라가면서, static으로 객체를 공유할 때 어떤 부분을 확인해야 하는지 정리해보려고 한다.92자여야 하는데, 왜 176이 들어왔..
