개요 프로덕션 레벨의 백엔드 서비스를 운영하다보면 비지니스 차원이든, 관제 목적이든 요청 IP 주소를 기반으로 지역 정보를 추출해야 하는 요건이 발생한다. 해결책은 여러가지 방법이 있지만 이번 글에서는 로컬 데이터베이스 파일을 이용하여 제한없이 안전하고 빠르게 Geolocation 정보를 획득하는 방법을 정리했다. GeoLite2 로컬 데이터베이스 다운로드 MaxMind는 2002년 창업하여 IP 인텔리전스 분야만 20년 넘게 영위한 전문 기업이다. 이 회사가 무료로 제공하는 GeoLite2 IP Geolocation 로컬 데이터베이스 파일을 이용하여 예제를 작성할 것이다. 제작사 홈페이지에 회원 가입 후 로그인하면 무료로 다운로드할 수 있다. [다운로드 링크] 다운로드 방법의 다른 대안으로 일반 유저인..
개요 이번 글에서는 CentOS 7/8 및 Amazon Linux 2023에서 docker, docker-compose를 설치하고 사용하는 방법을 정리했다. Docker 설치 docker를 사용하면 운영체제와 독립적인 이미지를 인스턴스로 올려 컨테이너로 작동시킬 수 있다. 아키텍쳐의 구성 및 확정, 배포 방법이 비약적으로 간소화된다. CentOS 7/8 및 Amazon Linux 2023에서의 설치 및 실행 방법은 아래와 같다. # CentOS 7/8에서 Docker 설치 $ curl -fsSL https://get.docker.com/ | sh # Amazon Linux 2023에서 Docker 설치 $ sudo dnf update $ sudo dnf install docker -y # Docker 서..
개요 Java 19부터 Virtual Thread 개념이 Preview Feature로 새롭게 추가되었고 Java 21 LTS부터 정식 기능으로 전환되었다. 기존의 전통적인 Platform Thread가 OS의 쓰레드와 직접 맵핑되는 개념이었다면 Virtual Thread는 JVM에 의해 추상화되어 작동하는 경량의 가상 쓰레드로서 훨씬 낮은 메모리를 소모하는 것이 장점이다. 가상 스레드는 JVM의 스케쥴러에 의해 자동으로 관리되므로 개발자는 비지니스 로직에 더욱 집중하면서 성능의 이점까지 누릴 수 있다.Spring Boot 3, Spring Framework 6는 가상 쓰레드를 공식으로 지원한다. 이번 글에서는 Spring Boot 기반 프로젝트에서 Spring Web MVC 요청, @Async, 코루틴..
개요 Spring Boot 프로젝트에서 오픈 소스 분산 캐시 및 인메모리 데이터베이스로 유명한 Hazelcast를 Embedded Cache로 구현하는 방법을 간단히 정리했다. 라이브러리 종속성 추가 프로젝트 루트의 build.gradle.kts에 Hazelcast 사용을 위한 아래 내용을 추가한다. dependencies { implementation("com.hazelcast:hazelcast:5.2.3") // 분산 캐시에 오브젝트 저장시 직렬화 방식으로 Smile을 사용하기 위해 추가 implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.14.3") } @Configuration 클래스 작성 Hazelcast 사용에..
- Total
- Today
- Yesterday
- MySQL
- chrome
- Tomcat
- jsp
- 태그를 입력해 주세요.
- Eclipse
- maven
- java
- 자전거
- kotlin
- graylog
- jstl
- 로드바이크
- 알뜰폰
- CentOS
- bootstrap
- Kendo UI Web Grid
- node.js
- Kendo UI
- 구동계
- JHipster
- Spring MVC 3
- jpa
- 로드 바이크
- JavaScript
- Spring Boot
- Docker
- DynamoDB
- spring
- 평속
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |