[사내 세미나] 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..
대형 면허 도전기 (+ 불합격에 익숙해지기)
·
일상
다니던 회사를 퇴사하고 버킷 리스트 중 하나였던 대형 면허 취득에 도전했다. 대형 면허 시험은 버스를 운전하여 기능 시험을 통과하면 합격이다.독학으로 시험을 보게 되면 실전 경험이 없는 만큼 몇 번의 불합격은 기본적으로 따라온다. 나름 운전 경력도 꽤 있고 운전병 출신으로 수동 차량 운전에도 익숙하기 때문에,독학으로 합격할 때까지 시험을 계속 보며 도전하기로 마음먹었다.(운전학원은 비용이 너무 비싸다..) 첫 번째 시험버스 운전이 처음인 만큼 감을 잡는 것을 최우선으로 생각했다. 출발 및 정차, 언덕 등반은 수동 차량에 익숙했던 만큼 무난하게 통과했다.첫 코스에 진입해서 외운 공식대로 시도했는데,바퀴 탈선으로 여러 번 감점되어 불합격하고 끝났다. 두 번째 시험마찬가지로 감을 잡는 데 집중했다. 첫 코스에..
Spring Boot 무료로 배포하기 (Koyeb, GitHub)
·
Java & Spring
개요 Spring Boot 프로젝트를 간단한 시연 혹은 토이 프로젝트 등의 용도로 빠르게 배포해야 하는 경우가 종종 있다. 기존에는 대부분 Heroku를 이용하여 빠르게 배포하는 경우가 많았는데, Heroku가 전면 유료화되면서 무료로 배포하기 어려운 상황이 되었다. Heroku를 대체할 만한 방법을 찾고 여러 플랫폼을 비교해 본 끝에, 가장 쉽고 빠르게 배포할 수 있는 플랫폼인 Koyeb을 이용하여 배포하기로 결정했다. https://www.koyeb.com/ Koyeb: Push code to production, everywhere, in minutes Koyeb is a developer-friendly serverless platform to deploy apps globally. No-ops,..
GitHub 잔디 잘 심기 (+ Bitbucket, GitLab 커밋 이력 연동)
·
Setting
개요 개발자로서 GitHub 잔디(기여 이력)는 꾸준함을 보여주는 상징으로 쓰인다. 그런 만큼 GitHub 잔디를 잘 나타낼 수 있도록 하는 몇 가지 설정들이 필요한데, 그런 설정들을 정리하고자 한다. 또한 자신의 프로젝트가 GitHub에 존재하지 않을 수 있는데, (Bitbucket, GitLab 등) 이러한 경우에도 해당 프로젝트들의 커밋 이력들을 GitHub에 연동하는 방법도 같이 알아보자. 1. Private contributions 설정 먼저 잔디가 많아 보이기 위해서는 private 한 기여들에 대해서도 잔디가 표시되어야 한다. 자신의 GitHub 홈에서 아래 사진에 표시된 Private contributions 버튼을 클릭하여 설정을 변경하자. 해당 설정을 적용하게 되면 아래와 같이 priv..
FK(외래 키)에 대한 개인적인 생각
·
Work
개요 백엔드 개발자라면 RDB(관계형 데이터베이스)를 사용해보지 않은 사람은 없을 것이다. 나도 제대로 된 실무를 접한 순간부터 지금까지 만든 모든 서비스에서 RDB를 사용한다. 처음에는 아무 생각 없이 DB 툴의 도움을 받아 연관되는 경우 항상 FK(외래 키)를 설정했고, 3년이 지난 지금까지도 웬만한 경우에는 FK를 설정하는 것을 선호하는 편이다. 어느 정도 경력이 있는 백엔드 개발자라면 공감할 것 같은데, FK를 설정하는 것에 대해 치를 떠는 개발자들이 정말 많다. 그럼에도 불구하고 나는 위에 말했듯 FK를 설정하는 걸 선호하는 편인데, 마침 스프링의 대가이신 토비 님께서 정곡을 찌르는 글을 남겨주셨다. 이런 좋은 글을 보고, 또한 이 글의 댓글에서의 좋은 토론을 보면서, 기존에 다른 분들과 생각을..
hojun-dev
'분류 전체보기' 카테고리의 글 목록