코틀린 스프링을 사용하는 이유

코틀린 스프링을 백엔드 개발할때 쓰는 이유를 적은 글을 쓰며 백엔드 개발을 시작할때 최근에 가장 많이 논의되는 언어가 코틀린과 타입스크립트라고 생각을 하고 있는데, 개인적으로는 서로의 장단점이 다르다고 느껴져서 이런 글을 적어두고 싶었다.특히 Nest.js에 익숙하신 분들에게 도움이 되길 바라며 글을 쓴다. 글의 접근 방식 이 글은 코틀린과 다른 언어를 많이 비교하면서 진행될 예정이다. 자바랑 비교하게 되는 내용도 있고, 개인적인 경험을 빗대기 위해서 Dart같은 약간 생소할 수 있는 언어도 사용했다. 글의 내용 코틀린에 대한 소개 코틀린의 강점이라고 느껴지는 부분 백엔드 개발에서 코틀린을 쓰는 이유 코틀린이란? 코틀린. 모던 랭귀지의 대표적인 주자중 하나이다. 대표적인 삼대장을 뽑아보라고 하면 Rust..

Kotlin 2023.11.20 0

Nginx 로드밸런싱 설정

이 글은 Nginx 로드밸런싱 방법을 적은 글입니다. 이 글에서 다루고자 하는 내용은 크게 두 가지로 첫 번째는 로드밸런서의 정체와 사용하는 이유이고, 두 번째는 Nginx를 로드밸런서로 운용하는 방법입니다. 로드밸런서의 정체 로드밸런서는 번역하면 부하 분산기입니다. 말 그대로 부하 분산을 위한 프로그램 혹은 하드웨어입니다. 로드밸런서의 역할은 가상의 주소를 향한 요청을 여러 서버에 분배하는 것입니다. 로드밸런서를 사용하는 이유 로드밸런서가 사용되는 이유를 크게 분류하면 두 가지가 있습니다. 첫 번째는 부하를 분산하여 하나의 서버의 부하를 조절할 수 있다는 점, 두 번째는 고가용성으로 두 개 이상의 서버를 운영하여 한쪽 서버가 장애가 생길 시 다른 쪽에서 해당 서비스를 운영할 수 있는 구성을 통해 운영 ..

Nginx 시리즈 2020.04.14 1

ElasticSearch 인덱스 필드 길이 제한 늘리기

안녕하세요. 정우현입니다. 오늘은 위의 에러를 해결하는 방법을 적은 글을 씁니다. 원인 로그스태시를 통해서 서버 로그를 엘라스틱서치에 꾸준히 넣는데, 로그의 길이가 긴 경우의 로그가 정상적으로 저장이 안되고 있는 듯해서 문제를 찾아봤더니 필드의 길이제한을 넘어가는 경우 저장을 할 수 없었습니다. 해법 그래서 이 문제를 해결하기 위해서 방법을 찾아봤습니다. 첫 번째 방법은 인덱스 하나에 대하여 설정을 변경하여 하나의 인덱스에만 필드의 길이제한을 변경하는 것이고, 두 번째 방법은 템플릿을 적용하여 특정 조건의 인덱스에 대해서 필드의 길이제한을 변경하는 방법입니다. 첫 번째 방법은 PUT /_settings { "index.mapping.total_fields.limit": 2000 } 이라는 명령을 키바나의..

ELK 2020.02.28 0

보드를 타고 왔습니다.

어제 친한 사람들과 함께 보드를 타고 왔습니다. 찬 공기를 거슬러 눈 덮힌 산으로 향했습니다. 가벼운 설렘과 긴장이 뒤섞인 마음으로 부츠를 조이고 데크에 발을 올리니 떨리는 심정을 가슴으로 느낄 수 있었습니다.넘어지는 기회첫 슬로프에 발을 딛는 순간, 걱정했던대로 넘어지고 넘어졌습니다. 하지만 넘어지는 것도 계획한 일이었습니다. 새로운 기술을 익히기 위해선 몇번이고 땅과 인사해야하니까요. 어느 순간에 느낀건 새로운 기술을 가장 빨리 익히기 위해선 넘어져야한다는 걸 알게 됐습니다. 턴하지 못하고 가던대로 내려가는게 가는게 아니라 한번 넘어지고 다시 시작하는게 더 짧은 구간에서 많은 도전을 할 수 있기 때문이죠. 넘어진다는건 일어나기 위한 선행 작업이더라구요.두려웠던 마음이 뒤덮히는 순간내려가는 길은 새하얀..

나의 생각 2025.01.11 0

MSA에서 다른 서비스의 트랜잭션이 실패된다면 어떻게 해야할까?, Saga

이 글은 MSA 환경에서 다른 서비스의 트랜잭션 Fail으로 인한 보상로직을 작성하는 방법에 대해서 다루는 글입니다. 이 글을 쓰는 이유 최근에 MSA하다가 A 컴포턴트에서 트랜잭션을 마치고, B 컴포넌트에 이벤트를 던져두었더니, B 컴포넌트가 제대로 처리를 못하면 어떻게 해야하나라는 질문을 받았습니다. 그래서 해결책을 찾아보다가 이 해결책으로 Saga pattern을 알게 되었고, Saga pattern에 대해서 공유하고자 글을 씁니다. https://microservices.io/patterns/data/saga.html Microservices Pattern: Pattern: Saga Implement transactions using a saga, which is sequence of local ..

Web 2024.04.13 0