[F-Lab 챌린지 31일차 TIL] AWS RDS, 토비의 스프링 2장

성수데브리·2023년 7월 28일
0

f-lab_java

목록 보기
24/73

알고리즘

def find(data, p, step):
    print(p)
    if step == 6: return
    if p != '': data.append(p)
    for c in ['A', 'E', 'I', 'O', 'U']:
        find(data, ''.join([p, c]), step + 1)
  • 반복문 내에서 호출한 재귀함수는 호출스택에 어떤 순서로 쌓이는지 이해하지 못했다. 아래 처럼 변수가 들어온 값을 찍어보고나서 순서가 이해되었음..
    아래 왼쪽 사진은 회색은 기저조건에 의해 함수가 종료되는 입력값이다.

def find(data, p):
    print(p)
    if step == 6: return
    if p != '': data.append(p)
    for c in ['A', 'E', 'I', 'O', 'U']:
        find(data, ''.join([p, c]))
  • step 변수를 제거하고 p로 문자열 길이 체크를 하면 더 오래걸린다.



프로젝트

AWS RDS 구축하기

VPC?

Amazon VPC 란 Amazon Virtual Private Cloud 로 사용자가 정의한 가상 네트워크다. 사용자가 구성요소들을 이용하여 원하는 형태로 네트워크망을 구축할 수 있다.

물리적으로 같은 클라우드 상에 있지만, 보안상의 목적 등을 위해 논리적으로 다른 클라우드인것처럼 동작하도록 만든 가상 클라우드 환경

삽질

인바운드 규칙 설정

인스턴스 생성시 퍼블릭 엑세스 가능성 체크만 해주면 외부에서 접근 가능한 줄 알았는데 아니었다.

보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다. 각 보안 그룹에 대해 인스턴스에 대한 인바운드 트래픽을 제어하는 규칙과 아웃바운드 트래픽을 제어하는 별도의 규칙 세트를 추가합니다.
보안 그룹을 만드는 경우에는 인바운드 규칙이 없습니다.
보안 그룹에 인바운드 규칙을 추가하기 전까지는 다른 호스트에서 시작하여 인스턴스로 들어오는 인바운드 트래픽이 허용되지 않습니다.

출처 : AWS 사용 설명서

MySQL 인스턴스로 트래픽이 들어오도록 인바운드 규칙을 추가해야 된다.

파라미터 설정

  1. time_zone
  2. character_set
    1. utf8
      1. 이모지 저장 불가
      2. 가변 3바이트
    2. utf8mb4
      1. 이모지 사용 가능
      2. 4바이트



공부

테스트란?

테스트란 내가 작성한 코드가 의도와 맞게 동작하는 지 검증하는 것이다.

단위 테스트?

테스트에도 관심사의 분리가 적용이 되는데 테스트는 테스트 하고자 하는 대상에 집중해서 테스트 하는 것이 좋다.
테스트는 가능한 가장 작은 단위를 테스트 하는 것이 좋다. 이를 단위 테스트라 하는데 단위에 대한 명확한 기준은 없다.

테스트 결과

테스트의 결과는 성공과 실패가 있다. 실패는 테스트 중 에러가 발생한 것과 기대와 다르게 나오는 것 두 가지 경우가 있다.

단위 테스트의 조건

단위 테스트는 항상 일관성 있는 결과가 보장돼야 한다. 그리고 독립적으로 항상 동일한 결과를 낼 수 있어야 한다.

테스트 주도 개발?

만들고자 하는 기능의 내용을 담고 있는 테스트 코드를 먼저 만들고 테스트를 성공하게 해주는 코드를 작성하는 방식의 개발 방법이다.

테스트 주도 개발을 할때는 작업 주기를 가능한 짧게 가져가야 한다.

Junit 프레임워크가 테스트 메서드를 실행하는 과정

@Test 가 붙은 메서드를 모두 검색한다.

모든 테스트 메서드를 실행할 때마다 테스트 클래스 오브젝트를 생성한다.

이렇게 하는 이유는 모든 테스트는 독립적으로 항상 동일한 결과를 보장해야하기 때문이다.

테스트 프레임워크를 사용하면 좋은점

테스트 제어를 테스트 프레임워크가 해준다.

픽스처?

테스트에 필요한 정보나 오브젝트를 픽스쳐라 한다.

테스트 컨텍스트 프레임워크

어플리케이션 컨텍스트처럼 생성 비용이 큰 오브젝트를 생성 및 관리해준다.
이 덕분에 어플리케이션 컨텍스트는 한 번만 생성되고 모든 테스트가 공유할 수 있다.
테스트에 필요한 컨텍스트 구성 정보만 알려주면 된다.

테스트 방법 선택

  1. 스프링 컨테이너 없이 테스트 할 수 있는 방법을 우선적으로 고려하자.
  2. 복잡한 의존관계가 있는 경우는 스프링의 설정을 활용한 DI 방식을 고려하자.

참고


[AWS] VPC(Virtual Private Cloud)란 무엇일까?

자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용) - Amazon Relational Database Service

RDS IAM Authentication with Spring Boot - secure password-less database authentication on AWS - Yolan Vloeberghs

Create and Connect to a MySQL Database with Amazon RDS

[AWS] Amazon RDS MySQL 데이터베이스 만들기

0개의 댓글