전체 글223 Teams Hook API를 통한 팀즈 알림 처리 - Spring 수정사항 2023-08-14 : 주의사항에 대한 내용 추가 사용 계기 다양한 사용 사례가 있지만, 통틀어서하면 코드 상 작업 중 확인하고 싶은 게 있을 시 보다 편하게 확인하기 위해 팀즈로 알림이 오게 하였다. (에러 발생, VOC, 배포 완료 등등) 주의사항 팀즈 훅은 api 요청 속도 제한이랑 요청 크기 제한이 있다..! 해당 사항을 넘지 않도록 잘 분리해서 요청 보내도록 처리하자 (라고 생각했지만, 우리의 경우 팀즈 알림을 보조적으로 쓰는데 해당 분리 요청을 하기 위해 실제 서비스에 영향을 끼칠 수 있는 방법밖에 떠오르지 않아 일단 해당 사항을 인지하고 쓰자 정도로 논의 되었다!) 초당 제한 사용법 팀즈의 팀을 생성 후 해당 팀 안에 채널을 생성한다. 채널을 우측 클릭해보면, 커넥터라는게 존재한다... 2023. 8. 2. io.jsonwebtoken.MalformedJwtException: JWT strings must contain exactly 2 period characters. Found: 0 오류 아침마다 에러 트래킹을 하고 있다. 오늘은 아래와 같은 에러를 발견했다. io.jsonwebtoken.MalformedJwtException: JWT strings must contain exactly 2 period characters. Found: 0 원인 해당 에러는 JWT 토큰을 파싱하는 과정에서 발생하는 에러였따..! 해당 부분의 Jwts.parser()에 들아가보면 default jwt parser를 부르고, jwt 의 형식에 맞지 않게 들어와서 발생하는 문제였다.. 현재 에러는 .. 이 양식에서 . 게 없어서 발생하는 문제다! (jwt 형식에 맞는 토큰을 담지 않았다..!) 위의 로직에서, jwt의 문자열을 비교하면서 구분점을 찾는데 발견되지 않은 것이다., 해결 현재 우리는 core쪽.. 2023. 7. 26. [AWS] S3 객체 전체 조회(나열), S3 고아 파일 삭제 문제 S3 내에 필요 없는 파일들이 많은 것 같아서 원인 파악 및 해결, 파일 삭제를 진행하게 되었다. 원인 파악 및 로직 수정은 완료했고, 더보기 원인 및 해결방법은 실제 삭제 로직이 없는 경우는 삭제 로직을 추가했고, 스케줄러를 통해 해당 파일들의 생명주기가 다했을 때, 체크하여 삭제하게 했다. DB랑 S3랑 같은 트랜잭션으로 묶었는데, S3를 뒤로 나둬서 S3작업 중 터질 시 DB롤백하는 구조로 일부 안되어있던걸 변경했다. 실제 필요없는 파일들은 삭제하는 작업을 진행하는데, 해당 prefix(가상 폴더) 내 파일들은 전체 조회하는데 정상으로 조회되지 않았다.. 15분이 지나도 조회가 되지 않길래 먼저 s3 브라우저를 통해 파일이 얼마나 있는지 확인했고, 해당 prefix에만 33만개 파일이 존재하는.. 2023. 7. 21. [Java] Id 생성전략(UUID 선택 및 테스트) & spring JPA Bulk insert 대량의 데이터를 복사해줘야하는 일이 생겼는데, 현재 상황으로는 성능이 좋지 않아 bulk insert를 통해 성능 개선하고자 한다. 현재 서비스의 구조 및 현황 더보기 Spring Boot 2.6.6 hikari CP를 통해 db 연결 관리 (파라미터 스토어를 통해 db 정보 주입) MariaDB 10.6.8 ID 채번 전략 : identity 멀티 모듈 Entity 모듈을 nexus에 올리고, api 모듈에서 gradle로 라이브러리 추가하는 형태로 사용 멀티 테넌시 구조 공용 스키마와 각 회사들의 스키마로 구분되어 사용 bulk Insert ID 전략 선택 더보기 Id 생성 전략 IDENTITY(Auto increment): 데이터베이스에서 자동으로 ID 값을 생성하는 전략 SEQUENCE: 데이터베.. 2023. 5. 5. DB Lock (s lock, x lock, index lock 등등) Lock 이란? 더보기 Lock은 데이터의 일관성을 유지하기 위해 사용하는 기능이다. 여러 클라이언트 간에 데이터에 접근하여 변경하거나 조회하는 것을 방지할 수 있다. 여기선 락의 종류와 해당 락들에 대해서 설명만 할 예정이다. Shared Lock & Exclusive Lock 더보기 Shared Lock(S Lock, Read Lock) 읽기 잠금, 공유 잠금(락)으로 불린다. 해당 락을 설정하면 여러 클라이언트가 동시에 읽기 잡을 가능하게 허용하나, 쓰기 작업은 불가능하다. Exclusive Lock(x Lock, Write Lock) 쓰기 잠금, 베타 잠금(락)으로 불린다. 해당 락을 설정하면 하나의 클라이언트가 쓰기 가능하나, 다른 클라이언트는 읽기,쓰기 둘 다 불가능하다. Table Lock .. 2023. 3. 26. 개발 용어 정리 일급시민(first-class-citizen) : 전달될 수 있는 값.(String, new Integer, new HashMap...) 변수에 담을 수 있음 함수의 인자로 전달 가능 함수의 반환값으로 전달 가능 이급시민은 전달할 수 없는 구조체를 뜻함 2022. 12. 11. 이전 1 2 3 4 5 6 7 ··· 38 다음