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
[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..

article thumbnail
[Nginx] AWS EC2(Cloud9) Nginx 설치하기
WEB/BACKEND 2023. 4. 19. 09:56

AWS Cloud 9 접속 후 Nignx 설치하기 yum install nginx yum update -y nginx -v #버전 확인 아래와 같이 설치된 버전을 확인 할 수 있습니다. Nignx 설정 세팅 yum 을 이용하여 nginx를 설치하게 되면 아래의 경로에 관련 파일들이 설치 된다. cd /etc/nginx/ 이중에서 가장 핵심이 되는 nginx.conf 파일을 수정하여 관련 세팅을 설정한다. sudo vim nginx.conf 대용량 트래픽을 처리할 수 있도록 아래와 같이 환경 설정을 변경해준다. worker_processes auto; #vm Instance의 Cpu Core를 최대한 활용할 수 있도록 Worker process수를 맞춘다. events{ worker_connections ..

article thumbnail
[Nginx] Nginx 개념
WEB/BACKEND 2023. 4. 7. 14:22

1. Nginx 란? NGINX 는 오픈 소스 웹서버 프로그램 중 하나로, Apache보다 동작이 단순하고 동시 접속을 처리하기에 특화된 서버이다. 동시접속자(700)이상이라면 서버를 증설하거나 Nginx 환경을 권장한다고 한다. Nginx가 많이 사용되는 이유는 리버스 서버의 프록시로서의 역할을 수행하고 있기때문에 응용프로그램 서버 앞에 설치되어 사용되고 있다. 클라이언트가 서버에 요청(request)을 하게 되면, 맨 앞에 위치해있는 Nginx가 프록시 서버의 역할을 수행 해 리버스서버(응용프로그램 서버)에 전달해 데이터를 가져오는 기능을 제공한다. 리버스 서버의 프록시 역할을 수행한다고 해서 리버스 프록시라고 사용되는 편이다. Q. 리버스 프록시 없이 응용프로그램으로 요청 할 경우에는? 프록시 서버..

article thumbnail
[SPRING] 싱글톤에 대해서
WEB/BACKEND 2022. 7. 28. 08:41

싱글톤이란? 소프트웨어 디자인 패턴에서 사용하는 패턴으로 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 즉, 클래스의 인스턴스가 하나만 생성되는것을 보장하며 인스턴스에 접근할 수 있는 전역적인 접촉점 을 제공해 하나의 인스턴스를 통해서만 접근이 가능하도록 제어하는 패턴이다. 싱글톤 사용 이유 요청이 엄청나게 많은 트래픽 사이트에서는 계속 객체를 생성하게 되면 메모리 낭비가 심하기 때문에 대규모 트래픽과 요청을 처리 할 수 있도록 사용한다. 사용 전 public class AppConfig { public SingleTone singleToneTest(){ return new SingleTone(); } } @Te..