일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- redis
- Spring Boot
- IntelliJ
- devops
- docker
- linux
- 맛집
- laravel
- it
- db
- JPA
- ubuntu
- Gradle
- jsp
- elasticsearch
- MySQL
- javascript
- springboot
- Git
- Design Patterns
- ReactJS
- Oracle
- 요리
- tool
- Spring
- Web Server
- jenkins
- php
- AWS
- java
- Today
- Total
목록2022/08 (10)
아무거나
Spinnaker Spinnaker 란? Spinnaker 는 넷플릭스에서 개발하고 구글에서 확장한 오픈 소스화한 멀티 클라우드를 지원하는 CD(=Continuous Delivery) 플랫폼이다. 구글 클라우드, 아마존, 마이크로소프트 등 대부분의 메이져 기업의 클라우드를 지원하며 Kubernetes 또는 Openstack 과 같은 오픈소스 기반의 클라우드 또는 컨테이너 플랫폼을 동시 지원한다. Spinnaker 아키텍처 Deck: Deck 컴포넌트는 UI 컴포넌트로, Spinnaker의 UI 웹사이트 컴포넌트이다. Gate: Spinnaker는 MSA 구조로, 모든 기능을 API 로 Expose 한다, Gate는 API Gateway로, Spinnaker의 기능을 API로 Expose 하는 역할을 한다..
1. 대파와 청량고추를 썰어준다. (대파는 두껍게) 2. 물두컵 3. 멸치국물 (멸치를 식용우를 뿌리지말고 불에 익힌 후 믹서기에 갈아서 가루를 만들거나 또는 멸치칼국수 스프릉 사용해도 좋다) 4. 고추장 한 숟갈 5. 굵은 고춧가루 두 숟갈 6. 액젓 세 숟갈 7. 진간장 네 숟갈 8. 다진마늘 한 숟갈 9. 대파와 청양고추 투입 10. 통깨를 뿌린다. 11. 면에 비벼서 먹자.
Tyk API Gateway 란 먼저 Tyk 를 알기전에 API Gateway 가 뭔지 개념을 알아보자. API Gateway API Gateway 란? MSA 구조에서는 대부분 필수적으로 API Gateway 를 활용하고 있다. 왜냐하면 MSA 는 큰 서비스를 여러개로 쪼개어 각각 역할을 분리하므로 즉, 포트 주소 등을 포함한 모든 주소정보가 달라지게 되며 생기는 문제점은 아래와 같습니다. 수많은 API 호출의 기록 관리가 용이하지 않음 (Ex. 컨테이너) 내부 비즈니스로직, 인프라 등 주소가 선명하게 노출되어 보안에 취약 각 서비스 마다 인증 등의 공통 로직을 중복 구현 해야 하는 문제점 발생 그러므로 API Gateway 를 적용하여 서버 앞단에서 모든 엔드포인트를 일원화 해주는 다른 하나의 서버 ..
Java Stream 이란 개념은 알고 있지만 한 번 정리가 필요할 것 같아서 해당 포스팅을 작성하게 되었다. Stream 우리는 수 많은 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기위해 for 문이나 Iterator 를 이용하여 코드를 작성해왔다. 그러나 이러한 코드는 가독성과 재사용성이 떨어진다. 또한 Collection 이나 Iterator 와 같은 인터페이스를 활용하여 컬렉션을 다루는 방식을 표준화하기는 하였지만. 각 컬렉션 클래스에는 같은 기능의 메서드들이 중복해서 정의되어 있다. 예를 들면 List 를 정렬하려면 Collections.sort() 를 사용하거나 배열은 Array.sort() 를 사용해야 한다. 이러한 문제점들을 해결하기 위해서 Java8 부터 추가된것..
해당 글은 https://bkjeon1614.tistory.com/264 에 내용을 더 추가하여 작성하였다. Javascript var, let, const 개념 및 차이점 Key Point var, let: 변수를 선언하는 키워드이다. const: 상수를 선언하는 키워드이다. Example Code // 1. var는 값을 재 할당 가능하다. var name = "test"; name = "test2"; // 2. let은 var처럼 재 할당이 가능하다. let score = "1"; score = "2"; // 3. const는 값 재할당이 불가능하며 선언과 동시에 리터럴 값을 할당해야 한다. const PI = "3.14"; let, const는 ECMA6에 도입된 키워드이며 var 타입으로 인한 ..
Spring Boot Graceful Shutdown 애플리케이션을 배포(ex: Rolling Deploy) 또는 특정 케이스로 종료할 때 여러가지 방법이 존재한다. 다만 케이스별로 정상적은 종료를 위하여 반드시 정상 종료 프로세스는 꼭 필수이다. 그러므로 애플리케이션을 정상적으로 종료할 수 있게 도와주는 Graceful Shutdown 에 대하여 알아보자. 리눅스 KILL 명령 리눅스 환경에서 프로세스를 종료할 때 KILL 을 사용하고 옵션에 따라 종료시키는 보편적으로 사용하는 동작은 아래와 같다. -9: 작업중인 모든 데이터를 저장하지 않고 프로세스를 종료하기 때문에 저장되지 않는 데이터는 소멸된다. (강제종료) -15: 하던 작업을 모두 안전하게 저장한 후 프로세스를 종료한다. (정상종료) Grac..
Postman 에 Swagger 문서를 import 하는 방법 시작하기전에 먼저 Swagger 가 구축되어 있어야하고 당연히 Postman 또한 사용해야 한다. 사용방법 먼저 Swagger 에서 문서의 URL 을 복사한다. (우측클릭 > 링크 주소 복사) Postman Import 좌측 APIs > Import 클릭 Link 탭 > Enter a URL 의 상기 복사한 URL 을 입력 해당 방법 말고도 상기 URL 을 파일로 다운받아 Import > File 탭에서 업로드하는 방식 또는 Raw text 에 바로 텍스트를 Copy & Paste 하여 적용하는 방법등이 있다.
computed vs watch computed 이미 정의된 계산식에 따라 결과값을 반환할 때 사용 종속 대상을 따라 저장(캐싱) 됨 (단, Date.now() 같이 아무곳에도 의존하지 않는 computed 속성의 경우 절대로 업데이트가 안됨 즉, 캐싱을 원하지 않을 때 메소드를 사용하면 된다.) [example vuejs code] computed: { now: function () { return Date.now() } } 샘플코드 [example html code] 뒤집힌 메시지: "{{ reversedMessage() }}" [example vuejs code] // 컴포넌트 내부 methods: { reversedMessage: function () { return this.message.spl..
Props? Emit? 그리고 Vuex, Eventbus Vue 에서 컴포넌트간 통신은 props 와 emit 을 통하여 전달한다. 먼저 비교하기전에 props 와 emit 에 대해 모르는 사람들이 있을 수 있으니 간단하게 정리하자면 아래와 같다. props: 상위 컴포넌트의 데이터를 하위 컴포넌트에 전달하는 특성이며 하위 컴포넌트에서 전달받기 위해서는 props 를 명시적으로 선언해야 한다. emit: 최상위 컴포넌트가 하나 이상인 경우, 이벤트를 직접 컴포넌트에 할당하는 것을 의미 앞서 말했듯이 props 와 emit 이 많아지면 관리가 복잡해져 사이드 이펙트가 발생할 확률이 높아지므로 이러한 문제점을 해결하기 위하여 주로 상태 관리 패턴 라이브러리를 활용하며 Vue 에서는 보편적으로 Vuex 나 E..
Exception 을 개선하다가 예전에 포스팅을 작성해야지 하면서 깜박했던 부분이 있어 다시 작성하게되었다. @ControllerAdvice 를 통한 Global Exception Handler 처리 에러 객체 생성 [ErrorResponse.java] import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import org.springframework.validation.BindingResult; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import com.example.bkjeon.enum..