Webhook이란?한 시스템이 다른 시스템에 어떤 이벤트가 발생했음을 알리는 방법입니다. 특정 이벤트가 발생하면 지정한 URL로 HTTP 요청(주로 POST 요청)을 보내는 방식입니다. 예를 들어, GitHub에서 사용자가 레포지터리에 커밋을 푸시하거나 새로운 이슈를 생성하는 등의 이벤트가 발생할 때마다 지정한 URL로 데이터를 전송합니다. Webhook은 실시간성이 중요한 작업에 유용합니다. 그래서 Polling(주기적으로 데이터 상태 확인) 방식보다 효율적인 경우가 많습니다.Polling 방식은 주기적으로 데이터를 확인해야 해서 불필요한 리소스 낭비를 하는 경우가 대부분이지만 Webhook은 실제로 발생할 때만 데이터를 전송하기 때문입니다. Webhook 도입하게 된 배경프로젝트 기능 중 사용자가 ..

토이 프로젝트를 개발하며 문득 다음과 같은 생각이 들었습니다."만약 다른 환경에서 내 프로젝트를 실행시키려면 MySQL, Redis 등 프로젝트에 필요한 의존성을 설치한 후에 실행해야 하는데 불편하지 않을까?" 또한 기업 과제를 할 때도 코드를 제출할 때 로컬 환경 구축 여부에 따라 큰 차이가 있을 것이라고 생각했습니다. 적어도 로컬 환경은 제약을 받지 않고 실행시킬 수 있어야 한다는 생각이 들었습니다. 코드를 받자마자 바로 실행시킬 수 있으면 코드를 받은 사람 입장에서는 다음 작업을 하기 편할 것입니다. 그래서 H2와 Embedded Redis를 사용해 로컬 환경을 구축하지 않더라도 Spring Boot 서버를 실행시킬 수 있도록 했습니다. H2 설정H2는 인메모리 DB로 Embedded mode(휘..

이번 글에서는 박우빈 님의 "Practical Testing: 실용적인 테스트 가이드"를 보고 테스트 코드에 대한 제 생각을 정리해 보려고 합니다. 테스트 코드란?개발자가 작성한 실제 코드가 제대로 동작하는지 검증하는 코드입니다.테스트 코드와 관련된 TDD, BDD와 같은 개발 방법론이 존재합니다.기술을 학습할 때 테스트 코드를 사용하면 여러 가지 경우를 직접 설정해 구체적인 기능을 재밌게 학습할 수 있는 장점도 있습니다. 테스트 코드를 작성하지 않으면 발생하는 일다음은 제가 겪었던 일입니다.학교에서 사용 중인 프로젝트에 테스트 코드를 전혀 작성하지 않고, 프로덕션 코드 작성 후 postman을 사용해서 성공 및 간단한 예외 케이스만 확인한 후 바로 배포를 했습니다.당시에는 테스트 코드의 중요성을 못 느..

이미 존재하는 템플릿Setting → Editor → Live Templates 이미 인텔리제이에서 다양한 템플릿을 지원하고 있습니다.psvm(메인 메서드), iter(반복문) 커스텀 템플릿 만들기1. 원하는 언어를 선택한 후 플러스 버튼을 누르고 라이브 템플릿을 선택합니다. 2. 템플릿 이름을 지정하고 밑에 작성될 코드를 작성하면 됩니다.Define에서 적용할 언어를 선택하고 Apply를 누르면 끝입니다. 3. 결과물 마무리템플릿을 사용하면서 개발하니까 전보다 편하고, 코드를 작성하는 시간을 줄일 수 있었습니다.반복되거나 자주 사용하는 코드를 위 방식처럼 템플릿으로 관리하면 빠르게 개발할 수 있을 것 같습니다!

헥사고날 아키텍처란?헥사고날 아키텍처는 클린 아키텍처를 구현한 모델 중 하나로 육각형 안에는 도메인 모델과 유스케이스가 있고(외부를 전혀 알지 못함) 육각형 바깥에는 인프라 기술이 있는 구조입니다. 추상화된 포트를 사용해 핵심 비즈니스 규칙과 인프라를 분리하고, 중요 로직은 인프라로 향하는 의존성을 가질 수 없어 유연한 설계를 할 수 있게 해주는 아키텍처입니다. 그래서 port & adapter 아키텍처라고도 불립니다.port & adapter로 모듈을 느슨하게 연결해 코드의 재사용성을 높여주고, 코드를 수정할 때도 다른 모듈에 영향을 끼치지 않게 해 줌으로써 유지보수하기 좋게 설계할 수 있습니다. 헥사고날 아키텍처 도입 배경이 글을 보고 계신 분들 중 계층형 아키텍처를 사용하시는 분들은 자세히 봐주시..
- Total
- Today
- Yesterday
- 성능 개선
- embedded redis
- lint
- webhook
- 계층형 아키텍처
- JPA
- detekt
- Slack
- ktlint
- N + 1
- Spring Boot
- 자동화
- Gradle
- propagation
- transaction
- multi module
- 테스트 코드
- H2
- 헥사고날 아키텍처
- 인텔리제이
- IDE
- lombok
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |