'PB.Developer/Web'가 포함된 글 4개를 찾았습니다.

  1. 2010/04/13 웹포토샵 Pixlr, 무료로 이용하는 웹용 이미지 에디터 by PB
  2. 2008/07/23 MAMP와 톰캣을 이용한 JSP와 MySQL 연결 by PB
  3. 2008/07/14 JSP에서 세션(SESSION) 사용법 by PB
  4. 2008/07/14 JSP에서 쿠키(Cookies) 사용법 by PB

회사를 다니거나 혹은 자신의 로컬 PC가 아닌 특정 공간에서 이미지 작업이 필요한 순간이 있다.
하지만 그 자리에서 라이센스도 없는데 포토샵을 사용할 수도 없고,
그림판으로 작업하기엔 뭔가 부족한 기능들이 많을 때 이용할 수 있는 웹용 포토샵 프로그램이 있다.

웹용 이미지 편집프로그램 http://www.pixlr.com/editor/
Pixlr(Web Photoshop)


바로 위의 주소에서 볼 수 있는 Pixlr이라는 웹용 이미지 편집 프로그램이다. 본 프로그램으로 로컬 하드에 있는 이미지 파일을 불러서 간단한 편집 및 효과를 줄 수 있다. 특히 Unix, Linux 등에서 작업을 할 경우에도 유용한 프로그램이다.(Gimp 깔렸으면 제외)

갑작스럽게 이미지 편집이 필요할 때, 그림판의 기능이 부족할 때 최고의 프로그램이다.

ps. 무엇보다 가입 절차 등이 전혀 없이 바로 접속해서 사용이 가능하다.


- 동일한 기능의 무료 웹 이미지 에디터

  • 네이버 포토에디터: http://s.lab.naver.com/pe/
    UI가 약간 마음에 안 들어서 잘 안 쓰지만 한국어라는 편리한 장점이 있음
     
  • 이미지 스페셜엑스: http://www.imgsfx.com/
    웹 에디터는 아니지만 이미지 자체에 대한 특정 효과(뒤집기, 목탄 등)에 대한 미리보기 기능이 제공된다. 쉽게 생각하면 이미지 효과 툴이다.
2010/04/13 13:19 2010/04/13 13:19
 MAMP의 DB를 JSP와 연결하여 사용하는 것이 맥(OSX)에서 JSP를 공부하는 중에 생긴 매우 어려운 점이었다. 하지만 막상 실제로 해결을 하고 보니 순전히 내가 JSP에 대한 구조를 잘 몰랐기 때문에 생긴 단순한 실수였다. 한마디로 바보.

구축환경



 위의 구축환경을 보면 알겠지만 매우 간단하다. MAMP는 윈도우의 AMP와 동일한 것으로 Apache+MySQL을 자동으로 설치하여 준다. 그리고 기본적으로 톰캣에는 모든 DB에 대한 JDBC가 제공되고 있지 않으므로 각 DB의 사이트에서 다운을 받으면 된다. 난 MySQL을 사용하기 때문에(MAMP) MySQL 사이트에서 다운 받았다.

  1. JDBC드라이버의 설치
    ~/ROOT/WEB-INF/lib/ 앞의 위치에 JDBC Driver.jar 파일을 복사를 해둔다. (파일명의 경우는 드라이버마다 다르다. 어디에 복사해야하는지 몰라서 하루종일 DB만 만지고 있었음)

  2. Tomcat의 재실행

  3. JSP파일을 열어본다.


 이런 간단한 방법으로 쉽게 MAMP와 톰캣을 이용하여 DB를 접근할 수 있다. DB의 관리는 MAMP에서 기본으로 제공되고 있는 phpMyAdmin을 이용하거나 다른 DB관리프로그램(CocoaSQL 등)을 이용하여도 된다.

 위의 설정이 되는지 간단한 테스트를 하여보자.

  1. pureshop 데이터베이스의 생성 (phpMyAdmin)

  2. good 테이블 생성, 컬럼 id, title, price

  3. good 테이블에 간단한 테스트 값의 입력

  4. 아래의 소스를 실행


<%@ page contentType="text/html;charset=utf-8" import="java.sql.*" %>

"http://www.w3.org/TR/html4/strict.dtd">




PureShop : DB test



Good's list


<%
String DB_URL = "jdbc:mysql://localhost/pureshop";
String DB_USER = "root";
String DB_PASSWORD = "root";

Connection db;
Statement stmt;
ResultSet rs = null;

String query = "SELECT * FROM good";

try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
db = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
stmt = db.createStatement();

rs = stmt.executeQuery(query);
%>

    <% while(rs.next()) { %>
  1. 상품ID : <%= rs.getInt("id") %> | 상품명 : <%= rs.getString("title") %> | 상품가격 : <%= rs.getDouble("price") %>

  2. <% } %>

<%
rs.close();
stmt.close();
db.close();
} catch(Exception e) { e.printStackTrace(); }
%>



실행결과




이제 JSP의 기초는 대략 알게 된 것 같다. 이제 DB를 좀 더 잘 다룰 수 있는 방법과 또 나만의 쇼핑몰을 위한 구상을 하여서 JSP를 이용한 쇼핑몰을 하나 제작해봐야겠다.
2008/07/23 15:11 2008/07/23 15:11
 세션(SESSION)이란 쿠키(Cookie)와 함께 자주 비교되면서 웹프로그래밍에서 자주 쓰이는 녀석이다. 이 녀석이 쿠키와 동일하게 비동기식의 접속인 HTTP에서 데이터를 유지해주는 기능을 한다.

 하지만 여기서 쿠키와 다른 점이 있으니 접속이 완전히 끊어졌을 때(브라우저 종료시) 데이터도 함께 사라진다. 쿠키처럼 데이터를 사용자의 컴퓨터에 저장하는 것이 아니라 그냥 날려버리는 것이다. 이와 같은 형식은 쇼핑몰에서 장바구니 기능에 유용하게 사용된다.
<%@ page contentType="text/html;charset=utf-8" %>



Cookie Counter. ver Session



Welcome to my blog


<%
// getAttribue()는 object형을 반환
// wrapper클래스의 사용이 필요.
Integer number = (Integer)session.getAttribute("counter");

if(number==null) { number = new Integer(1); }
else { number = new Integer(number.intValue()+1); }

// 세션의 저장.
session.setAttribute("counter", number);
%>

Count Today : <%= number %>





 그리고 위에서 보듯이 객체단위로 저장하기 때문에 쇼핑몰 제작시엔 각 상품의 객체가 들어갈 수 있다.

 세션은 클라이언트와 서버간의 연결 단위를 지칭하는 단어로 하나의 세션이 형성되었다는 말은 클라이언트와 서버간의 하나의 연결이 이루어졌다는 의미이다. 그리고 사용자가 브라우저로 접속한 이후 브라우저를 닫거나 다른 사이트로 이동하는 등 접속을 끊을 때까지 유지된다.
2008/07/14 14:45 2008/07/14 14:45
 간단한 카운터나 중요하지 않은 데이터를 사용자의 컴퓨터에 잠시 저장할 때 사용하기 좋은 쿠키(Cookies) 보안상의 문제로 말은 많지만 사용법은 알아두어야지!

쿠키의 읽기 / 저장


<%@ page contentType="text/html;charset=utf-8" %>



Cookie Counter



Welcome to my blog


<%
// 쿠기를 읽어온다.(배열로 반환)
Cookie[] cookies = request.getCookies();
String cookie_Value = "0";
int int_Value = 0;

for(int i=0; i if(cookies[i].getName().equals("counter")) {
cookie_Value = cookies[i].getValue();
break;
}
}

// 쿠키의 값은 문자열이기 때문에 정수형으로 변환뒤 1을 더함.
int_Value = Integer.parseInt(cookie_Value)+1;
// 쿠기의 저장을 위해서 다시 문자열로 변환.
cookie_Value = Integer.toString(int_Value);

Cookie new_Cookie = new Cookie("counter", cookie_Value);
new_Cookie.setMaxAge(5*24*60*60); // 쿠키의 보관시간 (기준 초)
response.addCookie(new_Cookie); // 쿠키의 저장.
%>

Count Today : <%= cookie_Value %>





위와 같이 쿠키는 배열형으로 반환되는 것이 포인트!

 

쿠키의 삭제


쿠키의 삭제시엔 쿠키를 저장할 때 보관기간을 0으로 하여 브라우저에서 바로 쿠키를 삭제하도록 설정.
 new_Cookie.setMaxAge(0); // 보관기간이 0이기 때문에 바로 삭제
2008/07/14 13:58 2008/07/14 13:58