OSX에서 Servlet/JSP 개발 환경 만들기3. PostgreSQL 설치



이제 설치도 끝났고 마지막으로 JDBC가 잘 설치 됐는지를 확인하겠습니다.
- Tomcat 설치
- Eclipse 설치
- PostreSQL 설치
3. PostgreSQL 설치
왜 MySQL이 아니고 PostgreSQL 이냐고 하시는 분들은 MySQL 설치하시면 되겠습니다. 별 다른 이유는 없습니다. 그냥 어색한(?) DB를 사용하고 싶을 뿐입니다.
PostgreSQL을 설치하는 방법은 직접 소스를 다운 받아서 컴파일 하는 방법
Port를 이용해여 다운 받고 설치하는 방법
컴파일된 바이너리를 설치하는 방법이 있습니다.
여기서는 가장 쉬운 방법인 컴파일된 바이너리를 내려 받아서 설치했습니다. 그래서 다운 받는 곳과 간단한 설치 화면만 보여 드리겠습니다.
PostgreSQL 설치 바이너리는 구글에서 검색을 하면 여러(?) 곳에서 만들고 있습니다. 저는 개인적으로 인스톨러까지 갖춰져 있고 나름 관리가 잘 되는 듯한 곳인 EnterpriseDB 라는 곳에서 다운로드하고 설치하여 사용합니다. 이 페이지에서 다운로드 할 수 있습니다. 알고 계시겠지만 Mac OS X용으로 다운로드 받으세요. 제가 설치한 버전은 8.3.5-2 버전으로 다운로드한 파일은 파일명이 postgresql-8.3.5-2-osx.dmg인 이미지 파일입니다. 이 이미지를 마운트 하면 설치 파일이 있습니다. 이 파일로 PostgreSQL을 설치하면 되겠습니다.

인스톨러를 실행하면 위 그림과 같은 설치 화면이 나타납니다.
Shared memory에 대한 설정이 없다고 리부팅하라는 메시지가 나타나기도 합니다. 하라는대로 리부팅하고 다시 인스톨러를 실행하면 설치가 됩니다.
설치 프로그램에서는 특별히 설정할것이 없기 때문에속 해서 Next 버튼을 누르시면 됩니다. 단, 중간에 설치할 경로가 나타나는데, 다른 곳에 설치하시려면 변경하면 되겠습니다. PostgreSQL 설치가 끝나면 Stack Builder라는 것을 설치할 것인지 물어봅니다. 이 Stack Builder에는 다양한 PostgreSQL관련 응용/웹 프로그램, 데이터베이스 드라이버 등을 쉽게 다운로드 받고 설치할 수 있습니다. 우리의 주 목적이 JSP에서 사용하기 위해서 설치하는 것이기 때문에 JDBC가 필요합니다. 그래서 Yes를 선택해서 StackBuilder 설치를 시작합니다. 설치 화면은 아래 그림과 같고 저는 Database Drivers에서 pgJDBC v8.3.603을 체크했습니다.

Next 버튼을 클릭하면 선택한 각각의 설치 프로그램을 다운 받고, (이 경우에는 JDBC 드라이버만 다운을 받겠지요) 설치 프로그램을 시작합니다.

위 그림은 JDBC 드라이버 설치 화면입니다. Next를 클릭하면 JDBC를 설치할 경로를 설정하는 화면이 나타납니다. 여기서 Next버튼을 누르면 JDBC를 설치하게 됩니다.
이제 PostgreSQL 설치가 끝났습니다. Finder를 열고, 응용 프로그램에 보시면 PostgreSQL 8.3 폴더와 PostgreSQL 폴더가 만들어져 있습니다. PostgreSQL 폴더에는 PostgreSQL JDBC Driver 홈페이지로 가는 링크 파일만 있고 PostgreSQL 8.3 폴더에 몇가지 응용 프로그램이 설치된 것을 볼 수 있습니다.
- Application Stack Builder는 위에서 살펴본거 처럼 추가 프로그램의 설치를 도와주는 프로그램입니다. 실행하시면 위에서 Stack Builder를 수행했을 때와 동일한 과정을 다시 할 수 있습니다.
- pgAdmin III는 PostgreSQL의 GUI 클라이언트 프로그램이라고 생각하시면 됩니다. 데이터베이스를 관리 할 수도 있고 로그인할 사용자를 관리하거나 PostgreSQL 전반적인 기능을 수행할 수 있습니다.
- Restart Server, Start Server, Stop Server는 말그대로 PostgreSQL서버를 재시작하고, 시작하고, 중단 시키는 프로그램(스크립트 실행)입니다.
- SQL Shell (psql)은 터미널에서 psql을 시작하게 해 줍니다.
이를 위해서 Eclipse에서 PostgreSQL에 연결해서 간단한 쿼리문을 실행하는 간단한 테스트 프로그램을 만들어서 수행해 보겠습니다. 이 예제에서는 sangkle이라는 Database를 사용하고, 로그인 롤로 sangkle 이라는 사용자를 사용합니다.
예제 프로그램을 위한 간단한 테이블을 만들어 보겠습니다. 예제에서 사용할 테이블은 mytable이고 이름(name)과 나이(age) 컬럼을 가지고 있습니다. 그리고 예제를 위해서 세개의 레코드를 삽입합니다.
CREATE TABLE mytable (
name varchar(80) PRIMARY KEY,
age int
);
INSERT INTO mytable (name, age) VALUES ('홍길동', 34);
INSERT INTO mytable (name, age) VALUES ('영구', 44);
INSERT INTO mytable (name, age) VALUES ('맹구', 32);
이클립스를 실행하고 새로운 프로젝트를 생성합니다. JDBC 드라이버를 사용하기 위해서 프로젝트의 Build Path에 JDBC 드라이버 파일(jar)를 추가합니다. 위 JDBC 드라이버 설치 프로그램으로 설치했으면 /Library/PostgreSQL/pgJDBC에 PostgreSQL를 위한 JDBC 드라이버 파일들이 있습니다.
JDK 버전에 맞는 드라이버 파일을 추가합니다. (JDK 버전에 따른 PostgreSQL JDBC 드라이버 파일은 PostgreSQL JDBC 홈페이지에서 확인할 수 있습니다.) OS X에 기본으로 설치된 Java의 버전이 1.5이기 때문에 이 예제에서는 postgresql-8.3-603.jdbc3.jar을 선택했습니다.
그리고 이 프로젝트에 다음과 같은 클래스 하나를 추가합니다.
import java.sql.*;
public class ConnectToPostgreSQL {
public static void testPg() {
Connection conn;
try{
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException cnfe){
System.out.println("JDBC driver를 찾을 수 없습니다.");
System.exit(1);
}
try {
conn = DriverManager.getConnection
("jdbc:postgresql://localhost/sangkle", "sangkle", "비밀번호");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("Select * From mytable");
while(rs.next()) {
System.out.printf("Name : %s , Age : %d\n", rs.getString(1), rs.getInt(2));
}
rs.close();
st.close();
conn.close();
} catch (SQLException sqle) {
System.out.println("연결할 수 없습니다.");
System.out.println(sqle.toString());
System.exit(1);
}
}
public static void main(String args[]) {
ConnectToPostgreSQL.testPg();
}
}
위 코드 14행에 데이터베이스명, 사용자 ID, 비밀번호는 알맞게 수정하시기 바랍니다. 위에서 설명했지만 이 예제에서는 데이터베이스 명이 sangkle이고 사용자도 sangkle을 사용합니다.
이 코드를 수행하면 다은과 같은 결과가 나타납니다.
Name : 홍길동 , Age : 34
Name : 영구 , Age : 44
Name : 맹구 , Age : 32
















