💬 들어가기 전에현재 개발중인 프로젝트의 환경은 다음과 같다.SpringBoot3JDK 21Postgresql, Redis Cluster그리고 각 서비스를 모듈화하여 멀티 모듈 구조로 개발중에 있다.테스트 환경은 테스트 컨테이너로 구성하였는데,이번에 Redis를 연동하면서 테스트 환경을 구성하는데에 어려움을 겪게 되어 그 과정을 기록하고자 한다. ⚙️ 기존 테스트 환경 설정우선 기존 PostgreSQL만 사용했을 때 설정해두었던 것들은 다음과 같다. TestContainers 클래스에 테스트 컨테이너 관련 설정들을 하고,RestAssuredTest 클래스가 TestContainers를 상속받아 테스트 관련 설정을 했다. 이후 실제 테스트 코드를 작성하는 클래스는 RestAssuredTest를 상속받아 ..
전체 글
이번주는 가상 함수와 오버라이딩에 대해 공부하는 주차였는데, 포인터에 대한 개념이 확실히 잡혀 있지 않다 보니 이해하기가 조금 어려웠다. C++은 포인터 개념이 이해가 안되면 다음 진도 나갔을 때 확실히 힘겨운 부분이 있는 것 같다. 회사를 다니면서 학교 공부를 따라가야 되다보니 진도에 내가 딸려(?) 가고 있는데,어떻게든 시간을 내서 포인터를 다시 공부해야 겠다는 생각이 들었다. 1. 용어 virtual 키워드: 동적 바인딩 지시어, 컴파일러에게 함수에 대한 호출 바인딩을 실행 시간까지 미루도록 지시함 동적 바인딩: 파생 클래스에 대해 기본 클래스에 대한 포인터로 가상 함수를 호출하는 경우, 객체 내에 오버라이딩한 파생 클래스의 함수를 찾아 실행 = 실행 시간에 바인딩이 일어난다 정도로 이해 2. 오버..
1. 용어 지시자(specifier): 값을 어떻게 출력할 것인지 지정해주는 역할 2. printf() 값을 다른 형식으로 출력하고 싶을 때 printf() 사용 printf()는 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능 출력하려는 값이 n개 이상도 가능하며, 출력될 값과 지시자의 순서가 일치해야 함 2-1. 작성 예시 // int 타입의 변수 age 값이 26일 때 System.out.printf("age:%d", age); // 화면에 "age:26" 출력 System.out.printf("age:%d", 26); // 화면에 "age:26" 출력 System.out.printf("age:26"); // 화면에 "age:26" 출력 💡 println()과 달리 printf..
1. 용어 기본형에는 8개의 타입(자료형)이 있으며, 크게 논리형, 문자형, 정수형, 실수형으로 구분 논리형: boolean - 논리값을 저장, true/false 중 하나를 값으로 갖음 문자형: char - 문자를 저장, 변수에 하나의 문자만 저장 가능 정수형: byte, short, int, long - 정수를 저장, 주로 int를 사용 실수형: float, double - 실수를 저장, 주로 double을 사용 ※ 참고: 문자형 char는 문자를 유니코드(정수)로 저장하기 때문에 boolean을 제외한 다른 기본형과 연산과 변환이 가능함 2. 변수 종류와 크기 정수형의 경우, 각 타입마다 저장할 수 있는 값의 범위가 달라 범위에 맞는 타입을 선택하면 됨 일반적으로는 CPU가 가장 효율적으로 처리할 ..
1. 용어 기본 클래스(base class): 상속해주는 클래스 > 부모 클래스 파생 클래스(derived class): 상속받는 클래스 > 자식 클래스 업 캐스팅(up-casting): 파생 클래스 포인터가 기본 클래스 포인터에 치환되는 것 다운 캐스팅(down-casting): 기본 클래스의 포인터가 파생 클래스의 포인터에 치환되는 것 ※ 업 캐스팅/다운 캐스팅이 이해가 되지 않는다면 포인터의 개념을 먼저 익히기 2. 클래스 상속 기본 클래스의 속성과 기능을 파생 클래스에 물려주는 것 중복된 기능을 기본 클래스로 작성, 보다 자세한 기능은 파생 클래스로 작성 예시) Person Student Worker Programmer 잠자기 먹기 잠자기 먹기 공부하기 잠자기 먹기 일하기 잠자기 먹기 일하기 코딩..