본문 바로가기

전체 글231

MongoDB - bulkWrite() 를 이용한 대량 쓰기 작업 처리 데이터의 싱크 맞추는 작업을 하기 위해 몽고디비에서 지원하는 bulkWrite 기능을 이용해서 작업하여 bulkWrite에 대해서 정리한다. MongoDB - bulkWrite() 를 이용한 대량 쓰기 작업 처리 bulkWrite 몽고디비에서 제공하는 bulkWrite()을 이용하면 단일 컬렉션에 대해서 대량 쓰기 작업 뿐만 아니라 업데이트 및 삭제 작업도 수행이 가능하다. (대량 삽입만이라면 isertMany()도 이용 가능) bulkWrite 기능을 이용할 때는 주의점이 있는데 bulkWrite 작업 시 방식이 두가지가 존재한다는 점이다. 첫번째로는 Ordered 방식으로 순서가 존재하는 작업 목록이고 두번째로는 그 반대인 Unordered 방식으로 순서가 존재하지 않는 방식이다. Ordered 방식.. 2023. 2. 18.
AWS CLI version1 version2 마이그레이션 CI/CD를 구축되어 있지 않는 서버 환경에 CI/CD 구축을 위해 git actions을 이용하여 구축하던 도중 AWS ECR에 접속하는 과정에서 로그인 문제가 발생되었다. 해당 오류 사항을 확인하여 보니 AWS CLI의 경우 버전이 1버전과 2버전이 존재하는데 현재 EC2 환경에서 설치되어 있는 AWS CLI 버전이 1버전이었어서 발생한 문제였다. 이번 시간에는 v1에서 v2로 마이그레이션 하는 방법에 대해서 정리한다. AWS CLI version1 version2 마이그레이션 방법 aws에서 제공하는 aws cli 버전 2 마이그레이션 가이드를 살펴보면 버전1과 버전2 모두를 설치하여 사용할수도 있지만 이렇게 되면 경로 설정 등 따로 처리해줘야하는 문제들도 발생할 뿐더러 aws에서도 권장하는 방법은.. 2023. 2. 4.
AWS - 로컬 환경에서 AWS CLI 사용방법 정리 로컬에서나 ec2 서버 환경에서나 CLI를 통해서 AWS에 접속을 하고 싶은 경우 AWS에서 제공하는 AWS CLI를 이용하면 된다. AWS Command Line Interface로 커맨드를 통해 AWS 서비스와 상호 작용할 수 있도록 도와주는 오픈소스 도구이다. 이번 시간에는 AWS CLI 사용 방법에 대해서 정리한다. AWS - 로컬 환경에서 AWS CLI 사용방법 정리 사용 방법 첫번째로 AWS 계정으로 로그인 후 IAM 사용자 생성에서 액세스 키를 발급 받아야한다. AWS CLI를 통해서 접속하려면 AWS 계정의 액세스 키와 시크릿 엑세스 키가 필요하기 때문이다. IAM에 접속하여 사용자 추가를 눌러 생성해주고 사용자 세부 정보 설정도 해준다. 엑세스 유형에서 프로그래밍 방식 엑세스를 활성화 시.. 2023. 1. 31.
SpringBoot - LogBack 관련 개념 및 설정 방법 (2) 지난 시간에는 개념에 대해서 정리하였고 이번 시간에는 기본으로 제공되는 logback을 확장하여 사용하는 방법에 대해서 정리한다. SpringBoot - LogBack 관련 개념 및 설정 방법 (2) 설정 방법 먼저 가장 기본이 될 default log 설정 xml 파일을 생성해준다. 여기서 보이는 org/springframework/boot/logging/logback/base.xml 경로를 따라가보면 스프링부트에서 기본으로 제공하는 logback 관련 설정들을 확인할 수 있다. 다음과 같이 xml 파일이 4가지가 존재하는데 하나씩 살펴보면 base.xml 은 기본 logback 설정 파일이다. console-appender.xml 은 말 그대로 콘솔에 대한 appender 설정 파일이다. ${CONS.. 2023. 1. 29.
Kotlin - indexOf()를 통한 Data Class와 Class 특성 알아보기 개발을 하던 도중 indexOf()를 활용하여 전달 된 파라미터 값과 일치하는 리스트 값의 인덱스 번호를 반환해줘야 하는 경우가 생겼다. List안에는 일치하는 값이 있음에도 불구하고 indexOf() 함수를 활용하여 값을 찾으려고 하는데 반환 된 값이 -1로 떨어지는 것이었다. 해당 케이스에 대한 원인과 해결 방안에 대해서 정리한다. Kotlin - indexOf()를 통한 Data Class와 Class 특성 알아보기 원인 다음과 같이 List 컬렉션에서는 indexOf() 함수를 제공한다. indexOf()는 해당 값이 존재하지 않으면 -1을 반환하고 존재한다면 해당 index 값을 리턴한다. 찾으려고 한 값은 dto 객체 내의 특정 필드의 값을 찾는 것이 었고 예시를 들면 다음과 같다. val t.. 2023. 1. 24.
스프링부트에서 톰캣이 어떻게 자동으로 설정되어 실행되는가 스프링부트를 이용하면 내장 서블릿 컨테이너인 톰캣이 기본적으로 내장되어 있다. 근데 여기서 어떻게 톰캣이 자동으로 설정되어 기본 서버로서의 역할을 하는지 궁금하여 알아본 내용을 정리한다. 스프링부트에서 톰캣이 어떻게 자동으로 설정되어 실행되는가 서블릿 컨텐이너 - 톰캣 스프링부트에서 스프링 웹을 사용하게 되면 프로젝트에는 톰캣이 기본적으로 내장되어 있다. 근데 여기서 톰캣이 어떻게 자동으로 설정되어 기본 서버로 실행이 되는 것일까? 이것을 알기위해서는 먼저 스프링부트에서 빈을 어떻게 설정하는지 알아야한다. 스프링부트에서 빈은 두번의 단계를 거쳐서 생성된다. 첫번째로 @ComponentScan 하위 패키지에서 @Component, @Service, @Controller 등의 컴포넌트를 먼저 스캔해서 빈을 .. 2023. 1. 16.