WEB/Spring
-
[Spring] 스프링 MVC 3-tier 구성WEB/Spring 2020. 7. 18. 16:12
Presentation Tier Business Tier Persistence Tier EX) (Spring MVC) (Spring core) (MyBatis) DB Presentation Tier(화면 계층) 화면에 보여주는 기술을 사용하는 영역 프로젝트의 성격에 맞춰 앱으로 제작하거나, 클라이언트-서버로 구성되는 경우가 있음 스프링 MVC와 JSP 등을 이용한 화면 구성이 이에 속함 Business Tier(비즈니스 계층) 순수한 비즈니스 로직을 담고 있는 영역 고객이 원하는 요구사항을 반영하는 계층이므로 중요 영역의 설계는 고객의 요구사항과 정확히 일치해야함 주로 'xxxService'와 같은 이름으로 구성, 메서드의 이름 역시 고객들이 사용하는 용어 그대로 사용 Persistence Tier(영속..
-
[Spring] 스프링의 주요 특징WEB/Spring 2020. 7. 17. 20:56
스프링의 주요 특징 POJO(Plain Old Java Object) 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP(Aspect-Oriented-Programming) 지원 편리한 MVC 구조 WAS의 종속적이지 않은 개발 환경 POJO 기반의 구성 스프링 내부에는 객체 간의 관계를 구성할 수 있는 특징을 가지고 있음 이 관계를 구성할 때 다른 프레임워크와 다르게 별도의 API 등을 사용하지 않는 POJO 구성 즉 자바 코드를 이용하여 객체를 구성하는 방식을 스프링에서 그대로 사용 가능 이는 개발자가 특정한 라이브러리나 컨테이너 기술에 종속적이지 않음을 의미 생산성에서 유리, 테스트 작업이 유연함 의존성 주입(DI)과 스프링 '의존성'이란 하나의 객체가 다른 객체 없이 제대로 된 역..
-
[Spring] Level3 REST API 구현을 위한 HATEOAS 적용WEB/Spring 2020. 7. 5. 01:27
HATEOAS(Hypermedia As the Engine Of Application State) 현재 사용하고 있는 Restful에 리소스와 연관된(호출 가능한) 자원 상태 정보를 제공 Level 0 : The Swamp of POX (원격 프로시저 호출) 일반 XML 데이터를 SOAP이나 XML-RPC 등으로 전송한다. POST 메소드만 사용하며, 서비스간에 단일 POST 메소드로 XML 데이터를 교환한다. 초창기 SOA 애플리케이션 제작 시 흔히 사용된 방식이다. Level 1 : Resources (Rest 리소스) 함수에 파라미터를 넘기는 대신 REST URI를 이용한다. 레벨 0처럼 POST 메소드 하나밖에 사용하지 않지만, POST 메소드로 서비스간 통신을 하면서 복잡한 기능을 여러 리소스로..
-
[Spring Boot] java.sql.SQLNonTransientConnectionException: Could not create connection to database server.WEB/Spring 2020. 6. 6. 23:44
스프링부트 + JPA, 로컬에 깔려있는 MySQL을 연동하는 과정에서 다양한 오류를 만나며 삽질을 해가며 드디어 오류들을 해결했는데, 그 결과들을 기록해보겠습니다. java.sql.SQLNonTransientConnectionException:com.mysql.cj.exceptions.CJException 설정파일에 등록한 username과 password가 로컬 MySQL과 다르면 위와 같은 오류가 나오므로 아래와 같이 스프링부트 프로젝트의 resource 아래의 application.properties 혹은 application.yml 파일을 꼭 확인해보시길 바랍니다. com.mysql.cj.exceptions.InvalidConnectionAttributeException:The server tim..
-
[Spring Boot] h2 Database 인덱스 auto_increment 초기화WEB/Spring 2020. 5. 5. 18:10
스프링 부트 공부를 하면서 h2 DB를 이용해 실습하던 도중 다음과 같은 문제를 만났습니다. 임의의 DB의 테이블에 인덱스 값이 1,2,3,4 인 4개의 레코드가 있다고 가정했을때, 4번 인덱스의 레코드를 삭제하면 그 다음에 레코드를 생성시 4번이 아닌 5번으로 생성되는 경우가 발생합니다. (1,2,3,5 이런식으로...) 이를 해결하는 방법을 스택오버플로우에서 찾았는데 한국 블로그에는 이를 정리해둔 곳이 없는것 같아서 기록하려합니다. https://stackoverflow.com/questions/10065386/resetting-autoincrement-in-h2 Resetting autoincrement in h2 I'm testing a controller that returns a json re..
-
[Spring] 스프링 어노테이션 정리WEB/Spring 2020. 4. 25. 01:59
Spring 관련 @Component 해당 클래스가 스프링에서 객체로 만들어서 관리하는 대상임을 명시하는 어노테이션 @ComponentScan - @Component가 있는 클래스를 스프링이 읽어주도록 하는 어노테이션 @Controller, @Service, @Repository - @Componet의 구체화, 컨테이너에 bean으로 등록되며 해당 클래스가 Controller/Service/Repository로 사용됨을 명시하는 어노테이션 @Autowired - 스프링 내부에서 자신이 특정한 객체에 의존적이므로 자신에게 해당 타입의 빈을 주입해주라는 표시 - 스프링은 @Autowired 어노테이션을 보고 스프링 내부에 관리되는 객체들 중에서 적당한 것이 있는지를 확인하고, 자동으로 주입 @RequestB..
-
[Spring] 어노테이션(Annotation)을 이용한 스프링 설정WEB/Spring 2020. 4. 6. 20:32
어노테이션을 이용하여 스프링 XML 파일을 Java 파일로 변경할 수 있습니다. 어노테이션을 이용해 XML 파일을 Java 파일로 변경한 후 메인 클래스에서 GenericXmlApplicationContext 대신 AnnotationConfigApplicationContext를 이용하면 기존의 XML 파일을 이용했던 것 처럼 정상적으로 실행되는 것을 확인할 수 있습니다. 출처 : 인프런, 자바 스프링 프레임워크 - 신입 프로그래머를 위한 강좌