JPA6 H2 Database를 이용하여 간단하게 개발 시작하기 백엔드 개발을 할 때, DB의 사용은 필수적입니다. 단순한 CRUD 게시판을 만든다고 해도, DB가 있어야 글을 저장하고, 조회하고, 수정하고, 삭제하는 기능을 이용할 수 있습니다. 하지만 처음부터 냅다 MySQL 같이 규모 있는 DB 환경을 셋업하고 시작하기엔 무리가 가는 것이 사실입니다. 이를 위해 간단하게 사용할 수 있는 메모리 기반의 RDBMS가 존재합니다. H2 Database라고 하는데요. 예전에 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 따라서 개발하면서 언급한 바 있습니다. 메모리 상에 DB가 생성되고, 따라서 애플리케이션이 시작할 때마다 초기화되므로 개발을 진행하며 사용하기에 아주 좋습니다. 실무 환경에서도, 개발/운영 DB에 직접 데이터를 쓰고 지우기에는 부담이 될 때 활용할.. 2022. 12. 30. MyBatis vs. JPA, JPA를 공부해야 하는 이유 현재 회사에서 참여 중인 SI 프로젝트에서는 Oracle을 사용 중입니다. DB에 조작이 필요할 때 (select, insert, update, delete 등) 사용하는 라이브러리는 MyBatis인데요. 쿼리를 미리 작성해 두면, 필요할 때 적절히 호출해서 사용할 수 있고, 쿼리가 잘못 작성되거나 하는 등의 이유로 에러가 발생하면 콘솔에 실행된 쿼리와 함께 에러 코드가 출력되어 에러를 쉽게 잡을 수 있습니다. MyBatis의 가장 큰 장점이라고 하면, 쿼리를 그대로 작성할 수 있단느 점입니다. 이 장점 덕분에 저는 입사 후에 별다른 학습 없이 기존의 SQL 지식만을 가지고도 쉽게 개발에 참여할 수 있었습니다. 다만 단점이라고 하면, 쿼리가 길어지다 보면 읽기 복잡할 뿐만 아니라, mapper 파일 (*.. 2022. 7. 27. [CRUD 웹 게시판 만들기] 3. 글, 댓글 Domain 제작, 글 CRUD 기능 개발 * 본 시리즈는 1인 개발 'CRUD 웹 게시판 만들기'를 진행하며 과정을 기록한 것입니다. * 해당 프로젝트는 GitHub 저장소를 참고해 주세요. 목차 1. 프로젝트 구조 변경 2. Posts 도메인 제작 3. CRUD 메소드 작성 4. 작성한 CRUD 메소드에 대한 테스트 코드 작성 5. Comments 도메인 제작 1. 프로젝트 구조 변경 기존의 프로젝트 구조는 이전에 책을 따라 진행했던 프로젝트인 '혼자 구현하는 웹서비스' 의 형태를 매우 닮아 있었습니다. 프로젝트를 처음 시작할 때는 Spring에 대한 이해도가 지금보다 부족했고, 어떤 식으로 구조를 가져가야 할지 판단이 서지 않았습니다. 현재는 아래와 같은 형식으로 변경하였습니다. 기본적으로 개발하며 생기는 클래스는 src/main/java/.. 2022. 7. 24. [JPA] 조회 메소드에 파라미터 추가하기 쿼리를 직접 작성하여 저장한 후 불러와 사용하는 MyBatis와는 다르게, JPA는 미리 정해둔 요건에 따라 쿼리를 자동으로 생성한 후 실행해 줍니다. 그러다 보니 JPA를 처음 접하다 보면 단순한 CRUD 구현에도 헤매게 됩니다. 우연한 계기로 전달받은 파라미터를 조회 쿼리의 WHERE에 사용하는 방법을 찾아보게 되어 정리합니다. 1. JPA와 @Query의 역할 2. @Query를 통한 조회 시에 파라미터 전달하기 3. 테스트 코드로 검증하기 1. JPA와 @Query의 역할 먼저, 글을 작성하기에 앞서, 저는 JPA에 대해 매우 기초적인 지식만 가지고 있음을 알려 드립니다. 회사에서는 MyBatis를 이용하여 xml 파일에 쿼리를 직접 작성하는 개발을 하고 있으며, JPA는 여기서 진행한 개인 프로.. 2022. 7. 4. [Spring] 스프링의 DB 접근 기술 간단 소개 개요 2003년에 스프링이 최초로 공개된 이래로, 스프링은 DB에 접근하는 방법을 꾸준히 발전시켜 왔습니다. 객체지향 관점에서 개발하는 스프링과, 관계를 중심으로 데이터를 저장하는 RDBMS는 접근 방식부터 차이가 있기 때문에, 이 둘을 함께 이용하여 개발하기란 쉽지 않습니다. 이 글에서는 Java와 스프링의 DB 접근 기술이 어떻게 발전되어 왔는지 순서대로 나열하여 소개해 보고자 합니다. (iBatis/MyBatis는 이 글에서는 다루지 않았습니다.) 순수 JDBC Spring JdbcTemplate JPA 스프링 데이터 JPA 1. 순수 JDBC JDBC는 Java Database Connectivity의 약자로, Java 환경에서 DB에 접근하기 위한 표준 API입니다. JDBC는 Spring 프레.. 2022. 3. 16. [혼자 구현하는 웹서비스] 3. (1) JPA와 데이터베이스 0. 개요 1. JPA 소개 2. 프로젝트에 Spring Data JPA 적용하기 0. 개요 웹 서비스와 데이터베이스는 뗄 수 없는 관계다. 관계형 데이터베이스 (RDBMS)와 객체지향 프로그래밍 (OOP)를 같이 사용할 수 있을까? 1. JPA 소개 웹 서비스를 개발하며 데이터베이스를 사용하는 방법은 크게 두 가지가 있다. 하나는 MyBatis와 같은 SQL 매퍼 사용하기, 또 하나는 ORM을 이용하여 객체를 매핑하기. MyBatis도 많이 사용되고 있는 서비스지만, 개발을 하는 시간보다 SQL을 다루는 시간이 더 많아지게 된다. JPA (Java Persistence API)라는 자바 표준 ORM (Objecxt Relational Mapping)을 이용하여, 객체를 매핑하는 방법이 존재한다. 최근 .. 2021. 7. 8. 이전 1 다음