자바 리스트와 맵의 성능 비교

자바(Java)는 다양한 데이터 구조를 제공하고 있다. 특히 자바 1.2부터 등장한 Collections 프레임웍에서 유용한 컬렉션 유틸리티 클래스를 많이 보유하고 있다. (컬렉션 프레임웍을 공부하려면 Oracle에서 제공하는 자바 강좌도 유용하다.) 이러한 데이터 구조를 위해 여러 앨거리듬이 사용되는데 대표적으로 해시테이블과 같은 데이터 구조 앨거리듬이나 병합(merge) 정렬 같은 정렬 앨거리듬 같은 것들이 있다.
계속 읽기…

Java와 PHP

우리나라 상용 소프트웨어 프로젝트에서 가장 많이 사용되는 언어는 Java다. 공공기관 업무용 웹사이트, 민간 상업용 웹사이트, 웹서비스 등 시스템간 연동, 뱃치성 작업 등 단순 업무 프로그램, 또한 안드로이드 모바일 앱 등에서 완전 “갑”이다.

단적으로는 Java의 캐치프레이즈인 “엔터프라이즈” 지원을 바탕으로 한 상업적 성공으로 인해 그 밖의 언어는 상대적으로 훨씬 열세를 보이고 있다. 그런데 그 와중에 민간 상업용 웹사이트, 민간 커뮤니티 웹사이트 등에서 상당한 점유율을 보이는 언어가 PHP다.

미국 등에서는 이러한 분야에서 Python, JavaScript, Ruby 등이 발군의 성과를 보여주고 있지만 우리나라 및 외국도 여전히 일부에서는 PHP가 꾸준히 힘을 발휘하고 있다.

그럼 Java는 왜 그렇게 성공한 것이고 PHP는 어떻게 꾸준히 사랑받고 있는 것일까? 이글은 그동안 내가 두 언어를 모두 접해보면서 든 개인적인 생각을 남겨보고자 한다.

계속 읽기…

프로그램적인 파일 다운로드

웹에서 파일을 다운로드하는 방식은 두 가지로 나눌 수 있다. 하나는 Apache 등의 웹서버 프로그램을 통해 디스크 상에 있는 그대로의 파일을 다운로드하는 경우와 또 하나는 Java, .NET 등의 프로그램에서, 예를 들어 DB 조회 결과를 CSV, XLS 등으로 출력하거나 임의의 파일 내용을 출력하는 방법으로 프로그램적으로 파일을 다운로드하는 경우다.

계속 읽기…