수정이나 삭제 등의 비즈니스 로직을 구현할 때, 엔티티의 소유자를 확인하고자 하는 로직을 작성해야할 때가 있습니다.이런 경우에 서비스 코드마다 유저가 소유자인지 확인하는 코드를 써야 합니다.아래에 보이는 코드는 짧을 지 모르지만, 서비스 코드마다 중복된 검증 로직이 들
기존 프로젝트에서 작성했던 Dockerfile을 통해 이미지를 빌드하면 속도 저하 및 많은 용량에 대한 문제가 있어, 그에 대한 해결을 공유하고자 합니다.프로젝트에 대한 구성은 아래의 글에서 확인할 수 있습니다.\[Github Actions + Docker + EC2]
현재의 개발에서는 지속적 배포(Continuous Deployment, CD)를 통해 빠르고 안정적인 서비스 제공이 필수가 되었습니다. 특히, MSA(Microservices Architecture)를 채택한 프로젝트에서는 각 서비스의 독립성과 배포 효율성을 극대화하는
내일배움캠프 스프링 심화 1기를 수료하고 그에 대한 저의 개인적인 후기를 공유하고자 합니다~!저는 컴퓨터과학과를 전공한 후, 졸업하고 1년 동안 혼자서 방향을 잡지 못하고 방황했습니다. 개발 공부를 하긴 했지만, 체계적인 학습이 부족하여 실질적인 기술을 쌓는 데 어려움
진행 중인 MSA 프로젝트에서 각 서비스 모듈에 대해 Docker를 활용한 CI/CD 파이프라인을 구축하던 중 Docker 환경 구축에 관련된 몇 가지 문제를 겪었습니다. 이를 해결하는 과정을 공유하고자 합니다.프로젝트가 멀티모듈 구조로 되어 있어서, 서비스 모듈별로
프로젝트를 진행하면서, 여러 팀원과 환경을 맞추기 위해 편리하게 docker 를 설정 후 실행하고 있었다.그런데, 어느 날 잘 실행되던 docker 가 안되는 것이다...!아래 사진은 에러 내용이다.내용을 살펴보면, docker를 2181 port 로 binding 하
프로젝트 진행 중, 컨트롤러에 대한 단위테스트를 하기 위해 Mockito 와 WebMvcTest 를 이용해 테스트를 작성하고 있었다.현재 프로젝트는 여러 멀티모듈로 이어져 있고, application 에서 다른 모듈의 component 도 scan 하고 있어서 Spri
Springboot API 를 개발하고 컨트롤러 테스트를 작성하던 중 발생하는 에러..전체 조회 테스트에 Pageable 객체가 모킹돼있어서 그런 것 같았다. 아래는 테스트 코드는 전체 조회(검색)을 하는 코드이다. Response 로 가는 객체의 필드 존재 여부를 확
Spring Boot 로 API 기능들을 개발하다보면 전체 조회 및 검색 기능을 어떻게 처리할까 고민이 된다.많은 검색 파라미터, 권한 조건 처리(Security Filter 에서 1차로 거를 수 있지만 그렇지 않은 경우), 페이징 처리 등을 그냥 JPA 로 개발하는
Kafka 학습을 위한 실습 진행 중 만난 에러...docker-compose-kafka-errordocker로 kafka 컨테이너를 실행하고 스프링부트 프로젝트에서 작성된 producer 와 consumer 를 실행하면 위와 같은 에러가 무한으로 발생했다.딱 보면 b
캐싱은 Spring 내부에서도 비교적 간단하게 구성할 수 있다.redis 와 함께 SpringBoot 에서 캐싱을 적용하는 방법을 알아보자.캐싱을 사용하기 위한 configuration 을 작성해준다@EnableCaching : CacheManger의 구현체가 Bean
simple-msa-order-product지난 시간에는 Spring Cloud 를 사용하여 msa 의 기본적인 개념과 동작 과정을 설명했다. 이번에는 위 사진과 같이 프로젝트를 구성해보겠다.RequirementSpringBoot 3.3.2Java17gradlemsa
이전 글에서는 Redis 자체를 이용하는 방법을 설명했다. docker를 통해 redis 이미지로 설치하고, 인텔리제이에서 redis 를 연결 후 직접 콘솔에서 명령어들을 익혀보았다.이번에는 SpringBoot 어떻게 Redis 를 활용하는지 살펴보자.redis 관련
기존의 관계형 데이터베이스를 사용하는 주된 이유는 영속성 데이터, 즉 파일시스템에 데이터를 저장함으로서 서비스가 종료되어도 유지되는 데이터를 위해서이다.하지만, 많은 서비스가 일시적인 데이터를 저장해야 하는 상황을 필요로 한다. (ex> 로그인 정보, 장바구니 등등)이
서비스 디스커버리 서비스 디스커버리는 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능으로 MSA 에서는 필수적인 기능이다. 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회하여 통신 주요기능 서비스 등록,
하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는 소프트웨어 아키텍처 스타일각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 배포되고 확장될 수 있음서비스 간의 통신은 주로 HTTP/HTTPS, 메시지 큐 등을
Spring Security를 통한 회원 인증/인가 부분에서 생기는 문제점과 해결책 | SpringBoot3.x, Spring Security 6 이상
7일차 미션 - 주변 구름 탐색하기 행렬이 주어지고 모든 index 에 대해 탐색하는, 전형적인 완전탐색 문제이다. 평소에 코딩테스트에 관심이 많았던 사람이라면 손쉽게 풀었을 거라 생각한다.그렇게 생각하자마자 정답율이 이미 98퍼센트... 핵심 아이디어 사실 그