Intro 웹 애플리케이션의 파일 업로드와 다운로드 기능을 구현하는 과정에서 테스트를 하다 보면 꽤나 당황스러울 때가 많습니다. 웹 브라우저를 사용하고 있기는 하지만, 사실 브라우저를 통해 업로드 되는 파일은 네트워크 망을 전혀 타지 않고 디스크 내부에서만 COPY 행위가 일어나기 때문입니다. 이때의 속도는, 인터넷 속도에 영향을 받지 않고 디스크의 읽기/쓰기 속도를 따라 가기 때문에 일반적으로 상상하기 어려운 300 MB/s 가 나오곤 합니다. 요즘에는 보통 기가 인터넷을 쓰기 때문에 1Gbps 가 흔한데 300 MB/s가 대수냐 싶을 수도 있지만, 1MB/s == 8Mbps/s 이기 때문에 (bit와 Byte의 표기 차이) 300 MB/s 는 결국 2.4Gbps 의 속도인 것입니다. 물론 여전히 흔하..
Development/Develop Tools 37
Intro Eclipse IDEA를 사용하며 습관처럼 Ctrl + Option(Alt) + O 키를 눌러 Optimize import 기능을 사용 하다 보면, 혼자서 진행하는 프로젝트가 아닌 이상은 각자의 IDE 환경설정 등에 따라 import 문을 모두 재 정돈 해 줍니다. 매번 커밋 할 때 마다 import 문 변경 사항이 너무 많다보니 프로젝트의 코드변경 히스토리때문에 버전관리 용량도 커지고, 변경사항을 trace 할 때에도 쓸데없는 변경 사항들이 눈에 보이다 보니 통일을 위해 이클립스와 같은 방식으로 변경해야겠다는 생각이 들었습니다. import 설정 변경 일단 Settings > Editor > Code Style > Java > imports 로 찾아 들어 가 줍니다. Scheme이 보이는데,..
Intro 지금은 해결을 했지만 대충 까만색 네모를 그려 재현을 한 모습. 인프런 영상을 듣는데, 이전에는 아무 문제가 없었는데 며칠 전 부터 크롬으로만 켜면 영상이 까만 화면만 나오며 소리만 나온다. 현재 Belkin사의 Display Link 독을 활용해 외부 모니터 3개를 맥북에 연결해 사용하고 있는데, 기억상 처음 해당 제품을 샀을때 넷플릭스 영상을 볼 때도 같은 증상이 있었던 걸로 기억한다. 곧바로 넷플릭스를 틀어봤더니 역시나 영상은 까만화면만 나오고 소리만 들리는 같은 문제가 발생중. 원인 원인이 좀 복합적이긴 한데 근본적인 원인은 DRM 이다. 넷플릭스와 인프런의 공통점을 곰곰히 생각 해 보니 콘텐츠의 불법 사용과 유출을 방어하기 위해 DRM 기술을 적용 중이라는 점 이다. DRM은 Digi..
Intro 매번 테스트 코드를 만들 때 마다 반복해서 입력하는 @Test void test() { Assertion.assertThat() } 을 오늘도 여김없이 계속 입력하다가 이건 너무나도 비효율 적이란 생각이 들었습니다. 사실 클래스 생성시 애초에 기본 틀이 자동으로 만들어지도록 플러그인을 만들까 하다가 아직 거기까진 무리고.. 이클립스를 쓸 때에 이것 저것 추가해서 하던 것 처럼 인텔리제이에서도 당연히 기능이 있겠지 하며 찾아보니 Live templates이 눈에 띄었습니다. 그래도 여전히 커스텀 플러그인에 대한 필요성이 자주 느껴져서 올해 안에는 인텔리제이 플러그인을 만들어 보는게 목표 입니다. Live templates Preferences > Editor > Live Templates에 해당..
Intro 웹 어플리케이션을 개발 하다보면, 외부 API를 사용해야 할 때가 종종 있습니다. 거기에 추가로, 드물기는 하지만 호출을 위한 API KEY가 특정 IP에 종속된 경우가 존재합니다. 그럴 경우에는 개발환경에서도 키를 하나 발급받아서 따로 사용하는게 가장 이상적이기는 하지만.. 그게 현실적으로 어려운 경우가 많습니다. API 키 발급 조건이 까다로울수록 더더욱 그렇습니다. 그럴 경우에 저는 보통 Dynamic Proxy를 활용하는 방향을 택합니다. 그러면 어플리케이션에서 외부 API를 호출 할 때에, 해당 프록시 서버의 ip 주소를 통해 요청되기 때문에 특정 IP Address에 종속되어 있는 API 키라고 해도 사용 할 수 있습니다. 자바 어플리케이션에서 프록시 서버를 통해 연결하는 방법에 대..