본문 바로가기

전체 글

(51)
NGINX MSA 디지털 트레이닝 - 1강. Context Logic NGINX에서 제공하는 디지털 트레이닝 코스 수강 하면서 정리한 내용이다. 원본 동영상 : https://www.youtube.com/watch?v=4vBF6nXahMg 1. NGINX 기본 명령어 Version 확인 : nginx -v[browndwarf@mymachine nginx]$ nginx -v nginx version: nginx/1.18.0 설정파일 syntax 유효성 검사 : nginx -t[browndwarf@mymachine nginx]$ nginx -t nginx: the configuration file /home1/irteam/apps/nginx-1.18.0/conf/nginx.conf syntax is ok nginx: configuration file /home1/irteam/..
Rest API 호출 제한 - Bucket4J 배경 특정 사용자가 서비스에서 제공되는 검색 기능을 과도하게 이용해서 DDoS 적인 현상을 발생시켰고, 이를 방지하고자 몇 가지 방안을 마련하는 과정에서, 몇몇 Rest API에 대해 사용 제한 설정을 위해 알아본 내용을 정리한 내용이다. Rate Limit Algorithm 위와 같이 클라이언트로부터의 과도한 사용에 대해 서비스의 가용성을 안정적으로 유지하기 위해 트래픽을 일정 수준으로 조정하는 수단으로 언급되는 것이 Rate Limit Algorithm 이다. 특정 IP, 특정 Access-key 등에 대해 일정 횟수로 사용 제한을 하거나, 사용 시간 제한 등을 적용해서 사용 제한을 넘는 요청에 대해 거부를 하거나, 혹은 일정 시간 대기, 또는 요금을 받고 제한을 풀어주는 Business Model을..
Elastic Beanstalk - (3) RDS 포함한 환경 구성 및 .extension 폴더 활용 이전 포스팅에 이어 Spring Boot Application을 Elastic Beanstalk로 Application을 배포할 때 RDS와 연결하고 .extension 폴더를 통해 Application 배포 환경을 구성하는 예를 공유하려고 한다. Jar 파일을 이용한 배포 및 내부 구조 이해 Tomcat + War 파일을 이용한 배포 및 내부 구조 이해 .extension 폴더 및 각종 환경 설정을 더한 Spring Boot Application 배포 (by Jar 파일) 구현 시나리오 이 포스팅에서 구현하려는 구현 시나리오는 다음과 같다. Application 배포를 위해 생성되는 EC2 Instance에 User Group과 User 추가 (실제로 사용하지는 않는다.) Application 환경 구..
Elastic Beanstalk - (2) War 파일 + Tomcat을 통한 Web Application Deploy 이전 포스팅에 이어 Spring Boot Application을 War Packge로 배포하는 과정을 정리해 보았다. Jar 파일을 이용한 배포 및 내부 구조 이해 Tomcat + War 파일을 이용한 배포 및 내부 구조 이해 .extension 폴더 및 각종 환경 설정을 더한 Spring Boot Application 배포 (by Jar 파일) Application 수정 Spring Boot Application을 War Package로 생성하기 위해, 이전에 작성했던 Code중에서 일부를 아래와 같이 수정하였다. gradle.build 수정 'war' plugin 추가 Version 변경 : 0.1-SNAPSHOT ==> 0.2-SNAPSHOT Dependency 추가 spring-boot-start..
Elastic Beanstalk - (1) Java Jar 파일을 통한 Web Application Deploy Spring Boot로 개발한 Application을 AWS의 Elastic Beanstalk으로 배포하는 내용을 아래의 3개의 포스팅에 걸쳐 정리해 보았습니다. Jar 파일을 이용한 배포 및 내부 구조 이해 Tomcat + War 파일을 이용한 배포 및 내부 구조 이해 RDS 포함한 환경 구성 및 .extension 폴더 활용 Sample Application 여기서 Sample로 사용한 Application은 제가 Demo용으로 사용하는 게시판 Web Application이고, 개발 환경 및 주요 code들은 아래와 같습니다. Spring Boot 2.2.6 Open JDK 1.8 (1.8.0_222) Gradle 5.6.2 주요 Dependency : Swagger / H2 Database (Fil..
Ubuntu 18.04에 PostgreSql 11 설치 Ubuntu하고는 인연이 없었는데, 어쩌다가 Ubuntu에 서비스 환경을 구축하게 됐다. 그 와중에 PostgreSQL 설치하게 됐는데 언젠가 다시 Ubuntu를 만날 때를 대비해 기록해 놓는다. 1. 저장소 추가 RedHat 계열에서 사용되는 Yum Repository 추가/변경 하듯이, Ubuntu에서도 PostgreSQL을 설치하려면 PostgreSQL을 위한 APT Repository를 새로 추가해야 한다. 아래는 PostgreSQL 11이 설치가 되지 않아 Repository를 추가하는 과정을 기록한 것이다. # 현재 Repository에 PostgreSQL Package가 없어 Install 실패하고 있다. browndwarf@ubuntu-server:~/work$ sudo apt-get in..
Google Cloud Certification Challange 후기 2019년에 Cloud 관련 Certification을 2개 취득하는 목표를 달성하고자 8월에 AWS SAA Certification을 취득했었고, 연말에 Developer Certification 취득 준비 중에 Google Cloud Facebook Group에서 Google Cloud Certification Challenge에 대한 Timeline을 보았습니다. 비록 한국에서 Google Cloud가 많이 쓰이지 않기도 하고 회사에서 Cloud 도입 검토할 때 기술 지원 받기가 어려웠던 경험도 있어 약간 망설여 지는 게 사실이었지만 Certification Challenge Program에서 제공하는 지원 조건과 합격 후 혜택이 매력적이었고 Google Cloud에도 살짝 발을 담그는 것이 나쁠 ..
Entity Inheritance in Hibernate - (3) Table per Class, Joined 상속 전략 Table Per Class 전략 Table-Per-Class 상속 전략을 사용할 때 Database에 생성되는 Table들은 이전 포스팅에서 소개했던 MappedSuperClass의 경우와 유사하다. 하지만 MappedSuperClass 전략을 사용할 때와는 달리 부모 Class가 다른 Entity Class와 Relation을 가지는 것을 지원하며, 이런 Relation이 Child Entity Class에 상속된다는 점이 다르다. 개념적으로 도식화 하면 과 같다. 부모 Class인 Product class와 Beverage Class가 Table로 생성되지는 않지만, 그 Class에서 정의된 attribute들은 모두 Child Entity Class에 상속되게 된다. 구현 과 같이 앞선 포스팅에서..