git에서 코드를 clone 받을 때 방법을 보면 HTTPS, SSH, GitHub CLI 이렇게 3가지가 있다. HTTPS단순 'https://' clone URL을 통해 clone 받는 방법이다.이 방법을 이용해 clone을 받을 경우 git push, pull 등 해당 repository에 git 동작을 할 때 git 자격증명(사용자 이름, 비밀번호)를 묻는 과정을 거치게 된다. SSHgit 사용자 설정에서 SSH Key 설정을 통해 git과 사용처 사이에 인증하는 방식이다.이 방법을 사용할 경우 git을 사용할 때마다 자격증명을 묻지 않는다. (사용자 이름, 비밀번호) GitHub CLIGitHub CLI를 설치해서 clone 받는 방법이다. GitHub SSH 설정 방법git clone 받는 방..
전에 RestTemplate대신 WebClient라는 글을 작성했었다.https://pamyferret.tistory.com/79 RestTemplate 대신 WebClient기존에 springboot에서 http 통신을 해야할 때 RestTemplate을 곧잘 쓰곤 했다. 하지만 spring 5.0 버전부터는 RestTemplate은 더 이상 새로운 버전을 내놓지 않을 것이며 WebClient를 쓰라고 권장하고 있다. As of 5pamyferret.tistory.com RestTemplate의 경우 이제 maintanace로 들어가 더 이상 새로운 버전 업이 이뤄지지 않는하고 하며 webClient를 쓰라고 권장을 했다는 내용으로 작성을 한 것이었다.하지만 실무를 하면서 RestTemplate을 쓸 ..
서버 개발을 하다보면 클라에게 제공한 api의 속도에 신경써야 된다. 속도를 줄이는 방법으로 db 최적화, 속도가 느린 로직 개선 등 여러 가지 시도를 하는데 그 중 하나의 방법으로 cdn이 있다. cdn이란? cdn이란 content delivery network(콘텐츠 전송 네트워크)로 사용자로부터 가까운 서버로 콘텐츠를 받아 콘텐츠를 받는데 걸리는 속도를 줄여주는 그런 네트워크를 의미한다. 예를 들어 미국에 있는 사용자가 한국에 있는 서버로부터 데이터를 받을 때 지리적으로 먼 거리로 인해 속도가 느려질 수밖에 없다. 이 때 속도를 줄일 수 있는 방법으로는 미국에 한국과 똑같은 서버를 구축해서 미국 사용자는 미국 서버로부터 데이터를 빠르게 받는 것이다. 하지만 실제로 이렇게 중복되는 서버들을 여러 개..
기존에 springboot에서 http 통신을 해야할 때 RestTemplate을 곧잘 쓰곤 했다. 하지만 spring 5.0 버전부터는 RestTemplate은 더 이상 새로운 버전을 내놓지 않을 것이며 WebClient를 쓰라고 권장하고 있다. As of 5.0, the non-blocking, reactive org.springframework.web.reactive.client.WebClient offers a modern alternative to the RestTemplate with efficient support for both sync and async, as well as streaming scenarios. The RestTemplate will be deprecated in a fu..
요즘에는 개발을 하면서 k8s(kubernetes)를 안 쓸 수가 없다. 간단한 k8s 기본 구조와 k8s를 다루는데 쓰이는 기본 kubectl 명령어에 대해 정리 해보자. k8s 기본 구조 k8s 기본 구조를 살펴보면 아래와 같다. ingress 외부에서 들어오는 request 받고 관리한다. 로드밸런서와 같이 트래픽을 분산하는 역할과 ssl/tls 설정을 통해 https 통신을 할 수 있도록 해준다. service deployment에 실행되고 있는 application을 밖으로 노출시키는 역할을 한다. 내부의 어떤 deployment를 어떤 port로 실행할 것인지 service에 설정한다. deployment(pod) pod, replicaSet에 대한 관리를 해준다. 여기서 pod란 applic..
요즘 자바가 아닌 코틀린으로 작업을 하고 있다. 코틀린에서 제공하는 코루틴의 경우도 비동기 로직에 사용을 해보긴 해봤지만 잘 모르고 써 문제가 생겨 코루틴에 대해 공부하며 좀 정리를 해보려 한다. coroutine(코루틴)이란? co + routine을 합친 단어로 함꼐 작업되는 일, 작업 등을 의미한다. 코틀린에서 제공되는 것으로 코루틴을 사용하면 비동기 로직을 깔끔하게 짤 수 있다. 비동기 로직을 짜는데 대표적으로 WebFlux(웹플럭스)가 있는데 웹플럭스와 코루틴을 사용해봤을 때 코루틴이 확실히 코드가 깔끔하고 작성한 것을 이해하기 쉬웠다. 코루틴의 경우 평소에 코딩하는대로 순차적 코딩을 하면 되서 좀 더 보기 좋았던 것 같다. 코루틴은 비선점형 멀티태스킹으로 프로세스가 cpu를 할당 받으면 다른..
서버 개발을 하다보면 k8s를 진짜 많이 사용한다. 그 중 deploeyment 상태 체크에 쓰이는 설정인 livenessProbe, readinessProbe를 쓰긴 쓰는데 정확히 무엇인지 헷갈려 정리를 해보려 한다. livenessProbe와 readinessProbe는 둘 다 pod의 상태를 체크하고 일반적으로 둘 다 같은 endpoint를 통해 체크를 하지만 언제 체크를 하느냐의 차이가 있다. livenessProbe live라는 용어에서 알 수 있듯이 pod가 현재 실행 중이고 잘 돌아가고 있을 때 pod에 문제가 생긴 것(교착 상태 등)을 감지해 pod를 재시작 하는 경우의 그 pod에 문제가 생긴 것을 어떻게 감지 할 것인가에 대한 설정이다. readinessProbe readiness, 즉..
kotlin을 쓰면서 scope 함수를 구분 없이 막 쓰는 것 같아서 용도에 따라 함수를 구분해 쓸 수 있도록 좀 정리를 해봤다. Kotlin scope 함수 kotlin에서는 let, run, with, apply, also와 같은 scope 함수를 제공한다. 이 함수들은 람다식과 같은 형식으로 코드 블록으로 객체에 원하는 기능을 수행할 수 있게 해준다. 예를 들면 아래와 같다. testUser.apply { name = "test" age = 30 } apply라는 scope 함수를 쓰지 않으면 아래와 같이 풀어서 써야 하는 코드였다. apply를 통해 코드 블럭으로 묶어서 아래와 같이 testUser.XXX를 쓸 필요가 없어졌으며 코드 블럭 안으로 딱 묶였다. testUser.name = "test..
- Total
- Today
- Yesterday
- PostgreSQL
- rabbitmq
- eclipse
- MAC
- 스프링부트
- enum
- 이클립스
- 공간데이터
- Caching
- 자바
- k8s
- annotation
- Spring
- 데이터베이스
- springboot
- cache
- DB
- DATABASE
- 캐시
- Intellij
- postgres
- HttpClient
- mockito
- Java
- ssh
- 메시지큐
- 캐싱
- 역직렬화
- 어노테이션
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |