전체 글 59

[Spring] MyBatis의 페이징 처리

※ 교재 [코드로 배우는 스프링 웹 프로젝트 - 구멍가게 코딩단]을 바탕으로 작성되었습니다. MyBatis는 SQL을 그대로 사용할 수 있기 때문에 인라인뷰(In-line View)를 이용하는 SQL을 작성하고 필요한 파라미터를 지정하는 방식으로 페이징 처리를 하게 됩니다. 인라인뷰는 SELECT FROM(SELECT FROM)으로 이해하면 됩니다. 페이징 처리를 할 때는 SQL을 실행할 때 몇 가지 파라미터가 필요합니다. 1. 페이지 번호(pageNum) 2. 한 페이지 당 띄울 데이터 개수(amount) 이것들을 별도의 파라미터로 전달할 수도 있겠지만, 아싸리 하나의 객체로 묶어 전달하면 확장성면에서 좋습니다. domain 패키지에 Criteria(검색 기준) 클래스를 생성합니다. @Getter //..

Backend/Spring 2024.03.05

[Spring] 의존성 주입 테스트

※ 교재 [코드로 배우는 스프링 웹 프로젝트 - 구멍가게 코딩단]을 바탕으로 작성되었습니다. 스프링의 개념과 특징들을 알아보았습니다. 그럼 이제 스프링의 가장 큰 특징인 의존성 주입 기능을 작성하고 테스트해 보겠습니다. 사용할 클래스: Restaurant.java / Chef.java * Restaurant 클래스에 Chef 클래스를 주입할 것입니다(Restaurant 클래스가 Chef 타입의 객체를 필요로 함). 왜냐하면 식당에 요리사가 있어야 장사를 할 수 있기 때문이지요. 스프링에서 의존성 주입을 구현하는 방법은 총 두 가지입니다. 1. 생성자를 이용한 주입 2. Setter 메서드를 이용한 주입 설정 방식은 주로 XML 또는 어노테이션(@)으로 처리합니다. 0. pom.xml에 라이브러리 추가 예..

Backend/Spring 2024.02.26

[Spring] 스프링의 개념과 특징 총정리

※ 본 글은 교재 [코드로 배우는 스프링 웹 프로젝트 - 구멍가게 코딩단]을 바탕으로 작성되었습니다. 프레임워크 프레임워크란 뼈대나 근간을 이루는 코드들의 묶음을 말합니다. 그렇다면 이것이 필요한 이유는 무엇일까요? 개발자 특성상, 개인의 능력 차이가 큰 직종이기 때문에 개발자 구성에 따라 프로젝트의 결과는 큰 차이를 낳는데 이 부분을 극복하기 위해 프레임워크가 필요합니다. 프로그램의 기본 흐름과 구조를 정하면 팀원들이 이 구조에 맞게 자신이 만드는 코드를 추가하여 개발하게 됩니다. 라이브러리도 마찬가지로 미리 만들어져있는 기능이기는 하지만 개발자가 그 흐름을 직접 결정합니다. 프레임워크의 장점은 구조를 미리 코드로 만들어 놓았기 때문에 이미 시작이 반입니다. 일정한 품질이 보장되는 결과물을 얻고 개발 ..

Backend/Spring 2024.02.22

[JSP] MVC 패턴을 위한 서블릿(Servlet)

서블릿(Servlet) MVC 패턴을 적용한 모델2 방식의 게시판을 제작하기 위해서 필요한 기술👉 JSP와 Servlet의 관계 https://pre-walkingdeveloper.tistory.com/93  서블릿의 개념 및 특징JSP가 나오기 전, Java로 웹 애플리케이션을 개발할 수 있도록 만든 기술이다. 서버 단에서 클라이언트의 요청을 받아 처리한 후 응답하는 역할을 한다.Servlet이 등장한 초기에는 JSP 템플릿 기술이 없었기 때문에 모든 웹 페이지의 프레젠테이션 로직도 서블릿에서 처리해야 했다. 주로 Servlet이 HTML 코드를 직접 생성하는 방식으로 View를 처리했다.java 클래스에서 HTML 코드를 작성할 수 있는지 오랜만에 자각하였다. 예를 들어, response.setCo..

Backend/JSP 2024.02.13

[JSP] EL(Expression Language)

EL(Expression Language) 표현언어 이전에는 불편하게 으로 값을 가져왔었다. 하지만 이제는 EL을 사용하여 백단의 데이터를 좀 더 간단하고 간편히 가져올 수 있다. 변수의 값을 표현식보다 편하게 출력할 수 있도록 한다. JSP의 기본 문법을 보완하는 역할을 하며 4가지 영역에 저장된 속성도 더 쉽게 읽을 수 있다.  모델 2 방식으로 웹 애플리케이션을 개발할 때 주로 사용한다. MVC를 이용한 서블릿에서 사용한다. 저장된 4가지 영역에 속성을 접근할 때 순서 JSP에서 사용하는 것이 불편하다. EL을 배우고 난 후 JSTL, 서블릿과 응용하여 좀 더 간결한 코드로 웹 구현하는 것이 목표이다. 객체 표현 방식 EL에서 객체를 표현할 때 . 이나 [ ]를 사용한다.${ param.name }..

Backend/JSP 2024.02.07

[JSP] 쿠키(Cookie)

쿠키란? 🍪 내가 만든 쿸이 클라이언트의 상태 정보를 클라이언트 PC에 저장할 수 있는 쿠키. 쿠키는 기본적으로 웹사이트가 방문자를 기억하는 수단이다. 언제 방문했는지, 어떤 페이지를 클릭했는지, 어떤 상품을 구매했는지 등 클라이언트에 대한 다양한 정보를 기록해 두었다가 이를 활용하여 사용자 맞춤 서비스, 광고, 웹 로그분석, 서비스 속도 개선 등을 할 수 있다. 상태 정보를 클라이언트에 key/value 형태로 저장했다가 다음 요청 시 저장된 쿠키를 함께 전송한다. 웹서버는 브라우저가 전송한 쿠키로부터 필요한 데이터를 읽어 올 수 있다. 쿠키 표준 제약(RFC 6265) - 3000개까지 만들 수 있다. - 쿠키 하나의 최대 크기는 4096byte이다. - 하나의 호스트나 도메인에서 최대 50개까지 만..

카테고리 없음 2024.02.01

[JSP] 내장 객체 | response, out, exception 메서드

response 요청에 대한 응답을 웹 브라우저로 보내주는 역할을 한다. 많이 사용되는 기능으로 redirect와 HTTP 헤더에 정보 추가하기가 있다. sendRedirect("주소")클라이언트의 요청을 "주소" 페이지로 보낸다.getStatus()HTTP 상태 코드를 반환한다. out 출력스트림으로 브라우저에 출력하기 위해 사용되는 객체이다. 과 EL이 훨씬 편리해서 많이 쓰지는 않는다. 하지만 스크립틀릿 안에 있는 변수를 브라우저로 출력해야 한다면 out 객체를 쓰는 것이 더 좋다.clearBuffer()버퍼를 비운다.getBufferSize()페이지에 설정된 버퍼의 크기를 가져온다.getRemaining()사용하고 남은 버퍼의 크기를 가져온다.print(내용)변수나 문자열을 브라우저에 출력한다.f..

Backend/JSP 2024.02.01

[JSP] 내장 객체 | Scope: page, request, session, application

page 영역 page 영역은 기본적으로 클라이언트 요청을 처리하는데 관여하는 jsp 페이지마다 하나씩 생성된다. 각 jsp 페이지는 page 영역을 사용하기 위한 pageContext 객체를 할당 받게 된다. pageContext 객체에 저장된 정보는 해당 페이지에서만 사용할 수 있고(동일한 페이지에서만 공유) 페이지를 벗어나면 소멸된다.include 지시어로 포함한 파일은 하나의 페이지로 통합되므로 page 영역이 공유된다.저장: pageContext.setAttribute(name, value)출력: pageContext.getAttribute(name)    request 영역 JSP에서 가장 많이 사용되는 객체이다. 브라우저가 전동한 요청 정보를 가지고 있다(정보 저장).html이나 jsp 파일..

Backend/JSP 2024.02.01

[JSP/Oracle] JSP 셋팅 순서

1. 윈도우에 jdk 11~17버전 설치(오라클 홈페이지, java) 2. 시스템 환경 변수 설정 1) 시작 우클릭 > 시스템 > 고급 시스템 설정 2) 시스템 변수 > 새로 만들기 > JAVA_HOME > jdk 설치 경로 3) path 추가 > %JAVA_HOME%bin (어디서나 javac 명령어 실행) 4) cmd > javac -version > 자바 버전 출력이 되어야 함 3. 톰캣 설치(9버전) 1) 크롬 > 톰캣 검색 > windows service installer > 9버전 다운 2) msi 버전: 설치용 3) zip: 압축 풀어 설치용 4) 설치 시 경로 변경할 것(d:\tomcat) > http/1.1 포트 변경(8000), 관리자 포트(8001) 4. 이클립스 설치 1) 크롬 > ..

Backend/JSP 2024.01.31
반응형