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를 설정하는 걸 선호하는 편인데, 마침 스프링의 대가이신 토비 님께서 정곡을 찌르는 글을 남겨주셨다. 이런 좋은 글을 보고, 또한 이 글의 댓글에서의 좋은 토론을 보면서, 기존에 다른 분들과 생각을..
2023년 회고
·
일상
현재 2023년이 끝났다. 2024년이 되자마자 2023년 회고를 쓰기로 다짐했었는데, 쌓인 피로와 바쁘다는 핑계로 미루고 미루다 며칠이 지난 지금에서야 부랴부랴 작성한다. 새해부터 미루고 시작하다니.. 아주 한 해의 시작이 상쾌하다. 새해 들은 첫 곡 대로 한 해가 흘러간다는 속설이 있다. 그렇게 되길 바라며 재작년에는 HOT의 행복, 작년에는 우주소녀의 이루리라는 노래를 들었다. 올해에는 동생과 같이 뭘 들을까 고민하다가 곡 하나를 선정했다. 처음부터 끝까지 곡이 내레이션으로 좋은 말이 꾹 눌러 담겨 있다. 썸네일만 봐도 재밌어서 한 해를 웃으면서 시작할 수 있던 것도 좋았던 것 같다. 올 한 해에는 더욱더 성공하길 바라며.. 지금의 나 내가 운영하는 서비스는 연간 사업이다 보니 해가 바뀌면 사업이 ..
[Spring] eventListener, transactionalEventListener 예외 및 트랜잭션 전파 총정리
·
Java & Spring
개요 Spring Boot에서 eventListener를 사용하는 경우가 종종 있는데, eventListener와 transactionalEventListener의 차이, transactionalEventListener의 phase 속성에 따라 동작 방식이 다 다르다. 따라서 이번 기회에 eventListener의 동작 방식과 트랜잭션과 엮이면 어떻게 동작하는지에 대해 정리해 보려고 한다. 문제 이번 포스팅에서는 위에서 기술한 각각의 방식에 따라 아래의 문제를 테스트한다. eventListener에서 예외가 발생하면 예외가 service로 전파될까? service의 @Transactional이 eventListener로 전파되고 커밋될까? 기본적으로 알아야 할 내용 아래는 eventListener와 @T..
패스트캠퍼스 일할맛 2기 1:1 멘토링 및 개발세미나 후기
·
Work
개요 개인 공부를 위해 패스트캠퍼스에서 강의를 찾아보던 중, 우연히 '일할맛'이라는 프로젝트의 공지를 발견했다. 확인해 보니 4년 차 이하의 스타트업 소속 백엔드/풀스택 개발자들에게 시니어 개발자 두 분의 1:1 멘토링과 세미나 참여 기회를 제공하는 프로젝트였다. 조건에 모두 부합하는 나로서는 더없이 좋은 기회였기 때문에 고민 없이 지원했고, 대상자에 선정되어 일할맛 프로젝트에 참여한 후기를 남긴다. 세미나는 총 50명을 선발하여 진행되었다. 그중 우선 선발한 1:1 코칭 대상자 4명이 포함되어 있다. 아래는 일할맛 프로젝트 공지글. 현재는 1:1 멘토링에 대한 내용은 사라졌고, 세미나 참여에 대한 공지 내용만 남아있다. https://fastcampus.co.kr/category_online_devta..
패스트캠퍼스 [초격차 패키지 : 한 번에 끝내는 AWS 기반 아키텍처 설계와 DevOps. Online.] 수강 후기
·
Work
개요 예전에 업무 중 우연히 회사에서 "패스트캠퍼스에서 강의 사면 맥북 준대요!"라는 이야기를 들었다. 들어가 보니 강의 3개와 맥북 프로를 묶어서 판매하는 이벤트가 있었다. 당시 맥북이 없던 나로서는 너무 좋은 기회였고, 강의 묶음을 고르던 중 앞으로를 위해 "MSA 기초부터 실무까지 완전정복 MacBook Pro Package"를 선택하여 구매했다. 이 중 지금의 나에게 도움이 많이 되고 있는 [초격차 패키지 : 한 번에 끝내는 AWS 기반 아키텍처 설계와 DevOps. Online.]에 대한 수강 후기를 남긴다. 느낀 점 나는 보통 개발 공부를 할 때 주로 인터넷 강의를 듣는 편이다. 개인적으로 글이나 책을 읽는 건 공부할 때 잘 따라가기 어렵게 느껴지고, 또한 인터넷 강의가 비교적 최신 트렌드에 ..
덴티아이 서식 일괄 다운로드 변천사
·
Work
들어가기 전에 아래는 Spring Boot + Vue.js 환경에서 이루어진 내용입니다. 개요 필자는 2021년부터 덴티아이라는 서비스를 3년간 운영해오고 있다. 덴티아이는 나라에서 지원하는 학생들의 치과주치의 사업을 전산화하는 시스템이다. 사업은 연 단위로 진행되고, 각 기관에서는 작성된 서식들을 특정한 기간(?) 동안 보관해야 한다고 한다. 따라서 덴티아이에는 작성된 서식들을 PDF로 변환한 후 기관별로 연말에 일괄적으로 다운로드할 수 있는 기능이 있다. 이러한 일괄 다운로드 기능의 구현 방식에 대해 변화한 과정을 소개한다. 서식 다운로드 및 인쇄 덴티아이에는 학생의 서식을 실시간으로 다운로드하거나 인쇄할 수 있는 기능이 있다. 이 기능은 작성된 서식을 보는 페이지에서 해당 화면 자체를 프론트에서 직..