전체 글에 해당하는 글 293

  1. MyBatis : 기초 2022.07.29

    MyBatis는 태그 형태의 코드로 간단하게 데이터베이스와 연결해 주도록 돕는 라이브러리이다! 사용해 보자. https://github.com/mybatis/mybatis-3/releases 위 링크에서 zip파일 다운로드 zip파일의 압축을 풀고 파일 내의 모든 jar파일을 프로젝트 lib에 복사해 준다. Eclipse의 상위 탭에서 "Help > Eclipse MarketPlace" → MyBatis 검색 및 설치 일반 xml파일로 Config.xml 을 만들고, MyBatis XML Mapper 파일로 board-mapper.xml을 만든다. Config.xml은 데이터베이스와 연결하고 어떤 값을 어떻게 가져올 것인지 설정하는 파일, board-mapper.xml은 실행할 쿼리 문장을 저장하는 곳이..


  2. MVC(2) 2022.07.28

    이제 TYPE 어노테이션뿐만 아니라 METHOD 어노테이션까지 추가해서, DAO 까지 만들어보자. 예시로 Model은 하나만 만들 것이기 때문에 xml이나 Interface 등은 사용하지 않는다. 우선 어노테이션을 만들어 준다! 메모리를 할당할 클래스는 @Controller 로 구분하고, 메서드는 @RequestMapping으로 구분할 것이다. Controller.java (Annotation) package controller; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Retention; imp..


  3. MVC (1) 2022.07.27

    MVC 구조? 참고 Model, View, Controller 로 이루어진 디자인 패턴이다. Model : 데이터와 비즈니스 로직을 관리 (=앱이 포함해야할 데이터가 무엇인지를 정의) View : 레이아웃과 화면을 처리 (=앱의 데이터를 보여주는 방식을 정의) Controller : 명령을 모델과 뷰 부분으로 전송 (=앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함) 왜 사용하는가? java와 HTML을 분리 → 확장성과 재사용성을 확보해서 유지보수를 용이하게 하기 위해 사용한다. JSP는 절차적언어 → 재사용이 안된다. = model1 M(Java)V(JSP)C(Servlet)→ 객체 → 재사용성이 높음 = model2 간단하게 말해서, 유저의 요청을 Control..


  4. JSP 실습 : 묻고 답하기 게시판 만들기 2022.07.26

    지금까지 만들어 왔던 게시판에 답글 기능을 추가해 볼 것이다. 복잡하지만 어떻게든 된다! 차근차근 흐름을 익혀 보자. 그 전에, 답글 게시판의 매커니즘에 대해 먼저 알아보자. 우선 아래와 같이 데이터테이블을 생성한다. group_id, group_step, group_tab, root, depth가 답글 기능을 구현하는 데에 사용되는 변수이다. 새로운 게시글과 답글, 삭제, 수정 등에 있어 이 변수들을 적절히 지정해 주어야 한다! 변수 역할 group_id 게시글 묶음마다 고유하게 부여된다. 어떤 게시글에 대한 답글인지 구분하는 역할을 한다. group_step 답글의 대상이 되는 게시글의 몇 번째 아래에 배치될 지 결정한다. group_tab 게시글 아래에 달린 답글의 제목 앞에 공백을 얼마나 띄울 지..


  5. EL/JSTL 2022.07.25

    https://mvnrepository.com/artifact/javax.servlet/jstl/1.2 위 링크에서 jar파일을 다운로드받아 lib폴더에 추가해 주어야 사용할 수 있다! EL / JSTL EL(Expression Language : 표현식) 화면에 데이터 출력할 때 대신 ${..}을 사용한다. JSTL(JSP Standard Tag Library) : 제어문, 변수 선언, 메서드, 화면 이동에 이용된다. 대신 사용한다. 즉, 안에 들어가는 코드는 JSTL로 대체할 수 있고, 안에 들어가는 코드는 EL로 대체할 수 있다. *MVC구조, Spring, Spring-Boot에서 많이 사용된다. Java와 HTML을 분리 → MV Java와 HTML을 분리하고 연결 → MVC 프로그램을 태그형으..


  6. DBCP(DataBase Connection Pool) 2022.07.22

    데이터베이스를 연동하고, 쿼리를 날려서, 결과를 가져오는 과정은 전체 처리 시간 중에서 꽤 시간을 많이 소요한다. 즉, 효율적으로 데이터베이스와 연결하는 것이 빠른 처리에 영향을 많이 준다! 데이터베이스에 연결하는 Connection은 객체 = 새롭게 만들어질 때 시스템의 자원을 요구한다. 메모리에 객체를 할당하고, 객체가 사용할 여러 자원들에 대한 초기화 작업을 거친다. 그리고 객체 사용이 끝나면 객체를 다시 회수해야 한다. → 품이 많이 듭니다! 더군다나 기존의 JDBC는 Connection을 생성한 후 바로 해제되지 않아 메모리 누수가 발생한다. 그렇게 데이터베이스에 연결을 많이 반복할수록 서버에 부하가 가고, 쉽게 서버가 다운된다. → Connection 생성을 제한하고 재사용할 수 있도록 해 주..


  7. JSP : 내장 객체 / session 2022.07.21

    session : javax.servlet.http.HttpSession HTTP 프로토콜은 클라이언트와 서버 간의 상태에 대한 보존 없이, 매번 새로운 연결을 하고 요청에 대한 응답을 서버가 전송하고 나면 모든 연결이 끊어진다. 연결이 끊어지면 클라이언트의 정보도 모두 사라진다. → 이런 정보를 보존하기 위해서 세션을 사용한다. 즉, 서버가 클라이언트의 정보를 갖고 있는 상태를 '세션'이라고 한다. 쿠키는 브라우저에 저장되지만 세션은 서버에 저장된다. *클라이언트에 저장된 쿠키는 열어볼 수 있기 때문에 보안이 중요한 정보는 쿠키에 저장하지 않는다. 저장되는 내용은 프로그램 종료(로그아웃, 브라우저 종료 등)시까지 유지된다. → id, name, 장바구니 목록..등이 저장된다. (ex) 장바구니는 임시로..


  8. jspBean 2022.07.21

    Bean = 데이터를 모아서 한번에 전송/출력하는 것을 의미한다. Spring에서는 VO:Value Object, MyBatis에서는 DTO:Data Transfer Object, JPA에서는 Entity... 만든 업체에 따라 데이터 모으는 방법은 같지만 이름만 다르다! 특히 jspBeans는.. JSP 페이지가 복잡한 자바 코드로 구성되는 것을 가능한 피하고, HTML 등 간단한 코드만으로 구성하도록 하기 위해서 사용한다. Bean을 사용하기 위해서는 우선 Bean 클래스를 작성해 주어야 하는데, 이 때 일정한 규칙이 있다. > 1. 정보를 저장하는 변수는 모두 private으로 선언한다. > 2. private으로 선언된 변수의 getter/setter를 만든다. > 3. getter/setter는..


  9. JSP : 내장 객체 / application + cookie 2022.07.20

    application : javax.servlet.ServletContext Servlet 또는 어플리케이션 외부 환경 정보(=Context)를 나타내는 내장 객체. 어플리케이션이 실행되는 서버의 정보와 서버 측 자원에 대한 정보를 얻을 수 있다. 또한 어플리케이션이 실행되는 동안 발생할 수 있는 이벤트의 로그 또한 제공한다. 간단히 말해, 서버의 이름, 버전, 로그파일, 실제 경로 등의 서버 정보를 담고 있다. application 객체에는 프로젝트에 있는 모든 JSP에서 접근이 가능하다. 즉, 프로젝트가 공유하는 데이터가 있다면 application에 들어가서 처리가 가능하다. request 객체의 경우 jsp 페이지마다 따로 갖고있기 때문에, B페이지에서 A페이지의 값을 사용하려면 get/post ..


  10. JSP : 액션 태그 2022.07.19

    jsp 액션 태그 액션 태그는 JSP 문법에 속하는 태그이다. 어떤 동작, 또는 액션이 일어나는 시점에 페이지와 페이지 사이를 제어한다. 와 같은 형태로 구성되어 있다. xml태그로 되어있기 때문에 반드시 지정된 태그만 사용할 수 있다. 마찬가지로 속성도 지정된 것만 사용이 가능하다. 대소문자 구분도 한다. 속성값을 사용할 때 반드시 따옴표("")를 써야 한다. 열고 닫는 태그가 동일하다.Empty태그를 사용할 수 있다. (= 이런식으로 닫는 태그를 따로 쓰지 않는 것) ***JSP페이지 내의 자바 코드를 최대한 제거하기 위해 사용한다. , , 등을 제거하여 Front와 Back을 분리해서 더 효율적인 코드를 만들기 위해! 자주 사용되는 태그 : 객체 메모리 할당