devnoong.log
article thumbnail
[Postman ] 400 Bad Request ERROR 발생 (비정상적 공백 )
WEB/BACKEND 2024. 8. 21. 13:57

문제 발생 API 호출 테스트를 위해 Postman에서 API 문서 가이드에 적힌 대로,  헤더값과 Body 값을 json으로 세팅 후 호출을 진행했다. 근데 400 Bad Request Error가 발생했다  분명 Header에 인증받은 Authorization 과 Content-Type 을 ' application/json' 로  설정했는데, 무슨 데이터가 잘못 세팅되었길래 400 에러가 발생하는걸까??? 라고 멘붕에 빠짐... 원인 분석 아무리 봐도 잘못된게 없었음.가이드 문서 그대로 json 파라미터 값을 복사해서 postman에 불어넣기 했는데.......TT API 가이드 문서에 샘플로 존재하는 json 을 복붙해서 수행했는데, 다른 분은 수행이 된다고 하셨다. 그래서 해당 body를 받아서 ..

JWT(Json Web Token) 개념 정리 (Java-jwt)
WEB/BACKEND 2024. 7. 13. 18:12

JWT란?토큰 인증 방식으로 기존 세션 인증방식과는 달리 stateless 한 인증 방식이다. 기본적으로 JWT 라이브러리가 다양하게 존재하는데, JAVA에서는 Java-jwt 와 jjwt 라이브러리를 많이 사용한다.(개인적으로  Auth0에서 개발한 java-jwt가 직관적이여서 사용하기 편하다고 느껴진다.) 자세한 내용은 아래 블로그를 참조https://dalichoi.tistory.com/entry/JWT-%ED%86%A0%ED%81%B0-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-java-jwt%EC%99%80-jjwt-%EA%B0%84%EB%8B%A8-%EB%B9%84%EA%B5%90 JWT 토큰 라이브러리 java-jwt와 jjwt 간단 비교경험이 많지 ..

article thumbnail
[GIT] GIT 특정 파일만 이전 COMMIT 내역으로 ROLLBACK 하기
잡부 2024. 1. 10. 14:04

일부 파일만 이전 commit 내역으로 rollback 하고싶을 경우가 존재한다. Rever Commit의 경우에는 내가 원하는 파일이 아닌 Commit 한 내역 전체가 rollback 되기때문에 적합하지가 않다. 그럴경우 특정 파일만 이전 commit 내역으로 rollback 하기 위해서는, 1. 변경하고싶은 파일의 git log를 조회해 commit 번호를 확인한다. git log -- 파일 상대경로 그러면 여러개의 commit 번호가 아래와같이 조회되는데, rollback 시점의 commit 번호를 복사한다. 2. 조회한 commit 번호로 checkout 하여 특정 파일만 변경한다. git checkout commit번호 -- 파일 상대경로 3. 변경사항 확인 후, 스테이징 및 새 commit 등..

article thumbnail
[Linux] 프로세스 시작시간 종료시간 확인하기
Linux 2023. 12. 22. 18:00

프로세스 아이디로 해당 프로세스의 시작시간 종료시간을 확인할 수 있다. 즉 , 프로그램의 소요시간을 확인할 수 있다. ps -o lstart=프로세스id 그러면 아래와 같이 두가지 시간이 나오는데 첫번째가 시작한 시간,두번째가 종료된 시간이다. 이를 조합하여 총 소요되는 시간을 확인 할 수 있다.

[Mysql] create routine definer 에 따른 권한 발생 문제
DB/MySql 2023. 12. 22. 16:58

create routine = Procedure를 definer 를 설정하여 만들고 정상적으로 작동하지 않는 문제가 발생했다. 상황 1. 일반 usr계정으로 프로시저 생성 후, definer 에 dba사용자권한이 있는 계정을 할당함. 2. 프로시저 내부에 information_schema.table를 이용하여 테이블 존재여부를 체크하는 로직이 존재 3. 그 후 turncate table 수행 결과 위의 2번 스키마 테이블에서 테이블이 존재하지 않는다고 나와, 정상적으로 로직이 수행되지 않음. 문제원인 definer의 계정은 dba권한이 있는 사용자로 excute권한밖에 기본적으로 가지고 있지 않았다. 그렇기때문에 dba권한이 있는 사용자 계정에서 select를 할때는 테이블을 명시적으로 지정해줘야 inf..

article thumbnail
[Linux]프로세스 할당량 및 정보 확인하기
Linux 2023. 12. 22. 14:36

리눅스에서 프로세스 할당량 및 관련 정보들을 확인할때 사용하는 명령어다. 자주 쓰기때문에 기록용으로 적어놈. ps -eo user,pid,ppid,lstart,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11 -eo : 프로세스 정보 출력할 형식을 지정하는 옵션 user : 프로세스사용자이름 pid : 프로세스 id ppid : 부모프로세스 lstart : 프로세스 시작시간 rss: 메모리에서 사용중인 용량 size : 메모리 크기 (kb 단위) vsize : 가상 메모리 크기 (kb 단위) pmem : 메모리 사용량 백분률 pcpu: cpu 사용량의 백분률 time : cpu 시간 cmd : 실행된 명령어 또는 프로세스 이름 --sort - 기준:..

article thumbnail
[SpringBatch] 성능 속도 개선 확인해보기
WEB/BACKEND 2023. 12. 14. 09:24

SprinbBatch 프로그램을 구현하면서 성능 속도를 고려하지 않을 수 없었다. 초기에 cursorItemReader가 성능이 좋다고해서 커서로 구현할까 고민했었지만, 구글링과 여러 블로그 글들을 종합해 본결과 대용량 데이터 처리에는 적합하지 않음을 알게 되었다. 그로인해 아래의 여러가지 방법으로 속도를 개선처리하고자 했다. 로컬에서 프로그램을 수행하므로, dev나 운영환경에 비해서는 시간이 소요될 수 밖에 없다. 시간 감소 폭만 확인 하는 용도로만 참고하면 된다. MyBatisPagingItemReader 개선 수행 row_num을 이용해 no-offset으로 코드 재 구현 select * from( select @rownum:=@rownum+1 row_num , from table_nm where ..

article thumbnail
[Spring Batch] Spring Batch 개념 정리
WEB/BACKEND 2023. 12. 7. 13:33

SpringBatchJob -> 여러개의 Step  (① Tasklet  ②Chunck)  로 구성되어 있음.  job Job Instance : job 수행시 인스턴스 객체의 단위 (성공적으로 종료된 동일한 인스턴스 수행시,  중복 수행을 막기 위해 exception이 발생된다.  ) ① step (Tasklet )StepExecution : Job 인스턴스 수행시 , 세부 로직 수행 내역으로 read, write ,count 의 상세 내역을 확인 할 수 있다.  ※ Step 수행 단위 : tasklet  .next()를 이용하여 다중 step을 구성할 수 도 있고 , step flow를 통해 다중 step을 구현 할 수 있다. 다만 step flow를 통해 다중 step을 구현 할 경우에, taskl..

[DB] Oracle USE_HASH hint 사용하기
DB/Oracle 2023. 7. 20. 15:53

현상 Live 운영 테이블에 데이터가 존재하지 않고, 백업용 데이터로 만들어진 테이블에서 데이터를 산출해야하는 경우가 존재했다. 문제점 Live 테이블 데이터의 경우, 기본적으로 index나 partition이 되어있어 대량의 데이터를 산출할때 해당 조건들을 이용해서 산출을 진행했다. 하지만, 백업용 데이터이기때문에 별도로 구성된 index나 partition이 되어있지 않아 index힌트 이용할 경우 추출 시간이 오래 걸려 active session이 오래 살아 있어 문제가 될 가능성이 존재한다. USE_HASH 사용 USE_HASH 힌트를 사용해 산출 시간을 단축시켰다. USE_HASH 힌트는 Oracle에서 사용되는 옵티마이저 힌트 중 하나로, 해시조인을 강제로 사용하도록 지시하는 역할을 한다. 해..