Github Actions로 PR에서 Comment로 배포하기 개요 회사에서 PR별로 환경을 구성해서 쉽게 테스트할 수 있게 Comment로 배포할 수 있는 기능을 만들게 되어서 해당 경험을 공유한다. 참고로, 회사 레포는 모노레포로 구성되어있어서 내부 디렉토리 기준으로 어떤 프로젝트가 배포되어야하는지 구분해야했다. 설계 Github Acti...
SaveAll vs BatchUpdate
SaveAll vs BatchUpdate 개요 회사에서 사내관리 프로젝트를 개선하면서 평균적으로 1000건 이상 데이터가 한 번에 들어가는 Api가 존재했다. 이 때 JPA에서 제공해주는 saveAll로 코드를 작성하였을 때 너무 오랜 시간이 걸렸고 Async function으로 분리해서 오류가 생기면 slack notice를 주게 만들었었다. ...
Type-safe Builder
Kotlin Type-safe Builder 1. Type-safe Builder란? Kotlin에서 함수를 이용해서 빌더같은 깔끔한 코드를 작성할 수 있는 기능이다. Kotlin DSL을 활용하는 방법중 대표적인게 Type-safe builder이다. 2. 어떻게 만드나? Function literals with receiver를 이용한다....
애자일 선언문
애자일 선언문 🎇 가치 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다. 방대한 문서보다는 실행되는 SW에 더 가치를 둔다. 계약 협상보다는 고객과 협업에 더 가치를 둔다. 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둔다. ⚡ 실행 지침 유용한 소프트웨어를 빠르고, 지속적으로 제공하여 고객을 만족시킨다....
단어 표현 방법
단어 표현 방법 시작하기 전에… 이 글은 자연어 처리 시 텍스트를 표현하는 방법에 대해 다룹니다. One Hot Vector One Hot Vector란 표현하고자하는 하나의 단어에만 값을 넣고, 나머지는 0으로 채우는 vector다. Vector값 중 하나의 값만 1이 들어가있어 One Hot Vector라는 이름이 붙었다고한다. 아래 예시...
김진중CTO AI
2023-02-25 김진중CTO 발표 AI의 뜻은 사람마다 생각하고있는게 다르다. 김진중 CTOAI는 AI가 지금 하지 못하는 것을 하게하는 것이다. 라고 이야기하심. Rule-base AI Vs Machine Learning Rule-base AI : (바나나는) 길고 노랗고 약간 휘었다. Machine Learning : 바나나 이미지를 ...
Xml없이 Mybatis사용하기
Xml없이 Mybatis사용하기 🎊 시작하기 전에… Mybatis라고 하면 되게 올드한 느낌이 많이 들었고, JPA, R2DBC는 사용해봤지만, Mybatis는 사용해보지 않았었다. 우연한 기회로 회사에서 Mybatis를 사용하게되었고, xml을 작성하지 않고 굉장히 모던하게 사용할 수 있어서 글을 공유한다. 1️⃣ 첫 번째 (Select) ...
RestTemplate vs WebClient
RestTemplate vs WebClient 😁 공통점 Http 호출을 할 수 있는 Client 역할을 합니다. 😵 차이점 가장 큰 차이점은 Blocking과 Non-Blocking입니다. WebClient는 reactor를 사용하는 WebFlux에 속해있습니다. 그에반해서 RestTemplate은 Blocking입니다. OpenFeign...
TinyInt vs Bit
TinyInt vs Bit 🎊 시작하기 전에… 이 글은 어떤 것이 옳다를 이야기하는 것이 아니라 각 타입이 어떤 장단점을 가지고있는지를 다룬다. 또, MySQL을 기준으로 작성되었으며 버전에 따라 조금씩 상이할 수 있다. 1️⃣ 첫 번째로 BIT(1)과 TINYINT가 차지하는 크기는 아래와 같다 BIT(1) : 1 Bit TINY...
JVM
JVM [TOC] JVM이란? JVM이란 JAVA Virtual Machine, 자바 가상 머신의 약자를 따서 줄여 부르는 용어다. 가상머신 : 프로그램을 실행하기 위해 물리적 머신과 유사한 머신을 소트프웨어로 구현한 것이다. JVM 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것이다. 그리고 JVM...