스프링 부트에서 사용하는 h2 데이터베이스 기본 설정은 인메모리 형식으로 저장되게 되어있습니다. 인메모리의 경우 데이터베이스가 꺼졌다가 켜지면 데이터가 다 사라진다는 특징이 있습니다. spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect application.properties에 보통 이런 식으로 작성하실 텐데요. 디스크에 저장하는 방식도 간단합니다. spring.datasou..
web/spring&spring boot
사용자가 메인 페이지에서 글쓰기 버튼을 누르면 글 작성 페이지로 넘어가고 작성한 내용을 mysql 데이터베이스에 저장해봅시다. mysql 및 기본 프로젝트 설정은 이미 준비되어있다는 가정하에 진행합니다. 오늘의 포스팅은 JPA로 테이블 매핑만 해보도록 하겠습니다. dependency dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation ..
Spring Initializr를 이용해서 프로젝트를 만들면 프로젝트명Application이 자동으로 생성됩니다. 메서드 선언부에는 main 메서드 하나만 선언되어 있고 SpringApplication.run 메서드를 호출해서 웹 애플리케이션을 실행합니다. 그 위의 @SpringBootApplication 가 오늘 살펴볼 어노테이션입니다. @SpringBootApplication은 크게 @SpringBootConfiguration 과 @EnableAutoConfiguration 그리고 @ComponentScan 이 세 가지로 이루어져 있습니다. @ComponentScan @ComponentScan은 @component 어노테이션 및 @Service, @Repository, @Controller 등의 어노..
오류 발생 경위 spring boot gradle에 h2 dependency를 추가하고 웹으로 db 콘솔 접근할 때 오류가 발생했습니다. 사실.. 저는 간단하게 해결했습니다. 오류에서도 JDBC를 언급하고 있는데요. 제가 당장 jdbc를 사용하지 않기에 따로 추가해주지 않았습니다. 저는 implementation 'org.springframework.boot:spring-boot-starter-jdbc' 를 추가하고 오류를 해결했습니다. 다른 해결법 저와는 다른 이유로 고생하시는 분들을 위해서 다른 해결법도 정리해두겠습니다. application.properties 를 확인한다 보통 localhost:8080/h2-console 에 접속하셔서 확인을 해볼텐데요. application.properties ..
이번에는 mapping을 통해서 간단한 html 페이지를 보여주도록 하겠습니다. 처리 과정 일반적으로 사용자의 요청을 처리하는 과정은 다음 그림과 같습니다. 우리는 매핑을 통해 Controller가 특정 View를 사용자에게 반환하도록 만들게요. Client가 웹 서비스에 요청을 보내면 Dispatcher Servlet이 매핑되는 Handler를 찾습니다. Controller가 요청을 처리한 후에 View를 Dispatcher Servlet에게 전달해주고 다시 사용자에게 응답이 되는 흐름입니다. Controller가 View를 반환하기 위해서는 ViewResolver가 사용되며, ViewResolver 설정에 맞게 View를 찾아 렌더링합니다. @Controller 해당 자바 클래스가 Controller..
IDE에서 spring 프로젝트를 생성하는 방식도 있지만 공식 홈페이지에서 생성하는 방법에 대해서 다루려고 합니다. 프로젝트 생성 start.spring.io/ 위의 링크를 따라가시면 이러한 페이지가 나옵니다. Project의 타입부터 언어, 스프링 부트 버전, dependencies 추가 설정들이 가능합니다. Project 타입의 Maven과 Gradle은 이전 포스팅에서 다뤘으니 참고해주세요. Maven vs Gradle Maven과 Gradle은 빌드 도구(Build tool)입니다. 라이프사이클도 관리해주고 관련 라이브러리들을 자동으로 가져오는 등 편리한 기능들을 제공하고 있습니다. 쉽게 표현하면 프로젝트 생성, 테스트 빌 coding-nyan.tistory.com 언어는 사용하시는 언어로 선택해..
Maven과 Gradle은 빌드 도구(Build tool)입니다. 라이프사이클도 관리해주고 관련 라이브러리들을 자동으로 가져오는 등 편리한 기능들을 제공하고 있습니다. 쉽게 표현하면 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 툴이라고 할 수 있습니다. Maven과 Gradle이 어떤 점이 다른 지 살펴보도록 하겠습니다. Maven Maven은 Ant를 사용하던 개발자들의 불편함을 해소하고자 2004년에 출시했습니다. pom.xml을 이용한 정형화된 빌드 시스템을 제공하고 있습니다. Maven은 외부에서 필요한 라이브러리와 플러그인들을 받고 로컬에 저장합니다. 또한 간단한 설정을 통한 배포 관리가 가능합니다. 자세한 특징들은 링크로 대신하겠습니다. maven.apache.org/maven-..
Spring이란? 기존 Java EE 환경에서 Spring framework는 기존의 환경을 겨울로 칭하며 이제 스프링이라는 봄이 찾아옵니다!! 라는 의미로 나왔습니다. Spring은 DI(의존성 주입)와 IoC(제어 역행)을 통해 유연성을 제공합니다. 다른 장점들도 많겠지만 두 장점이 Spring의 핵심이라고 보시면 됩니다. Spring boot Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". Spring의 한 가지 단점이 있다면 설정이 복잡하다는 것입니다. Spring의 dependency 설정을 해보신 분들은 아실겁니다. 버전도 직접 명시해..