개발업무 19

Java SimpleDateFormat YYYY vs yyyy

yyyy란?yyyy는 Calendar Year입니다일반적으로 우리가 사용하는 연도로, 1월 1일부터 12월 31일까지를 기준으로 정의됩니다.예를 들어, 2023년 1월 1일과 2023년 12월 31일 모두 달력 연도 yyyy로는 2023년입니다. YYYY란?YYYY는 Week Year입니다주차 연도는 ISO 8601 표준에 따라 정의되며, 연도를 주 단위로 계산합니다.https://en.wikipedia.org/wiki/ISO_week_date 한 해의 첫 주(Week 1)는 시작 연도 내 주의 일 대부분(4일 이상)을 가진 첫번째 주입니다ISO 8601 표준에서 주 단위의 시작은 월요일이지만, 테스트 해보니 SimpleDateFormat에서는 일요일부터 시작하고 있습니다 (new GregorianCal..

개발업무/개발 2025.01.12

헬스체크 캐싱 적용

ASIS1. A서비스 실행2. B서비스 확인 (헬스체크)(3). B서비스 비정상일 경우 B서비스로 못넘어가게 팝업창4. A서비스 로딩 완료 문제점B서비스가 비정상일때 고객이 무조건 B서비스 헬스체크 타임아웃만큼 기다려야 함 해결방안1. Async로 B서비스 헬스체크2. B서비스 헬스체크 캐싱 고객이 몰릴때 몰린 고객 만큼 헬스체크가 필요하기 때문에 2번이 더 효율적임(1,2 동시에 적용할 필요는 없었음) 고려사항A서비스 직전 프론트에 따라 B서비스의 url이 다름 (직전에 어떤 프론트였는지는 파라미터로 알수있음)B서비스의 정상여부를 알기위해서는 2개의 서로다른 헬스체크 수행필요 구현단순하게 @Casheable을 추가할수도 있지만 캐시가 만료되었을때 특정 고객 한명은 대기를 해야하기 때문에 서버가 주기적으..

개발업무/개발 2024.11.24

docker network

$ docker network lsNETWORK ID NAME DRIVER SCOPE0cc1f7646f4d bridge bridge local9b68a5cd408f host host local9c19ba299af1 none null local 도커는 기본적으로 위 3개의 네트워크가 제공된다 Bridgebridge network는 하나의 호스트에서 여러개의 네트워크 공간을 형성하도록 합니다다른 bridge에 있는 컨테이너끼리는 통신할 수 없습니다NAME이 bridge인 네트워크는 도커가 default하게 제공하는 네트워크입니다아무런 설정을 하지 않았을때 컨테이너는 default bridge안에 속하게 됩니다bridge 모드로 생..

개발업무/개발 2024.07.21

Apache web server request body 로깅

개발에서 나오지 않던 결함이 운영에서 나오고 있어 로깅을 해봐야했습니다spring에서 로그 레밸을 info > debug로 바꾸자니 로그 크기가 너무 커지기도 하고,회사 배포 절차가 까다로워 debug > info 로 다시 원복을 하는 배포까지 하루단위로 2번 배포하는것이 불가능했습니다아파치 웹서버 설정변경으로 requestbody를 로그를 임시로 찍어보기로 했습니다 회사에서 했던 설정 그대로 집에서 해보려고 아파치 서버를 다운받는데 생각보다 해야할게 많아서 따로 올렸습니다https://jjjjqqq.tistory.com/69  http.conf에서 dumpio 사용 주석 풀어줍니다LoadModule dumpio_module modules/mod_dumpio.so https://httpd.apache.o..

개발업무/개발 2024.05.30

Apache Server 설치

홈페이지에서 최신 버전을 확인해서 다운받자https://httpd.apache.org/download.cgi 다른 블로그 글들은 필요한 패키지를 모두 다운받아서 시작하는데, 저는 그냥 아파치 웹서버 다운받다가 에러 메시지 표출 될때마다 필요한 패키지를 다운받았습니다. ** 저는 파일경로 유저 내 파일 경로로 했는데 유저로 하면 나중에 설정 추가로 해야하니 /home 경로는 쓰지마세요cd /home/jun/server/httpdwget https://dlcdn.apache.org/httpd/httpd-2.4.59.tar.gztar -zxvf httpd-2.4.59.tar.gzcd httpd-2.4.59./configure --prefix=/home/jun/server/httpd하다보면 없는 패키지가 뜬다...

개발업무/개발 2024.05.29

Java 대용량 엑셀 다운로드 (SXSSF)

엑셀 용량이 크다면 SXSSF를 써야합니다 https://poi.apache.org/components/spreadsheet/ SXSSF is an API-compatible streaming extension of XSSF to be used when very large spreadsheets have to be produced, and heap space is limited. SXSSF achieves its low memory footprint by limiting access to the rows that are within a sliding window, while XSSF gives access to all rows in the document. Older rows that are no lon..

개발업무/개발 2024.04.10

Spring 실행 윈도우 스크립트

목적 : 개발자 PC마다 설정이 제각각이라 스크립트만 배포하여 로컬 구동환경을 통일하기 위함 참고로 Spring boot가 아니고 spring이다 sample.bat으로 저장해서 실행한다 @REM 변수설정이라고 되어있는 곳만 수정해서 쓴다 @echo off chcp 65001 rem setenv.bat echo set "JRE_HOME=%JRE_HOME%" >> setenv.bat echo set CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\ext>> setenv.bat set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 rem JAVA_OPTS=%JAVA_OPTS% -DXXX.XXX=XXX 추가로 JAVA_OPTS 지..

개발업무/개발 2024.01.11

Nginx reverse proxy 설치 및 구성

설치 Nginx 다운받기 원하는 경로에 들어간후, curl https://nginx.org/download/nginx-1.24.0.tar.gz --output nginx.tar.gz tar -zxvf nginx.tar.gz 버전은 nginx.org 들어가서 확인해야 합니다 Dependencies https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#installing-nginx-dependencies 위 사이트 가서 dependency 확인합니다 cd nginx-1.24.0 mkdir dependencies cd dependencies 1. zlib 다음 버전 넘어가면 이전 버전 경로가 없어지니 zli..

개발업무/개발 2023.11.18

[Git] pull request view - diff

두 브랜치 사이에서 diff를 보고 싶으면 git diff branchA..branchB 를 하면 된다 PR시 diff 가 보이게 되는데 여기서는 two dots이 아닌 three dots diff 비교를 하게 된다 brown에서 green으로 PR을 할 때 view로 보이는 diff는 아래 명령의 결과이다 git diff brown...green 이는 X와 b3을 비교하여 diff에 g1과 g2의 변경 내용은 보이지 않는다. brown과 green을 각각 feature branch로 볼 때, 이미 black과 green이 머지된 상태에서 brown을 머지할 때 green feature의 변경 내용은 diff로 보지 않는 것이 맞기 때문이다 모든 git service 에서 동일하게 diff view가 구..

개발업무/개발 2023.11.15