반응형

분류 전체보기 38

자바 멀티스레딩 가이드 - 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

2023 웹 개발 트렌드 10가지

원문 : https://www.robinwieruch.de/web-development-trends/ 1. (메타) 프레임워크 SPA(단일 페이지 애플리케이션) 및 해당 프레임워크(예: React.js, Vue.js, Svelte.js)는 다소 과대광고 주기를 거쳤으며 지금까지 몇 년 동안 사용되었다. 그러나 이러한 솔루션 위에 메타 프레임워크가 부상하면서 응용 프로그램이 클라이언트 측(CSR)에서 서버 측 렌더링(SSR)으로 이동하는 명확한 추세를 볼 수 있다. Next.js라는 가장 인기 있는 메타 프레임워크는 리액트 위에 있다. 핵심 React 개발자인 Andrew Clark은 2022년이 "진짜 React 18 릴리스"라고 말했다. 리액트 팀이 라이브러리의 하위 레벨에서 기본 구성 요소로 제공하는..

development 2023.02.05

트레일블레이저 vs 셀토스 비교

트레일블레이저와 셀토스 비교. 카랩 참고 1. 외관 & 크기 큰 차이는 없지만 트레일블레이저가 조금 더 큼 2. 트렁크 입구의 높이는 셀토스가 더 높음 3. 주행 - 시트포지션 : 트레일블레이저가 셀토스보다 조금 낮음 - 브레이크 페달 : 트레일블레이저가 셀토스에 비해 훨씬 높음 - 가속 : 비슷함 - 승차감 : 트레일블레이저 > 셀토스 - 연비 - 소음 : 트레일블레이저가 조금 더 조용함. 유리가 두껍고, 노이즈캔슬링이 있어서 조금 더 조용한 듯 4. 2열 공간 2-1) 크기 - 셀토스 : 무릎공간 주먹 2개 반. 머리공간 주먹 1개 - 트레일블레이저 : 무릎공간 주먹 2개 반. 머리공간 주먹 반개. 파노라마 선루프가 있어서 낮은 듯 2-2) 편의시설 - 셀토스 : A타입 USB 포트 - 트레일블레이저..

자동차 2023.01.15

중고차 구매 준비 기본

운전한 지는 10년 정도 되었지만 매번 렌트나 쏘카 같은 카 쉐어링만 이용했다. 이제 슬슬 내 차를 살 때가 되었다. 차알못이라 새 차는 아직 부담스러워서 중고차로 몇 년 굴릴 생각이다. 1. 사고싶은 차종 후보 일단 내가 사려고하는 차종은 SUV이다. 가격은 2천 이하 - 기아 셀토스 - 쉐보레 트레일블레이저 - 르노 XM3, QM6 - 현대 투싼 2. 구매처는 케이카로 결정 온라인 중고차 플랫폼을 이용할 예정이고, 나는 케이카를 이용하기로 했다. 먼저 엔카와 케이카의 가장 큰 차이는 아래 2가지이다. - 케이카는 직영이고, 엔카는 딜러 연결 플랫폼. 따라서 차알못이라면 케이카가 더 안전. 차잘알은 엔카가 더 유리 - 매물은 엔카가 압도적으로 많음 나는 차알못이라서 케이카를 이용하기로 결정하였다. 3...

자동차 2023.01.15

[Nuxt] Template not found: /node_modules/@nuxtjs/google-adsense/dist/templates/plugin.mjs

Nuxt에서 구글 애드센스 라이브러리 사용하여 추가 시, 에러 발생 에러 Nuxt에서 구글 애드센스 연동 시, 아래와 같은 에러가 발생하여 기동이 되지 않았음 FATAL Template not found: /node_modules/@nuxtjs/google-adsense/dist/templates/plugin.mjs 16:24:53 at normalizeTemplate (node_modules\@nuxt\kit\dist\index.mjs:71:13) at addTemplate (node_modules\@nuxt\kit\dist\index.mjs:55:20) at Object.addPluginTemplate (node_modules\@nuxt\kit\dist\index.mjs:425:93) at setup..

development 2023.01.01

셸(Shell)과 터미널(Terminal) 차이

텍스트를 사용하여 특정 작업을 수행하기 위한 명령어를 컴퓨터에 제공하는 경우 명령줄 인터페이스를 사용한다고 한다. CLI를 사용하는 경우 그래픽 사용자 인터페이스 대신 텍스트 명령을 사용하여 프로그램을 작동시킨다. CLI을 사용하는 것은 컴퓨터와 대화하는 다른 방법이다. Linux에서 CLI를 가리킬 때 대부분의 경우 bash 셸(Shell) CLI을 가리킨다. 그러나 많은 경우 우리는 터미널 에뮬레이터라고 불리는 셸과 상호 작용하는 프로그램을 사용한다. 셸과 터미널은 서로 다르지만 종종 같은 의미로 사용된다. 셸(Shell) 커널은 운영 체제의 가장 중요한 구성 요소이다. 커널은 컴퓨터 상의 모든 물리 하드웨어를 인식하여 각 컴포넌트가 서로 통신할 수 있도록 한다. 루트에서 커널은 전달된 명령을 잡고 ..

development 2022.12.13

vue 보안 취약점과 방지 방법

프론트엔드 프레임워크의 보안은 프레임워크와 프레임워크가 의존하는 기본 언어를 모두 커버하기 때문에 매우 광범위할 수 있다. 이 글에서는 애플리케이션을 취약하게 하는 vue 구현에 대해 설명한다. TL;DR vue 또는 기타 프론트엔드 프레임워크를 사용할 때 가장 기본적인 보안 규칙은 신뢰할 수 없는 콘텐츠를 컴포넌트 템플릿으로 사용하지 않는 것이다. 어떤 웹 애플리케이션이든 HTML, CSS 또는 자바스크립트로 검증되지 않은 사용자 제공 입력을 실행하는 것은 위험할 수 있으므로 가능한 한 피해야 한다. 1. HTML Content Injection VueJS는 원시 HTML을 렌더링 하기 위한 디렉티브 v-html를 제공한다. 디렉티브는 Vue에 의해 제공되는 특별한 속성이다. 임의의 HTML을 동적으로..

development 2022.12.11
반응형