SpringBootTest webEnvironment DEFINED_PROT 지정된 포트로 실제 서블릿 컨테이너를 띄운다. 이때 PORT의 값은 application.properties에 설정된 값 또는 기본값인 8080이다. MOCK(기본값) 실제 서블릿 컨테이너를 띄우지 않고 서블릿 컨테이너를 mocking해서 실행된다. 이때 속성값을 사용할때는 보통 MockMvc를 주입받아 테스트한다. 서블릿 API들이 classpath가 없다면 ApplicationContext를 생성한다. MockMvc 기반의 어플리케이션 테스트를 위해 @AutoConfigureMockMvc의 주입과 함께 사용된다. NONE ApplicationContext가 로드되지만 실제 서블릿 컨테이너를 동작시키지 않는다. RANDOM_P..
Backend
[프로그래머스] 동물의 아이디와 이름 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_U..
Spring Rest Docs 정적 파일 만들기 예제코드 Spring Rest Docs란? RESTful 서비스를 문서화 할 수 있게 도와주는 도구입니다. 기본적으로 Asciidoc을 사용해 작성된 코드에 의해 html파일을 생성해준다.(markdown도 가능하지만 제한이 있음.) Test로 자동 생성된 스니펫과 자신이 원하는 문서를 결합해서 사용할 수 있습니다. 따라서 Test가 통과되어야 문서가 작성된다는 장점이 있습니다. 이번 글은 Spring Rest Docs를 어떻게 사용하는지가 아닌, 정적 파일을 생성하여 빌드 후에 문서를 볼수 있게 하는게 주제이니, 자세히는 설명하지 않겠습니다. Build Gradle 설정 plugins { id 'org.springframework.boot' version..
Spring Intializr프로젝트가 spring-boot-starter-test 에서 junit-vintage-engine가 exclude되어 있는 이유 testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } Spring Intiializr로 프로젝트를 만들면 spring-boot-starter-test 에서 항상 junit-vintage-engine은 exclude가 되어있다. vintage가 무엇이고 junit-vintage-engine이 무엇이길래 exclude가 되는지 알아보자. Junit5 JU..
@Value와 @ConfigurationProperties를 이용해 yaml 파일 매핑하기 예제코드 1. 환경 프로퍼티 파일 설정하기 프로퍼티 파일은 설정 관련 및 기타 정적 값을 key-value으로 관리한다. 기존에는 XML을 이용하여 설정할 수 있었지만, 지금은 yaml, properties를 이용해 간단하게 파일을 설정할 수 있다. 확장자는 .yml을 사용한다. 이번 글에서는 ymal을 이용해 프로퍼터 값을 관리해볼 것이다. 1.1. ymal이란? YAML Ain’t Markup Language 최근 스프링과 쿠버네티스 같은 프로그램의 설정 파일로 사용하고 있다. server: port:80 위의 예제는 스프링의 포트 값을 설정하는 것으로 들여쓰기를 이용해 계층 구조를 쉽게 파악할 수 있기 때문에..
Spring H2 Database Properties 위의 사진과 같이 Spring에서 제공해주는 h2의 Properties는 4개입니다. 각각의 Properties를 알아보도록 하겠습니다. 각 Property의 앞에서 보듯이 모두 console에 대한 Property만 존재한다. spring.h2.console.enabled 기본값 : false 위의 사진과 같이 h2 Database의 접속하여 스키마들을 볼수 있는 console을 활성화 시키는 값이다. 기본값은 false이기 때문에 설정을 하지 않는다면 위의 사진처럼 console을 사용할 수 없다. console을 사용하여 테스트를 해야 할 경우에는 무조건 true를 사용하는 것이 좋다. spring.h2.console.path 기본값 : /h2-..
Data Base 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임 SQL(Structured Query Language) 데이터 베이스에서 사용하는 쿼리 언어로 데이터를 검색, 저장, 수정, 삭제 등이 가능하다. 수직적 vs 수평적 확장 수직적(vertical) 확장(Scaling) 단순히 데이터베이스 서버의 성능을 향상시키는 것입니다.(예를 들어, CPU 업그레이드) 수평적(Horizontal) 확장 (Scaling) 더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산된다. 따라서 하나의 데이터베이스에서 작동하지만 여러 호스트에서 작동한다. RDBMS(Relational Database Management System) 관계형 데이터 베이스로 데이터를 구성하는데 필요한 방법 중..
Github Action을 이용해 Push, PR 시 Gradle Build Test를 진행해보자. 예제코드 Github Action이란? 소프트웨어 WorkFlow를 자동화 할 수 있도록 도와준다. WorkFlow의 대표적인 예 Test Code, 배포, 자동화 스크립트, 다양한 버전에서 실행되는지 확인 등... Github Action을 이용해서 Build 진행 방법 위에서 Action 탭을 클릭한다. 위와 같이 기본 설정 WorkFlow가 존재한다. Set up this workflow를 클릭한다. # This workflow will build a Java project with Gradle # For more information see: https://help.github.com/actions..
[프로그래머스]어린 동물 찾기 특징 조건에서 같지 않다의 의미를 나타내는 연산자 MySQL : != Oracle : 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION..
[프로그래머스] 아픈 동물 찾기 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON..