BACKEND
-
[Deployment] Spring Boot 프로젝트 Google Cloud SQL, VM 사용하여 배포하기BACKEND 2023. 5. 10. 00:17
본 글은 스프링 부트로 진행한 프로젝트를 Google Cloud Platform으로 배포하는 과정을 담고 있습니다. 1. 프로젝트 생성 구글 클라우드에서는 AWS와 마찬가지로 처음 가입하면 $300 크레딧을 제공해준다. 가입을 한 후 프로젝트를 생성해준다. 그리고 왼쪽 상단의 메뉴 탭에서 Compute Engine 탭을 클릭한 뒤 VM 인스턴스를 만들어야 한다. 이름 : 이름은 원하는 인스턴스 이름을 사용하면 된다. 리전 : 위치는 서버의 물리적 위치를 선택해야 한다. 서울에 있으니 서울을 선택한다. (예전엔 일본이 가장 가까운 리전 이어서 가상머신 돌아가는게 굉장히 느렸다고 한다.(물론 카더라..)) 머신 구성 선택 : 이 부분은 추후 업그레이드가 가능한데 우선은 micro 보다 small을 선택하는 ..
-
[Spring Boot/JPA] JPA 의존성 추가, 도메인 개발BACKEND/Spring 2023. 2. 15. 21:44
이 글은 책 스프링부트와 AWS로 혼자 구현하는 웹 서비스를 참고하여 작성되었습니다. 프로젝트에 Spring Data Jpa 적용하기 build.gradle 파일 dependencies 다음 코드를 추가한 후 빌드 해준다. (망치모양 누르기) compileOnly 'org.springframework.boot:spring-boot-starter-data-jpa' compileOnly 'com.h2database:h2' 그리고 지난 번에 web 패키지를 만들었던 패키지 아래 domain 패키지를 만든다. 여기서 도메인이란 게시글, 댓글, 회원, ... 등 소프트웨어에 대한 요구사항 혹은 문제 영역이라고 해석하면 된다. 기존에 MyBatis같은 쿼리 매퍼를 사용했다면 dao 패키지를 떠올리겠지만, 그것과는 ..
-
[Spring / Spring Boot] 단위 테스트 코드 작성해보기BACKEND/Spring 2023. 2. 13. 23:39
Spring Boot 프로젝트를 시작하면서 어떻게 초기 작업을 진행해야하는지 전혀 감이 안잡혀서 정리하며 프로젝트를 시작하려고 한다. 이 글은 책 스프링부트와 AWS로 혼자 구현하는 웹 서비스 1장를 참고하여 작성되었습니다. 이 글에서 다룰 내용은 다음과 같다. 1. 단위 테스트 코드에 대하여 2. 메인 메소드의 코드 톺아보기 3. 테스트 코드 JUnit4로 작성해보기 4. 롬복의 사용법, 그리고 롬복이란? 1. 단위 테스트 코드 이 글에서는 TDD에 관한 이야기가 아닌 기능 단위로 테스트 코드를 작성하는 단위 테스트 코드에 대해서 배울 수 있다. 단위테스트를 작성하지 않는다면 개발 단계는 다음과 같다. 코드를 작성하고 프로그램(Tomcat)을 실행한 뒤 Postman과 같은 API 테스트 도구로 HTT..
-
데이터베이스란?BACKEND/DataBase 2022. 11. 19. 21:54
데이터베이스(DataBase)란? (Oracle 대한민국 문서를 참고하였습니다.) 데이터베이스는 조직체의 응용 시스템들이 공유해서 사용하는 운영데이터들이 구조적으로 통합된 모임이다. 데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정된다. 데이터베이스는 구조화된 정보, 또는 데이터의 조직화된 모음으로서 일반적으로 컴퓨터 시스템에 전자적으로 저장된다. 데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리 시스템(DBMS: Database Management System)이라고 한다. 데이터베이스 시스템 개요 - 데이터베이스 스키마(내포 intension) : 정체적인 데이터베이스 구조를 뜻하며 자주 변경되지는 않음. 데이터 베이스의 모든 가능한 상태를 미리 정의 - 데이터베이스 상태 (extens..
-
자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션08BACKEND/Spring 2022. 11. 14. 21:59
프록시 프록시는 왜 사용해야할까? 멤버를 조회할 때 team도 함께 조회를 해야할까? 라는 질문을 던져보자. 이건 비지니스 로직에 따라 달라진다. 만약 비지니스 로직에서 멤버와 팀을 같이 출력한다면, 멤버의 팀 정보를 불러온 다음에 연관된 팀도 가져오게 된다. 만일 멤버만 출력한다면, member.get만 챙겨오면 된다. 이럴 때 연관관계가 있다고 팀까지 가져오면 손해이다. 이런 경우에는 어떻게 해야할까? 이것을 해결하려면 프록시를 정확하게 이해해야 한다. 프록시 기초 • em.find() vs em.getReference() • em.find(): 데이터베이스를 통해서 실제엔티티 객체 조회 • em.getReference():데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 프록시 특징 • 실..
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 섹션 1(작성 중)BACKEND/Spring 2022. 11. 13. 23:44
Spring Initailizr에서 프로젝트 만들기 여기서 H2 DATABASE와 lombok도 추가해줘야함. lombok은 지루하게 반복되는 코드를 제거해주는 라이브러리 https://start.spring.io/ 에서 만들 수 있다. 근데 강의에서의 버전이 달라서 기본 설정되어있는 걸로 버전을 선택했다. 여기선 jpa는 유틸리티성 라이브러리라고 생각하면 된다. 걸 이제 generate 하고 다운 받은 후 압축 풀고 IntelliJ에서 열어주면 되는데.. 맨처음에 열때 라이브러리 생성하는데 10분 이상 걸린다... 라이브러리 다운받다가 컴퓨터 끌 뻔 그렇게 라이브러리가 다 다운이 되고 나면 Application main 함수를 실행할 수 있다. 이렇게 실행시켜준 후 localhost:8080으로 들어갔..
-
[Spring - JPA ORM 표준 JPA 프로그래밍 ] JPA 시작BACKEND/Spring 2022. 10. 3. 19:16
본 게시물은 인프런 김영한 선생님의 강의를 기반으로 작성되었습니다. /* 강의 링크 */ https://www.inflearn.com/course/ORM-JPA-Basic 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 1. JPA 프로그래밍에 들어가기 이전에.. JPA의 필요성: 과거에는 객체를 데이터베이스를 저장하고 찾으려면, API와 sql을 직접 적었어야했다. JPA를 사용하면 SQL(쿼리문)을 작성할 필요가 없다. 한땀 한땀 작성하는 것보다 훨씬..