반응형

분류 전체보기 416

(javascript) Throttle, Debounce를 통한 따닥 방지

(javascript) Throttle, Debounce를 통한 따닥 방지1. Throttle, Debounce 도입 배경운영 중인 시스템에서 특정 기능을 사용할 때 '따닥' 현상으로 인해 API 요청이 중복으로 호출되는 문제가 종종 발생했는데요.빈도가 높지는 않았지만 발생할 때마가 데이터가 꼬이는 문제가 생겼기 때문에 어떻게든 처리가 필요한 상황이었습니다. 물론 서버 측에서 동일한 키 값에 대한 API 요청이 중복으로 일어나지 않도록 처리되어 있었지만, 트랜잭션이 끝나기 전 동일한 요청이 들어오는 경우 이러한 문제가 발생하였으며, 원인은 스페이스 키 또는 엔터 키의 연타로 인해 발생하는 것으로 예상되었습니다.(스페이스 키, 엔터 키를 막는 방법은 사용자의 편의성으로 인해 적용할 수 없는 상황이었습니다...

Java 디컴파일 도구 JD-GUI 설치 및 사용 방법(.class .jar 디컴파일)

Java 디컴파일 도구 JD-GUI 설치 및 사용 방법(.class .jar 디컴파일)  1. Java 실행 원리JD-GUI에 대해 살펴보기 전 Java 언어의 실행 원리를 간단하게 살펴보면 다음과 같습니다. 먼저, 작성된 Java 코드는 자바 컴파일러인 javac를 통해 바이트코드(.class 파일)로 변환됩니다.이렇게 컴파일된 바이트 코드는 JVM(Java Virtual Machine)의 클래스 로더에 의해 메모리에 로딩되는데요.로딩된 바이트코드는 JIT 컴파일러에 의해 기계어로 변환되거나, 인터프리터 방식으로 실행됩니다. 이러한 실행 방식 덕분에 Java 프로그램은 운영체제에 종속되지 않고, 다양한 플랫폼에서 동일한 방식으로 실행될 수 있습니다.   2. 디컴파일(Decompile)이 필요한 경우디..

Programming/Java 2025.03.18

오라클 ORDER BY NULL 정렬하기(NULLS FIRST, NULLS LAST)

오라클 ORDER BY NULL 정렬하기(NULLS FIRST, NULLS LAST)\  해당 포스팅에서는 오라클 데이터베이스에서 NULL 정렬을 위해 사용되는 'NULLS FIRST', 'NULLS LAST' 옵션에 대해서 정리해 보았습니다.  1. Oracle NULL 기본 정렬 방식과 NULLS FIRST, NULLS LAST먼저 오라클 데이터베이스에서는 NULL 값이 있는 컬럼을 정렬할 때, 오름차순(ASC)인 경우 NULL 값이 가장 마지막에 위치하게 되고, 내림차순(DESC)인 경우 NULL 값이 가장 먼저 위치하게 됩니다. 하지만 경우에 따라 특정 컬럼을 오름차순으로 정렬하면서 NULL 값을 가장 먼저 위치하게 하거나, 내림차순으로 정렬하면서 NULL 값을 가장 마지막에 위치하게 하고 싶을 ..

Programming/Oracle 2025.03.16

(Jenkins, GitLab CI/CD 구축) 2. Jenkins GitLab 설정 및 연동하기

(Jenkins, GitLab CI/CD 구축) 2. Jenkins GitLab 설정 및 연동하기 (Jenkins, GitLab CI/CD 구축) 1. Docker Jenkins 설치 및 구동하기(Jenkins, GitLab CI/CD 구축) 1. Docker Jenkins 설치 및 구동하기해당 포스팅은 Jenkins, GitLab 기반 CI/CD 구축의 첫 번째 과정인 'VM Instance에 Docker를 통해 Jenkins를 설치 및 구동하는 과정'을 정리하였습니다.이wildeveloperetrain.tistory.com(Docker를 통해 Jenkins를 구동하는 과정을 정리한 이전 포스팅) 지난 포스팅에서는 VM 인스턴스에 Docker를 통해 Jenkins를 구동했는데요.이어지는 이번 포스팅에서..

Programming/CICD 2025.03.09

(Jenkins, GitLab CI/CD 구축) 1. Docker Jenkins 설치 및 구동하기

(Jenkins, GitLab CI/CD 구축) 1. Docker Jenkins 설치 및 구동하기해당 포스팅은 Jenkins, GitLab 기반 CI/CD 구축의 첫 번째 과정인 'VM Instance에 Docker를 통해 Jenkins를 설치 및 구동하는 과정'을 정리하였습니다.이후의 CI/CD 구축 과정들도 정리하여 포스팅할 예정이니 같이 참고해 주시면 좋을 것 같습니다. CI/CD를 구축 및 테스트하는 개발 환경과 실제로 사용할 운영 환경의 인프라 환경이 다를 수 있기 때문에 환경의 일관성을 유지하기 위해 도커를 사용하여 젠킨스를 구동하였으며, 각각의 프로젝트 요구사항 및 인프라 환경에 따라 도커 기반이 아닌 서버에서 바로 젠킨스를 구동하는 방식을 사용하는 경우도 있을 수 있습니다. * 아래 과정에..

Programming/CICD 2025.03.02

스플릿 키보드 키크론 Q11, Mistel MD770 사용 후기 및 차이점 비교

스플릿 키보드 Keychron Q11, Mistel MD770 사용 후기 및 차이점 비교회사와 집에서 키보드를 사용하는 시간이 많다 보니 라운드숄더도 걱정이 되고 키보드를 치는 자세가 편하면 좋겠다 생각하여 스플릿 키보드에 관심을 가지게 되었고, 작년에 '키크론 Q11' 제품을 구매하게 되었는데요.처음에 적응하는 시간은 조금 필요했지만 적응 이후 만족도가 너무 높아 최근에 두 번째 스플릿 키보드인 '미스텔 MD770' 제품도 구입하여 각각 회사와 집에서 사용하고 있습니다.(스플릿 키보드의 최대 이슈인 왼쪽 'ㅠ' 키의 경우 생각보다 금방 적응되어 사용 중입니다.) 해당 포스팅은 내돈내산 스플릿 키보드 Keychron Q11과 Mistel MD770 사용 후기 및 차이점 비교에 대한 내용을 정리하였습니다...

IT Info 2025.02.23

Oracle 가운뎃 점(·) INSERT 시 물음표(?)가 들어가는 경우

Oracle 가운뎃 점(·) INSERT 시 물음표(?)가 들어가는 경우 해당 포스팅에서는 오라클 데이터베이스에서 Character set 문제로 인해 일부 특수문자가 물음표(?)로 저장되는 경우에 대해 정리해 보았습니다. 제목에서는 '가운뎃 점(·)'이라고 표현했지만 실제 가운뎃 점인 Middle Dot에서는 해당 문제가 발생하지 않았으며, 가운뎃 점과 비슷한 모양의 'Hyphenation Point(‧)', 'Bullet(•)'에서 데이터베이서의 캐릭터 셋에 따라 값이 물음표로 저장되는 상황을 확인했습니다. 아래 내용에서는 오라클 데이터베이서의 Character Set인 'KO16KSC5601', 'KO16MSWIN949', 'UTF8/AL32UTF8'에서 특수문자 'Hangul Letter Arae..

Programming/Oracle 2025.02.09

nslookup 명령어 사용 방법과 동작 원리(feat. DNS 서버)

nslookup 명령어 사용 방법과 동작 원리 정리(feat. DNS 서버) name server lookup을 의미하는 'nslookup'은 도메인 네임 시스템(DNS)과 상호작용하여 DNS 정보를 조회하는 명령어로 Windows, Linux, Unix 외 대부분의 운영체제에서 사용할 수 있는 네트워크 진단 도구입니다.주로 도메인 이름에 대한 IP 주소를 확인하거나, 특정 IP 주소에 대한 도메인 이름을 조회하는 데 사용되는데요. nslookup 명령어는 한 번의 명령어 실행으로 DNS 정보를 조회하는 '비대화식 모드'와 nslookup 명령어를 단독으로 입력하여 DNS 정보를 실시간으로 확인할 수 있는 '대화식 모드' 두 가지 방법으로 사용할 수 있는데, 아래 내용에서는 비대화식 모드를 중점으로 해당..

파일 업로드 시 net::ERR_CONNECTION_RESET 오류 발생 원인 및 해결 방법

파일 업로드 시 net::ERR_CONNECTION_RESET 오류 발생 원인 및 해결 방법 스프링 프로젝트에서 ajax를 통해 파일 업로드를 하는 기능 동작 중, 용량이 큰 파일을 업로드하는 경우 클라이언트 쪽에서 위 이미지와 같이 '(failed) net::ERR_CONNECTION_RESET' 오류가 발생하였고, 서버 쪽에서는 해당 오류에 대한 로그조차 남지 않는 문제가 발생했는데요.(로그 레벨 설정이 debug level로 설정되어 있을 경우 오류 정보가 출력되었습니다.) 해당 포스팅에서는 이와 같이 업로드 과정에서 net::ERR_CONNECTION_RESET 오류가 발생하는 원인과 해결 방법에 대해서 정리해 보았습니다. 오류 원인 파악용량이 큰 파일을 업로드하는 경우에만 해당 문제가 발생했기 ..

Programming/Spring 2025.01.30

Spring MVC, SimpleMappingExceptionResolver를 통한 간단한 예외 처리 방법

SimpleMappingExceptionResolver를 통한 간단한 예외 처리 방법해당 포스팅에서는 Spring MVC에서 간단하게 예외를 처리하기 위해 사용되는 'SimpleMappingExceptionResolver' 클래스의 사용 방법 및 확장 방법에 대해서 정리하였습니다. SimpleMappingExceptionResolver의 경우 스프링 MVC 모델에서 주로 사용된다는 점과 Spring 3.2부터 도입된 더 효율적이고 유연한 예외 처리 방식인 @ExceptionHandler @ControllerAdvice가 등장하면서 최근에는 거의 사용되지 않는데요.잘 사용되지 않는 기능이지만 유지보수 등으로 인해 찾는 경우가 있을 것 같아 간단하게 정리해 보게 되었습니다. 사용 방법public interf..

Programming/Spring 2025.01.25
반응형