학부생 시절에는 Windows 환경에서 Linux를 사용하기 위해서 VM ware, Virtual Box와 같은 가상화 소프트웨어들을 사용해서 가상 머신(Virtual Machine)을 구동시켜 사용했었다. 가상 머신의 단점은... 너무 느렸다. 설치부터 부팅까지의 소요 시간이 꽤나 컸다. 무슨 이유에서인지 구동이안돼 재설치라도 하는 날에는 정말 끔찍했었다. 때문에 근래엔 리눅스 환경에서 개발할 일이 있으면, Docker를 주로 사용하고 있다. Docker Hub와 같은 Docker Registry에 저장해 놓으면, 어디서든 같은 환경의 리눅스를 손쉽게 사용할 수 있다. 같은 가상화 환경을 제공하는데 VM과 Docker가 왜이리 차이가 나는지 알고 싶어 정리해봤다. 가상화는 데스크탑 가상화, OS 가상화..
1. 캐시란? 서버는 많은 리소스들을 저장하고 있다. 개중에는 엄청나게 큰 파일을 요청하는 경우가 있는데, 이럴 경우 여러번 같은 파일을 요청할 경우 서버는 많은 사용자가 사용 중이 아니어도 과부하 상태 빠질 것이다. 위와 같은 경우를 대비해서 서버-클라이언트 서비스 간에 캐시(Cahce)를 둬서 리소스에 대한 좀더 빠른 접근할 수 있도록 한다. 캐시의 위치는 구현법과 솔루션에 따라 나뉘는데, 1. 인 메모리 캐싱(In-memory caching): 서버의 RAM에 데이터를 저장해 캐싱된 데이터에 빠르게 접근할 수 있도록 한다. Java 라이브러리 ehcache가 대표적인 예이고, 스프링 내부적으로도 제공하는 @Cacheable도 인메모리 캐싱이다. 2. 디스크 캐싱(Disk caching): 데이터를 ..
내가 담당하고 있는 서비스는, 불행하게도 CI/CD가 없다. 그러면 어떻게 배포하느냐? 다 수동이다. 이클립스에서 gradle build 생성된 war 파일을 git을 이용해 서버에 업로드 서버에서 스크립트를 통해 배포 간단해 보이는 과정이지만 이 서비스가 갖고 있는 Java 프로젝트만 10개가 넘고, 임시로 생성된 branch들 때문에 수동으로 배포하게 되면 실수가 발생할 수 밖에 없다. 또 코드를 배포하는 사람이 한명이 아니기 때문에, 실제로도 반영되지 말아야되는 버전의 코드가 배포되는 등의 생겼었다. 상용화된 서비스에 바로 반영해볼수는 없기 때문에 로컬환경에서 먼저 작업해봤다. 문제는 내 로컬 OS가 윈도우라는 것 때문에 제법 큰 문제가 발생했었고, 이 문제를 수정하는데 너무 진을 뺐었다. 이 내용..
- Total
- Today
- Yesterday
- OpenFeign
- lambda
- S3
- OpenAI
- MySQL
- ChatGPT
- openAI API
- springboot
- CloudFront
- 오블완
- JWT
- AWS
- 스프링부트
- terraform
- Spring
- 티스토리챌린지
- EKS
- Kotlin
- elasticsearch
- GIT
- java
- 후쿠오카
- Elastic cloud
- docker
- serverless
- AOP
- AWS EC2
- 람다
- Log
- cache
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |