반응형

하단 링크 참고

 

[Spring] IntelliJ에서 Spring 개발하기 - quick start

Eclipse에서 spring framework를 이용한 웹 개발을 할 때는 STS(Spring Tool Suite)의 도움을 받는 것이 일반적이다. 하지만 IntelliJ에서는 그런 기능이 존재하지 않는다. 원래 Spring framework는 STS의 도움 없..

glow153.tistory.com

 

반응형
반응형

SRP(Sigle Responsibility Principle) - 단일책임의 원칙

: 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는 데에 집중되어 있어야 한다는 원칙으로 이는 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 함을 의미합니다.

 

OCP(Open Close Principle) - 개방폐쇄의 원칙

: 버틀란트 메이어 박사가 1998년 객체지향 소프트웨어 설계 라는 책에서 정의한 내용으로 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원리입니다. 이것은 변경을 위한 비용은 가능한 줄이고 확장을 위한 비용은 가능한 극대화 해야 한다는 의미로 요구사항 변경이나 추가사항이 발생하더라도 기존 구성요소는 수정이 일어나지 말아야 하며 기존 구성요소를 쉽게 확장해서 재사용할 수 있어야 한다는 의미입니다.

 

LSP(The Liskov Substitution Principle) - 리스코브 치환의 원칙

: 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다는 원칙으로 서브 타입은 기반 타입이 약속한 규약을 지켜야 한다는 의미입니다. 상속은 구현 상속이든 인터페이스 상속이든 궁극적으로는 다형성을 통한 확장성 획득을 목표로 합니다. 다형성과 확장성을 극대화하려면 하위 클래스를 사용하는 것보다 상위 클래스를 사용하는 것이 더 좋습니다.

 

ISP(Interface Segregation Principle) - 인터페이스 분리의 원칙

: 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙입니다. 즉, 어떤 클래스가 다른 클래스에 종속될 때 가능한 최소한의 인터페이스만을 사용해야 합니다. 

 

DIP(Dependency Inversion Principle) - 의존성 역전의 원칙

: 의존 관계의 역전이란 구조적인 디자인에서 발생하던 하위 레벨 모듈의 변경이 상위 레벨 모듈의 변경을 요구하는 위계 관계를 끊는 의미의 역전입니다. 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙입니다.

반응형
반응형

우선, 스프링 부트에서 jsp를 사용하기 전에 알아야 할 것은 스프링 부트는 jsp를 공식적으로 지원하지 않고 권장하지도 않는다는 것입니다. jsp를 사용하게 되면 jar 패키징이 안 되어 war로만 패키징 할 수 있기 때문에 이 점을 주의해야 합니다. * 정확하게 말하면 jar로 패키징은 가능하지만 jar로 패키징 시 jsp 파일은 실행되지 않습니다.

 

1) build.gradle의 dependencies 사이에 jsp와 jstl이 사용 가능하도록 의존성을 추가합니다.

implementation 'javax.servlet:jstl'
implementation "org.apache.tomcat.embed:tomcat-embed-jasper"

 

2) application.properties에 jsp 관련 설정을 추가합니다.

spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

3) src/main 밑에 webapp/WEB-INF 디렉토리를 추가합니다.

 

4) 3에서 만든 경로 밑에 jsp 파일을 생성하면 controller에서 return 가능합니다.

반응형
반응형

 

기본적으로 사용되는 dependency만 작성했습니다.

 

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${springframework.version}</version>
        </dependency>
  
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        
        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        
        <!-- C3PO -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>${c3po.version}</version>
        </dependency>
        
        <!-- Hibernate Validator -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>${hibernate.validator}</version>
        </dependency>
        
        <!-- JSTL Dependency -->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>javax.servlet.jsp.jstl-api</artifactId>
            <version>${jstl.version}</version>
        </dependency>
        
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>${tld.version}</version>
        </dependency>
        
        <!-- Servlet Dependency -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${servlets.version}</version>
            <scope>provided</scope>
        </dependency>
 
        <!-- JSP Dependency -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>${jsp.version}</version>
            <scope>provided</scope>
        </dependency>
        
        <!-- MySQL -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.connector.version}</version>
        </dependency>
        
        <!-- Add Jackson for JSON converters -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.databind.version}</version>
        </dependency>
        
        <!-- junit Dependency -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
반응형

+ Recent posts