전체 글
NestJS: 현대적인 Node.js 백엔드 개발의 게임 체인저
모듈러 아키텍처와 타입스크립트의 만남, NestJS로 백엔드 개발을 혁신하다Node.js는 지난 몇 년간 백엔드 개발에서 큰 인기를 끌어온 플랫폼입니다. 많은 프레임워크들이 Node.js 위에서 발전해왔지만, 그중에서도 특히 눈에 띄는 것이 있습니다. 바로 NestJS입니다. NestJS는 현대적인 웹 애플리케이션 개발을 위한 게임 체인저로 평가받고 있으며, 타입스크립트와 모듈러 아키텍처를 활용하여 코드의 유지보수성과 확장성을 대폭 향상시켰습니다. 이 글에서는 NestJS가 왜 백엔드 개발자들 사이에서 주목받고 있는지, 어떤 장점을 제공하는지에 대해 자세히 알아보겠습니다.1. NestJS 소개공식 홈페이지: https://nestjs.com/ NestJS - A progressive Node.js fra..
Flet: Python으로 만드는 멀티플랫폼 앱의 혁명
Flet 소개Flet은 Python 개발자들에게 새로운 가능성을 열어주는 혁신적인 프레임워크입니다. 이 프레임워크를 사용하면 웹, 데스크톱, 모바일 애플리케이션을 단일 Python 코드베이스로 개발할 수 있습니다. Flet은 Flutter를 기반으로 하여 아름답고 반응성 높은 사용자 인터페이스를 제공하면서도, Python의 간결함과 생산성을 유지합니다.공식 홈페이지: https://flet.dev Build multi-platform apps in Python powered by Flutter | FletBuild multi-platform apps in Python powered by Flutter.flet.dev공식 문서: https://flet.dev/docs/ Introduction | FletW..
pyenv: 파이썬 버전 관리의 마법사
pyenv란 무엇인가?pyenv는 파이썬 개발자들의 필수 도구로 자리잡은 강력한 버전 관리 시스템입니다. 이 도구를 사용하면 여러 버전의 파이썬을 시스템에 설치하고 프로젝트별로 다른 버전을 사용할 수 있습니다. pyenv를 통해 개발자들은 파이썬 버전 충돌 문제에서 해방되어 더욱 효율적인 개발 환경을 구축할 수 있습니다.왜 pyenv를 사용해야 할까?pyenv를 사용해야 하는 이유는 다음과 같습니다:버전 충돌 방지: 여러 프로젝트에서 서로 다른 파이썬 버전을 요구할 때 발생할 수 있는 충돌을 예방합니다.프로젝트별 환경 설정: 각 프로젝트에 적합한 파이썬 버전을 쉽게 설정하고 관리할 수 있습니다.시스템 파이썬 보호: 시스템에 설치된 기본 파이썬을 건드리지 않고 다양한 버전을 사용할 수 있습니다.간편한 버전..
C 언어와 C++ 의 차이
안녕하세요 피터입니다. 많은 분들이 C 언어를 배우고 나서 C++ 를 배우기 시작 할 때 어려움을 겪곤 합니다. 제 주변에도 그런 분들이 있어서 어떤 점 때문에 어려운지 물어봤더니 어디서부터 어떻게 시작해야 될 지 모르겠다는 답변이 가장 많았습니다. 어쩌면 당연한 일인지도 모르겠습니다. 비교적 간단한 문법 체계를 갖고 있는 C 언어와 달리 C++ 은 굉장히 다양한 패러다임이 녹아있으며 방대한 스케일을 자랑하는 언어이기 때문입니다. (물론 그렇다고 해서 C 언어가 가볍고 만만한 프로그래밍 언어라는 말은 아닙니다. 오히려 그 반대로 처음엔 쉬워보이지만 알면 알수록 어려워지는 언어입니다. C 언어는 역사가 긴 만큼 괴수 분들이 많이 서식하고 계십니다 :D) 그래서 우선은 C 언어와 C++ 두 언어가 어떤 부분..
[Linux] nohup 세션이 끊겨도 계속 실행되도록 해보자
개요 nohup 명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어입니다.기본적으로 터미널에서 세션 로그아웃(logout)이 발생하면리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal 이 전달하여 종료시키게 되는데,이 HUP signal을 프로세스가 무시(ignore)하도록 하는 명령어라서 nohup 이라는 이름인 것입니다. 그래서 결과적으로 터미널에서 연결이 끊기거나 터미널을 종료해도 실행했던 프로세스들이 계속 실행될 수 있는 것입니다. 또한 nohup 명령어는 표준 출력(standard output)을 nohup.out 파일로 재지향(redirection) 합니다. 터미널이 종료되어도 표준 출력은 nohup.out 파일에 ..
[bash 쉘 스크립트] 변수 할당(assignment)과 치환(substitution)
개요 안녕하세요 피터입니다. 오늘은 Bash 쉘 스크립트에서 사용되는 변수(variable)에 대해서 설명드리겠습니다. 변수는 모든 프로그래밍 언어와 스크립트 언어에서 핵심적인 기능을 합니다. 데이터를 조작하기 위한 연산이나 문자열을 파싱(parsing)하는데 있어서 없어서는 안될 꼭 필요한 존재입니다. 변수는 단지 데이터를 담고 있는 메모리상의 위치를 나타내는데 어떤 변수에 어떤 데이터가 담겨있는지 쉽게 알 수 있게 이름을 붙여놓은 것입니다. 변수 할당(assignment) 데이터를 담는 공간인 변수를 사용하려면 먼저 변수를 할당(assignment) 해야 합니다. 변수는 할당 연산자 = 를 사용해서 할당합니다. a=100 b="hello" 주의 해야 할 것은 할당 연산자 앞뒤로 공백이 없어야 한다는 ..
[객체지향] Object-Oriented Programming 핵심 개념의 이해
배경 데이터 흐름(Flow)에 기반한 절차지향적 프로그래밍 방법은 복잡한 로직을 갖는 큰 규모의 소프트웨어 개발에는 적합하지 않습니다. 하드웨어 성능이 폭발적으로 성장하면서 요구되어지는 소프트웨어는 점점 복잡해지고 거대해졌는데 기존의 전통적인 절차지향 개발 방법 으로는 소프트웨어를 설계 및 구현하는데 많은 어려움이 생긴 것이죠. (사실 소프트웨어 공학 - software engineering 이라는 개념도 생소할 시기였습니다) 이러한 문제를 해결하기 위해 프로그램을 함수(procedure) 단위로 나누어 구조화하는 구조적 프로그래밍 방법이 대두되었는데, 상위로부터 하위로 쪼개나가는 방식이기 때문에 Top-Down 방식이라고도 합니다. 하지만 함수는 데이터를 처리하는 부분은 구조화할 수 있었지만 데이터는 ..
[Linux] kill 프로세스를 '안전하게' 종료시켜보자
개요 kill 명령어는 이름 때문에 프로세스를 강제로 종료시키는 명령어로 오해를 사기 쉬운데 실제로는 프로세스에 시그널(signal)을 보내는 명령어입니다. 이름이 kill 인 이유는 어떤 시그널을 보낼 지 지정하지 않으면 기본적으로 SIGTERM 시그널을 보내게 되는데 SIGTERM의 기본 동작이 프로그램 종료이기 때문입니다. 물론 프로세스에 SIGKILL 시그널을 보내 강제로 종료시킬 수도 있습니다. 그렇지만 일반적인 상황에서 SIGKILL 시그널을 보내는 것은 권장되지 않습니다. 본래 프로그램을 설계 할 때 대부분의 경우 종료 시그널을 받았을 때 처리하고 있던 데이터가 안전하게 정리 될 수 있도록 설계합니다. SIGTERM, SIGINT 등의 종료 시그널에 대해 시그널 핸들러(handler)를 등록..