본문 바로가기

Backend/Spring | Spring Boot

(12)
백엔드 샘플 프로젝트 보호되어 있는 글입니다.
Spring Boot 파일 업로드 및 다운로드 파일 업로드 MultipartFile 클래스 사용 의존성 필요 없음 application.properties 파일에서 파일 최대 크기만 설정 자동으로 MultipartConfigElement 클래스를 빈으로 등록 파일명 중복되지 않도록 UUID 사용 소프트웨어 구축에 사용되는 식별자 표준 16 옥텟(128바이트)의 수 표준 형식에서 UUID는 32개의 16진수로 표현되며 총36개 문자(32개 문자와 4개의 하이픈)로 된 8-4-4-4-12라는 5개의 그룹을 하이픈으로 구분 ex) 8e1a2153-edf-344d-dddd-... 자바 UUID 클래스의 randomUUID() 메소드를 사용하여 유일한 식별자 생성 파일 업로드 / 다운로드 예제 index.jsp 추가 파일 업로드 파일 다운로드 파일 업로드 예..
스프링 부트 (Spring Boot) 스프링 부트 (Spring Boot) 스프링 프레임워크를 사용하는 프로젝트를 아주 간편하게 설정할 수 있는 스프링 프레임워크의 서브프로젝트 스프링 프레임워크 -> 톰캣 설치 등 여러 가지 복잡한 설정 필요 스프링 부트 특징 XML 기반 설정 과정 없이 간단히 프로젝트 시작 가능 메이블의 pom.xml 파일에 의존성 라이브러리의 버전을 일일이 지정하지 않아도 됨 (스프링 부트가 권장 버전 관리) 단독 실행되는 스프링 애플리케이션 구현 가능 프로젝트 환경 구축에 필요한 서버 외적인 툴 내장되어 있어서 별도 설치 필요 없음 (톰캣 내장 되어 있음) STS4 설치 스프링 부트 전용 다른 프로젝트 생성 시 추가 설치 필요 스프링 부트 프로젝트 생성 시 자동 생성되는 파일 프로젝트명Application.java @..
[예제] 상품번호 중복 체크 | 상품 검색 | 도서 관리 프로젝트 예제 1 : 상품 등록 시 상품번호 중복 체크 newProductForm.jsp : 상품등록 화면에 상품번호 입력란 옆에 [중복확인] 버튼 추가 상품 등록 상품 번호중복확인 상품명 가격 제조회사 재고 prdNocheck.js : result 결과(no_use)에 따라 alert() 출력 /** * prdNocheck.js */ $(document).ready(function(){ $('#prdNoCheckBtn').on('click', function(){ event.preventDefault(); $.ajax({ type:"post", url:"prdNoCheck", data:{"prdNo":$('#prdNo').val()}, success:function(result){ if(result=="no_u..
Spring DB 연동 (MyBatis) JDBC vs MyBatis 프로젝트 생성 : Spring MVC Project 프로젝트 이름 : spring_mvc_mybatis 패키지명 : com.spring_mvc.mybatis MyBatis를 사용한 DB 연동 연습문제 프로젝트명 : spring_mvc_mybatis_book 패키지명 : com.spring_mvc_mybatis.book
Controller와 View 사이의 데이터 전송 데이터 전송 Controller -> View 페이지 View 페이지 -> Controller (1) Controller -> View 페이지로 데이터 전송 Model ModelAndView 1. Model : 인터페이스 Model에 Attribute를 추가하기 위해 고안된 인터페이스 addAttribute() 를 통해 데이터를 key, value 형태로 model에 저장 ( model.addAttribute("key", value); ) Controller에서 Model에 데이터를 저장하고 View 이름을 return 하면, View 페이지로 Model 이 전달됨 컨트롤러에서 Model 인터페이스 객체 사용 -> Model 객체를 메소드의 파라미터로 받아서 데이터를 뷰로 전달 View 페이지(jsp)에..
Spring MVC 웹 프로젝트 스프링 웹 프로젝트 (Spring Legacy Project) 스프링 템플릿 프로젝트를 이용한 웹 프로젝트 모델2 방식 (MVC) 프로젝트 생성 시 사용 서버 및 여러 설정 필요 실제 개발 업무에서 많이 사용 스프링 프로젝트 구조 src/main/java 자바 파일(.java)이 모여있는 폴더 (백엔드 관련 소스) 이 곳에 자바 클래스 생성하여 사용 src/main/resourses 자바 클래스에서 사용하는 리소스 보관하는 폴더 자바 코드 외 모든 자원 여기에 보관 (DB 연결을 위한 자원, 의존성 주입을 위한 xml 파일 등) src/test 테스트를 위한 자바 코드와 리소스 보관 Maven Dependencies 메이븐에서 자동으로 관리해주는 라이브러리 폴더 pom.xml에 작성된 라이브러리들을 자동..
JSP 모델1/2 구조와 MVC 패턴 JSP로 구성 가능한 웹 어플리케이션의 아키텍처 모델 1 JSP 페이지 하나에서 결과의 출력 뿐만 아니라 요청에 대한 모든 로직들을 처리 모델 2 JSP는 결과의 출력만 담당 (JSP 페이지와 서블릿, 로직을 위한 클래스로 나뉘어 브라우저 요청 처리) 요청에 대한 로직 처리 - 모델 (서비스 클래스 or 자바빈) 담당 요청 결과 : 뷰(JSP)에 출력 위 과정들을 위한 모든 흐름 제어 : 컨트롤러(서블릿) 담당 => MVC 패턴을 웹 개발에 도입한 구조 (MVC 패턴과 모델 2의 형태는 완전히 같음) 모델 1이 가지는 모든 단점을 해소하였지만 구조가 복잡하여 다루기 어려움 MVC 패턴과 모델2 MVC 패턴 모델2 Model 서비스 클래스 or 자바빈 비즈니스 로직을 처리하는 모든 것들 컨트롤러로부터 특정..
AOP (Aspects Oriented Programming) AOP (Aspects Oriented Programming) 관점 지향 프로그래밍 문제를 바라보는 관점을 기준으로 프로그래밍 하는 기법 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 관심 사항을 기준으로 프로그래밍 공통 모듈을 여러 코드에 쉽게 적용 가능 AOP에서 가장 중요한 개념 : 횡단 관점의 분리 (Separation of Cross-Cutting Concern) AOP와 횡단 관점 공통 기능 : 로그 처리, 보안 처리, 트랜잭션 처리 공통 기능을 핵심 기능(비즈니스 로직)에서 분리 스프링에서의 AOP 구현 방법 (Proxy 사용) AOP 용어 Advice 종류 Weaving 방법 컴파일 시 위빙하기 별도 컴파일러를 통해 핵심 관심 사항 모듈 사이에 관점(Aspect) 형태로 만들..