전체 글 79

[Test] MockBean을 통한 테스트

@MockBean private JavaMailSender mailSender; ... BDDMockito.doNothing().when(mailSender).send(any(SimpleMailMessage.class)); mailSender의 send 메서드가 SimpleMailMessage 유형의 인자로 호출될 때 아무런 행동도 수행하지 않아야 함을 명시한다. 다시 말해서, 테스트 중에는 실제 이메일 전송과 같은 로직이 실제 동작되어 발생하는 부작용을 피하기 위해 send 메서드 호출을 무시하도록 설정한다.

Java & Spring Boot 2024.01.27

[JAVA] 10진수 <-> 2진수, 8진수, 16진수

10진수 -> 2진수, 8진수, 16진수 int decimal = 10; String binary = Integer.toBinaryString(decimal); // 10진수 -> 2진수 String octal = Integer.toOctalString(decimal); // 10진수 -> 8진수 String hexaDecimal = Integer.toHexString(decimal); // 10진수 -> 16진수 2진수, 8진수, 16진수 -> 10진수 int binaryToDecimal = Integer.parseInt(“1010”, 2); int octalToDecimal = Integer.parseInt(“12”, 8); int hexaToDecimal = Integer.parseInt(“A”, ..

카테고리 없음 2024.01.27

[Git] 내가 자주 쓰는 명령어

현재까지 자주 쓰는 Git 명령어는 아래에 작성한 명령어 정도이고, 정리를 위해 남긴다. 최근엔 소스트리와 같은 프로그램도 잘되어있어서 많이 사용 중이다. # 초기화 $ git init # 클론 git clone https://~ # 상태 확인 $ git status # 로그 확인 $ git log # 파일 확인 $ ls $ ls -al # 로컬 저장소에서 스테이징 영역에 파일 추가 $ git add "file.txt" $ git add . # 스테이징 영역에 추가된 파일을 대상으로 repository에 커밋 $ git commit -m "commit message" # 브랜치 보기 $ git branch # 브랜치 생성 $ git branch dev # 브랜치 이동 $ git checkout dev #..

Etc. 2024.01.27

[Coding] 한가지만 하라

함수는 가능하면 한가지 일만 하도록 만들자. 나도 동시에 여러가지를 못하니까. 만약, 책에 대한 키워드 검색을 담당하는 기능을 구현한다고하면 아래와 같이 개발할 것 같다. 물론 검색 기능을 제대로 개발할 경우, 엘라스틱 서치과 같은 검색 엔진을 사용하는게 좋다고 생각하며, 아래 코드는 내가 생각하는 기본적인 코드이자 예시이다. public BookListWithPageInfoDto searchBooksByKeyword(BookRequestDto bookRequestDto, UserDetailsDto userDetailsDto, String lang) { List bookFavoriteIdList = fetchFavoredBookIds(userDetailsDto); List keywords = proces..

Etc. 2024.01.27

[Coding] 의도를 분명하게 하라

좋지 못한 코드 public List getThem() { List list1 = new ArrayList(); for (int[] x : theList) { if (x[0] == 4) { list1.add(x); } return list1; } } // theList에 무엇이 들었는가? // theList에서 0번째 index는 왜 중요하지? // 4는 무슨 의미야? // list1은 어떻게 사용이 될까? 좋은 코드 public List getFlaggedCells() { List flaggedCells = new ArrayList(); for (int[] cell : gameBoard) { if (cell[STATUS_VALUE == FLAGGED) { flaggedCells.add(cell); } ..

Etc. 2024.01.27

AWS NAT Gateway를 통한 Private EC2 인스턴스의 외부 통신 구성

1. VPC 메뉴 접속 2. NAT Gateway 탭 클릭 3. Name 입력 4. Subnet 위치 선택 5. Connectivity type에서 Public 선택 6. Elastic IP allocation ID - NAT Gateway도 IP를 기반으로 통신함 - Allocate Elastic IP 버튼을 눌러 NAT Gateway에 IP를 할당해줌 - NAT Gateway에 할당되는 IP는 Elastic IP이며, 기본 5개까지 제공이되므로 주의 필요 7. NAT Gateway 생성 클릭(생성까지 3-5분 소요) 8. Private Subnet의 Route Table -> Routes에 7에서 생성한 NAT Gateway를 타겟으로 설정 - Private Subnet에서 외부 통신이 필요한 경우 ..

Infra & AWS 2023.06.07

AWS NACL 특징 및 설정 방법

- EC2 Security Group과 같이 방화벽 설정이 가능함 - 서브넷 단위로 설정 가능하며, 인스턴스 단위로는 설정 불가능 - 다수의 서브넷에 동시 적용 가능 - 특정 Port 또는 특정 IP를 Deny 가능(EC2 Security Group은 불가능하지만 NACL은 가능함) - Stateless해서 Inbound, Outbound 관련 설정을 모두 신경써서해줘야함(EC2 Security Group은 Inbound만 설정하고 Outbound를 설정하지 않아도 응답을 반환할 수 있지만, NACL은 그렇지 않음)

Infra & AWS 2023.06.06