백엔드
-
Entity annotation, Listener백엔드 2023. 8. 19. 16:11
@Entity @Entity 어노테이션은 해당 객체가 JPA에서 관리하고 있는 Entity객체임을 선언합니다. 엔티티 객체에는 레코드를 유일하게 판별할 수 있는 PK값이 반드시 존재해야합니다. 해당 PK컬럼에 @Id 어노테이션을 통해 지정할 수 있습니다. @GeneratedValue PK값으로 사용되는 id의 경우 사용자가 직접 값을 넣어주는 것이 아닌 생성된 값을 사용하게 됩니다. @GenerateValue를 통해 자동 생성되는 값을 PK에 넣어 줄 수 있습니다. @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface GeneratedValue { /** * (Optional) The primary key generation strategy * ..
-
JPA 쿼리메서드백엔드 2023. 8. 18. 23:45
이전 시간에 Java의 ORM 표준 스펙인 JPA을 활용할 수 있도록 해주는 JpaRepository의 내부 코드를 살펴보았습니다. 이번에는 좀 더 복잡한 쿼리들을 repository 내부에 정의하여 사용하는 방법에 대해 배워보도록 하겠습니다. 쿼리 메서드 선언 위치 JpaRepository를 상속받고 있는 repository interface 내부에 Spring Data Jpa에서 명시하고 있는 키워드를 이용해 쿼리메서드를 정의하고 사용할 수 있습니다. @Repository public interface UserRepository extends JpaRepository { // 선언 위치 } 리턴 타입 네이밍 규칙으로 만들어진 메서드들에 의해 반환되는 값들의 타입을 개발자가 정의할 수 있습니다. 쿼리 ..
-
JPA 살펴보기백엔드 2023. 8. 17. 23:40
프로젝트 구성에 앞서 Spring 프레임워크에서 백엔드에 접근하기 위해 JPA를 사용하게 되어서 JPA에 대해 정리를 해보려고 합니다. JPA에 대한 설명에 앞서 ORM에 대해 알아야 합니다. ORM이란 Object Relational Mapping으로 어플리케이션의 클래스와 RDB를 매핑시켜주는 것으로 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화시켜주는 기술입니다. 정의한 객체를 사용하는 것만으로도 자연스럽게 데이터를 연결해 사용할 수 있습니다. JPA는 Java Persistence Api의 약자로 Java의 ORM 표준 스펙으로 데이터베이스에 접근하기 위한 api 규격을 정의해 놓은 것입니다. orm이 전체적인 개념이라고 하면 jpa가 그 기능을 정의한 스펙이라고 볼 수 있습니다. JPA에..
-
Spring boot todo list 만들기백엔드 2023. 7. 21. 18:28
이번 포스팅은 스프링부트에 대한 정확한 이해가 동반되지 않은 상태에서 작성된 글입니다. 잘못된 부분에 대해서 댓글 남겨주시면 수정하도록 하겠습니다. spring boot를 제대로 배워보기 전에 todolist를 먼저 만들어보게 되었습니다. spring을 이용한 백엔드의 프로젝트 구조에 대해 많이 궁금했었는데 이번을 계기로 어느정도 파악해볼 수 있었습니다. 우선 백엔드의 구조는 model, repository, service, controller 이렇게 4가지 층이 있습니다. model 실제 데이터베이스에서 사용하는 데이터 Entity입니다. 개발 도메인에 활용되는 각각의 오브젝트입니다. repository 데이터베이스와 데이터를 주고 받기 위한 메서드를 명시한 인터페이스입니다. 데이터를 주고 받는 메서드..
-
mysql cli 모음 (+ docker)백엔드 2022. 12. 9. 13:37
이번 포스팅은 frontend, backend, serving server, db로 구성된 프로젝트의 각 컴포넌트를 컨테이너로 연결시키는 과정에서 있었던 mysql 관련 사항들을 정리해보려고 한다. ubuntu 환경에서 mysql을 이용하고, container로 db를 띄우고 연결하는 과정이 궁금한 사람들에게 유용한 정보였음 좋겠다. mysql service 시작, 종료 명령어 sudo service mysql start sudo service mysql stop mysql 저장 경로 변경 db container를 띄우고 사용하게 된다면, 해당 컨테이너가 없어져도 안에 데이터는 이후에도 계속 사용할 수 있도록 해주어야 합니다. 그러기 위해서 볼륨 마운트를 사용합니다. 그리고, 한 프로젝트를 운영하게 되면..