![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/X0p6G/btssN2KgswK/KT2SV9GuL7K5pHc1eUbf5k/img.png)
스프링으로 개발하면서 yaml 파일 관련해서 공부한 내용을 포스팅해봤습니다. 개발 환경은 다음과 같습니다. Spring Boot Version : 3.0.1 Java Version : 17 Kotlin Version : 1.8.21 https://github.com/laboratory-kkoon9/kotlin-spring 배경 데이터베이스를 docker 올려서 개발하려고 spring에서 yaml로 환경설정 방법을 알아봤습니다. 스프링 부트 2.4 버전부터 application.yml 하나의 파일로 여러 환경변수를 관리할 수 있게 되었습니다. 자세한 내용은 아래 블로그에서 확인해보시면 됩니다. http://honeymon.io/tech/2021/01/16/spring-boot-config-data-migr..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bB7JzV/btssBrvoYsx/BLJqjAyq5amlGkkeerhXs0/img.png)
재직 중인 회사에서 airflow를 사용하여 공부 후 정리한 포스팅입니다. Airflow의 주요 기능 Airflow는 python 기반의 workflow 스케줄러입니다. workflow는 DAG과 task라는 단위로 다양하게 구성 가능합니다. DAG은 Directed Acyclic Graph는 약자로, 어떤 task들의 모임으로 구성되는데, task들의 순서를 정해줄 수 있습니다. Acyclic이므로 순환 구조는 가질 수 없습니다. DAG와 DAG를 연결해줄 수도 있습니다. 스케줄러와 워커가 나뉘어져 있기 때문에 워커를 확장할 수 있고 이 때문에 수많은 workflow를 실행하고 관리할 수 있습니다. 즉, DAG이 아무리 많아지더라도 관리가 가능하다는거죠. 또한 Airflow는 Web UI 관리 툴이 있..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/baAuTL/btssqBrbXOC/ZgwwPpQM0uOTnzukum2Dr0/img.png)
(변경에 유연한 코드 설계 | 프리온보딩 BE 챌린지 9월)을 참여하면서 겪었던 에러를 정리한 포스팅입니다. 변경에 유연한 코드 설계 | 프리온보딩 BE 챌린지 9월 | 원티드 무료로 양질의 교육을 들어보세요! 챌린저만을 위한 다양한 혜택을 제공해드리고 있습니다. www.wanted.co.kr 개발 환경은 다음과 같습니다. Spring Boot Version : 3.1.2 Java Version : 17 다음은 관련 코드 소스입니다. https://github.com/kkoon9/wanted-preonboarding-challenge-backend-13/tree/feature/kkoon9 배경 RequestBody에 들어가는 정보는 다음과 같습니다. amount : 관람객이 가진 돈 when : 초대권을..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/UwIIa/btsrB1FCFf6/QYmvFa6s5YaeBeu5B2B7TK/img.png)
코프링으로 개발하면서 리팩터링 내성 관련해서 공부한 내용을 포스팅해봤습니다. 개발 환경은 다음과 같습니다. Spring Boot Version : 3.0.1 Java Version : 17 https://github.com/laboratory-kkoon9/kotlin-spring 배경 비밀번호 암호화를 하는 과정에서 다음과 같은 테스트 코드를 작성했습니다. package com.laboratorykkoon9.kotlinspring.common import io.kotest.core.spec.style.BehaviorSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe internal class ExtensionsTest..
카프카와 관련해서 받은 면접 질문을 정리한 포스팅입니다. 제가 경험한 면접 질문에 대한 대답을 정리하다보니 저만의 대답 방식으로 인해 간결할 수 있는 점 양해바랍니다. Kafka의 장점(특징) (출처) 프로듀서와 컨슈머의 분리하고, 하나의 토픽에 여러 프로듀서와 여러 컨슈머들이 접근 가능합니다. 또한 메시지를 디스크에 영속적으로 저장하여 유실을 방지할 수 있고, 높은 처리량을 자랑하는 걸로 알고 있습니다. 프로듀서와 컨슈머의 분리 각자 역할이 완벽하게 분리되면서, 어느 한쪽 시스템에서 문제가 발생하더라도 연쇄작용이 발생할 확률이 낮아집니다. 멀티 프로듀서와 멀티 컨슈머 하나의 토픽에 여러 프로듀서 또는 여러 컨슈머들이 접근 가능한 구조입니다. 메시지를 디스크에 영속적으로 저장 이는 메시지 유실을 방지하고..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bCnY36/btsqLwsXdVU/5rkLw9jLB0PeFsDPN7bgeK/img.png)
commit을 하나로 합치는 방법을 여러가지가 있습니다. 이번 포스팅에서는 squash에 대해서 다뤄볼 예정입니다. 배경 제가 squash를 쓰게된 배경은 다음과 같습니다. 작업을 하다보면 커밋이 여러 개로 쪼개질 수 있습니다. 또한 pr을 올린 다음, 코드 리뷰를 반영하면 커밋이 여러 개로 될 수 있죠. 이 때 저는 suqash and merge를 사용합니다. 이걸 적용해주면 위에서 봤던 5개의 커밋을 하나의 커밋으로 만들어줄 수 있습니다. 단, 5개의 커밋은 사라지니 주의해주세요. develop 브랜치에 있는 5개의 커밋이 master 브랜치에서 보면 1개의 커밋으로 바뀌어져 있습니다. 결론 확실히 master 브랜치 커밋이 깔끔해지니, 버전관리가 좀 더 쉽다고 느껴집니다. 여러분들도 master 브..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bkyCKs/btsqFsEvSSk/LUuZaeuWeFCXNYolEUi7A0/img.jpg)
QueryDsl이란? Querydsl은 JPA 기반의 데이터베이스 조회 및 조작을 위한 라이브러리입니다. 복잡한 쿼리(ex 동적 쿼리)를 더 쉬운 작성을 도와줍니다. CustomRepository CustomRepository 인터페이스는 Querydsl을 사용하여 데이터베이스 작업을 수행하는 데 도움을 주는 방법 중 하나입니다. @Repository interface MenuRepository: JpaRepository, CustomMenuRepository interface CustomMenuRepository { fun findByCafeId(cafeId: Long) } class CustomMenuRepositoryImpl: CustomMenuRepository { override fun find..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/tFkkG/btspK3r5soc/1ODQZpUxruqcaeTlXKaDXK/img.png)
git을 사용하다보면 git 커밋 순서를 바꿔야 하는 순간이 있습니다. 아래 이미지를 예로 들어봅시다. 현재 develop에는 카페 정보 조회 API와 GlobalExceptionHandler가 배포되어 있습니다. master에 GlobalExceptionHandler만 배포하여 테스트하고 싶을 수 있습니다. 여러 방법이 있겠지만, 이 포스팅에서는 커밋 순서 바꾼 후 배포를 하는 걸 다뤄보겠습니다. 커밋 순서 바꾸기 master 위에 커밋인 카페 정보 조회 커밋에서 오른쪽 클릭 후 Interactively Rebase from Here를 눌러줍니다. GlobalExceptionHandler 커밋을 위로 올려주고 Start Rebasing을 눌러줍니다. 이렇게 되면 다음 이미지처럼 커밋 순서가 바뀌게 됩니..
- Total
- Today
- Yesterday
- BOJ
- Spring
- 디자인 패턴
- JPA
- 프로그래머스
- 디자인패턴
- 이팩티브 자바
- 객체지향
- Olympiad
- 백준
- MSA
- kkoon9
- 정규표현식
- 테라폼
- 클린 코드
- Algorithm
- kotest
- 이펙티브 자바
- 알고리즘
- 클린 아키텍처
- AWS
- node.js
- 코테
- BAEKJOON
- Kotlin
- Java
- Spring Boot
- programmers
- C++
- Effective Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |