분류 전체보기 55

git branch 전략 + commit 기록 방법 선택하기

git branch 전략과 commit 방법은 이미 많은 레퍼런스가 존재합니다. 하지만 지금 내 환경에 적합한 전략을 선택하는 것은 조금 다른 이야기입니다. 이 글에서는 사이드 프로젝트를 진행하면서 내가 해본 선택 과정을 기록합니다. GitHub - Our-Class-Bank/core-backend: [side-project] 우리반은행 [side-project] 우리반은행. Contribute to Our-Class-Bank/core-backend development by creating an account on GitHub. github.com 배경 github repository 에서 1인 백엔드 개발 프론트 개발은 별도의 repository 사용 dev, prod 배포 환경 지원 필요 전략 선택..

Spring cache 는 어떤 provider 를 사용하는 것이 좋을까?

회사에서 local cache 를 사용할 일이 생겼습니다. 동료분이 guava 를 알려주셨고 처음 들어보았기에 일단 baeldung 을 검색해 보았는데 조금 이상했습니다. https://www.baeldung.com/guava-cache 캐시를 사용할 때 익히 쓰던 @Cacheable 어노테이션이 보이지 않았습니다. 그래서 익숙하던 ehcache 를 검색해 보면서 비교해 봤습니다. The difference between Ehcache and Guava Cache - actorsfit Recently, I have been doing some cache transformation scenarios, and there are some experience summaries as follows: Cached ..

Series/실전! 2023.04.02

code kata 를 하자! - Codewars

A kata is an exercise in karate where you repeat a form many, many times, making little improvements in each 카타는 하나의 양식을 여러 번 반복하면서 조금씩 개선하는 가라데의 운동입니다. 보통 코딩 테스트 통과를 위한 알고리즘 공부는 leetcode, 백준을 추천하곤 합니다. 하지만 저는 실무에 있어 퍼즐에 가까운 알고리즘 풀이보다는, 범용적인 자료구조와 해당 언어의 Best Practice 학습이 더 중요하다고 생각합니다. 그러던 중 codewars 라는 사이트를 알게 되었고 제 목적에 부합하고 꽤 유용하다고 생각되어 간단히 소개해보고자 합니다. Codewars - Achieve mastery through codin..

잡담 & ETC 2023.02.20

Spring Cloud OpenFeign + WireMock Test

Netflix OSS 에서 시작한 Feign 은 강력한 기능과 편의성으로 Spring Cloud 에 OpenFeign 으로 편입되었습니다. OpenFeign 은 다음과 같은 장점을 가지고 있습니다. 외부 연동 로직을 간소화 시킵니다. MSA 구성에 큰 도움을 줍니다. SAGA 패턴, 마이크로서비스 통신 탄력성 등 리액티브 시스템의 특성을 만족시키는데 유용한 패턴을 제공합니다. OpenFeign 은 이미 널리 알려진 기술이기에 좋은 글들이 많지만 Kotlin + Test 로 작성된 글은 별로 없었습니다. 그래서 외부 연동을 준비하며 학습한 OpenFeign 의 기능을 구현과 테스트로 설명합니다. GitHub - Hyune-s-lab/openfeign-spring-tutorial: openfeign 연습하기..

Study 2023.02.05

RandomCode Generator 성능 측정하기

일련번호는 총 16 자리의 숫자/영문 대문자로 이루어진 문자열이다. 최근 회사 업무를 하던 중 기존에 작성된 무작위 일련번호를 만드는 로직을 보게 되었습니다. 간단한 업무 내용에 Util 성격의 로직이었지만, 구현된 로직은 생각보다 복잡했습니다. 그래서 기존 로직의 의도를 파악하고, 개선을 시도해 보았습니다. 먼저 결론을 공유하고, 시도한 개선을 따라가 보겠습니다. 결론 (각 1만, 10만, 50만, 100만 회 반복) ThreadLocalRandom 의 성능은 매우 뛰어나다. Kotlin Random 역시 뛰어나다. String 변환은 매우 비싼 작업이며 Sequence 가 효율적으로 작동하지 않을 수 있다. Coroutine 은 학습이 부족하여 적용하지 않았다. GitHub - Hyune-s-lab/..

Series/실전! 2023.01.11

Datagrip 에서 Datasource 공유하기

DB 접속 정보 세팅은 가장 기초적인 개발 환경 세팅의 하나입니다. 보통은 애플리케이션이나 환경 변수 정보 모음에서 가져오거나, 별도로 관리되는 엑셀 파일을 활용하곤 합니다. 하지만 균일한 개발 환경을 보장하기 힘들고, 접속해야 되는 DB 가 많은 경우 꽤나 번거로운 일입니다. Datagrip 은 Export Settings 이라는 좀 더 똑똑한 방법을 지원합니다. Manage data sources | DataGrip www.jetbrains.com datasource 세팅이 완료된 기존 직원 1. export 시키고 싶은 정보를 global datasource 로 설정 2. export - Database 2개 체크 datasource 정보를 받고 싶은 신규 직원 1. import - setting...

Tip 2022.11.19

스프링 마이크로서비스 코딩 공작소 (2)

GitHub - Hyune-s-lab/optima-growth: 스프링 마이크로서비스 코딩 공작소 스프링 마이크로서비스 코딩 공작소. Contribute to Hyune-s-lab/optima-growth development by creating an account on GitHub. github.com Phase 1 3. 스프링 부트로 마이크로서비스 구축하기 4. 도커 https://hyune-c.tistory.com/53 Phase 2 5. 스프링 클라우드 컨피그 서버로 구성 관리 6. 서비스 디스커버리 이 글입니다. eureka-server 구현 유레카는 클라이언트의 생존 여부를 체크하여 API 게이트웨이의 라우팅을 돕습니다. eureka-server // build.gradle.kts depen..

스프링 마이크로서비스 코딩 공작소 (1)

GitHub - Hyune-s-lab/optima-growth: 스프링 마이크로서비스 코딩 공작소 스프링 마이크로서비스 코딩 공작소. Contribute to Hyune-s-lab/optima-growth development by creating an account on GitHub. github.com Phase 1 3. 스프링 부트로 마이크로서비스 구축하기 4. 도커 이 글입니다. Phase 2 5. 스프링 클라우드 컨피그 서버로 구성 관리 6. 서비스 디스커버리 https://hyune-c.tistory.com/54 새로 입사한 회사는 제가 생각한 것보다 훨씬 서비스 구분이 많았습니다. 솔직히 이렇게까지 세분화 해야되나? 라는 생각이 들 정도였습니다. 마이크로서비스는 잘 쓰면 높은 생산성과 장애 ..

[트러블 슈팅] ECS 클러스터 안의 서비스간 네트워크 연결 불가

글을 시작하기 전에 짧게 배경을 설명합니다. 필자의 인프라 지식과 경험은 아래와 같습니다. - [On-premise] 서버 이중화 구성 & 운영 경험 O - [AWS] EC2 기반의 Elastic Beanstalk 구성 & 운영 경험 O - [AWS] ECS 운영 경험 O EKS X - [AWS] VPC, 보안그룹, 인바운드 규칙에 대한 이해 - Docker 에 대한 이해 - MSA 개발에 대한 이해 O MSA 인프라에 대한 이해 X - 그리고 이 정도로 거대한 규모의 인프라는 처음 만져봄 저는 9/1 일 신생 PG 회사로 이직하면서 모기업의 승인&정산 업무를 배정받았고, 이전 담당자는 퇴사가 예정되어 있었습니다. 이 글을 쓰는 시점에 이미 퇴사하신 승인/정산은 어느 회사에서나 가장 민감한 도메인 중 하..

Series/실전! 2022.09.24

요즘 애들은 문해력이 낮아진걸까?

09:42 ~ 13:00 소위 요즘 학생들이 단어를 모른다, 문해력이 떨어진다라고 말하고 이것이 큰 문제인 것으로 알려지고 있다. 하지만 사실은 영상 독해력이 높아지는 등 이전 세대와 다른 양상의 패러다임이 생기고 있는 것이다. 기술/업무와는 전혀 관계 없는 영상처럼 보이지만 느낀 것이 많습니다. 시대는 지속적으로 바뀌어 가고 우리가 만드는 서비스를 소비하는 층은 점점 어리고 새로워져 갑니다. 하지만 우리는 비즈니스를 하는 사람들이기에 너무나도 어렵지만 패러다임의 변화를 캐치할 수 있어야 하고, 최소한 변화를 인정하고 수용하는 자세를 가져야 된다고 생각합니다. 잘못된 분석의 사례 2차 대전 중, 미 해군분석센터 연구원들은 임무를 마치고 돌아온 전투기들의 총탄 자국에 대해 연구하였다. 그 연구 결과는, 비..

잡담 & ETC 2022.09.10