기본적으로 update를 하기 위해서 JPA에서는 더티 체킹 기능을 제공한다.트랜잭션 내에서 필드의 변경이 일어나면 해당 변경을 트랜잭션 커밋 시점에 체크해서 update 쿼리를 날리는 것이다.하지만 더티 체킹 기능은 10개의 엔티티의 필드 값을 변경하면 10번 일어나
목표 로컬에 Jenkins를 두고, Github에 특정 레포지토리 Main 브랜치에 push를 하면 EC2에 Push 결과의 jar가 배포되도록 만들 것입니다. 이 글에서는 젠킨스를 이용해서 로컬 환경에서 EC2에 파일을 빌드해서 올리고 서버를 실행하는 내용을 다루겠
서비스 단에서 Long 타입의 ClientId로 DB에서 조회하는 부분을 단위 테스트해보았다.내가 의도한 것은 서비스에서 entity를 response로 변경할 때 ID값이 필요한데 이때 searchId가 반환되어 response로 들어가길 기대했다.하지만 이 부분에서
목표 로컬에 Jenkins를 두고, Github에 특정 레포지토리 Main 브랜치에 push를 하면 EC2에 Push 결과의 jar가 배포되도록 만들 것이다. 단순하게보면 이렇게 만들겠다는 것이다. EC2까지 연결하는 내용은 다음 글에서 다루고 현재 글에서는 로컬에
Jenkins 서버가 필요하게 된 상황인데 스프링 서버와 Jenkins를 같은 인스턴스에서 돌리기에는 무리가 있다.취준생인 나에게 돈을 내고 젠킨스를 위한 인스턴스를 만드는 것은 좀 그렇다.그래서 Azure에서 젠킨스 서버를 구성하기로 했다.이 글은 AWS의 EC2를
목표 젠킨스를 설치한 뒤 8080포트로 젠킨스를 접속하고 젠킨스의 대시보드를 들어가본다. EC2 인스턴스는 이미 있고, putty를 통해 EC2에 접속할 수 있는 환경이라 가정한 후 진행합니다. EC2 인스턴스 관련 설정은 다른 글을 참고해주세요. EC2 설정 관련
젠킨스 귀찮은 작업을 다 자동화 해주는 종이다. Java Runtime Environment에서 동작 다양한 플러그인들을 활용해서 각종 자동화 작업 일련의 자동화 작업의 순서들의 집합인 Pipeline을 통해 CI/CD 파이프라인을 구축 젠킨스는 빈 껍데기이고 결국
예외가 발생하면 다음과 같은 동작으로 처리된다.(WAS = 서블릿 컨테이너) 중요한 것은 클라이언트는 이 과정을 모르고 그냥 에러 페이지를 응답 받는 것이다. 예외 발생시 로그 확인 HttpServletResponse에서 제공하는 sendError()를 활용해서
필터는 서블릿이 제공하는 기능이고, 인터셉터는 스프링이 제공하는 기능이다.클라이언트 요청 -> WAS -> 필터 -> 서블릿 -> 인터셉터 -> 핸들러(컨트롤러)이미지 출처 - https://mangkyu.tistory.com/173인터셉터는 디스패처 서블릿에
동등성은 ==를 말한다 동일성은 .equal를 말한다. 객체는 자유롭다. 객체는 자유롭기에 상태는 항상 변한다. 10년전의 너와 10년 후의 너는 다른 객체인가? 아니다. 같은 객체이다. 이렇기에 동등성은 객체를 판단하는 기준이 될 수 있다. 동일성은 값을 비교하
2022-12-02라는 문자열 데이터를 LocalDateTime으로 변경하는 과정에서 오류가 발생했다.LocalDateTime은 날짜와 시간을 같이 저장하는데 시간값이 세팅되지 않기 때문에 발생한 오류이다.2022-12-02라는 값을 넣으면 자동으로 Time부분은 00
인프런 - 실전! 스프링 부트와 JPA 활용 1을 진행하다 생긴 오류입니다.jdk 17환경에서 H2 데이터베이스의 1.4.x를 연동하면서 생긴 오류입니다.먼저 MVCC=TRUE 설정을 제거해 줍니다.해당 설정을 제거해도 다른 오류가 날 것입니다. 결과적으로 @Genea
IoC(Inversion of Controll) IoC란 제어의 역전을 말합니다. 풀어서 말하면 프로그램의 흐름에 대한 제어권을 스프링과 같이 외부에서 가져가는 것입니다. 아마 이렇게 처음 글자로만 접하시면 이해가 안될 것입니다. 이해를 위해 다음과 같은 서비스가
기존 이클립스에서 Maven과 Springboot를 사용하던 프로젝트를 인텔리제이에서 Clone해서 사용해보겠습니다.Ctrl+Alt+S 단축키를 입력해서 설정창으로 들어갑니다. 버전관리>Git 으로 들어갑니다.해당 창이 나온다. Git 실행 파일 경로를 설정합니다. 저
1. Spring Boot프로젝트 생성 다음과 같이 이클립스에서 Spring Boot 프로젝트를 생성합니다. 이 프로젝트에서는 Vue와의 연동만을 다룰 것이기 때문에 디펜던시를 간단하게 추가해주겠습니다. 2. vue 버전 확인 및 설치 이제 해당 프로젝트를 생성한 위
오류 상황 새로운 프로젝트를 스프링 부트 3.0.4 버전으로 만들어서 실행을 하니 다음과 같은 오류가 발생했습니다. 발생 이유 Spring 6버전과 Spring Boot 3버전부터는 Java 17기반으로 변경되었습니다. 저의 PC에 설치되어 있는 JDK는 16이기 때
제가 해결한 방법만 빠르게 보시고 싶다면 가장 밑에 해결 방법을 보시면 됩니다. 오류 상황 3306포트에 비밀번호를 까먹어서 MySQL 버전도 업그레이드할 겸해서 MySQL을 완전 삭제한 뒤에 8.0버전으로 재설치했다. 그리고
출처 "도서 - 초보 웹 개발자를 위한 스프링5 프로그래밍 입문"의 내용을 요약한 글입니다. 제가 나중에 보기 쉽게 요약을 했기 때문에 책의 내용과 다를 수 있습니다. 계산기 클래스 설정 AOP를 설명하기 위해 팩토리얼의 값을 구하는 계산기를 만듭니다. 메서드의 실
DNS(Domain Name System)는 범국제적 단위로 웹사이트의 IP 주소와 도메인 주소를 이어주는 환경/시스템입니다. 다음 이미지는 DNS를 간소화 시킨 이미지입니다. 즉 DNS는 도메인 주소를 IP주소로 변환시켜 컴퓨터간에 통신이 가능하도록 만들어줍니다.
Spring에서 사용자 요청 처리 흐름 사용자가 서버에 요청을 했을 때의 흐름을 간단하게 살펴보면 다음과 같습니다. >1. 클라이언트 - 클라이언트는 서버에 요청을 보냅니다. Tomcat - Tomcat에 서블릿 컨테이너에서 요청을 처리할 적절한 서블릿을 찾습니다.