Spring 20

Spring (6) - Spring MVC 프로젝트 생성하기

1. Spring MVC 프로젝트 생성하기 New > Spring Legacy Project Project name을 작성하고, Spring MVC Project를 선택한 후 [Next] package는 최소 3-depth로 작성하며, 여기서 mvcproject가 앱 이름이 된다. 2. 프로젝트 환경 설정하기 pom.xml에 자신의 프로젝트에 맞는 버전으로 수정, 필요한 library추가하기 프로젝트 우클릭 > Maven > Update Project... 생성한 프로젝트 선택 > [Force Update of Snapshots/Releases] > [OK] 까지하면, 아래에 업데이트 상태를 보여준다. 되도록이면, 업데이트가 끝날 때까지 프로그램을 만지지 않는 걸 권장한다.

Programming/Spring 2022.04.27

Spring (5) - Spring MVC 패턴

1. Spring MVC란? Spring이 제공하는 기능 중, Servlet 기반의 MVC Framework가 있다. Spring MVC = 기존의 MVC + Front Controller이다. 기존의 MVC패턴에 대한 설명은 아래 글에 있다. 2022.03.27 - [웹프로그래밍/Servlet & JSP] - Servlet & JSP (3) - MVC 패턴 Servlet & JSP (3) - MVC 패턴 1. MVC 패턴이란? Model-View-Controller로 구조를 만들어 개발하는 개발 패턴이다. 이 패턴에 따라 개발하면 분업이 되어 유지보수가 쉽다고 알려진 형식들 중 하나이다. Controller가 Model과 View의 다리 역 yerinpy73.tistory.com 2. Spring MV..

Programming/Spring 2022.04.27

Spring (4) - MySQL과 연결하기

0. DB 관련 library 불러오기 아래 사이트에서 코드를 복사해서 설정파일(application.xml 또는 pom.xml)에 붙여넣고 저장한다. 1) MySQL이 제공하는 connector https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.28 2) jdbc https://mvnrepository.com/artifact/org.springframework/spring-jdbc/5.3.19 1. DB 테이블과 DTO(데이터 객체) 만들기 Workbench를 열어, 이름과 나이 정보를 담을 테이블을 만든다. DB에서 값을 읽어와서 출력하는 기능 구현이 목표라서 값을 미리 넣어준다. create database testdb; use t..

Programming/Spring 2022.04.25

Spring (3) - Container에 객체(Bean) 설정하기4 : Java

xml파일 없이, 완전한 Annotation은 Java를 통해 구현할 수 있다. 1. 등록할 객체에 Annotation 작성하기 아래 글에서 2. Annotation 작성하기 를 따라 작성하면 된다. 2022.04.23 - [웹프로그래밍/Spring] - Spring (3) - Container에 객체(Bean) 설정하기3 : Annotation Spring (3) - Container에 객체(Bean) 설정하기3 : Annotation 0. Annotation 1. Stereotype Annotation Stereotype Annotation은 Bean을 등록할 때 사용할 수 있는 annotation이다. Stereotype 적용 대상 @Controller MVC Controller에 사용 @Servi..

Programming/Spring 2022.04.23

Spring (3) - Container에 객체(Bean) 설정하기3 : Annotation

0. Annotation 1. Stereotype Annotation Stereotype Annotation은 Bean을 등록할 때 사용할 수 있는 annotation이다. Stereotype 적용 대상 @Controller MVC Controller에 사용 @Service Service 계층 @Repository DB에 접근하는 계층 ex) DAO @Component 위의 계층에 속하지 않은 경우 ex) DTO 등 2. 의존 관계 설정 Annotation Annotation 설명 @Autowired Spring에서만 사용 가능 멤버 변수, setter, constructor, 일반 method에 사용 가능하며 타입에 맞춰서 연결함 예시 => 2022.04.20 - [웹프로그래밍/Spring] - Spr..

Programming/Spring 2022.04.23

Spring (3) - Container에 객체(Bean) 설정하기2 : XML

1. 객체(Bean) 등록할 XML파일 생성하기 src 우클릭 > [New] > [Spring Bean Configuration File] 파일 이름은 보통 application.xml을 사용한다. [Next] > beans 선택 > [Finish] 2. Container에 등록할 객체 설정하기 XML에 사용하는 태그에 대한 설명은 아래 [더보기]를 클릭해서 볼 수 있다. 더보기 *XML에 사용하는 태그 설명 태그명 설명 Root tag로, 이 태그의 body안에 모든 내용을 작성한다. *xmlns = ".../beans" = 원래 로 작성해야 하는데, beans는 앞에 아무것도 안쓰는 것으로 설정하는 것이다. 따라서 으로 작성하면 된다. Spring Container가 관리할 객체 설정 name 주입 ..

Programming/Spring 2022.04.22

Spring (3) - Container에 객체(Bean) 설정하기1 : 프로젝트 생성

Container에 객체를 설정하는 방법을 살펴보기 앞서 테스트를 위한 프로젝트를 먼저 생성해야 한다. Spring Boot가 아닌 일반 Spring Project는 [Spring Legacy Project]로 만든다. 하지만, '여기서는 Web을 만들지 않아도 되기 때문에, MVC패턴이 없는 Spring Project를 썼다. 굳이 쓰지 않는 파일까지 만들지 않고 보기 편하게 하기 위함이다. 1. Java Project 생성 2. Maven Project로 전환 Spring에서 필요한 library들을 Maven으로 쉽게 받아오기 위해, 전환한다. 생성한 Java Project에 마우스 우클릭 > Configure > Conver to Maven Project > Finish (수정 필요 X) 3. p..

Programming/Spring 2022.04.22

Spring 기타(1) - 객체 간 결합도가 낮은 이유

Spring은 IoC를 통해, 객체 간의 결합도를 낮출 수 있다고 한다. 이번 글에서는 그 이유를 더 자세하게 살펴보려고 한다. 객체의 강한 결합부터 Spring에서 사용하는 약한 결합까지 차례로 작성했다. 1. 객체 간 강한 결합 클래스를 직접 호출 한계 결합된 클래스(UserServiceImpl, AdminServiceImpl)가 수정되면, HomeController도 수정해야 한다. public class HomeController{ private UserServiceImpl userService = new UserServiceImpl(); private AdminServiceImpl adminService = new AdminServiceImpl(); public void addUser(User ..

Programming/Spring 2022.04.20

Spring (2) - IoC와 Container

1. IoC(Inversion of Control)이란? 직역하면 '제어의 역행'이라는 뜻으로, 어플리케이션 코드에서 객체를 제어하지 않고 컨테이너가 제어하는 것을 말한다. 우리가 설정만 해주면, 컨테이너가 알아서 객체를 생성, 삭제, 또 의존 관계를 맺어준다는 것이다. 우리가 설정한다는 것은 "이 객체는 컨테이너 너가 관리해!"하고 알려 주는 코드를 작성하는 것을 말한다. 장점 - 객체 간의 결합도를 낮출 수 있다. (= 한 클래스를 수정해서 이와 관련된 다른 클래스도 반드시 수정해야하는 정도가 적다.) 2022.04.20 - [웹프로그래밍/Spring] - Spring 기타(1) - 객체 간 결합도가 낮은 이유 Spring 기타(1) - 객체 간 결합도가 낮은 이유 Spring은 IoC를 통해, 객체..

Programming/Spring 2022.04.20

Spring (1) - Spring Framework란?

1. 등장 배경 웹사이트의 규모와 활용 범위가 커지면서 전보다 많은 서비스를 제공해야 했다. 결론적으로 POJO + 경량 프레임워크가 사용되게 되었다. 1) POJO (Plain Old Java Object) 특정 프레임워크나 기술에 독립적인 자바 객체 ex) 다른 프레임워크로 작동시켜도 되도록 호환성을 높임 2) 경량 프레임워크 Spring은 기존에 사용되던 EJB보다 약 10배 가벼운 프레임워크이다. 2. SpringFramework의 핵심 기능 1. POJO (Plain Old Java Object) 특정 프레임워크나 기술에 독립적인 일반 자바 객체 2. PSA (Portable Service Abstraction) 추상화를 통해 Low Level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분..

Programming/Spring 2022.04.15