API 동시성 문제 개선하기 (MAX + 1 Key 채번)😡
·
Develop/Trouble Shooting
결제 API  동시성 이슈.. 전자락카 매출정보를 연동하는 API 동시성 문제를 개선해보자!작업 할 당시에 개발 환경은 jdk 17 , spring boot , mybatis , oracle 이다. 키오스크에서 결제를 하면 VAN 결제정보 데이터를  API를 이용하여 저장하는 단순한 구조이다.   api 응답시간 0.3초 키오스크를 이용하는 손님도 적고 문제가 생길거라고는...미처 생각하지 못했다 😒 이러고 시간이 한참 지나고나서.....이용자수가 엄청 늘었다... 혹시? 동시성 문제가 생기진 않았을까.. 로그를 보니중복키 로그가........ 😓 개선하고자테스트코드를 수정하고 디버깅을 진행 하였다.문제점 찾기예시 코드 AS-IS @Transactional(rollbackFor = Excepti..
window 10 enterprise 라이센스 만료 후 일정 사용 시간 지나면 강제 종료 되는 현상 해결 방법
·
변소
회사 남는 pc 에 로컬 database를 테스트용으로 사용하고 있는데라이센스가 만료 되어 1시간 정도 사용하면 강제적으로 종료되는 것을 확인 하였다. (윈도우 이벤트 뷰어에서 확인 가능)window license monitoring service를 일시적으로 중지하여 강제 부팅을 막을 수 있다. 해당 서비스를 중지 하기 위해서 두번째 참조 링크를 참고하여 따라하면 된다! 😁추후 라이센스 구매 전까지는 .. 😂https://learn.microsoft.com/en-us/sysinternals/downloads/psexec PsExec - SysinternalsExecute processes on remote systems.learn.microsoft.com https://digitalitskills...
newman 을 이용하여 node 서버 부하 테스트 및 pm2 클러스트 모드 사용 / 커넥션 풀 사용하여 부하 예방하기 🐝
·
Develop/DevOps
후기 다른 사람이 만든 코드를 유지보수한다는게 정말 쉽지 않은 것 같다..또 java/spring boot 가 아닌 node/express 환경이다 보니 정이 더 안붙는... 😒원인특정 기간에 예약이 몰려 서버에 부하가 되는 상황 확인  테스트 방법 1. 포스트맨을 이용하여 예약 api 컬렉션 준비2. node에 newman 종속성 추가 및 실행코드 작성3. pm2 모니터링  const newman = require('newman'); // Newman 모듈const instances = 900; const runNewmanInstance = () => { return new Promise((resolve, reject) => { newman.run({ collec..
[Request processing failed: org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column '컬럼명' from result set. Cause: java.sql.SQLException: 부적합한 열 유형: getBLOB not implemented for class oracle.jdbc.driver.T4CLongRawAccessor 오류 해결 하
·
Develop/Trouble Shooting
[Request processing failed: org.mybatis.spring.MyBatisSystemException] with root causejava.sql.SQLException: 부적합한 열 유형: getBLOB not implemented for class oracle.jdbc.driver.T4CLongRawAccessor at oracle.jdbc.driver.GeneratedAccessor.getBLOB(GeneratedAccessor.java:1021) ~[ojdbc8-21.9.0.0.jar:21.9.0.0.0] at oracle.jdbc.driver.GeneratedStatement.getBLOB(GeneratedStatement.java:289) ~[ojdbc8-21.9.0.0..
[Oracle] 패키지,프로시저,펑션 에서 특정 문자열 찾기 🐝 🍯
·
Develop/DATABASE
SELECT T1.OBJECT_ID , T1.OBJECT_NAME , T1.OBJECT_TYPE , T2.TEXTFROM USER_OBJECTS T1 INNER JOIN USER_SOURCE T2 ON T1.OBJECT_NAME = T2.NAMEWHERE T1.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION','PACKAGE BODY') AND T2.TEXT LIKE '%검색 문자열%' 특정 프로그램 유지보수 중 데이터가 계속 편집이 되는데 인수인계 문서가 없어서 난감하다 😵‍💫그럴 때 자주 애용하는특정 테이블에 데이터가 어느 프로시저 또는 패키지에서 편집되는지 알 수 있는 꿀팁 🍯 쿼리  Ref. https://docs.oracle.com/en/database/oracle/o..
[Java] 리플렉션(Reflection) 이란 무엇인가요?
·
Develop/Back-End
지난 번 운이 좋아 여러 대기업 면접을 보게 되었는데k사 기술 면접에서자바 리플렉션이라고 물었던 적이 있다..난 당시에 대답을 시원하게 하지 못했다 😓  사실 웹 개발자가 리플렉션을 사용할 일은 드물것이라고 생각이 든다...    그래서 ..  Java Reflection 이란 무엇인가요? 🤔자바 리플렉션은 프로그램이 실행 중일 때 클래스, 메서드, 필드 등을 동적으로 조회하고 조작할 수 있게 해주는 기능이를 통해 런타임에 클래스의 구조를 알아내고, 객체의 메서드를 호출하거나 필드의 값을 수정할 수 있다.자바에서 이미 로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩 (Dynamic Loading)하여 생성자(Constructor), 멤버 필드(Member Variables) 그리고 멤버 메서..
[axios] Axios의 사용자 제공 입력의 잘못된 유효성 검사로 인한 CSRF 취약점 CVE-2023-45857
·
Develop/Front-End
사내 레거시.. 프론트 프로젝트에서 axios 라이브러리를 보던 중 이전에 보았던 보안취약점 코드가 떠올랐다..라이브러리를 업데이트 해야겠다.. 🤣 package.json 파일을 확인해보니..   "axios": "^0.27.2" 보안에 관심이 많은 사람들은참조 링크를 확인해보면 좋은 경험치가 될 것 같다   Ref.   https://github.com/axios/axios/issues/6006 CVE-2023-45857 (CWE-359) XSRF-TOKEN value is disclosed to an unauthorised actor · Issue #6006 · axios/axiosDescribe the bug Hi team, @jasonsaayman and @DigitalBrainJS, The l..
uncategorized SQLException; SQL state [99999]; error code [17056]; 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16KSC5601 에러 해결 방법! 🛠️
·
Develop/Trouble Shooting
Cause: java.sql.SQLException: 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16KSC5601 ; uncategorized SQLException; SQL state [99999]; error code [17056]; 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16KSC5601] with root cause 환경 구성 중 오류가 발생하였다. 😡오류를 자세히 읽어보면.. 답이!!!!!!!!!!  라이브러리를 다운받아 종속성을 추가하면 해결할 수 있다. gradle// https://mvnrepository.com/artifact/com.oracle.ojdbc/orai18nimplementation group: 'com.ora..