본문 바로가기

프로젝트 & TIL

(103)
100일차 - HAL Explorer HAL Explorer - 스프링 부트에서 API 테스트 - 심플하고 편리한 UI 제공 의존성 추가 build.gradle implementation 'org.springframework.data:spring-data-rest-hal-explorer' 참고 - UI에서 Edit Headers > Key : accept, Value : application/hal+json(또는 application/json)을 추가한 후 Go!를 눌러주면 Get뿐만 아니라 모든 API 테스트가 가능해진다. - hal explorer 의존성을 추가했다면 rest repositories 의존성은 삭제해도 된다.(99일차 기록 참고)
99일차 - Rest Repositories Rest Repositories - Repository로부터 REST API를 자동으로 만들어주는 기술 - Spring Data REST를 사용한다. - 페이징, 정렬, 리미트를 사용할 수 있다. - QueryDSL Extension을 함께 사용하면 큰 노력 없이 컬럼별 검색 기능까지 사용 가능하다. 실무에서는 많이 사용되지 않는 이유 - 도메인을 직접 API에 노출하는 것을 꺼림 - 복잡한 요구사항에 맞춰 API 설계를 하고 싶은 경우에는 부적합 - 설정을 제대로 하지 않으면 불필요한 API가 노출될 수 있음 - 실무에서 API는 필요에 따라 직접 만드는 편 사용을 고려할 수 있는 상황 - 내부에서 사용하는 애플리케이션을 만들 때 - 도메인이 복잡하지 않을 때 - 요구사항이 복잡하지 않고 심플한 CRU..
98일차 - 스왑 파일 생성, 도커와 MariaDB 등 설치 아래 내용은 모두 아마존 리눅스에서 실행하는 것임 EC2 인스턴스에 스왑 파일 적용 - 루트 파일 시스템에 스왑 파일 생성 $ sudo dd if=/dev/zero of=/swapfile bs=128M count=32 - 스왑 파일의 읽기 및 쓰기 권한 업데이트 $ sudo chmod 600 /swapfile - Linux 스왑 영역 설정 $ sudo mkswap /swapfile - 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 함 $ sudo swapon /swapfile - 프로시저가 성공적인지 확인 $ sudo swapon -s - /etc/fstab 파일을 편집하여 부팅 시 스왑 파일 시작 $ sudo vi /etc/fstab 파일 끝에 아래 텍스트를 새로 추가하고 저장한..
97일차 - 테라폼으로 AWS 다이나모 DB 생성하기 Post 테이블 생성 resource "aws_dynamodb_table" "dynamodb_table_post" { name = "post" billing_mode = "PROVISIONED" read_capacity = 5 write_capacity = 5 hash_key = "id" attribute { name = "id" type = "S" } } resource "aws_dynamodb_table" "dynamodb_table_chatMessage" { name = "chatMessage" billing_mode = "PROVISIONED" read_capacity = 5 write_capacity = 5 hash_key = "chatRoomId" range_key = "createDate" ..
96일차 - 다이나모DB 저장과 조회 devtools 의존성 제거 - 다이나모DB 라이브러리와 호환되지 않는다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' // developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'software.amazon.awssdk:dynamodb:2.2..
95일차 - 다이나모 DB 다이나모 DB - 몽고 DB 보다 더 단순하지만, 확장성과 안정성이 뛰어나다. - 서브 DB로 쓰기 좋다. - 급작스럽게 대량으로 발생하는 데이터를 저장하는 1차 저장소, 혹은 대량 데이터 저장소로 쓸 수 있다. - 데이터 유실 가능성이 0에 가깝다. 의존성 추가 - 기본 의존성은 Spring Devtools, Spring Web, Lombok을 추가했다. (Devtools는 호환성 문제로 제거됨. 다음 포스팅 참고) dependencies { ... implementation 'software.amazon.awssdk:dynamodb:2.20.98' implementation 'software.amazon.awssdk:dynamodb-enhanced:2.20.98' } application-secret..
94일차 - Hashicorp Vault Hashicorp Vault https://www.vaultproject.io/ Vault by HashiCorp Vault secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets in modern computing. www.vaultproject.io - 민감 정보의 저장, 관리 - 민감 정보에 접근하는 인증/권한 관리 - 데이터 암호화 - 오픈 소스 : https://github.com/hashicorp/vault GitHub - hashicorp/vault: A tool for secrets management, encryption as a service, an..
93일차 - 테라폼과 AWS Route 53, DB 리플리케이션 Route 53 호스팅 영역 > 호스팅 영역 생성 > 도메인 이름 작성한 후 퍼블릭 호스팅 영역 선택, 호스팅 영역 생성 클릭 => 관리 준비 완료(관리 중인 것이 아님!) > 값/트래픽 라우팅 대상을 도메인의 네임 서버에 붙여넣기 EC2, RDS 인스턴스에 도메인 부여 variables.tf variable "domain_1_zone_id" { description = "domain_1_zone_id" default = "" # 호스팅 영역 ID } variable "domain_1" { description = "domain1" default = "" # 내 도메인 } main.tf # For EC2 Instance resource "aws_route53_record" "domain_1_ec2_1" ..