Engineering/Backend

Engineering/Backend

[Spring] Spring 기반 MVC 웹 프로젝트 구현

Spring은 Controller, View 등을 사용하기 편하도록 MVC 패턴을 모두 구현을 해 두었다.Servlet/JSP에서는 웹 요청 처리와 통제를 Controller 역할로 지정해 주었지만, Spring MVC에서는 Controller라는 이름이 전용으로 있으므로 이를 사용한다. 🌿ControllerEx01Controller.java: jsp 연결package com.test.spring.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springfr..

Engineering/Backend

[Spring] 관점 지향 프로그래밍 AOP: Aspect Oriented Programming

🌿Spring AOPAspect Oriented Programming관점 지향 프로그래밍(AOP)은 애플리케이션의 핵심 비즈니스 로직에서 분리된 관심사(Concern)를 모듈화 하여 코드의 가독성과 유지보수성을 향상하는 기술이다.관점(관심사)은 업무 구현 시 주 업무가 아닌 나머지 보조 업무를 의미한다. 주 업무와 보조 업무게시판 글쓰기를 예로 들어 주 업무와 보조 업무를 구분해 보도록 하자.1. 기존 방식- add.doa. 글쓰기 (주 업무)b. 권한 체크 (보조 업무)기존 방식은 주 업무와 보조 업무를 같은 곳(한 파일)에서 구현한다.단점: 코드 관리가 불편하다. 어디부터 어디까지가 주 업무이고 보조 업무인지 알기 어렵다. 2. AOP 방식- add.do주 업무와 보조 업무를 물리적으로 분리시켜서 ..

Engineering/Backend

[Spring] 의존성 주입 DI: Dependency injection

DI와 AOP는 스프링의 핵심 기술이지만, 스프링의 전용 기술이 아니다.스프링이 있기 훨씬 이전에 있던 기술(아키텍처)인데, 스프링에서 도입한 게 Spring DI, Spring AOP이다.가장 핵심적인 기술인 만큼 현업 면접에서도 많이 물어보는 질문이기도 하다. 🌿Spring DIDependency Injection 디자인 패턴DI를 우리말로 하면 의존(성) 주입이라고 부른다.스프링에서 굉장히 중요한 개념인데, 스프링 내의 모든 객체를 관리할 때 사용하기 때문이다.눈에 보이는 부분, 눈에 보이지 않는 부분에서 모두 사용이 된다.DI의 정의는 프로그래밍에서 구성 요소 간의 의존 관계가 소스 내부가 아닌 외부 환경에서 정의되게 하는 디자인 패턴이다. 의존 관계com.test.spring.di01 패키지M..

Engineering/Backend

[Spring] 개발자 환경 구축: STS 3, Maven

🌿Spring 설치Spring Tools 3full distribution on Eclipse 4.19Spring Tools 3 > Spring Tool Suite 3.9.18 > spring-tool-suite-3.9.18.RELEASE-e4.19.0-win32-x86_64.ziphttps://download.springsource.com/release/STS/3.9.18.RELEASE/dist/e4.19/spring-tool-suite-3.9.18.RELEASE-e4.19.0-win32-x86_64.zip위 링크에서 압축파일을 다운로드한다.이 파일은 이클립스에서 스프링을 개발할 수 있게 배포한 Spring Tool Suite로, 줄여서 STS라고 부른다.Spring을 할 때에는 STS 3를 사용하고..

Engineering/Backend

[JSP] EL (Expression Language), JSTL (JSP Standard Tag Library)

🍁EL (Expression Language)EL과 JSTL을 사용하면 구문이 단순해지고, 가독성이 향상된다.이들은 서로 다른 기술이지만, 섞어서 사용한다.슬로건은 "JSP에서 되도록 자바를 쓰지 말자!"이다. EL 표현식의 사용${}Expression()과 EL 언어는 완전히 다른 것이지만, 이름이 같다는 점에서 목적이 같다는 것을 알 수 있다.EL 언어는 기능을 대신하기 위해서 만들어진 언어이다. EL 표현식 a: b: c: EL a: ${a} b: ${b} c: ${c} b: ${pageContext.getAttribute("b")} --%> c: ${request.getAttribute("c")} --%> 기존에 사용하던 표현식을 EL을 사용하여 바꿀 수 있다.그런데 어떤 ..

Engineering/Backend

[JSP] 내장 객체의 생명주기 (scope)

🍁생명주기 내장 객체에 저장소를 제공하는데, pageContext, request, session, application 중에 어떤 것을 사용해야 하는지 의문이 생길 수 있다. 이때 내장 객체의 생명주기를 고려하면 된다.내가 저장하고 사용할 데이터를 어느 기간 동안 사용할지에 대해 결정하고, 내장 객체가 어느 기간 동안 객체가 유지되는지에 대한 생명주기를 고려하여 일치하는 것을 찾는다. ex19_scope_1: 데이터 입력 페이지ex19_scope_2: 데이터 수신 및 처리 페이지각 방법으로 데이터를 전달하는 과정을 살펴보면서 내장 객체의 생명주기에 대해 알아보도록 하자. ex19_scope_1 실패 int a = 10; /* 자바로 페이지 이동 */ //response.sendRedirect("ex1..

Engineering/Backend

[JSP] 이미지 뷰어

🍁이미지 뷰어ex18.jsp: 이미지를 목록보기로 보여주는 뷰어 역할(메인, 목록 보기)ex18_ok.jsp: 이미지 업로드 처리ex18_del.jsp: 이미지 삭제 처리webapp에 "pic" 폴더를 생성했다. ex18.jsp() { public int compare(File o1, File o2) { return o1.getName().equals(o2.getName()); } }); */ Arrays.sort(list, (o1, o2) -> o2.getName().compareTo(o1.getName()));%> Image Viewer "> ');">× 이미지 ex18_ok.jsp ex18_del.js..

Engineering/Backend

[JSP] 파일 업로드 / 다운로드

🍁파일 업로드 / 다운로드브라우저와 웹 서버 간에 파일을 복사하는 작업을 의미한다.클라이언트의 자원을 서버 쪽으로 복사하면 파일 업로드, 서버 쪽에서 클라이언트의 자원을 복사하면 파일 다운로드라고 한다. 파일 업로드 라이브러리cos libraryhttp://www.servlets.com/cos/ Servlets.com | com.oreilly.servlet www.servlets.comcos-22.05.zip 파일을 저장한다. C:\Class\code\server\JSPTest\src\main\webapp\WEB-INF\lib다운로드한 cos.jar 파일을 프로젝트의 WEB-INF폴더의 lib폴더에 저장한다. 이렇게 하면 톰캣이 대신 참조를 해 준다.그리고 업로드한 파일을 저장할 전용 폴더를 미리 만들..

Isaac S. Lee
'Engineering/Backend' 카테고리의 글 목록 (5 Page)