스프링부트에서는 war 대신 jar 사용 프로젝트를 생성하면서 디펜던시 미리 생성 가능 스프링부트는 기본 MVC 프로젝트기때문에 Spring Web을 선택해주어야 한다. (톰캣을 매번 실행안해도 됨. 자동 갱신? 됨) 설정 파일 확장자가 스프링에선 xml이었다면 스프링부트에서는 properties properties 파일 : key-value로 값을 설정하는 파일 static 폴더 : 정적자원 즉, 이미지, css, js파일 등 templates 폴더 : view (html파일) src/test/java : 테스트를 위한 테스트기반 코드 작성. (스프링부트에서는 테스트기반 코드작성을 많이 한다.) 2. Run 테스트 스프링부트는 웹 애플리케이션이지만 자바 애플리케이션처럼 실행함 실행하려고 하니 데이터베이..
1. Spring Boot란? Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". 기존 Spring Framework를 보다 가볍고 편리하게 개발 할 수 있는 웹 애플리케이션 개발에 최적화 된 프레임워크 복잡한 Spring 설정을 자동화하고 내장 WAS를 통해 단독 웹 애플리케이션으로 실행 Spring5 버전 이후로 Spring MVC 는 Spring Boot로 대체 2. Thymeleaf Thymeleaf is a modern server-side Java template engine for both web and standalone environ..
1. 데이터 영속성(Persistence) 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 영속성이 없는 데이터는 단지 메모리에만 존재하기 때문에 프로그램을 종료하면 모두 소멸 메모리상의 데이터를 파일시스템, 데이터베이스 등을 활용해서 영구적으로 저장하여 영속성 부여 데이터를 데이터베이스에 저장하는 방법으로는 JDBC, Persistence Framework 기술을 활용 Spring MVC에서 Persistence Layer는 데이터에 영속성을 부여해주는 계층 2. ORM Object Relational Mapping 객체와 데이터베이스의 테이블을 자동으로 매핑(연결)해주는 기술 ORM의 장점은 비즈니스 로직에 더 집중하고 특정 DBMS에 대한 종속성을 줄이는 효과 ORM만으로 완벽한..
1. JDBC란? (Java JDBC 프로그래밍 정리 링크) (Java JDBC 실습) (JSP JDBC 실습) JDBC는 Java의 데이터베이스 Access 기술 Entity 클래스와 Annotation을 이용하는 최신 ORM 기술도 내부적으로 JDBC를 이용 간단한 SQL을 실행 할 때도 중복된 코드가 반복적으로 사용되는 Low level 기술로 인식 2. Data Access 계층 Data Access 계층은 DAO 패턴을 적용, 비즈니스 로직과 데이터 액세스 로직을 분리하는 것이 원칙 (Service와 DAO) DataSource는 DB 커넥션 정보를 갖는 객체로 DB Connection Pool 기능 제공 Spring Data는 데이터 저장소의 특수성을 유지하면서 데이터 접근을 위한 친숙하고 일..
1. MVC 개요 MVC(Model-View-Controller) : Business와 Presentation을 분리해 효율적인 애플리케이션 개발을 위한 소프트웨어 아키텍처 (링크) Controller : 사용자의 요청과 Model과 View 사이에서 상호 작용을 처리하는 컴포넌트 Model : 애플리케이션의 Business 처리 및 데이터 처리를 위한 컴포넌트 View는 모델이 처리한 결과를 사용자에게 출력할 화면을 처리하는 컴포넌트 2. Spring MVC Spring MVC는 3-tier 방식으로 구성 독립적으로 각 계층별 역할을 구분해 설계하기때문에 유지보수와 확장성 확보 3. Front Controller 클라이언트가 보낸 요청을 받아서 공통적인 작업을 먼저 수행 적절한 세부 Controller..
1. 핵심기능과 부가기능 업무(Biz) 로직은 핵심 기능(Core Concerns)과 부가 기능(Cross-cutting Concerns) 으로 구성 핵심 기능 : 사용자가 구현하는 핵심 비즈니스 로직 부가 기능 : 핵심 기능을 실행하기 위해서 수행하는 부가적인 기능으로 데이터베이스 연결, 로깅, 파일 입출력 등 2. AOP 개요 OOP는 객체지향 프로그래밍, AOP는 관점지향 프로그래밍(Aspect Oriented Programming) 서로 배타적인 관계 X OOP 안에 AOP가 포함되는. 객체지향을 좀 더 완전하게 할 수 있는 기법이라고 할 수 있음. OOP로 독립적으로 분리하기 어려운 부가기능 로직을 모듈화하는 방식 핵심관심과 전체에 적용되는 공통관심(횡단관심)을 분리하여 프로그래밍하는 방식 AO..
1. IoC란? IoC(Inversion of Control)는 제어의 역전이라 하고, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미하는 제어의 역전 일반적으로 사용자가 객체를 생성하는 대신 객체의 제어를 사용자가 아닌 객체의 생성과 관리를 수행하는 컨테이너(IoC Container)에 위임하는 형태 Spring은 Spring Container를 사용하며 객체의 생성, 초기화, 서비스, 소멸에 대한 생명주기를 관리 Inversion of Control(제어의 역전) 의미로 객체의 생성, 소멸 등 관리를 컨테이너에서 담당 일반적으로 컨테이너는 IoC 컨테이너 즉, Spring Container를 말함 2. DI란? DI(Dependency Injection)는 의존성 주..
Spring Boot가 아니라 전통적인 Spring 실습하기 STS는 스프링부트를 위한 툴이라 바로 스프링 프로젝트를 생성할 순 없고, 아래의 네 단계를 통해 설정할 수 있다. 1. Dynamic Web Project 생성 Dynamic Web Project를 먼저 생성 후, 2. Maven Project로 Convert하기 프로젝트 우클릭 - Configure - Convert to Maven Project 메이븐 프로젝트로 컨버팅해준다. 3. Spring Project Nature 추가 4. Spring Namespace Support 설정 프로젝트 우클릭 - Properties - Spring의 Namespace Support - Enable project specific settings 체크 후 ..