Java 관련

    [Spring] Hello, Spring! (스프링 프로젝트 실행)

    [Spring] Hello, Spring! (스프링 프로젝트 실행)

    이클립스를 이용해서 Maven Project를 먼저 생성 후 부터 진행하겠습니다. pom.xml에 spring-context 모듈을 사용하겠습니다. 4.0.0 spring4 testProject 0.0.1-SNAPSHOT org.springframework spring-context 5.3.15 maven-compiler-plugin 3.1 1.8 1.8 utf-8 해당 클래스를 이클립스에 만들고 코드를 작성해보겠습니다. 실행시키면 이렇게 잘 출력이됩니다. 스프링은 원래 모듈을 가져와서 사용하는데 기본적으로 자바를 기반으로 만들었기 때문에 순수 자바코드도 잘 실행이 됩니다. 프로젝트의 구조를 다시한번 봤을때 resources안에 있는것은 직접적인 기능을 구현하는 것이 아닌 도움을 주는 역할의 파일들을 모..

    [Spring] Maven을 이용한 스프링 프로젝트 생성

    [Spring] Maven을 이용한 스프링 프로젝트 생성

    저는 먼저 이클립스를 사용해서 프로젝트를 생성해볼건데요. 새로운 프로젝트를 생성하기위해 new - project - Maven Project를 클릭해줍니다. 스프링 프로젝트는 Maven Project가 되겠습니다. Create a simple project (skip archetype selection)을 체크해주고 Use default Workspace location은 원래 체크가 되어있습니다. 이것도 마찬가지로 체크해주세요. 그다음으로 넘어가면 이런 모습의 모달창이 나왔을 것입니다. 먼저 Group Id는 간단하게 말하면 내가 지금 사용하고 있는 프로젝트를 감싸고 있는 큰 프로젝트가 있을수도 있습니다. 지하철로 예를들자면 1호선 프로젝트가 있을수도있지만 서울 메트로라는 전체적인 프로젝트가 있을수도 ..

    [JSP & Servlet] Connection Pool

    [JSP & Servlet] Connection Pool

    풀이라고 뭔가가 담겨져 있는 것을 의미하는데 하면 커넥션 풀은 데이터베이스와 연결하는 것들이 담겨있는 곳이라고 생각할수 있습니다. 브라우저가 웹서버로 요청을하면 웹서버는 필요에 따라서 데이터베이스에 Access하여 데이터를 가공하여 응답하게됩니다. 하지만 이러한 방식은 단점이 존재합니다. 웹서버는 데이터베이스가 필요할때마다 데이터베이스에 매우 많은 접속을 하게 됩니다. 그러면 DB를 연결하고 핸들리하고 Close하는 과정에서 자원을 너무 많이 사용하게 되고 효율적으로 사용할수 없겠죠. 이러한 단점을 보완하기 위해 Connection객체를 미리 만들어놓고 웹서버가 데이터베이스에 접근을 할때 만들어 놓은 객체를 사용하는 것이죠. 커넥션풀은 그럼 어디에 만들어 놓을까요?? 톰켓 컨테이너에 만들어놓고 필요할때마..

    [JSP & Servlet] DAO와 DTO

    [JSP & Servlet] DAO와 DTO

    DAO는 Data Access Object의 약자이고 DTO는 Data Transfer Object의 약자입니다. 둘다 객체라고 할수 있습니다. 브라우저를 통해서 웹서버쪽으로 요청을 하게됩니다. 요청을 하면 웹서버는 데이터베이스가 필요한 경우 데이터베이스에 접근하여 데이터베이스에서 쿼리를 수행하고 결과값을 받아서 웹서버에서 가공을 한후에 다시 브라우저로 응답하게됩니다. 그런데 웹서버는 데이터베이스로 접속하는 기능 말고도 많은 기능을 합니다. 그중에서 데이터베이스로 접근하여 통신하는 기능을 오브젝트로 따로 만들어 둔 객체가 DAO객체입니다. 데이터베이스에서 관리하는 데이터와 자바에서 관리하는 데이터의 형식은 분명 다를 것입니다. 자바에서는 int와 같은 타입으로 숫자를 관리하지만 데이터베이스에서는 numb..

    [JSP & Servlet] JDBC

    [JSP & Servlet] JDBC

    JDBC란 Java DataBase Connectivity를 의미합니다! 즉 DataBase의 쿼리를 자바와 연결시키는 것인데요. 저는 이번에 JDBC를 위해 Oracle을 사용할 예정입니다! JSP이건 Servlet이건 자바를 이용하게됩니다. 이런 자바와 데이터베이스의 중간에서 브릿지 역할을 해주는것이 JDBC입니다. JDBC에서 제공해주는 API를 이용해서 자바언에에서 데이터베이스에 접근하여 데이터베이스를 관리하게 됩니다. 저는 지금 이클립스를 이용해서 코딩을 하고 있는데 이런 API를 이용하기 위해서는 이클립스에 오라클 라이브러리를 이클립스에 복사해야합니다. window - Preferences에 들어가서 Classpath Variables를 보면 우리가 실질적으로 쓰고있는 JRE라이브러리를 사용하..

    [JSP & Servlet] filter를 통한 한글처리

    [JSP & Servlet] filter를 통한 한글처리

    앞서 post방식과 get방식에서의 한글처리는 코드의 중복도 많아질 뿐더러 효율이 그다지 좋지 않은 코딩방법이라고 할수있습니다. 그러면 어떤 방법으로 코딩을하면 좀더 효율적인 방법일까요?? filter를 이용하는 방법이 있습니다. 필터라는 것은 뭔가를 걸러낸다는 의미이죠. 필터에 인코딩을 넣어주게 되면 통신을 할때 Filter가 한번 걸러서 데이터를 전송을 하게 되는데 데이터가 요청되고 응답될때 인코딩되어 전송이 될수 있겠죠. 필터는 인터페이스 이기 때문에 클래스를 만들어서 구현을 해야합니다. doFilter부분이 가장 중요하다고 할수있습니다. package com.servlet.filter; import java.io.IOException; import javax.servlet.Filter; impor..

    [JSP & Servlet] JSP Servlet의 한글처리

    [JSP & Servlet] JSP Servlet의 한글처리

    프로그래밍을 하면 대부분이 영어로 처리가 되어있습니다. 그럼에도 한글을 사용해야할수는 있어야되는데요. 영어는 기본적으로 1byte지만 한글은 기본적으로 2byte입니다. 그렇기 때문에 한글을 입력하면 브라우저에서 한글이 깨지거나 오류가 생기는 경우가 많은데요. 이러한 문제를 해결해주기위해 한글처리를 해줄 필요가 있습니다. 한글이 깨지지 않도록 하는 처리에서도 get방식과 post 방식으로 나뉘게 됩니다. post방식의 경우 서블리셍 request.setCharacterEncoding("UTF-8"); 을 함으로서 처리할수있고 get방식의 경우 server.xml에 을 추가하는 방식이 있습니다. post방식의 경우 해당하는 서블릿 마다 코드를 작성해서 처리를 해주어야하지만 get방식은 server.xml에..

    [JSP & Servlet] Session

    [JSP & Servlet] Session

    cookie(쿠키)가 클라이언트에 연결 정보를 저장하는 것이라면 session(세션)은 서버에 연결정보를 저장하는 것을 의미합니다. http프로토콜의 단점으로 클라이언트가 서버에 요청을하고 서버가 응답을 하면 연결을 해제합니다. 이렇게 연결을 해제해버리면 로그인정보들이 다 날라갈수 있기 때문에 그 연결정보를 유지시켜주기위해 쿠키를 사용하기도 했습니다. 하지만 쿠키는 보안에 취약할수가 있는데 세션은 서버에 정보를 저장하기 때문에 쿠키에 비해 보안에 좋다고 말할수 있겠습니다. 세션을 구현하는 방법은 세션이 null인지 아닌지 확인을 하게 되고 null이라면 로그인을 유도하고 null이 아니라면 로그인 정보를 출력하게됩니다. 로그아웃을 하게 되면 서버에 저장된 정보를 지우는 역할을 하게되는데 session객체..

    [JSP & Servlet] Cookie

    [JSP & Servlet] Cookie

    쿠키(cookie)는 우리가 일상 생활에서 과자인 쿠키와 비슷합니다. 과자인 쿠키를 먹다보면 흘리게 되는 경우가 대부분입니다. 쿠키를 먹은 흔적을 남긴다고도 할 수 있는데 프로그래밍에서도 쿠키는 흔적을 남기는 것입니다. 서버와 클라이언트가 연결을 시도한 흔적을 남겼다가 나중에는 흔적을 가지고 접속을 했었는지 아닌지를 구분 할 수 있습니다. 우리가 사용하는 프로토콜은 http프로토콜입니다. http 프로토콜은 특징이 있습니다. 브라우저가 요청하고 서버가 응답을 하면서 연결을 하게 됩니다. 브라우저가 데이터를 요청하면 서버는 가공을 하게 되는데 가공을 하고나서 응답을 하게 되겠지요. 한번 요청을하고 응답을 하면 클라이언트와 서버간의 연결을 해제해버립니다. 하나의 서버에 수많은 클라이언트가 있기 때문에 모든 ..

    [JSP & Servlet] Servlet 데이터 공유

    [JSP & Servlet] Servlet 데이터 공유

    1. Servlet Parameter 서블릿 파라미터는 web.xml에 init param 서블릿이 초기화 될때 파라미터를 만들어주고 그것을 Servlet에서 서블릿이 만들어 질때 getInitParamater() 메서드로 불러와서 사용을 하는 것입니다. web.xml에 init-param태그로 데이터를 저장한 것을 서블릿에서 config인 getServletConfig()메서드를 이용해서 가져오게 됩니다. package com.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax...