본문 바로가기

분류 전체보기

(76)
[Git] git stash, git stash pop https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Stashing%EA%B3%BC-Cleaning Git - Stashing과 Cleaning 작업하던 저장소가 완전 지저분해져서 Git에게 진짜로 강제로 정리하도록 해야 하는 경우가 생길 수 있다. 예를 들어 Git 버전관리 데이터가 포함된 디렉토리를 복사해왔거나 서브모듈 디렉토리 git-scm.com 팀 프로젝트를 진행하는데 깜빡하고 브랜치를 안만들고 develop 브랜치에서 작업을 했다... 당황해하고 있었는데 팀원이 git stash 라는 명령어를 알려주었고 해당 명령어를 통해서 문제를 쉽게 해결할 수 있었다. Stash는 Modified이면서 Tracking 되는 파일들과 Staging Area 즉 g..
[JPA] 벌크성 수정 쿼리 이번에 팀 프로젝트를 진행하면서 findAll() 메서드를 사용하여 리스트를 조회한 뒤 JPA 영속성 컨텍스트의 변경 감지기능을 사용해서 특정 조건의 데이터를 모두 업데이트 해주는 서비스 메서드를 구현했었습니다. 구현이 끝나고 테스트해보니 기능은 잘 동작하였지만 업데이트 되는 데이터 수만큼 쿼리가 나가고 있었습니다. 이런 상황을 해결하기 위해 JPA는 벌크성 수정을 효율적으로 수행할 수 있도록 지원해주고 있습니다. MemberRepository JPA에서 벌크성 업데이트를 수행하기 위해서는 Repository 클래스에서 @Query 어노테이션을 사용해서 update 쿼리를 작성하여 사용합니다. MemberRepository 클래스에 아래와 같은 메서드를 작성한 후 동일한 테스트를 실행하면 이번에는 업데..
[Spring] MSA 프로젝트 만들기 (4) 2023.03.24 - [Spring] - [Spring] MSA 프로젝트 만들기 (3) [Spring] MSA 프로젝트 만들기 (3) 2023.03.22 - [Spring] - [Spring] MSA 프로젝트 만들기 (2) [Spring] MSA 프로젝트 만들기 (2) 2023.03.19 - [Spring] - [Spring] MSA 프로젝트 만들기 (1) [Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서 keylog.tistory.com 지금까지 MSA 구조로 프로젝트를 만들고 Spring Cloud Gateway에서 JWT 토큰의 유효성 검사 처리와 CORS 설정 그리고 요청을 처리할 수 있는 마이크로 서비스로 로드밸런싱 하는 것을 ..
[Spring] MSA 프로젝트 만들기 (3) 2023.03.22 - [Spring] - [Spring] MSA 프로젝트 만들기 (2) [Spring] MSA 프로젝트 만들기 (2) 2023.03.19 - [Spring] - [Spring] MSA 프로젝트 만들기 (1) [Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) [Spring] 마이크로서비스 아키텍쳐 (Micro keylog.tistory.com 이전 글에서 gateway-service에서 Custom Filter를 구현하여 권한이 필요한 요청에 인증된 회원의 요청만 전달되도록 하는 방법과 Spring Cloud Gateway에서 CORS 설정을 하는 방..
[Spring] MSA 프로젝트 만들기 (2) 2023.03.19 - [Spring] - [Spring] MSA 프로젝트 만들기 (1) [Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) 이번에 블록체인 기반의 프로젝트를 진행하게 되었는데 keylog.tistory.com 이전 글에서 gateway 프로젝트와 micro service 프로젝트를 생성하고 이를 Eureka Server에 등록하는 방법에 대해 알아보았습니다. 이번 글에서는 모든 클라이언트의 요청이 지나는 gateway-service에서 Custom Fi..
[Spring] MSA 프로젝트 만들기 (1) 2023.02.28 - [Server] - [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) [Spring] 마이크로서비스 아키텍쳐 (Micro Service Architecture, MSA) 이번에 블록체인 기반의 프로젝트를 진행하게 되었는데 팀원들과 MSA 방식으로 프로젝트를 개발해보자는 얘기가 나와서 개발에 들어가기 전에 MSA가 뭔지 모놀리식 방식과는 어떤 차이가 있는지 keylog.tistory.com 이전 글에서 MSA가 뭔지 모놀리스 아키텍처 방식과는 어떤 차이점이 있는지 알아봤는데 이번글에서는 인프런 강의인 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 에서 배운 내용으로간단한 MSA 프로젝트를 만들고 마이크로 서비스..
[JPA] 고급 매핑 (상속 관계 매핑, @MappedSuperclass) 상속 관계 매핑 위 사진과 같이 id, 이름(name), 가격(price)이라는 동일한 컬럼을 사용하는 엔티티가 여러 개있는 경우 상속 구조를 이용해 공통되는 컬럼을 추출하여 구현할 수 있다. 구현하는 방법으로는 총 3가지가 있으며 부모 클래스까지 직접 테이블과 매핑되는 3가지 방법 외에 마지막으로 부모 클래스는 테이블과 매핑하지 않고 부모 클래스를 상속받는 자식 클래스에게 매핑 정보만 제공하는 @MappedSuperclass 까지 알아보자. 조인 전략 (Joined Strategy) 조인 전략은 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략이다. 조회할 때 조인을 자주 사용하며 조인전략을 사용하기 위해서는 타입을 구분하는 컬럼을 ..
[Spring] 통합테스트와 Junit과 Mockito 프레임워크를 이용한 단위테스트 작성 테스트 코드를 작성하는 것은 개발단계에서 서비스 코드를 작성하는 것 만큼이나 매우 중요하다. 그 이유는 다음과 같다. 1. 작성한 코드가 의도한대로 동작하는지 알 수 있다. 작성한 코드를 테스트하는 방법은 포스트맨을 사용하거나 QA 과정에서 직접 서비스를 사용해 보면서 기능을 테스트하는 방법이 있는데 테스트 해야할 기능이 많다면 전부 테스트하는데 많은 시간이 걸린다. 하지만 테스트 코드를 미리 작성해 놓으면 애플리케이션을 실행하지 않고도 클릭 한번으로 테스트할 수 있으며 프로젝트 빌드 툴인 메이븐이나 그레이들 같은 툴을 사용하여 작성된 테스트 케이스들을 한 번에 모두 실행할 수도 있다. 2. 리팩토링 하기 쉬워진다. 리팩토링이란 결과값에 영향을 주지 않으면서 코드의 가독성과 유지보수성을 높이기 위해 내부..