반응형

development 30

Node.js 개발자가 흔히 저지르는 4가지 실수

원문 : https://amplication.com/blog/4-common-mistakes-made-by-nodejs-developers 실수 1) 로그레벨을 설정하지 않은 상태에서 운영 대부분 로그레벨(DEBUG, INFO, WARN, ERROR 등) 개념을 잘 알고 있다고 생각한다. 제품 팀이 새로운 마이크로 서비스를 제공하기 위해 서두르면서 이러한 로그 수준을 명확하게 정의하는 것을 잊어버리는 경우가 많이 보인다. 이럴 경우 주로 다음 두 가지 단점이 있다: - 로그에 낮은 수준의 DEBUG 로그 등 관련성이 없는 메시지가 대량으로 표시되면 고객과 팀원들이 실가동 중인 문제를 파악하고 대처하기가 매우 어려워진다. 일반적으로 이것들은 운영 워크로드에 도움이 되지 않는다. - 로그 서비스의 요금을 극..

development 2023.03.29

헬름(Helm)이란. 헬름 완벽 가이드

Helm은 구성 파일을 재사용 가능한 단일 패키지로 결합하여 Kubernetes 애플리케이션의 생성, 패키징, 구성 및 배포를 자동화하는 도구이다. 마이크로서비스 아키텍처에서는 애플리케이션이 커짐에 따라 더 많은 마이크로서비스를 생성하므로 관리하기가 점점 더 어려워진다. 오픈 소스 컨테이너 오케스트레이션 기술인 Kubernetes는 여러 마이크로 서비스를 단일 배포로 그룹화하여 프로세스를 단순화한다. 그러나 개발 수명 주기 전반에 걸쳐 Kubernetes 애플리케이션을 관리하는 것은 버전 관리, 리소스 할당, 업데이트 및 롤백을 포함하여 고유한 일련의 문제를 야기한다. Helm은 이 문제에 가장 접근하기 쉬운 솔루션 중 하나를 제공하여 배포를 보다 일관되고 반복 가능하며 안정적으로 만든다. 이 글에서는 ..

development 2023.03.18

함수(function)와 화살표 함수(arrow fucntion) 차이 5가지와 예시

자바스크립트에서 일반 함수(function)와 화살표 함수(arrow function)는 모두 함수를 생성하는 방법이지만 분명한 차이가 있다. 이 차이 때문에 function과 화살표 함수는 서로 다른 용도로 사용된다. function은 일반 함수로 사용되며, 객체의 메서드로 사용할 수 있다. 반면에 화살표 함수는 단순한 함수를 만드는 데 사용되며, 특히 callback 함수로 많이 사용된다. 아래는 5가지 차이점와 예시이다. 1. this function 키워드를 사용하여 생성된 함수 내에서 this는 함수가 호출된 컨텍스트에 의해 결정된다. 이것은 실행 컨텍스트의 this 바인딩과 동일하다. const myObject = { value: 10, getValue: function() { return t..

development 2023.03.15

HV000183: Unable to initialize 'jakarta.el.ExpressionFactory'

hibernate-validator를 사용할 때 아래와 같은 에러가 발생하였다. 오류 Exception in thread "main" jakarta.validation.ValidationException: HV000183: Unable to initialize 'jakarta.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead 원인 jakarta.el가 설치 안되어있어서 발생하는 오류이다. hibernate 페이지에 아래처럼 나와있다. "Hibernate Validator는 또한 제약 위반 메시지에서 동적 표현을 평가하기 해 Unifi..

development 2023.03.03

JWT 정리 (Best practices for JWT tokens)

JWT는 JSON 객체로서 백엔드와 프론트엔드 간에 안전하게 정보를 전송하기 위해 사용되는 기술입니다. 프론트엔드 용으로 리액트나 다른 SPA 또는 SSR 앱을 사용하는 동안에는 백엔드와의 데이터 전송을 사용할 가능성이 높다. 데이터를 훔칠 가능성이 있는 악의적 해커로부터의 콜을 보호하는 방법이 필요하다. 이를 위한 가장 좋은 방법 중 하나는 JWT를 사용하는 것이다. 1. JWT 토큰의 사용시기와 장소 얼핏 보면 JWT를 이용해 플랫폼 간에 데이터를 보내는 게 좋을 것 같다. JWT 토큰에는 데이터가 포함되며, 그 데이터는 전면과 백엔드 간에 전송된다. 정보는 JWT 내부에 인코딩 된 형식으로 저장되기 때문에 관련 데이터를 인코딩하여 백엔드에서 프론트엔드로 보낼 수 있다. 이것은 간단하고 효율적인 데이..

development 2023.02.25

파이썬으로 이미지에서 텍스트 추출하기

파이썬으로 이미지에서 글자 추출하기 이미지에서 글자를 추출하는 과정은 여러 가지 단계로 구성된다. 대표적인 글자 추출 과정은 다음과 같다. 이미지 전처리: 이미지에서 노이즈를 제거하고, 글자의 크기와 모양을 개선하는 작업 이미지 분할: 이미지를 개별 글자로 분할 글자 인식: 개별 글자 이미지를 인식하여 글자로 변환 파이썬에서는 OCR (Optical Character Recognition) 라이브러리를 사용하여 이미지에서 글자를 추출할 수 있다. 가장 인기 있는 OCR 라이브러리인 Tesseract-OCR을 사용한 방법이다. 설치 pip3 install pytesseract 만약 python3가 아니면 아래처럼 설치한다. pip install pytesseract 다음 예제 코드는 현재 디렉터리의 모든 ..

development 2023.02.12

자바 멀티스레딩 가이드 - Best Practices for Multithreading in Java

멀티스레딩 은 모든 스레드가 동시에 실행되고 있다는 착각과 함께 동일한 시점에 메모리에 수많은 스레드를 가질 수 있는 운영 체제의 기능이다. 다중 스레딩은 여러 가지 이점을 제공하지만 스레드 동기화, 기아 상태, 동시성 등과 관련된 문제를 방지하려면 모범 사례를 알고 있어야 한다. Java의 다중 스레딩에 대한 모범 사례를 살펴보자. 경쟁 조건(Race Conditions) 및 데드락(Deadlocks) 방지 Java 스레드로 작업할 때 기억해야 할 가장 적절한 사항은 경쟁 조건과 교착 상태를 피하는 것이다. 경쟁 조건은 여러 스레드가 동일한 시점에서 동일한 데이터에 액세스 하려고 시도할 때 발생할 수 있다. 이로 인해 예기치 않은 결과를 경험할 수 있으며 이로 인해 프로그램에 문제가 발생할 수 있다. ..

development 2023.02.09

Java 스레드(Thread) 데드락(Deadlock) 방지하는 방법

자바에서 스레드 데드락을 방지하는 방법 정리 두 개 이상의 스레드가 서로 리소스 액세스를 완료하기를 기다릴 때마다 데드락이 발생한다. 데드락, 스레드 데드락의 원인 및 자바에서 스레드 데드락을 방지할 수 있는 방법에 대해 정리했다. 1) 데드락(Deadlock)이란 컴퓨팅에서 두 개 이상의 동시 작업이 서로 완료되기를 기다리는 경우 데드락이 발생한다. 즉, 두 스레드가 다른 스레드의 잠금 해제를 기다리기 때문에 서로를 영원히 차단할 때 데드락이 발생한다. 이러한 상황은 두 스레드가 리소스를 공유하고 둘 다 다른 스레드가 보유한 공유 리소스에 대한 잠금을 얻기 위해 대기할 때 종종 발생한다. 데드락이 발생하려면 다음 조건이 충족되어야 한다. 최소한 하나의 리소스는 하나의 스레드만 동시에 액세스 할 수 있도..

development 2023.02.07

Java에서 HTTP HttpClient를 만드는 방법

인터넷은 매일 서로 통신하는 수천 개의 웹 응용 프로그램으로 구성된다. 이러한 응용 프로그램은 일반적으로 HTTP를 통해 통신한다. HTTP는 일반적으로 클라이언트-서버 아키텍처를 따른다. 클라이언트는 HTTP request를 전송하여 서버와의 통신을 시작한다. 이후 서버는 HTTP response으로 응답한다. 1. Java의 HTTP 메시지란? Java에는 request, response이라는 두 가지 유형의 HTTP 메시지가 있다. HTTP Request HTTP request는 일반적으로 start line , HTTP header, blank line, body로 구성된다. 시작 줄과 HTTP 헤더를 총칭하여 head라고 한다. Start Line HTTP 요청의 시작 줄은 HTTP 메서드, 요..

development 2023.02.06

Nuxt에서 애드센스 사용하는 방법 3가지

Nuxt에서 구글 애드센스를 사용하는 방법 정리 방법 1) Nuxt 앱 템플릿에 추가 root 디렉토리에 app.html 파일을 만든다. 기본적으로 app.html 파일은 다음과 같다. 여기에 아래처럼 애드센스 정보를 넣으면 된다. data-ad-client에 애드센스 ID를 넣으면 모든 경로에서 애드센스가 동작한다. 방법 2) @nuxtjs/google-adsense 라이브러리 사용 두 번째 방법은 라이브러리를 사용하는 방법이다. 먼저 아래처럼 설치한다. yarn add @nuxtjs/google-adsense 또는 npm i --save @nuxtjs/google-adsense nuxt.config.js 파일에 아래처럼 모듈 추가 및 애드센스 ID를 추가한다. 방법 3) 구성 파일에 스니펫 추가 마지..

development 2023.02.05
반응형