한 주를 돌아보며 회고를 작성합니다 TDD1주차는 TDD로 point 이용 / 충전 관련 애플리케이션을 만드는 과제를 진행했다.평소 개발 방식이 기능 구현 → 테스트 작성 순이었는데, 역순으로 테스트 코드 작성을 먼저 하려니 어색하고 생각해야 할 부분이 많았다.어떤 기능을 구현해야 하는지 요구사항을 정확히 파악해야 테스트 코드를 작성할 수 있는데, 테스트 코드를 먼저 작성하면서 하나의 시나리오를 구성한다고 생각하면 편했다.예를 들어 포인트를 충전하는 기능을 구현한다면, 테스트 코드를 아래의 흐름으로 먼저 작성할 수 있다.포인트를 충전할 사용자의 정보를 준비한다.해당 정보의 사용자에 포인트를 충전하는 메서드를 호출한다.메서드의 결괏값이 내가 예상한 결괏값과 일치한지 검증한다.테스트 코드를 작성할 때, 검..
Actions Runner Controller 를 이용해 self-hosted runner로 배포하기 Github actions workflow를 실행시키는 환경에는 Github가 제공하는 github-hosted 환경과 자체적으로 관리하는 self-hosted 환경이 존재한다. 대부분(나 또한 그랬듯이) github-hosted 환경에서 빌드 및 배포 작업을 진행한다. 대표적으로 ubuntu-latest 환경(windows-latest, macos-latest..)이 있다. 하지만 이번에 self-hosted 환경에서 애플리케이션을 빌드 및 배포하는 작업을 진행했다. self-hosted runner를 어디에서 실행시킬지도 2가지 방법으로 나뉜다. (다른 방법이 더 존재할 수도..) EC2에서 실행 e..
AWS EKS “instances failed to join the kubernetes cluster” Error AWS EKS Node Group을 생성 하는데, instances failed to join the kubernetes cluster 에러가 발생하는 문제가 있었다. 결론부터 나의 경우 체크해보아야 하는 부분은 크게 3가지였다. Cluster Private, Public Endpoint 확인 Cluster Worker Node의 IAM 권한 확인 Cluster가 배치된 VPC 내 Subnet 연결 설정 확인 노드 그룹 생성 시 인스턴스는 정상적으로 생성이 되었는데, 해당 인스턴스가 eks cluster에 Join이 되지 않아 cluster 생성에 실패하는 문제였는데 어떻게 해결했는지 복기해..
Redis Sorted Set Redis의 Sorted Set(ZSET) 자료구조에 대해 알아보자. Sorted Set은 저장된 데이터의 정렬된 순서를 가지는 집합 데이터 구조이다. Set 구조이기 때문에 각 멤버(member)에 대해 고유한 식별자(key)와 함께 점수(score)를 지정하여 데이터를 저장한다. 아래 그림을 보면 구조를 파악하기 쉽다. key안에 고유한 member가 존재하고 각 member에 대한 점수가 있다. 만일 동일한 점수가 존재할 경우 member의 사전순으로 정렬을 한다. Sorted Set 특징 정렬된 순서: Sorted Set의 멤버는 각 멤버의 점수를 기준으로 오름차순에 따라 정렬되어 저장된다 고유한 멤버: Sorted Set은 각 멤버를 식별자로 구분할 수 있어 중복되..
새로운 메서드를 추가하는데 기존에 존재하는 코드와 중복되는 부분이 많아 코드를 재사용하기 위해 BiFunction이라는 것을 사용할 수 있다는 것을 알게 되었다. 그래서 오늘은 BiFunction에 대해 알아보려고 한다. BiFunction BiFunction은 Java 8에서 도입된 함수형 인터페이스 중 하나로, 두 개의 입력을 받아 결과를 반환하는 함수를 모델링합니다. BiFunction 인터페이스 인터페이스에서 T와 U는 함수의 입력 타입이고, R은 반환 타입이다. BiFunction을 사용하는 간단한 예제 코드를 살펴보자. BiFunction biFunction = (x, y) -> x + y; String biFunctionResult = biFunction.apply("Hello", " Wor..