해당 글은 DEPth IT 연합 프로젝트 동아리 활동의 일환인 서버 스터디에 관련되어 있습니다.🐧 H2 -> MySQL프로젝트에서 사용하던 데이터 베이스는 H2 데이터 베이스입니다. 이를 MySQL로 바꿀려고 합니다. MySQL이 깔려있다는 전제하에 진행합니다. 먼저 위와 같이 build.gradle 파일에 필요한 라이브러리를 추가합니다. JPA를 사용할 것이기에 첫번째와 같은 라이브러리를 추가하였고 MySQL을 사용하기 위해서 마지막 줄과 같은 라이브러리를 추가했습니다. 이후 member라는 이름의 데이터 베이스를 만듭니다. 만들어진 데이터 베이스에서 member를 확인할 수 있습니다. 이후 spring과 연결하기 위해서 application properties에서 설정을 변경합니다. 아래와 같습..
해당 글은 DEPth IT 연합 프로젝트 동아리 활동의 일환인 서버 스터디에 관련되어 있습니다.🐧 JPA 초기 설정MAVEN으로 프로젝트 템플릿을 생성한 후에 config 파일을 작성합니다.pom.xml에 필요한 라이브러리들을 추가합니다. H2, hibernate에 관한 라이브러리를 추가했습니다.JPA를 사용하기 위해서 몇가지 설정 파일을 넣어주어야 합니다. jpeg 설정 파일에 대해서 알아보겠습니다. 해당 파일은 resoueces/META-INF/persistence.xml라는 위치에 작성이 되어야합니다. 고정적으로 위치가 정해져 있습니다. ..
해당 글은 DEPth IT 연합 프로젝트 동아리 활동의 일환인 서버 스터디에 관련되어 있습니다.🐧 SQL 중심 개발의 문제점어플리케이션을 개발할 때 많은 경우 객체 지향 언어로 작성합니다. (Java, Scala...) 하지만 이러한 댇체들을 저장하는 경우에 보통은 관계형 DB를 많이 사용합니다. 이때 이러한 객체들을 관계형 DB에 저장하기 위해서는 SQL을 사용해야합니다. 이후 객체를 조회, 수정, 삭제 등등의 여러 작업들을 위해서도 수 많은 SQL을 사용해야합니다. 따라서 Java 객체를 SQL로 바꾸고 SQL을 Java 객체로 바꾸는 작업들을 계속 반복해야합니다. 결국 SQL에 의존적인 개발을 하게 됩니다. 패러다임의 불일치 위의 그림에서와 같이 객체에 대한 데이터를 SQL로 바꾸어서 RDB(관계..
해당 글은 DEPth IT 연합 프로젝트 동아리 활동의 일환인 서버 스터디에 관련되어 있습니다.🐧 Spring JDBC Templatespring JDBC Template은 순수 JDBC와 설정은 동일합니다. 하지만 JDBC API에서의 반복 코드를 효율적으로 줄여서 코드의 줄을 대폭 줄였습니다. 이때 JDBC Template은 템플릿 메소드 패턴을 주로 사용해서 반복 코드를 줄일 수 있었습니다. ⚙️ 템플릿 메서드 패턴여러 클래스에서 공통으로 사용하는 메서드를 템플릿화 하여서 상위 클래스에서 정의하고, 하위 클래스마다 자세한 세부 동작을 다르게 구현하는 패턴입니다. 상속이라는 기술을 극대화 하여, 알고리즘의 뼈대를 맞추는데 초점을 맞춥니다. public class JdbcTemplateMemberRe..
해당 글은 DEPth IT 연합 프로젝트 동아리 활동의 일환인 서버 스터디에 관련되어 있습니다.🐧 H2 데이터베이스교육용으로 적합하고 가볍고 편리한 H2 데이터베이스를 설치합니다. 해당 DB는 웹 화면을 제공하여서 교육에 더욱 적합합니다.H2 DB 사이트에서 자신의 컴퓨터에 알맞은 버전을 다운로드 한 후에 압축을 풀어줍니다. 압축을 푼 폴더에는 bin이라는 하위 폴더가 들어있습니다. 여기에 h2.sh라는 파일을 실행하면 h2 DB를 실행할 수 있습니다.(이때 mac 사용자는 h2.sh 파일 실행을 위해서 실행 권한을 주어야 합니다. 터미널에서 chmod 755 h2.sh라는 명령어를 먼저 실행하고 해당 파일을 실행할 수 있습니다.) 이때 웹 주소가 (자신의 ip 주소):8082로 되있는 경우 웹 화면이..
해당 글은 DEPth IT 연합 프로젝트 동아리 활동의 일환인 서버 스터디에 관련되어 있습니다.🐧 홈 화면 추가week3,4에서 구현한 코드들을 가지고 실제로 간단한 웹사이트를 작성합니다. 이에 따른 간단한 웹 메인 화면을 만듭니다. package hello.hellospring.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { @GetMapping("/") public String home(){ return "home"; }} home.htm..