Intro 진행상황 회사에서 진행중인 프로젝트에서 기능 추가를 위해 임시 파일을 다루던 중 예기치 못한 동작을 확인 했습니다. 지금의 구조를 간략하게 보면 대략적으로 데이터 파일 저장에 관련된 부분만 보았을 때 이런 식으로 이루어 져 있습니다. 사용자가 파일을 업로드 할 경우에, 사용자를 응대해 주는 서버가 저장담당 서버와 통신을 하고, 그 파일을 전달 받은 후에는 DB에 관련된 메타데이터 정보를 저장 하고 실제 파일은 또 다른 파일 저장에 관련된 부분만을 관리 하는 또 다른 파일관리 어플리케이션에 전달을 하게 됩니다. 1번 서버에서 2번 서버로 전달되는 과정에서의 비용도 제법 아까운데, 시간을 측정 했을 때에 파일 저장소에 저장해내는 4번의 과정에서 대부분의 병목이 일어나는 것이 확인 되었습니다. 심지..
IT ⁄ Computer 122
Intro 10년 전 쯤에 컴퓨터를 쓰다가 뭔가 자동화가 필요한 시점에서는 항상 AutoHotkey 라는 스크립트를 주로 사용했었습니다. 이 덕분에 정말 말할 수 없을 만큼 다양한 작업들을 스크립트 작성 후 자동으로 했었는데요. MacOS를 사용하면서 뭔가 스케줄을 등록해두고 자동으로 시행했으면 하는 일들이 생겼는데, 맥에서는 AutoHotkey가 지원이 되지 않아 대체제를 찾아보다가 애플에서 제공하는 AppleScript가 있기에 한번 사용을 해 보았습니다. 생각보다 문법이 직관적이고 어렵지 않았으며 의도한 대로 작동 했기 때문에 사용법을 한번 남겨 보려고 합니다. 특정 시간에 카카오톡으로 메시지 전송 어떤 작업을 자동으로 진행 해 볼까 하다가 카톡 메시지 전송을 한번 테스트 해 보았습니다. scrip..
Intro 메모리 부족 Windows 에서는 WSL 위에 도커 컨테이너 몇개 띄우고, 인텔리제이에 브라우저 탭 몇개만 켜면 메모리가 바닥나버리는 바람에 Linux 사용을 시작한지도 어느덧 1년이 다 되어갑니다. 처음 우분투로 옮겼을때는 평소 윈도우에서는 메모리를 다 잡아먹었을 만큼 어플리케이션을 띄워도 거의 절반의 메모리 만을 사용하기 때문에 굉장히 쾌적했는데 그 사이 도커 컨테이너도 몇개 늘고 프로젝트에서 사용하는 어플리케이션도 몇개 늘어났습니다. 메모리 부하가 조금만 심해졌다 하면 컴퓨터가 그대로 멈춰버리는 바람에 그때마다 Ctrl + Alt + F6 으로 터미널 모드에 들어가 돼지 프로세서들 몇개를 kill 해낸 후 Alt + F1 로 돌아오는 방식으로 해결을 하고는 있지만 여간 번거로운 일이 아닙..
Intro 10GB가 넘는 대용량의 파일 업로드 처리에서 문제가 있었습니다. 해당 파일을 제공받아 테스트를 진행 해 보았는데 이후에 다양한 파일 용량별로 처리 여부와 핸들링에 걸리는 시간을 확인해보려고 하는데, 적당한 파일을 구할 방법이 생각나지 않았습니다. https://testfiledownload.com/ 인터넷에 이런식으로 더미 파일을 제공하는 사이트가 있기는 하지만, 초당 300kb/s 정도의 처참한 속도가 나오기 때문에 테스트를 위한 파일을 다운로드로 해결 할 수는 없었습니다. 다행히도 이런 경우에는 간단한 명령어로 더미 파일을 생성 할 수 있습니다. 여러가지 명령어를 모두 정리 해 두었으니 각자 편하신 명령어를 사용 해서 더미 파일을 생성하시면 됩니다. Linux dd 첫번째로 가장 흔하게 ..
SpringShell CVE-2022-22965 JDK9+ 버전을 사용해 Spring MVC 혹은 Spring WebFlux 어플리케이션을 구동하고 있다면 데이터 바인딩을 통한 원격 코드 실행(Remote Code Execution) 취약점에 노출 될 수 있다는 소식이 2022년 3월 31일 일요일에 공개되었습니다. 스프링 프레임워크가 워낙에 광범위하게 사용되고 있으며, 해당 취약점의 심각도가 높다 보니 CVSS 스코어가 9.8점으로 꽤나 높게 나왔습니다. 지금은 보통 SpringShell 혹은 Spring4Shell 라고 불리고 있는 해당 취약점에 대해 알아보겠습니다. 영향을 받는 환경 JDK 9+ Apache Tomcat을 서블릿 컨테이너로 사용 전통적인 WAR 패키징 (스프링 부트의 jar 패키징은..