본문 바로가기
728x90
반응형

전체 글399

[React] MSW로 API Mocking 하기 (1) - MSW란? 안녕하세요. J4J입니다. 이번 포스팅은 MSW로 API Mocking 하기 첫 번째인 MSW가 무엇인지에 대해 적어보는 시간을 가져보려고 합니다. MSW란? MSW는 Mock Service Worker의 약자로 Service Worker를 활용하여 API 요청을 Mocking 하도록 도와주는 라이브러리입니다. Mocking을 한다는 것은 단어의 의미대로 실제 값을 활용하는 것이 아닌 허구의 값이 사용되도록 만드는 것이고, API 요청을 Mocking 하도록 도와주기 때문에 API 처리에 대한 결괏값을 허구의 값으로 만들 수 있도록 도와줍니다. MSW를 사용하지 않을 경우 API 요청에 대한 Mocking을 하기 위해 다른 여러 방법들이 활용될 수 있습니다. 예를 들면 Mocking 처리를 위한 서버를 .. 2023. 10. 8.
[React] Vite 타입 스크립트 프로젝트에 Jest 사용 환경 설정 안녕하세요. J4J입니다. 이번 포스팅은 Vite 타입 스크립트 프로젝트에 Jest 사용 환경 설정하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 관련 글 [React] Vite 사용하기 Jest 사용 환경 설정 Jest를 이용하여 테스트 케이스를 작성하는 경우는 여러 가지 존재합니다. Jest 내부에서만 작성되어 테스트하는 경우, 정의해 둔 모듈을 로드하여 테스트하는 경우, HTML element까지 접근하여 테스트하는 경우 등이 있습니다. 내부에서만 작성하는 경우부터 HTML element까지 접근하는 경우까지 점점 갈수록 더 많은 설정들이 필요한데, 일반적으로 React에서 Jest를 활용하는 경우 HTML element까지 접근하여 사용하기 때문에 이번 글에서는 한 번에 모든 설정을 해보겠습.. 2023. 10. 6.
[React] Jest로 테스트할 때 비동기 처리하기 안녕하세요. J4J입니다. 이번 포스팅은 Jest로 테스트할 때 비동기 처리하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 비동기 처리하는 경우 Jest에서 비동기 처리하는 경우는 빈번하게 발생됩니다. 단순한 예시를 들면, 하나의 페이지에서 화면에 보이고 싶은 데이터를 가져오기 위해 API 요청을 하게 되고 전달받은 데이터들이 화면에 올바르게 보이고 있는지 확인해 볼 때 비동기 처리가 필요합니다. 예시를 기반으로 간단하게 소스를 작성해보면 다음과 같습니다. import axios from 'axios'; import { useEffect, useState } from 'react'; interface Person { name: string; position: string; } export defau.. 2023. 10. 5.
[SpringBoot] @Transactional 사용 방식 정리 안녕하세요. J4J입니다. 이번 포스팅은 @Transactional 사용 방식에 대해 적어보는 시간을 가져보려고 합니다. @Transactional이란? @Transactional은 Spring에서 사용 가능한 어노테이션 중 하나로 트랜잭션의 원칙이 지켜질 수 있도록 도와줍니다. 조금 더 단순한 기능에 대해서 말해보면, 비즈니스 로직이 동작되는 과정에서 에러가 발생되면 DB 작업을 모두 롤백을 시켜주고 에러가 발생되지 않으면 DB 작업을 모두 커밋하도록 도와줍니다. 비즈니스 로직에서 트랜잭션 처리가 이루어지는 계층은 Service Layer로 정의되고 있습니다. 즉, Spring 개발을 하다 보면 Controller - Service - Repository의 형태가 구성되기 마련인데 이중 Service .. 2023. 9. 25.
[SpringBoot] LocalDateTime 사용하기 안녕하세요. J4J입니다. 이번 포스팅은 LocalDateTime 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다. LocalDateTime이란? LocalDateTime은 Java8에서 등장한 클래스 중 하나로 날짜와 관련된 다양한 기능들을 수행할 때 활용할 수 있습니다. Spring을 이용하여 개발 할 때 날짜 타입을 생성하면 보통 Date를 사용해 볼 수 있습니다. 하지만 LocalDateTime이 등장하면서 부터 Date 대신 LocalDateTime의 사용을 권장하고 있습니다. 왜냐하면 Date는 mutable(가변성)하기 때문에 Date 값을 새로운 변수에 담아 값을 수정하게 되면 원본도 함께 변경이 이루어지지만 LocalDateTime은 immutable(불변성)이기 때문에 원본은 변.. 2023. 9. 24.
[SpringBoot] i18n을 활용하여 다국어 처리하기 안녕하세요. J4J입니다. 이번 포스팅은 i18n을 활용하여 다국어 처리하는 방법에 대해 적어보는 시간을 가져보려고 합니다. i18n이란? i18n은 국제화하는 기능을 의미합니다. 다른 말로는 세계에 존재하는 다양한 언어들을 서비스 사용자에게 보여줄 때 사용될 수 있는 것을 뜻합니다. 다른 여러 지역의 사용자들이 하나의 서비스를 사용하는 경우는 잦은 일은 아니지만, 만약 이런 유형의 서비스를 제공하기 위해 개발해야 한다면 i18n을 활용하여 다양한 지역의 언어들을 보여주는 기능을 활용해 볼 수 있습니다. 기본 설정 [ 1. properties 파일 인코딩 설정 ] 일반적인 상황에서는 properties 파일 인코딩을 설정하지 않아도 되지만 한글을 적용하기 위해서는 properties 파일 인코딩 설정이 .. 2023. 9. 18.
[Springboot] Jacoco를 이용하여 테스트 커버리지 확인하기 안녕하세요. J4J입니다. 이번 포스팅은 Jacoco를 이용하여 테스트 커버리지 확인하는 방법에 대해 적어보는 시간을 가져보려고 합니다. Jacoco란? Jacoco는 제목에서도 알 수 있는 것처럼 Spring에서 개발된 자바 소스의 테스트 커버리지를 확인하기 위해 사용되는 오픈소스 라이브러리입니다. 여기서 커버리지(Coverage) 라고 하는 것은 단어를 해석해 보면 "적용 범위"를 뜻하는 것을 알 수 있으며, 결국 테스트 커버리지라고 하는 것은 테스트 케이스가 작성된 소스 코드 범위를 뜻하는 것을 알 수 있습니다. 즉, Jacoco를 활용한다면 프로젝트에서 작성된 테스트 코드들이 전체 소스 코드 중 어느 수준까지 적용되고 있는 것을 확인할 수 있게 되고 커버리지 비율이 높을수록 전체 소스에 대한 테스.. 2023. 9. 16.
[SpringBoot] SpringBatch 사용하기 (4) - Quartz로 클러스터링 처리하기 안녕하세요. J4J입니다. 이번 포스팅은 SpringBatch 사용하기 마지막인 Quartz로 클러스터링 처리하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [SpringBoot] SpringBatch 사용하기 (1) - Scheduler를 이용하여 Tasklet, Chunk 배치 만들기 [SpringBoot] SpringBatch 사용하기 (2) - Job Parameter 활용 및 동일 Job 반복 실행 [SpringBoot] SpringBatch 사용하기 (3) - Quartz로 배치 만들기 클러스터링 적용 방법 이전 글을 통해서도 Quartz를 사용해 볼 수 있었지만 Quartz를 적용했다고 해서 모두 클러스터링이 적용된 것은 아닙니다. 클러스터링을 적용하기 위해서는 SpringBa.. 2023. 9. 10.
[SpringBoot] SpringBatch 사용하기 (3) - Quartz로 배치 만들기 안녕하세요. J4J입니다. 이번 포스팅은 SpringBatch 사용하기 세 번째인 Quartz로 배치 만드는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [SpringBoot] SpringBatch 사용하기 (1) - Scheduler를 이용하여 Tasklet, Chunk 배치 만들기 [SpringBoot] SpringBatch 사용하기 (2) - Job Parameter 활용 및 동일 Job 반복 실행 Quartz란? Quartz는 Spring에서 배치 프로세스를 만들 수 있는 오픈소스 라이브러리 중 하나로 작은 단위의 서비스부터 시작하여 큰 규모의 서비스들까지 모두 활용해 볼 수 있습니다. 이전 글들을 확인해보면 Spring Batch를 이용하여 배치를 만들어내는 것들을 볼 수 있었는데,.. 2023. 9. 3.
[SpringBoot] SpringBatch 사용하기 (2) - Job Parameter 활용 및 동일 Job 반복 실행 안녕하세요. J4J입니다. 이번 포스팅은 SpringBatch 사용하기 두 번째인 Job Parameter 활용 및 동일 Job 반복 실행하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [SpringBoot] SpringBatch 사용하기 (1) - Scheduler를 이용하여 Tasklet, Chunk 배치 만들기 Parameter 사용 (1) - Tasklet 이전 글에서 Tasklet을 통해 로그 데이터 적재하는 코드를 작성해 봤습니다. 해당 코드를 Parameter 사용하는 소스로 변경해 보겠습니다. 먼저 Job이 수행될 때 활용할 Parameter를 등록하는 곳은 JobLanucher를 이용하여 Job을 등록할 때입니다. 예를 들어, Scheduler가 동작될 때 입력해 둔 Par.. 2023. 8. 26.
[SpringBoot] SpringBatch 사용하기 (1) - Scheduler를 이용하여 Tasklet, Chunk 배치 만들기 안녕하세요. J4J입니다. 이번 포스팅은 SpringBatch 사용하기 첫 번째인 Scheduler를 이용하여 Tasklet, Chunk 배치 만드는 방법에 대해 적어보는 시간을 가져보려고 합니다. SpringBatch란? SpringBatch는 Spring에서 작업해야 되는 대용량 처리들을 반복적으로 수행할 수 있도록 도와주는 배치 프레임워크입니다. 서비스 운영을 하다 보면 사용자의 요청과 관련 없이 일정 시간마다 작업이 이루어져야 하는 것들이 발생하기 마련입니다. 예를 들면, 일정 기간이 지난 사용자들의 계정을 잠김 처리를 수행하던가 또는 매일 발생된 로그들을 이용하여 분석된 결괏값을 새롭게 적재하는 것들이 있습니다. 이런 기능들을 구현할 때 일정 시간마다 개발자가 로직이 동작되도록 작업을 항상 할 .. 2023. 8. 22.
[AWS] Organizations로 계정 관리하기 안녕하세요. J4J입니다. 이번 포스팅은 Organizations로 계정 관리하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [AWS] IAM으로 사용자 관리하기 [AWS] IAM으로 사용자 그룹 관리하기 [AWS] IAM 역할을 이용하여 임시 권한 부여하기 Organizations란? AWS Organizations는 여러 AWS 계정들을 조직 단위로 통합하여 중앙 관리할 수 있도록 도와주는 AWS 서비스입니다. 개인적으로 Organizations를 처음 접하게 되면서 가장 궁금했던 부분은 "IAM과 어떤 차이가 있을까?" 였습니다. IAM과의 차이점은 다음과 같이 간단히 정리해 볼 수 있습니다. 첫 번째는 관리되는 계정입니다. IAM은 AWS 계정을 통해 생성할 수 있는 IAM 사용자들.. 2023. 8. 13.
[AWS] IAM 역할을 이용하여 임시 권한 부여하기 안녕하세요. J4J입니다. 이번 포스팅은 IAM 역할을 이용하여 임시 권한 부여하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [AWS] IAM으로 사용자 관리하기 [AWS] IAM으로 사용자 그룹 관리하기 역할이란? IAM에서 사용해 볼 수 있는 역할은 특정 IAM 사용자에게 사용자가 가지고 있지 않은 권한을 임시로 부여할 때 활용될 수 있습니다. 또한 이번 글에서 다루진 않겠지만 역할은 임시 권한 부여뿐만 아니라 EC2, Lambda와 같은 AWS 서비스에서 다른 AWS 서비스 자원에 접근하려고 할 때 사용될 수도 있습니다. 사용자에게 역할을 부여할 때 주의할 점이 있습니다. 특정 IAM 사용자에게 부여된 권한을 이용하여 AWS 서비스를 사용하고 있을 때 해당 사용자에게 역할을 부여해 .. 2023. 8. 10.
[AWS] IAM으로 사용자 그룹 관리하기 안녕하세요. J4J입니다. 이번 포스팅은 IAM으로 사용자 그룹 관리하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [AWS] IAM으로 사용자 관리하기 사용자 그룹이란? IAM에서 사용해 볼 수 있는 사용자 그룹은 동일한 권한을 부여해야 하는 다수의 사용자들을 보다 관리하기 쉽게 만들어줍니다. 예를 들면, 클라우드 관리하는 담당자가 필요하여 직원을 채용하고 해당 직원에게 클라우드 관리할 수 있는 권한을 부여한 AWS 사용자를 생성하여 제공해 줄 수 있습니다. 만약 해당 상황에서 동일한 역할을 하는 담당자가 더 많이 채용된다고 가정해보겠습니다. 그러면 이전 직원처럼 해당 직원들에게도 동일한 권한을 부여한 AWS 사용자를 생성해줘야 합니다. 하나씩 AWS 사용자를 생성하며 동일한 권한을 적용.. 2023. 8. 6.
[AWS] IAM으로 사용자 관리하기 안녕하세요. J4J입니다. 이번 포스팅은 IAM으로 사용자 관리하는 방법에 대해 적어보는 시간을 가져보려고 합니다. IAM이란? IAM은 Identity and Access Management의 약자로 AWS에서 제공해 주는 여러 리소스들에 안전하게 액세스 할 수 있는 기능을 제공해 줍니다. IAM에서 액세스 관리를 하기 위해 사용되는 것들은 다음과 같이 있습니다. 사용자 (USER) 사용자 그룹 (GROUP) 정책 (POLICY) 역할 (ROLE) 먼저 사용자는 AWS 내부에서 특정 리소스에 접근하여 기능 처리를 할 수 있는 사용자를 의미합니다. 상황에 따라 AWS 콘솔에 직접 로그인하여 AWS에서 제공해 주는 리소스 설정들을 해볼 수 있고, Git과 같은 곳에서 AWS에 액세스 하기 위해 사용될 수도.. 2023. 8. 3.
[AWS] Transit Gateway 피어링 연결하기 안녕하세요. J4J입니다. 이번 포스팅은 Transit Gateway 피어링 연결하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [AWS] VPC 피어링 연결하기 [AWS] Transit Gateway 사용하기 [AWS] Transit Gateway Blackhole 사용하기 Transit Gateway 피어링이란? Transit Gateway 피어링은 VPC 피어링과 유사하게 서로 다른 두 개의 Transit Gateway들 간에 라우팅을 할 수 있도록 연결해 주는 것을 의미합니다. Transit Gateway 피어링도 VPC 피어링처럼 다음과 같은 특징들을 가지고 있습니다. 서로 다른 지역에 있는 Transit Gateway 연결 가능 서로 다른 계정에 있는 Transit Gateway.. 2023. 7. 31.
[AWS] Transit Gateway Blackhole 사용하기 안녕하세요. J4J입니다. 이번 포스팅은 Transit Gateway Blackhole 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [AWS] VPC 피어링 연결하기 [AWS] Transit Gateway 사용하기 Blackhole이란? Transit Gateway에서 Blackhole은 특정 대역을 통신할 수 없게 만들려고 사용됩니다. 예를 들면 Routes 설정에 10.0.1.0/24 대역이 연결 및 전파되도록 설정했는데 10.0.1.184/32 대역에 대해서만 통신을 불가하게 만들고 싶다면 Blackhole을 활용해 볼 수 있습니다. 이처럼 Blackhole을 활용한다면 통신이 가능한 대역들을 하나씩 등록해주지 않고 더 큰 범위의 대역을 등록해줬다가 통신이 불가능해야 하는 대역.. 2023. 7. 25.
[AWS] Transit Gateway 사용하기 안녕하세요. J4J입니다. 이번 포스팅은 Transit Gateway 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 글 [AWS] VPC 피어링 연결하기 Transit Gateway란? Transit Gateway는 네트워크 중앙 Hub 관리형 서비스로 VPC와 온프레스미 네트워크를 서로 연결하는데 도움을 줍니다. VPC 피어링에 대해 알고 계신 분들은 Transit Gateway의 역할이 유사하다는 것을 느끼실 겁니다. 결론부터 말하면 Transit Gateway는 VPC 피어링의 단점을 보완하는데 도움을 줍니다. VPC 피어링의 단점은 1:1 연결만 가능하기 때문에 n개의 VPC들의 피어링이 서로 필요한 경우 n(n-1)/2개 만큼의 피어링 연결을 해줘야 합니다. Transit Gat.. 2023. 7. 22.
728x90
반응형