반응형

[IT] 31

[AWS][S3] Presigned URL이란

Presigned URL 이란 Presigned URL (미리 서명된 URL) 이란 AWS 자원에 대한 접근 권한을 제공하기 위해서 사용되는 이름 그대로 사전에(미리) 적절한 권한을 가진 자격증명에 의하여 signed된 URL을 말함. 필요한 이유는? S3(Simple Storage Service)의 객체의 경우, Default로 비공개이고 소유자만 접근 가능 함. Bucket Policy나 ACL(Access Control List, 접근 제어 목록)과 같은 제한 설정과 관계없이 소유자의 보안 자격 증명을 사용하여 특정 "유효시간"내에 S3에 PUT, GET을 가능하게 하는 URL을 생성하는 것임. 이 URL을 presigned URL이라 부르며 해당 URL을 통해 임시적으로 객체에 접근 가능하도록 함..

[IT]/AWS 2022.12.12

[AWS][Elasticsearch] 엘라스틱 서치 기본 개념 및 간단 실습 코드 (opensearch와 의 비교/차이/분쟁)

Elasticsearch와 Opensearch의 비교/차이/분쟁? 더보기 기존 Elastic이라는 기업에서, 오픈소스로 Elasticsearch를 제공하고 있었다. 1. 2018년 2월 Elastic은 Elasticsearch의 상용 확장팩인 X-Pack이 Elastic EULA 라이센스의 적용을 받는 코드로 공개한다고 발표한다. Elasticsearch의 소스코드는 Apache 2.0 이고, 사용 기능인 X-pack이 포함된 폴더는 Elastic 라이선스가 적용된다는 의미. 2. Aamazon Elasticsearch Service를 운영하는 AWS는 Elasticsearch에 오픈 소스에 상용 소스 코드가 섞이게 되었고 구분도 명확하지 않아서 문제가 된다며 Open Distro for Elastics..

[IT]/AWS 2022.12.08

[Network] IP 클래스(A,B,C class)란?

기본적으로 IP는 IPv4 형태이며, IPv4는 3자리 숫자, 4마디로 표기한다. (ex. 111.222.333.444 -> 각 마디의 숫자는 255를 넘을 수 없다. 0~255, 2의 8승) 즉, IPv4는 0.0.0.0 ~255.255.255.255까지 2^32개의 주소를 사용 가능하다. 이러한 IP주소는 클래스로 구분할 수 있다. 이 클래스는 하나의 IP 주소에서 네트워크 영역과 호스트 영역을 나누는 방법이다. IPv4의 클래스에는 A,B,C,D,E까지의 클래스가 존재하고, 각각의 사용 용도가 다르다. (보통 A,B,B 3개 정도만 알고 있으면 된다!) A 클래스, B클래스, C클래스란 무엇일까? 클래스 별로 첫 번째 옥텟의 범위가 지정되어 있다. * 옥텟이란? IP를 표현하는 방식은 옥텟이라는 단..

[IT]/Network 2022.07.01

Grafana vs Power BI 정의 및 특징 비교하기 (모니터링/시각화 도구 비교하기)

그라파나와 Power BI의 정의와 차이가 궁금하여 찾아보고, 정리한 글입니다. 둘 다 시각화 도구이지만 어떠한 차이가 있고 선택할 때 고려할 점은 무엇인지 등 많은 자료가 나오지 않아 불분명한 내용이 포함되어있을 수 있으며 틀린 부분이 있다면 언제든 댓글로 말씀해주세요. 앞으로 공부해나가면서 수정될 부분은 계속 수정해나갈 예정입니다. Grafana란? Grafana는 Grafana Labs에서 개발하고, 지원하는 오픈 소스 분석/모니터링 솔루션이다. 데이터가 저장된 위치에 관계없기 시계열 Metric을 쿼리, 그래프화 및 알림을 줄 수 있다. 많은 회사에서 모니터링하는데 사용되고 있다. 단, 무료인 오픈 소스이기에 SW를 유지보수하는 것은 어렵고 시간이 많이 들기도 한다. Grafana의 특징 Graf..

[IT]/Grafana 2022.06.14

[Docker][Volume] 도커 데이터 저장 / Volume Mount vs Bind Mount 비교하기

Docker의 Storage 부분을 공부하다가 Volume과 Bind Mount가 헷갈려 정리하기 위해 적는 글 입니다. 혹시 틀린 부분이 있다면 지적해주시면 감사하겠습니다 : ) Docker 컨테이너에 쓰여지는 데이터는 기본적으로 컨테이너가 삭제될 때 같이 삭제된다. Docker 컨테이너 특성상 삭제하고 생성하는 일이 잦기 때문에 많은 어플리케이션은 컨테이너 주기와 상관없이 데이터를 영속적으로 저장할 필요가 있다. 혹은, 여러 개의 Docker 컨테이너가 하나의 저장 공간을 공유해서 데이터를 읽거나 쓸 수 도 있다. 따라서, Docker의 컨테이너 생명 주기와 관계없이 데이터를 영속적으로 저장할 수 있도록 Docker는 아래 2가지 옵션을 제공한다. Volume (볼륨) Bind Mount (바인드 마..

[IT]/Docker 2022.06.09

[MSA] REST Web Service 성숙도 모델 (REST Maturity Model)

성숙도 모델을 통한 REST Web Service의 성숙도 판단하기 Leonard Richardson이 REST 서비스 성숙도 모델을 고안함. 레벨 0 : 단일 URI와 단일 동사로부터 레벨 3 : HATEOAS까지 총 네 단계로 구성되어 있음. 레벨 2 부터 진정한 RESTful 서비스 수준에 도달했다고 말할 수 있음. 성숙도 모델 레벨 별 요약 Level 3 : HATEOAS 클라이언트 요청에 따른 응답에 하이퍼미디어 컨트롤을 포함하고 있어서 클라이언트가 다음에 어떤 액션을 할 지 안내한다. 리소스를 표현하는 것 이상의 정보를 갖고 있어서 RESTful에 대한 논쟁이 있다. Level 2 : HTTP Verbs POST와 더불어 GET, HEAD, DELETE, PUT을 사용하며, 진정한 REST 서..

[IT]/MSA 2022.05.09

[JAVA] OOP(객체 지향 프로그래밍)의 개념과 특징 (장단점/추상화/다형성/캡슐화/상속)

OOP(Object Oriented Programming)이란? 더보기 객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 출처 : https://ko.wikipedia.org/wiki/객체_지향_프로그래밍 OOP(객체 지향 프로그래밍)이란 문제를 여러 개의 객체 단위로 나눠 작업하는 방식으로 객체들이 서로 상호작용하는 프로그래밍 이론이다. 위와 같이 프로그램을 "객체"들의 모임으로 파악하는 것에 의미를 둔다. 또한, OOP는 코드 재사용성과 생산성의 향상 효과를 볼 수 있고,..

[IT]/JAVA 2022.05.04

[MSA] SAGA 패턴 이해하기 : 개념, 정의

SAGA 패턴이란? : 분산 어플리케이션(Ex. MSA)의 일관성을 유지하고 여러 마이크로 서비스 간의 트랜잭션을 조정하여 데이터 일관성을 유지하는 데 도움이 되는 장애 관리 패턴이다. 더보기 기존의 모놀리식(Monolithic) 환경에서는 DBMS가 기본적으로 제공해주는 트랜잭션 기능을 통해서 데이터 Commit / Rollback을 통해서 일관성있게 관리되었다. 하지만, 점차 DB나 어플리케이션이 분산되면서 해당 트랜잭션 처리를 단일 DBMS에서 제공하는 기능으로는 해결할 수 없어졌다. 이에 따라, 데이터 일관성을 유지하는 데 도움을 주는 여러 패턴이 나왔다. SAGA 패턴을 알기 전에 - Two-Phase Commit Two-Phase Commit은 여러 서비스 간에 트랜잭션 처리 중 데이터 일관성..

[IT]/MSA 2022.04.05

[MSA] CQRS 패턴 이해하기 (명령과 조회의 책임 분리) : 정의, 사용목적, 적용예제

CQRS (Command and Query Responsibility Segregation)_명령과 조회의 책임 분리 : 명령 (시스템 데이터 변경-CREATE, UPDATE, DELETE)역할을 수행하는 구성요소와 쿼리(시스템 데이터 조회-READ) 역할을 수행하는 구성요소를 나누는 것. 즉, 시스템 데이터를 변경하는 코드와 시스템 데이터를 조회하는 코드를 따로 만드를 것이다. 구현방식이나 시스템 규모에 따라서 DB를 나누거나, 프로세스를 나누기도 한다. 명령과 조회는 왜 분리할까? 일반적으로 어플리케이션은 데이터를 한 Model로써 관리하며 한 모델에서 생성(CREATE), 조회(READ), 수정(UPDATE), 삭제(DELETE)한다. 이럴 경우, 속성(컬럼) 하나 혹은 여러개가 추가되면 어떨까? ..

[IT]/MSA 2022.04.04

[Spring] @ControllerAdvice / @Exceptionhandler / @Responsestatus (Spring MVC 에러 처리 관련 어노테이션)

어노테이션을 이용한 에러 처리에 대한 코드를 보다가 @exceptionhandler과 @responsestatus 등 언제 어떻게 사용하는 것인가 헷갈려 작성한 글이다. @ControllerAdvice : 모든 @Controller, 전역에서 발생할 수 있는 예외를 잡아 처리해주는 역할을 한다. 예외 처리 Class 위에 ControllerAdvice를 붙이고 어떤 예외를 잡아낼 것인지는 각 메소드 상단에 @ExceptionHandler(처리할 Exception.class)를 작성하여 각 Exception 별로 처리할 수 있게 한다. 예) @ControllerAdvice @Log4j public class CommonExceptionAdvice { ... 생략 } @Exceptionhandler : @C..

[IT]/Spring 2021.12.20