본문 바로가기

2022년 2월의 시작 벌써 2월..! 요즘 참 정신적으로 힘들었다. 일 때문이다. 일을 효율적으로 하지 못해서 주말에 추가근무를 하다보니 스트레스를 해소하지 못하고, 주중에는 그게 더 쌓이고.. 악순환인 것 같다. 선순환을 만들어야하는데.. 당분간은 일 보다는 일을 잘할 수 있는 것에 고민하고 집중해야겠다. 꼭 필요한 단계다. 기술적으로 성장도 물론 중요하지만 이렇게 일을 관리하고 커뮤니케이션하는 능력을 탑재하는게 현재는 더 절실하다. 김부장이야기 책을 읽었다. 정말 재밌다. 1권 2권은 뼈를 때리면서 3권을 위한 빌드업이 많다는 느낌을 받았다. 만약 이 책을 1,2권만 읽는 사람들이 있다면 무조건 잠을 줄여서라도 3권을 읽으라고 말해주고 싶다. 3권은 정말이지.. 마스터 피스다. 도움되는 페이지의 모서리를 접어두려고 했는데..
차가 생겼다. 눈이 많이 온 다음날 데이트를 했다. 사실 데이트라고 해도 코로나 때문에 어딜 가진 못하고 오랜만에 음식점에서 한끼하고 흐느적 흐느적 산책한게 전부다. 예전부터 같이 산책하는걸 무척이나 좋아했지만, 눈이 많이 쌓이고 칼바람이 부는 거리에서 한시간씩이나 있으니 문득 차가 있었다면 싶었다. 거기서 부터 시작이다. 발동걸린 생각은 꼬리를 물기 시작했고 왠지 모르게 차가 없는게 억울하게 느껴졌다. 지금까지 돈을 모으는 목적으로 차를 사지 않았지만 30대에는 차를 사고싶었다. 일년 더 빨라진다고 내가 과연 얼마나 더 모을까? 마지막 20대인데 돈 좀 더 쓰더라도 이곳 저곳 다니면서 추억을 쌓고싶었다. 그래서 부랴부랴 중고차를 알아보고 일사천리로 구매하게됐다. 그래서 오늘 차를 탁송받았다. 탁송기사님을 역까지 태워..
2021년을 맞이하며 2020년은 본인에게 많이 실망한 한 해였다. 부푼 꿈을 안고 시작했고 하고싶은 공부도 많았다. 상반기는 나름 만족스러웠다. 여러가지 공부도 하고 새로운 것들을 알게되면서 시야가 좀 더 넓어지는 것을 느꼈다. 하지만 하반기에 접어들면서 나의 치부를 보았다. 적은 연차이지만 점점 부서에서 쌓아온 지식이 늘어가면서 도메인을 꽤 많이 아는 편에 속했고 자연스래 여러 크고 작은 프로젝트를 주도해야했다. 하지만 작년과는 달리 프로젝트에 주도적으로 임하지 못했다. 뛰어난 동료들과 함께 있으면 시너지를 내야하지만 오히려 뛰어난 동료들에게 의지만 하고 위기가 닥쳐도 안주하는 본인의 모습을 발견했고, 자기혐오로 이어졌다. 내가 부족한 부분을 매꿔줄 수 있는 동료들과 함께 일한다는 것은 매우 든든하고 축복받은 일이다. 이..
3년차 3년차에 접어들면서 울적함을 마주했다. 1년차, 2년차 정체기도 있었지만 나름대로 많이 성장했다고는 하지만 현재 나의 위치에 만족하기 어렵다. 그래서 조바심이 났다. 그래서 나를 아끼지 못했다. 늘 그랬듯이 느리더라도 꾸준하게 노력해주는 사람이 됐으면 좋겠다. 가슴뛰면서 일하고 싶다. 화이팅 :)
Logback Logback이란? Logback is intended as a successor to the popular log4j project, picking up where log4j leaves off. -> 로그백이란 slf4j 프로젝트 구현체이며, log4j를 대체하는 역할을 한다. 재밌게도 logback의 창시자인 Ceki Gülcü는 log4j의 창시자이기도 하다. log4j를 만들 때의 노하우를 통해 보다 좋은 것을 만들어낸 것이다. Slf4j란? The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, log..
대용량 파일 삭제 간혹 서버 디스크 용량이 부족해지는 경우가 있다. 원인은 다양하겠지만 새로운 로그를 누적하는데 용량 산정을 잘못해서 서버의 디스크 용량이 빠르게 차오르는 경우를 자주 본다. 대규모 트래픽을 받는 서버는 로그 파일의 용량도 크다. 로그 파일을 비우기 null copy 방식을 사용한다. cat /dev/null > {my_log_file} or cp /dev/null > {my_log_file}
ViewResolver 참고: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-viewresolver ViewResolver란? Spring MVC의 DispatcherServlet은 뷰 관련 처리를 ViewResolver에 위임했다. ViewResolver는 문자열로 반환된 뷰 네임을 확인한 후 적절한 뷰를 찾아준다. View Resolution DispatcherServlet는 HandlerAdaptor의 handle 메소드를 호출하여 요청을 처리한다. 그리고 결과로 ModelAndView 객체를 전달받는다. ModelAndView는 말그대로 model과 view를 프로퍼티로 들고있는 객체이다. 이 때 ModelAndView..
[삽질] java daemon process 실행 상황 회사 특정 프로그램의 배포 방식이 최첨단 수동인게 하나 있었다. 자바 프로그램이고, 로컬에서 fatjar를 만들어 scp로 배포하고 미리 scp로 넣어둔 쉘 스크립트를 실행해서 서버를 구동하는 방식이었다. 배포를 좀 더 쉽게 하기 위해 ansible로 배포스크립트를 만들고자 했다. 큰 흐름은 빌드 > 소스 배포 > 프로세스 스탑 > 프로세스 실행 으로 비교적 간단한 순서 였다. 프로세스 스탑, 실행 모두 쉘 스크립트를 서버에 넣어두고 실행만 하면됐다. 그런데 스탑은 잘 되는데 실행이 안 된다. 왜? 문제의 스크립트 #!/bin/bash JVM_OPT=블라블라 export JVM_OPT java $JVM_OPT -jar app.jar >> {{출력파일}} 2>&1 & 보기에는 별 문제가 없어보인다. ..