[JAVA] assert 잘 사용하기 (with Spring Assert)
·
Java & Spring
개요코드를 작성하다 보면 기본적으로 가정하고 있는 조건들이 있다.그런 조건들은 알고리즘을 파악하거나 주석을 읽으면서 확인할 수 있지만,Assertion을 사용하여 보다 명시적으로 나타낼 수 있다. Java에서 기본적으로 제공하는 assert 문법을 알아보고,이를 Spring에서는 어떻게 사용해야 하는지,또한 Spring의 Assert 클래스와는 어떻게 다른지 알아보자. Java의 assertjava의 assert 문법은 기본적으로 아래와 같이 사용한다.// assert [조건식];assert 1 == 2;// assert [조건식] : [실패 메시지];assert 1 == 2 : "유효성 검사에 실패했습니다.";조건식 결과가 true이면 정상적인 흐름, false이면 잘못된 경우임을 나타낸다. 하지만, ..
[AWS] ECS EC2 프리티어로 Spring Boot 배포하기 (with GitHub Actions)
·
Setting
개요사이드 프로젝트에서 ECS로 인프라 구성을 진행하는데,여러 Application이 Fargate로 배포되어 비용이 많이 발생하는 문제가 있었다. 비용을 효율적으로 사용하기 위해 태스크 하나를 EC2 프리티어로 사용해보고자 했고,오랜 삽질 끝에 성공적으로 마무리하여 해당 과정을 기록하게 되었다. ECS 클러스터 생성먼저 AWS에 로그인한 후 Elastic Container Service 콘솔에 들어가서 클러스터를 생성하자.인프라 섹션에서 Amazon EC2 인스턴스를 선택하고,EC2 인스턴스 유형을 프리티어가 가능한 t2.micro로 선택하자.원하는 용량에 최소 1, 최대 1을 입력하자.최소가 0이면 최초 생성되는 EC2가 ECS 클러스터 인스턴스로 등록이 되지 않는다.EC2의 보안 그룹을 설정할 때,..
[Spring] Spring Boot 1.x에서 JUnit5 사용하기
·
Java & Spring
개요업무상 레거시 Spring Boot 1.5.x 버전을 유지보수할 때,테스트 코드를 도입하면서 JUnit5를 사용하고 싶었다. 하지만 Spring Boot 1.x에서는 JUnit5를 공식 지원하지 않기 때문에 JUnit4를 사용하다가,여러 방면으로 시도해보다 JUnit5 연동을 성공하게 되어 포스팅으로 남기게 되었다. spring-test-junit5위에서 언급한 대로 JUnit5는 Spring Boot 2.x (Spring 5.x) 버전부터 공식적으로 지원한다. 하지만 JUnit 공식 프로토타입 역할을 했던 아래 Repository를 참고해 보면,해당 프로젝트를 이용하면 Spring Framework 4.3.x의 JUnit5 지원이 가능하다고 적혀있다.https://github.com/sbrannen..
[사내 세미나] Spring Batch 도입하기
·
Java & Spring
개요이 글은 사내에서 Spring Batch에 대한 세미나를 진행하기 위한 강의 자료로 작성되었습니다.Spring Batch 도입에 필요한 프로세스를 빠르게 익힐 수 있는 내용으로 구성되어 있지만,사내 환경에 따른 의존성이나 공개되지 않은 자료가 있을 수 있는 점 참고 부탁드립니다 :) 소개배치 처리가 무엇인가요?AWS 클라우드 컴퓨팅 개념 허브의 배치 처리에 대한 문서의 내용에서는 아래와 같이 설명한다.배치 처리란 무엇인가요?배치 처리는 컴퓨터가 주기적으로 대량의 반복적인 데이터 작업을 완료하기 위해 사용하는 방식입니다. 백업, 필터링 및 정렬과 같은 특정 데이터 처리 태스크는 계산 집약적이며 개별 데이터 트랜잭션에서 실행하기에 비효율적일 수 있습니다. 대신 데이터 시스템은 대개 하루가 끝날 때나 야간..
인프콘 2024 후기
·
일상
개요인프콘이 올해도 열린다는 소식을 듣고, 신청이 열리자마자 빠르게 참여 신청을 접수했다.올해 가장 가고 싶었던 콘퍼런스였던 만큼 여기저기 인프콘 티켓을 준다는 곳에 이벤트 참여도 했다.(물론 다 떨어졌지만..) 인프콘 참가자 발표 당일,간절히 원하면 들어준다는 말이 정말이었던 건지,2시가 되자마자 참가자 선정 알림톡을 받고 정말 기뻤다. 주변 회사 동료들에게 자랑도 하고, 평일에 열리는 만큼 곧바로 회사에 휴가 신청을 냈다.(주변 동료들은 다 떨어졌다는데, 정말 운이 좋았다.) 제대로 된 콘퍼런스는 거의 처음 가보는 데다,평소 좋아하던 재민님, 토비 님, 조영호 님의 세션이 준비되어 있다고 해서 더더욱 기대를 가졌다. 인프콘 당일당일에 사람이 많아 줄을 설 수도 있다는 이야기를 듣고,1시간 일찍 도착할..
[Spring] 레거시 프로젝트에 Testcontainers 도입하기
·
Java & Spring
개요레거시 프로젝트를 유지보수하고 확장해야 하는 업무를 맡게 되었다.테스트 코드가 없는 프로젝트이다 보니 유지보수 및 확장을 위한 리팩토링에 앞서 테스트 코드를 먼저 작성해야 했다. 쿼리 개선도 필요하여 기존 동작 검증을 위해 Testcontainers 도입을 결정했는데,상당히 과거 버전의 Java 및 Spring 프로젝트이다 보니 이에 맞춰 Testcontainers를 도입하는 과정을 기록하게 되었다. 프로젝트 스펙레거시 프로젝트 스펙은 아래와 같다.JDK 7Spring Boot 1.5.3JPA + MyBatisOracle 11g XEJUnit4Gradle따라서 위 버전 기준으로 Testcontainers를 도입하는 방법을 설명한다. Testcontainers란?Testcontainers란 테스트에 필..
Mac OS에서 Docker로 Oracle DB 띄우기
·
Setting
개요프로젝트를 진행하면서 Oracle DB로 개발을 하게 되었는데,로컬에서 따로 DB를 띄워서 테스트를 해야 하는 경우 및 Testcontainers를 도입하기 위해서 Oracle DB를 Docker로 띄워야 했다.하지만 Oracle은 M1 이상의 Mac OS를 지원하지 않아서 추가적인 조치가 필요하여 기록하게 되었다. Docker 설치먼저 Docker가 설치되어있지 않다면 공식 홈페이지에서 Docker Desktop을 설치하자.https://www.docker.com/products/docker-desktop/ Docker Desktop: The #1 Containerization Tool for Developers | DockerDocker Desktop is collaborative containe..
대형 면허 도전기 (+ 불합격에 익숙해지기)
·
일상
다니던 회사를 퇴사하고 버킷 리스트 중 하나였던 대형 면허 취득에 도전했다. 대형 면허 시험은 버스를 운전하여 기능 시험을 통과하면 합격이다.독학으로 시험을 보게 되면 실전 경험이 없는 만큼 몇 번의 불합격은 기본적으로 따라온다. 나름 운전 경력도 꽤 있고 운전병 출신으로 수동 차량 운전에도 익숙하기 때문에,독학으로 합격할 때까지 시험을 계속 보며 도전하기로 마음먹었다.(운전학원은 비용이 너무 비싸다..) 첫 번째 시험버스 운전이 처음인 만큼 감을 잡는 것을 최우선으로 생각했다. 출발 및 정차, 언덕 등반은 수동 차량에 익숙했던 만큼 무난하게 통과했다.첫 코스에 진입해서 외운 공식대로 시도했는데,바퀴 탈선으로 여러 번 감점되어 불합격하고 끝났다. 두 번째 시험마찬가지로 감을 잡는 데 집중했다. 첫 코스에..