개발 이야기(26)
-
Almalinux 9.x minimal에서 logrotate가 안되는 문제
사실 잘 작동하는지 확인 안했다. 실패하면 글 삭 ㄱ문제Almalinux 8.7에서는 logrotate가 잘 됐는데 9.3으로 업데이트를 한 뒤로 안되기 시작했다.Nginx, 앱 로그 용량이 늘어나면 시스템에 좋지 않기때문에 조치를 취해보자.(Docker에서 실행하는 컨테이기때문에 서비스 재 배포를 통해 해결할 수 있지만..)아마도 RHEL계열 9.x minimal 버젼에서는 거의 대부분 발생할 문제라고 생각한다.해결온갖 삽질을 다 했는데.. 무슨 이유 때문인지 9.x에서 /etc/cron.daily/logrotate 스크립트가 누락되어있다. (5252 어디까지 minimal 할 셈이냐?!)#!/bin/sh/usr/sbin/logrotate /etc/logrotate.confEXITVALUE=$?if [..
2024.07.04 -
Next.js 서버 실행시 host가 private ip로 bind되는 경우
문제Next.js는 애플리케이션을 실행(next start)하면 host가 127.0.0.1로 bind된다. 따라서 브라우저에 http://127.0.0.1을 입력하면 내가 만든 프론트 페이지로 이동할 수 있다. 또는 /etc/hosts에 localhost가 등록되어 있다면 http://localhost로 접속하는 것도 가능하다.그런데 Next.js 특정버전 이상부터 (v13.4.7 이상으로 추정) 애플리케이션 실행 시 host가 192.168.x.x과 같은 private ip로 bind되는 문제가 발생한다. 내부적으로 서버 실행 시 hostname 가져오는 방법이 달라진 것 같다. (소스 찾아봤는데 까먹음) 로컬에서 개발할 때야 http://192.168.0.x..로 접속해서 한다 쳐도 운영환경에서는 ..
2024.06.27 -
광명찾는 Intellij vmoption 설정 값
Intellij vmoptionZulu JDK 17버젼 사용중.Intellij 프로젝트 3~5개에서 자바 애플리케이션 6개정도 띄워놓는 게 일반적이 전에는 컴퓨타가 너무 버벅여서 작업하기가 너무 힘들었음아래 값으로 개발환경 광명찾음단 한번도 Intellij가 버벅이지 않음-ea-server-Xms1024m-Xmx5120m-Xss256k-XX:+UnlockExperimentalVMOptions-XX:-UseSerialGC-XX:-UseParallelGC-XX:-UseG1GC-XX:+UseZGC-XX:+IgnoreUnrecognizedVMOptions-XX:+HeapDumpOnOutOfMemoryError-XX:-OmitStackTraceInFastThrow-XX:ReservedCodeCacheSize=51..
2024.06.24 -
SpringBatch에서 @EnableBatchProcessing때문에 Job이 실행되지 않는 문제
개요 (Overview) SpringBatch 3.x에서 Job이 실행되지 않는 문제가 발생했다. We encountered an issue where the Job was not running in SpringBatch 3.x. 문제 (Problem) SpringBoot 3.0 (정확히 v3.0.0-M5)는 부터는 @EnableBatchProcessing을 사용하면 BatchAutoConfiguration.java에서 jobLauncherApplicationRunner bean 생성을 하지 않는다. 나는 Multiple datasource를 사용하고 있기 때문에 datasource, transactionManager를 지정하기 위해 반드시 사용해야 했다. As of SpringBoot 3.0 (prec..
2023.06.01 -
Spring Boot 2.x에서 3.x로 업데이트
자바 17 이상으로 변경 asdf 또는 sdkman 등으로 java 17을 설치하고 build.gradle에 sourceCompatibility값을 수정한다. 변경 전 sourceCompatibility = '11' 변경 후 sourceCompatibility = '17' gradle에서 Spring Boot 3.0.5로 변경 build.gradle 변경 전 id 'org.springframework.boot' version '2.x.x' 변경 후 id 'org.springframework.boot' version '3.0.5' gradle에서 querydsl 라이브러리 변경 변경 전 implementation 'com.querydsl:querydsl-core' implementation 'com.que..
2023.04.04 -
(React) proxy기반의 반응형데이터 관리
React 반응형 데이터 React에서는 반응형 데이터를위해 setState를 이용한다. 그런데 클래스 인스턴스로 데이터를 관리하고싶은 경우 인스턴스 자체의 변경점이 지정되며, 인스턴스내의 데이터를 변경 하고싶은경우 spread방식을 이용하기때문에 불편하다. React에서 proxy기반의 상태(반응형)관리 해주는 Valtio라는 라이브러리를 발견했다. 해당 방법을 이용하면 쉽게 클래스 인스턴스를 관리 할 수 있다. Vue3에서 reactive (or ref)와 비슷한 느낌인것 같다. 그러면 아래와같이 직관적으로 반응형 데이터를 만들어줄 수 있고 변경또한 객체에 메시지를 전달하여 해결할 수 있다. 예제코드 import React, {useEffect, useState} from "react"; import..
2022.07.08 -
Nginx logrotate후에 로깅이 안되는 문제 (Nginx not logging after logrotate)
문제 Nginx logrotate 수행 이후 더 이상 로깅이 안되는 문제가 발생했다. /var/log/nginx/*.log { daily dateext dateyesterday missingok ifempty rotate 90 compress create 640 nginx root sharedscripts olddir /var/log/nginx/backup postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript }설정 파일 내용은 위와 같다. 해결 권한을 잘 관리하겠다고 chmod를 빡빡하게 700으로 줬던 게 문제였다. 내부적으로 file reopen이 안되는것 같다. nginx 로그 폴더..
2022.04.27 -
typescript, babel, jest 모듈 환경 구성
타입스크립트, 바벨 npm 설정 패키지 설치 테스트 관련 $ npm install --save-dev jest @types/jest 타입스크립트, 바벨관련 $ npm install --save-dev typescript NPM 셋업 설정파일 생성 설치 중간에 test command를 입력하라는 prompt가 나오면 jest로 입력한다. npm run test 명령어를 통해 테스트를 수행 할 수 있게 만들기 위한 부분이다. $ npm init 스크립트 추가 package.json { "name": "class-enum", "version": "0.0.1", "description": "class enum", "main": "index.js", "scripts": { "test": "jest", "compi..
2022.04.23