-
What is Docker? TOP NEW
-
[백준]10986 나머지 합 풀이 TOP NEW
문제 10986 나머지 합 풀이 1. 변수 선언 N은 10⁶(1,000,000), M은 10³(1,000), N개의 수 10⁹(1,000,000,000) N개의 수는 최악에 경우 1,000,000,000을 넘길 수 있습니다. [!WARNING] int[] 최대 범위 ~ 2,147,483,647, N개의 수는 범위를 넘지 않기 때문에 int[]을 선언하여 알고리즘을 풀이 하지만 ArrayIndexOutOfBoundsException가 발생하여 long[] 전환하여 문제를 해결하였습니다. !!ArrayIndexOutOfBoundsExcep... Read More
-
Memory DB VS Storage DB TOP NEW
Momory DB와 Storage DB란? Memory DB는 데이터를 디스크가 아닌 메모리(RAM)에 저장하여 빠른 데이터 접근과 처리 속도를 제공하는 데이터베이스 시스템입니다. 디스크 기반의 데이터베이스와 비교하여 훨씬 빠른 성능을 제공할 수 있으며, 주로 고성능이 요구되는 애플리케이션에서 사용됩니다. ex) Redis, Memcached, Apache Ignite… 디스크 기반의 DB는 데이터를 주로 HDD(하드 디스크 드라이브), SSD(솔리드 스테이트 드라이브)와 같은 비휘발성 저장 장치에 저장하고 관리하는 데이터베이스 시스템입니다. 이런한 데이터 베이스는 데이터를 영구적으로 보존할 수 있습니... Read More
-
나는 어떤 언어를 선택하고 배워야 할까? TOP NEW
이 글을 작성하게 된 건 최근 이직을 고려하면서 면접을 보게 되었는데, 하나의 면접 질문이 나에게 굉장히 충격으로 다가왔습니다. 그 이유는 내가 신입 때 면접을 위해 달달 외우고 이후로는 그저 주어진 업무에만 치중하고 있다고 느꼈기 때문입니다. 이 블로그 메인에 종종 서브타이틀로 “知彼知己 百戰百勝 (지피지기 백전백승): 상대를 알고 나를 알면 백 번 싸워도 백 번 이긴다.”라는 글귀를 볼 수 있을 것입니다. 무엇이든 알고 쓰는 것과 모르고 쓰는 것은 차이가 있을 것이라 생각됩니다. 모르고 구글링만 해서 복사만 할 줄 아는 카피라이터가 되지 않기 위해 열심히 공부합시다. 개발언어의 정의 개발 언어란 컴퓨터 프로그... Read More
-
Async Lib 사용법 TOP NEW
async 라이브러리는 JavaScript에서 비동기 연산을 쉽게 처리할 수 있게 도와주는 유틸리티 모듈입니다. Node.js나 브라우저 기반의 JavaScript 애플리케이션에서 사용할 수 있으며, 복잡한 비동기 로직을 간결하고 관리하기 쉬운 코드로 작성할 수 있게 해줍니다. 주요 기능 async 라이브러리는 다양한 유틸리티 함수를 제공하는데, 이 함수들은 크게 몇 가지 범주로 나눌 수 있습니다: 컬렉션(Collection) 처리: async.each(), async.map(), async.filter() 등과 같은 함수들은 배열이나 객체와 같은 컬렉션에 대한 비동기 연산을 병렬 또는 시리즈... Read More
-
Chai 사용법 TOP NEW
목차 [Node.js, Mocha를 이용한 테스트 주도 개발(TDD)](https://kos5667.github.io/architecture/2024/04/21/Node.js-TDD-with-Mocha.html) Mocha 사용법 Chai 사용법 Chai란? Chai는 Node.js 및 브라우저용 BDD(Behavior-Driven Development)/TDD(Test-Driven Development) assertion 라이브러리로, 개발자가 테스트 케이스를 보다 유연하고 직관적으로 작성할 수 있게 해줍니다. Chai는 expect, should, 그리고 assert 스타일의 assertion... Read More
-
Mocha 사용법 TOP NEW
목차 [Node.js, Mocha를 이용한 테스트 주도 개발(TDD)](https://kos5667.github.io/architecture/2024/04/21/Node.js-TDD-with-Mocha.html) Mocha 사용법 Chai 사용법 Mocha란? Mocha는 JavaScript 커뮤니티에서 널리 사용되는 테스트 프레임워크 중 하나로, 개발자가 신뢰할 수 있는 코드를 작성하도록 돕는 도구입니다. Node.js와 브라우저 모두에서 사용될 수 있으며, 비동기 테스팅을 포함한 광범위한 테스트 케이스를 지원합니다. 그 유연성과 편의성 덕분에, 단일 단위 테스트에서부터 복잡한 통합 테스트에... Read More
-
Mocha를 이용한 Node.js 테스트 주도 개발(TDD) TOP NEW
목차 Node.js, Mocha를 이용한 테스트 주도 개발(TDD) Mocha 사용법 Chai 사용법 Mocha는 Node.js 환경에서 사용할 수 있는 유연하고 기능이 풍부한 JavaScript 테스트 프레임워크입니다. 1. Mocha 설치 프로젝트 디렉토리에서 다음 명령어를 실행하여 Mocha를 설치합니다. 이 명령어는 Mocha를 프로젝트의 개발 의존성으로 추가합니다. npm install mocha --save-dev 2. 테스트 스크립트 설정 package.json 파일에서 scripts 부분을 찾아 test 스크립트를 Mocha를 사용하도록 업데이트합니다. 이렇게 하면 npm... Read More
-
메세지 지향 미들웨어(MOM:Message Oriented Middleware) TOP NEW
메시지 지향 미들웨어(Message Oriented Middleware, MOM)는 서로 다른 시스템이나 애플리케이션 간의 메시지 교환을 용이하게 해주는 소프트웨어 또는 하드웨어 인프라입니다. 이를 통해 개발자들은 다양한 네트워크와 플랫폼 환경에서도 각 애플리케이션 간의 통신을 원활하게 할 수 있습니다. 1. MOM의 기본 개념 MOM은 비동기 메시지 교환을 지원하여, 한 프로그램이 메시지를 보내고 계속 다른 작업을 수행할 수 있게 합니다. 받는 프로그램은 메시지를 받을 준비가 되었을 때 처리할 수 있습니다. 이 방식은 시스템 간의 결합도를 낮추고, 서로의 프로세스 상태에 영향을 받지 않도록 도와줍니다. 2.... Read More
-
Cloud Computing 이란? TOP NEW
Cloud Computing 이란? Cloud Computing 은 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등의 Computing 서비스를 제공하고, 사용자가 물리적인 하드웨어를 소유하거나 직접 관리할 필요 없이 이러한 리소스를 사용할 수 있게 하는 기술입니다. 이 서비스 모델은 유연성, 확장성, 그리고 비용 효율성을 제공하여, 기업이 자본 지출을 줄이고 운영 효율성을 높일 수 있도록 합니다. Cloud Computing의 작동 방식 클라우드 컴퓨팅은 복잡한 인프라와 서비스를 사용자에게 간편하게 제공하는 방식으로 작동합니다. 이 과정을 간단하게 이해하기 위해 클라우드 컴퓨팅의 기본 작... Read More
-
Git Tag를 활용하는 방법 TOP NEW
Git tag 운영 배포 시 Tag를 이용해 릴리즈를 관리하고 있습니다. 오랜 시간 동안 쌓인 릴리즈 태그와 좀 더 효율적으로 태그를 관리하기 위해 작성합니다. git tag는 Git에서 사용되는 명령어로, 특정 지점을 표시하기 위해 사용됩니다. 태그는 주로 프로젝트의 중요한 지점, 예를 들어 버전 릴리스를 표시하는 데 사용됩니다. 태그는 두 가지 유형이 있습니다: 경량 태그(lightweight)와 주석 태그(annotated)입니다. 경량 태그 (Lightweight Tag) 경량 태그는 특정 커밋을 가리키는 포인터 같은 것으로, Metadata나 tag 정보를 저장하지 않습니다. 단지 커밋 I... Read More
-
Node.js Project 초기화 기법 TOP NEW
Node.js 애플리케이션의 초기화 과정은 애플리케이션의 구조와 요구 사항에 따라 다양한 방법으로 설계할 수 있습니다. 아래는 Node.js 애플리케이션을 초기화하는 몇 가지 일반적인 접근 방법입니다. 1. 동기식 초기화 애플리케이션의 초기화 과정이 CPU 집약적이지 않고, 동기적으로 수행할 수 있는 경우 간단하게 동기식 코드로 초기화 작업을 수행할 수 있습니다. const config = require('./config'); // 동기적으로 필요한 설정 로드 console.log('Configurations loaded'); // 애플리케이션 로직 시작 const app = require('./app')... Read More
-
Git Stash를 활용하는 방법. TOP NEW
Git Stash. git stash는 Git에서 제공하는 매우 유용한 기능 중 하나로, 작업 중인 변경 사항을 임시로 저장하고 나중에 다시 적용할 수 있게 해줍니다. 이 기능은 브랜치 간에 이동해야 하거나 다른 작업을 처리하기 전에 현재 작업 중인 변경 사항을 깨끗하게 보관하고 싶을 때 유용합니다. Git Stash 사용법 Stash 생성: 현재 작업 중인 변경 사항(스테이징된 변경 사항과 스테이징되지 않은 변경 사항 모두)을 stash에 저장하려면 다음 명령어를 사용합니다. git stash 또는 git stash push 변경 사항에 대한 설명을 추가하고 싶다면 -m 옵션을 사용하여 메시... Read More
-
TDD,BDD,DDD? TOP NEW
TDD, BDD, DDD란? TDD, BDD, 및 DDD는 소프트웨어 개발에서 널리 사용되는 세 가지 중요한 방법론입니다. 각각의 방법론은 개발 프로세스의 다른 측면에 초점을 맞추며, 프로젝트의 품질과 생산성을 향상시키는 데 도움을 줍니다. TDD (Test-Driven Development) 테스트 주도 개발. 정의: TDD는 테스트를 먼저 작성하고, 해당 테스트를 통과하는 코드를 이후에 작성하는 개발 방법론입니다. 이 접근법은 개발 초기 단계에서 버그를 발견하고 해결하여, 소프트웨어의 품질을 개선하는 데 도움을 줍니다. 특징: 테스트가 코드 작성을 주도합니다. 짧은 개발 사이클을 반복합니다 (R... Read More
-
Vault 란? TOP NEW
Vault는 HashiCorp에 의해 개발된 오픈 소스 도구로, 시크릿 관리, 데이터 암호화, 액세스 관리와 같은 기능을 제공하여 시스템 전반의 보안을 강화하는 데 사용됩니다. Vault를 사용하면 개발자와 시스템 관리자는 API 키, 비밀번호, 인증서와 같은 민감한 정보를 안전하게 저장하고, 접근 권한을 제어할 수 있습니다. Vault는 동적인 시크릿 관리를 지원하여, 예를 들어 데이터베이스 로그인 정보와 같은 시크릿을 요청 시에만 생성하고, 사용이 완료되면 해당 시크릿을 폐기함으로써 보안성을 높입니다. Vault의 주요 기능: 시크릿 관리(Secret Management): Vault는 A... Read More
-
Node.js, Express를 이용한 Project TOP NEW
Node.js & Express Node.js는 Chrome V8 자바스크립트 엔진으로 빌드된 크로스 플랫폼 런타임 환경입니다. 이를 통해 개발자들은 서버 사이드 및 네트워킹 애플리케이션을 자바스크립트로 쉽게 구축할 수 있습니다. Node.js는 이벤트 기반, 비동기식 프로그래밍을 지원하며 이는 입출력 처리에서 높은 성능을 발휘합니다. 주로 웹 서버를 구축할 때 많이 사용됩니다. Express는 Node.js를 위한 가장 인기 있는 웹 프레임워크 중 하나입니다. 이 프레임워크는 웹 및 모바일 애플리케이션 개발을 위한 강력한 기능 세트를 제공합니다. Express는 미들웨어 아키텍처를 사용하여 서버... Read More