Study

    SpringBoot(4) 2.4.x application.yaml(yml) 설정

    이번에 여러 방식으로 테스트들을 진행해보고 있는데, 특히 H2 DB를 이용한 In-Memory 테스트를 진행하는 중에 기존에 사용하던 profile의 datasource 설정을 그대로 놔두고 test용 profile을 작성하여 실제 db와 테스트용 H2 DB 설정을 분리하는 작업을 진행해봤다. (H2 DB 설정 및 H2를 이용한 테스트는 다음에...) 그러면서 기존에 작성한 application 설정 파일의 구동 방식이 Spring Boot 2.4 버전에 들어서 변경된 것을 알게 되어 기존 profile의 migration도 같이 진행하게 되었다. Migration 1. spring.profile 2.4.x 이전 버전에서는 ---를 구분자로 사용하여 하나의 application 설정 파일에 profile..

    Java selenium 오류 : chromeDriver 실행 후 바로 종료되는 현상 해결

    여느때와 변함없이 웹크롤링을 하려고 하는데 어제까지만 해도 잘 돌아가던 웹크롤러가 갑자기 먹통 ㄷㄷㄷ; 크롬창이 잠깐 켜졌다가 순식간에 지 맴대로 꺼져버려서 크롤링이 안되는 상황이었다. 에러 로그를 보니 URL도 제대로 받았고 창도 성공적으로 켜졌으나 원인 모를 이유로 인해 chromeDriver가 강제종료 되는 현상이 나타났다. 그러다 문득 어제 퇴근할때 쯤 크롬 브라우저가 업데이트 할 거냐고 물어봐서 까짓거 하거라 하고 확인을 눌렀던 것이 생각났다. 아, 문제는 바로 내 손에서 나왔구나... 크롬 브라우저의 엔진버전과 현재 사용하고있는 chromeDriver의 버전사이에 호환성 문제일 것 같다... 싶어서 언능 새 버전의 chromeDriver를 받았더니 아주 잘된다. chromeDriver Down..

    SpringBoot(3) MockitoAnnotations.initMocks Deprecated

    개발 환경 : JAVA 1.8 / Spring Boot 2.4.1 / Gradle 6.7.1 / MySql IDE : IntelliJ 20.3.3 Dependency : spring-boot-starter-test:2.4.1 or mockito-all:1.10.19 저번에 공부했던 Mockito를 오늘 추가적으로 공부하려고 프로젝트를 켜보니 이렇게 .initMocks 에 취소선이 생기고 @Deprecated 선언이 되어있었다. 이게 뭔일이여.. 하고 찾아보니 Mockito-core 3.4.0 api 이상부터는 .initMocks는 deprecated 되고 대신 .openMocks 라는 메소드를 사용하라고 한다. javadoc Mockito 문서 - MockitoAnnotations 대충 initMocks..

    Spring Boot(2) Mockito를 이용한 단위 테스트

    개발 환경 : JAVA 1.8 / Spring Boot 2.4.1 / Gradle 6.7.1 / MySql IDE : IntelliJ 20.3.3 Dependency : spring-boot-starter-test:2.4.1 or mockito-all:1.10.19 저번에 이어 이번엔 Mockito라는 SpringBoot Test에 자주 사용되는 라이브러리를 가지고 단위 테스트를 공부하고, 공부하며 알게된 것들을 정리하고 저번처럼 예시를 가지고 실습도 해보려한다. 1. Mockito란? ( aka. Test Double ) Mockito 란 Mock을 지원하는 프레임워크로, 보통 Spring Boot Test에서 사용하는 JUnit 위에서 동작하며 Mock객체를 만들고 관리하고 검증할 수 있는 방법을 제..

    Spring Boot (1) MybatisTest를 통한 Mapper 단위 테스트

    개발 환경 : JAVA 1.8 / Spring Boot 2.4.1 / Gradle 6.7.1 / MySql IDE : IntelliJ 20.3.3 Dependency : mybatis-spring-boot-starter-test 2.1.3 * 해당 포스팅은 공식문서를 참조하여 작성했습니다. mybatis Test 공식문서 링크 1. 필요한 의존 추가 1.1 Mybatis Test 추가 mybatis-test // Gradle의 경우 dependencies { testCompile("org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.1.3") } // Maven의 경우 org.mybatis.spring.boot mybatis-spring-boot-st..

    [BOJ/백준] 1330번 : 두 수 비교하기, 9498번 : 시험성적, 2753번 : 윤년, 14681번 : 사분면 고르기 - JAVA[자바] 2020. 07. 17

    문제 단계 2. if 문 문제 번호 1330 - 두 수 비교하기 문제 번호 9498 - 시험 성적 문제 번호 2753 - 윤년 문제 번호 14681 - 사분면 고르기 사용 언어 : JAVA ​ 2단계 if 문 문제 풀이를 시작했다. JAVA에서 가장 기본적으로 배우는 조건 문인 데다 2단계 문제라 그런지 수월하게 풀어갔다. 확실히 1단계에서 주어진 조건과 백준의 설정에 따라 소스코드를 작성하는 연습을 한 뒤라 어이없는 컴파일 오류나 런타임 오류로 인해 틀리는 경우는 한 번도 없었다. ​ 기본적인 문제인 만큼 확실하게 조건문을 작성하는 법을 연습하기에 좋았다. 근데 2단계의 마지막 문제인 2884번 알람시계는 뭔가 조건을 계속 빠트리는 느낌이 들어서 다음에 확실하게 해서 제출할 생각이다. 현재 소스코드는 ..

    [BOJ/백준] 2588번 : 곱셈 - JAVA[자바] 2020. 07. 17

    문제 단계 1. 입출력과 사칙연산 문제 번호 2588 - 곱셈 사용 언어 : JAVA ​ ​ 1단계를 끝마쳤다. 처음 시작할 땐 정답률을 보고 이걸 왜 틀리지? 했었는데 정작 내가 정답률을 떨어트리는데 일조했다는 게 아이러니.. ​ 항상 IDE를 사용하다 보니 자동완성이 습관이 되고 당연하게 됐는데 직접 종이에 적어가며 손 코딩을 하면서 내가 얼마나 대충 공부하고 있었는지 많이 느껴지게 되는 단계였다. ​ 문제 자체는 쉬운 게 맞지만 주어진 문제와 요구를 확실하게 파악하고 내 생각대로가 아닌 요구한 대로 정확하게 코드로 옮기는 것이 얼마나 중요한지도 알게 됐다. 내가 아무리 이게 좋다고 해도 결국 클라이언트가 원하는 대로 만들어 줘야 하는 현실을 반영한 것 같다... 설명해서 설득할 자신 없으면 그냥 하..

    [BOJ/백준] 단계 1 : 입출력과 사칙연산 - JAVA[자바] 2020. 07. 16

    문제 단계 1. 입출력과 사칙연산 문제 번호 10171 - 고양이 문제 번호 10172 - 개 문제 번호 1000 - A+B 문제 번호 1001 - A-B 문제 번호 10998 - A*B 문제 번호 1008 - A/B 문제 번호 10869 - 사칙연산 문제 번호 10430 - 나머지 사용 언어 : JAVA ​ 1단계의 마지막 문제인 곱셈만 빼고 나머지를 모두 풀었다. 학원 커리큘럼을 따라가고 팀 프로젝트가 다가오면서 알고리즘이나 단계별 문제 풀기에 시간이 좀 부족하다.. ㅠ 손 코딩으로 하나하나 직접 해보면서 하고 싶은데 강사님 말대로 선택과 집중을 확실히 정해야 할 것 같다. 그래도 틈틈이 시간이 날 때마다 할 생각이다.(파이팅 미래의 나) ​ 해당 문제들은 어려운 점은 하나도 없었고 단지 고양이 문제..