Chrome 브라우저 업로드 / 다운로드 속도 제한 걸기

Intro 웹 애플리케이션의 파일 업로드와 다운로드 기능을 구현하는 과정에서 테스트를 하다 보면 꽤나 당황스러울 때가 많습니다. 웹 브라우저를 사용하고 있기는 하지만, 사실 브라우저를 통해 업로드 되는 파일은 네트워크 망을 전혀 타지 않고 디스크 내부에서만 COPY 행위가 일어나기 때문입니다. 이때의 속도는, 인터넷 속도에 영향을 받지 않고 디스크의 읽기/쓰기 속도를 따라 가기 때문에 일반적으로 상상하기 어려운 300 MB/s 가 나오곤 합니다. 요즘에는 보통 기가 인터넷을 쓰기 때문에 1Gbps 가 흔한데 300 MB/s가 대수냐 싶을 수도 있지만, 1MB/s == 8Mbps/s 이기 때문에 (bit와 Byte의 표기 차이) 300 MB/s 는 결국 2.4Gbps 의 속도인 것입니다. 물론 여전히 흔하..

Development/Develop Tools 2022.06.17
The getKey method should only be used when a single key is returned

Intro JDBC의 KeyHolder를 사용 하던 중 위와 같은 에러를 만났습니다. 에러 전문은 아래와 같습니다. org.springframework.dao.InvalidDataAccessApiUsageException: The getKey method should only be used when a single key is returned. The current key entry contains multiple keys: [{id=13, item_name=M2Air, price=1690000, quantity=12}] keyHolder.getKey() 를 했을때 하나의 키가 반환 되어야 하지만 여러개의 키가 반환 되어 발생한 에러라고 메시지에 쓰여 있습니다. 상황 NamedParameterJdbcTe..

Development/Daily Error 2022.06.16
NGINX 대용량 파일 업로드 502 응답

Intro 대용량의 파일 업로드를 시도 할 때, 특정 용량을 넘어가면 업로드가 되지 않고 502 응답이 오는 문제가 있었습니다. 로컬 개발환경에서는 아무 문제 없지만 운영 및 개발 서버에서 문제가 재현 되었습니다. 300MB 업로드 요청시 응답 시간 정보 일단 20MB, 100MB, 300MB, 1000MB 크기의 더미 파일을 각각 준비 해두고 더미 파일 생성 방법은 아래의 링크를 참고 해 주세요 Linux) 대용량의 더미 파일 생성하기 업로드 테스트를 진행 해 본 결과 300MB 까지는 문제 없이 업로드가 되었으나, 1000MB 파일을 업로드 하려고 하면 자꾸 NginX에서 502 응답을 보내고 있었습니다. 원인 저의 경우에 Nginx 설정 값이 원인 이었습니다. nginx.conf 파일을 확인 해 보..

Development/Daily Error 2022.06.15
Git) 서브모듈 추가 및 제거

Intro A 라는 프로젝트 아래에 B 라는 서브 모듈이 필요 하게 되었습니다. 이미 B 프로젝트는 C 프로젝트를 서브 모듈로 가지고 있는 상황이었는데, A 프로젝트에 B 프로젝트를 서브 모듈로 추가하고, 다시 삭제하는 과정을 진행 해 보도록 하겠습니다. 서브모듈 추가 git submodule add 저장소주소 서브모듈경로 로 추가 할 수 있습니다. 아래의 명령어는 메인 git 저장소의 /build 폴더에 url-to-pdf 라는 프로젝트를 url-to-pdf 라는 이름으로 서브모듈로 추가하는 예시 입니다. git submodule add git@github.com:Shane-Park/url-to-pdf.git build/url-to-pdf 이후 확인해보면 .gitmodules에 [submodule "b..

Development/Git 2022.05.31
Nojde.js Web app을 도커 이미지로 만들고 Docker Hub에 올리기

Intro Node.js로 작성한 웹 어플리케이션을 간단하게 도커 이미지로 만든 후에 해당 이미지를 도커 허브에 push 해서 어디서나 받아서 사용하는 방법을 알아 보도록 하겠습니다. 1. Node.js 웹 어플리케이션을 도커 이미지로 Node.js App 생성 일단 준비된 Node.js 웹 어플리케이션이 없다면 테스트를 위해 생성 해 줍니다. 준비된 어플리케이션이 따로 있다면 이 과정은 생략 하실 수 있습니다. Node.js 앱을 생성 할 빈 폴더를 생성 한 뒤 해당 폴더에 package.json 파일을 생성 해 줍니다. { "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "author": "First L..

Development/DevOps 2022.05.30