본문 바로가기

Programming137

레디스redis 자료구조 예시 코드 (Geospatial 이용 거리 찾기 예제 포함) 우선 docker에서 실행중인 redis를 컨테이너에 접속하여 실행한다. docker exec -it 0dda0724c460 redis-cli --raw 1. String 자료 구죠 (key-value) set id 10 get id del id 2. Hash 자료 구조 (key-subKey-value) hgetall USER //key(USER)와 매핑되는 모든 필드와 값들을 조회 hset USER subkey value // key의 subkey의 값을 지정 hget USER subkey // 조회 3. 리스트 (List) # 리스트에 값 추가 RPUSH mylist "apple" RPUSH mylist "banana" RPUSH mylist "cherry" # 리스트에서 값 조회 LRANGE myl.. 2023. 5. 29.
docker compose를 이용한 mariadb build시 트러블 슈팅 (3306이 아닌 다른 포트 사용시) 문제상황 : 도커 컴포즈를 이용해 mariaDb를 생성하고 jdbc 혹은 datagrip을 이용해 접속하려고 했을 때 아래와 같은 에러가 발생했다. Caused by: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3307)(type=master) : Could not connect to localhost:3307 : unexpected end of stream, read 0 bytes from 4 (socket was closed by server) 이러한 상황은 로컬에서 이미 3306 포트를 사용하고 있기 때문에 포트 번호를 바꿔주려고 시도한 데서부터 발생했다. pharmacy.. 2023. 5. 23.
테스트 컨테이너 TestContainer를 이용한 단위/통합 테스트 환경 구성 테스트컨테이너란 ? 테스트 환경에서 독립적으로 실행되는 컨테이너로, 자바 라이브러리이다. 테스트 컨테이너를 사용함으로써 실제 환경과 유사하게 테스트 환경을 구사할 수 있고, 다양한 자동화가 가능하다. 일반적으로 테스트 환경을 구성할 때 4가지 방식을 따른다. 1. 로컬 db 2. 인메모리 db (h2) 3. docker 4. test container 테스트 컨테이너는 3번 도커의 방식과 유사하다고 할 수 있지만 보다 나은 편의성을 제공한다. - 자바 언어만으로 테스트 환경 구성 - docker를 따로 클린해주어야 하는 번거로움 없음 무엇보다도 포트를 알아서 잡아주기 때문에 포트가 안잡혀서 docker db와 연동할 때 애먹는 문제를 겪지 않아도 된다! test container 환경 구성하기 // te.. 2023. 5. 23.
groovy 언어 Spock 프레임워크 테스트 환경 구성하기 Spock 이란 : - Groovy 언어로 테스트 코드를 작성할 수 있는 프레임워크 - Junit 보다 간결한 코드 작성이 가능하다. - 동적 타입 프로그래밍이 가능하다. -> Java 문법과 유사하여 배우기 쉽다 ! -> Test Code 작성시 given-when-then 구조를 코드 블록으로서 명시적으로 사용할 수 있다. IDE 의존성 추가하기 plugins { id 'org.springframework.boot' version '2.7.12' id 'io.spring.dependency-management' version '1.0.14.RELEASE' id 'java' id 'groovy' } // spock testImplementation('org.spockframework:spock-core.. 2023. 5. 23.
SpringBoot에서 profile 환경 설정 구성하기 (복수 profile 지정하는법) 복수의 profile 설정시 group이라는 키워드를 사용한다. 다음과 같은 설정시 default를 local로 설정하면서 common 파일을 동시에 적용할 수 있다. spring: profiles: active: local group: local: - common prod: - common --- spring: config: activate: on-profile: common --- spring: config: activate: on-profile: local --- spring: config: activate: on-profile: prod 2023. 5. 22.