springboot

    [Spring Data JPA] 더티 체킹 (Dirty Checking)

    [Spring Data JPA] 더티 체킹 (Dirty Checking) 트랜잭션 안에서 Entity의 변경이 일어났을 때 변경한 내용을 자동으로 DB에 반영하는 것 ORM 구현체 개발 시 더티 체킹이라는 말을 자주 볼 수 있다. 더티 체킹이 어떤 것을 뜻하는 지 간단히 살펴보자. JPA로 개발하는 경우 구현한 한 가지 기능을 예로 들어보자 ex) 주문 취소 기능 @Transactional public void cancelOrder(Long orderId) { //주문 엔티티 조회 Order order = orderRepository.findOne(orderId); //주문 취소 order.cancel(); } orderId를 통해 주문을 취소하는 메소드다. 데이터베이스에 반영하기 위해선, update와..

    [Spring Boot] Test Code

    [Spring Boot] Test Code 테스트 코드를 작성해야 하는 이유 개발단계 초기에 문제를 발견할 수 있음 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 시 기존 기능이 잘 작동하는 지 확인 가능함 기능에 대한 불확실성 감소 개발 코드 이외에 테스트 코드를 작성하는 일은 개발 시간이 늘어날 것이라고 생각할 수 있다. 하지만 내 코드에 오류가 있는 지 검증할 때, 테스트 코드를 작성하지 않고 진행한다면 더 시간 소모가 클 것이다. 1. 코드를 작성한 뒤 프로그램을 실행하여 서버를 킨다. 2. API 프로그램(ex. Postman)으로 HTTP 요청 후 결과를 Print로 찍어서 확인한다. 3. 결과가 예상과 다르면, 다시 프로그램을 종료한 뒤 코드를 수정하고 반복한다. 위와 같은 방식이 얼마나..

    [Spring Boot] SpringApplication

    스프링 부트로 프로젝트를 실행할 때 Application 클래스를 만든다. 클래스명은 개발자가 프로젝트에 맞게 설정할 수 있지만, 큰 틀은 아래와 같다. @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @SpringBootApplication 어노테이션을 통해 스프링 Bean을 읽어와 자동으로 생성해준다. 이 어노테이션이 있는 파일 위치부터 설정들을 읽어가므로, 반드시 프로젝트의 최상단에 만들어야 한다. SpringApplication.run()으로 해당 클래스를 run하면, 내장 WAS를 실행한다...

    [스프링 부트] windows & linux에서 파일 절대 경로 맞추기

    로컬 pc로 스프링 부트 프로젝트를 작업하다가, aws ec2로 배포하게 되면 운영중인 rds나 데이터베이스에 대한 세부정보를 외부로부터 숨겨야한다. (비밀번호 등등) 다양한 방법이 있겠지만, 나는 내 로컬 pc와 linux의 절대 경로를 활용했다. 나는 rds와 mariadb 정보가 담겨있는 yml 파일을 따로 로컬과 linux app 폴더에 저장한 뒤, 스프링 부트의 application.java에서 조건문으로 나눠줬다. 자바에서는 'os.name'에 대한 프로퍼티를 시스템에서 얻으면 내가 어떤 운영체제를 활용하고 있는지 값을 받아올 수 있다. String os = System.getProperty("os.name").toLowerCase(); 만약 로컬(윈도우)라면 os에는 "win"이 저장된다. ..

    [Spring Boot & React] Polling 웹애플리케이션 만들기 - 1부

    [Spring Boot & React] Polling 웹애플리케이션 만들기 - 1부 Spring Boot와 React를 연동하여 Polling 웹앱을 만들어보려고 한다. CalliCoder에서 진행하는 Tutorial을 참고해서 다시 재구성해봤다. (링크) 최종적으로 만들어지는 페이지는 아래와 같다. [구성] Back-End - Spring Boot (Spring Security와 JWT 인증을 활용한 백엔드 서버 구축) - Database는 MySQL 활용 (JPA) Front-End - React 스프링 부트 프로젝트 생성하기 http://start.spring.io/에 접속해서 프로젝트를 생성해보자 자신의 프로젝트에 맞게 설정해주면 된다. 기본적으로 Dependencies는 Web, JPA, MyS..

    React + Spring Boot 연동하여 환경 구축하기

    React + Spring Boot 연동하여 환경 구축하기 프로젝트 진행에 앞서 연습해보자! Front-end : React Back-end : Spring Boot 스프링 부트를 통해 서버 API 역할을 구축하고, UI 로직을 React에서 담당 ( React는 컴포넌트화가 잘되어있어서 재사용성이 좋고, 수많은 오픈소스 라이브러리 활용 장점 존재) 개발 환경도구 (설치할 것) - VSCode : 확장 프로그램으로 Java Extension Pack, Spring Boot Extension Pack 설치 (메뉴-기본설정-설정에서 JDK 검색 후 'setting.json에서 편집'을 들어가 `java.home`으로 jdk 경로 넣어주기) "java.home": "C:\\Program Files\\Java\..