일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- AWS
- php
- linux
- it
- MySQL
- IntelliJ
- jenkins
- db
- Gradle
- docker
- Web Server
- java
- Git
- laravel
- 맛집
- Spring
- javascript
- ubuntu
- JPA
- elasticsearch
- Oracle
- springboot
- tool
- ReactJS
- Design Patterns
- Spring Boot
- 요리
- devops
- jsp
- Today
- Total
아무거나
Heap 모니터링 및 Heap Dump 분석 Heap 모니터링 OracleJDK 에서 제공하는 GUI 모니터링 툴 VisualVM 을 다운 VisualVM 상단에 [Tools] - [Plugin]을 접속하여 VisualGC 플러그인을 다운 플러그인 다운이 끝났다면, 창을 종료하고 좌측 메뉴를 확인 후 프로세스 클릭 Monitor 및 Visual GC 를 통하여 각 원하는 항목들을 모니터링한다. Heap Dump 분석 OOM 을 발생시킬 코드 작성 [TestController.java] package com.example.bkjeon; import java.util.ArrayList; import java.util.List; import org.springframework.web.bind.annotatio..
SpringBoot + Zipkin 을 활용한 트레이스 환경 구성 샘플코드는 하기 링크로 확인 샘플코드 MSA 환경과 OpenTracing 모놀리식 아키텍쳐의 경우 하나의 서버가 서비스의 전반적이 기능을 모두 제공하므로 클라이언트의 요청을 받으면 하나의 스레드에서 모든 요청을 실행하여 로그를 확인하기 쉽다. 반면에 MSA 는 여러개의 마이크로 서비스 간에 통신이 발생하기 때문에 로그를 확인하기 어렵다. 이와 같은 문제를 해결하기 위한 방법으로는 OpenTracing 이 알려져 있다. OpenTracing 는 애플리케이션 간 분산 추적을 위한 표준이라고 정의할 수 있으며, 이 표준의 대표적인 구현체로 Jaeger 와 Zipin 이 있다. (다른 방법으로는 APM (Ex: Jennifer, Pinpoint ..
SCDF(=Spring Cloud Data Flow) SCDF 란 Spring Cloud Data Flow 는 Cloud Foundry 및 Kubernetes에서 스트리밍 및 일괄 데이터 처리 파이프라인을 구축하기 위한 마이크로서비스 기반 툴킷이다. 공식문서 우선 SCDF 로 검색해보면 아래 3가지의 단어를 많이 볼 수 있다. 내용은 아래와 같다. Data MicroService 데이터를 Function 단위의 비즈니스 로직이 들어 있는 Application 으로 DataPipeLine 을 구성 Orchestrator Stream 을 구성하는 Application 과 Application 간의 Channel 을 관리(Ex: Kafka topic, group, partition..) 즉, Message M..
Feign 이란 Feign 이란 Netflix 에서 개발된 오픈소스이며 선언적 방식으로 REST 기반 호출을 추상화해서 제공한다. 즉, interface 와 annotaion 만으로 간편하게 HTTP API Client 를 구현할 수 있으며 RestTemplate 을 만들 필요없이 사용할 수 있어 코드의 복잡성이 낮아진다. 샘플코드는 하기 링크로 확인 샘플코드 사용법 Dependency [build.gradle] ... // https://spring.io/projects/spring-cloud 에서 Spring Boot 버전에 맞게 세팅한다. (해당 포스팅은 Spring Boot 2.2.2.RELEASE 로 진행) ext { set('springCloudVersion', "Hoxton.SR3") } d..
S3 에 File Upload 기능 구현 라이브러리 설치 $ npm install multer $ npm install aws-sdk File Upload Util const fs = require("fs") const path = require("path") const multer = require("multer") /** * Save For File Upload (Use Multer Module) */ export const saveForFileUpload = multer({ storage: multer.diskStorage({ destination(req, file, done) { const dirPath = path.resolve("./") + "\\uploads" if (!fs.existsSyn..
node-schedule 을 활용한 스케쥴러 구현 module 설치 // https://www.npmjs.com/package/node-schedule $ npm i node-schedule 코드 [index.js or app.js] const schedule = require('node-schedule'); const express = require('express'); const app = express(); app.get('/', function (req, res) { res.send('Hello World'); }) app.listen(3000, function(){ console.log('Express start on port 3000!'); schedule.scheduleJob('* * * *..
Nodejs Express Document 기능 S3 에 File Upload 기능 구현 라이브러리 설치 $ npm install multer $ npm install aws-sdk File Upload Util const fs = require("fs") const path = require("path") const multer = require("multer") /** * Save For File Upload (Use Multer Module) */ export const saveForFileUpload = multer({ storage: multer.diskStorage({ destination(req, file, done) { const dirPath = path.resolve("./") + "\..
AWS Lambda 와 SES(=Simple Email Service) 를 이용한 간단한 메일 발송 (NodeJS) 메일 발송 기능을 개발을 하기위해 AWS 의 Lambda 와 SES(=Simple Email Service) 를 선택하게 되었다. 서비스의 역할 및 예제코드를 참고하여 간단하게 메일 발송 기능을 구축해보자. (NodeJS 를 사용) AWS Lambda AWS Lambda 는 이벤트 기반 서버리스 컴퓨팅 플랫폼이며, 이벤트에 반응하여 Lambda 에 작성된 코드를 실행하는 서비스이다. 즉, 클라우드 제공업체에서 인프라에 대한 관리를 대신 처리해주기 때문에 개발자는 비즈니스 로직에만 집중할 수 있다. (Node, Java, .NET, Go, Python, Ruby 등의 다양한 언어를 지원한다...
Setter 사용을 지양하자. 값을 변경한 의도를 파악하기 힘듬 // 어떤 의도로 데이터를 변경하는지 명확히 알 수 없다. public Member updateMember(long id) { final Member member = findById(id); member.setFistName("value"); member.setLastName("value"); member.setAge("value"); return member; } 객체의 일관성을 유지하기 어려움 public 으로 언제든 변경할 수 있는 상태가 되므로 모든 곳에서 변경이 할 수 있는 상태가 되므로 객체의 일관성을 유지하기 어렵다. Setter 대신 다른 것을 사용 필요 생성자를 오버로딩 (멤버변수가 많고 다양한 생성자를 가져야 한다면 코드가..
npx prisma generate 명령실행 후 애플리케이션 구동시에 DB/컬럼 관련 오류가 발생하는 경우 prisma 에서 마이그레이션은 schema.prisma 파일에 정의해놓은 스키마에 변화가 있을 경우 사용하고 있는 DB 에도 업데이트를 해주기 위해 사용하는 연산 그러나 여기서 히스토리가 꼬이는경우 즉, 스키마 파일을 수정 하기 전에 마이그레이션을 하지 않고 그냥 버전을 건너 뛰어서 마이그레이션을 할 때 발생함 해결하려면 기존 히스토리를 무시하고 새롭게 마이그레이션을 진행하고 이제 그 마이그레이션 부터 다시 마이그레이션을 적용하는 방법 (마이그레이션으로 인하여 DB도 초기화가 되어 데이터가 날아가므로 반드시 백업을 해야된다!) $ prisma migrate dev --name initial-mig..