반응형

프로그래밍 27

python 공부를 위한 토이 프로젝트 - 기획편

토이 프로젝트를 하는 이유python 강의를 보고 약간의 실습을 거쳐 완강을 했다. 코딩 관련 강의를 듣고 항상 느끼는 점은 실제로 코딩을 해보지 않으면 강의를 수강한 것이 무용지물이 된다는 것이다. 강의 내용으로 간단하게 토이 플젝을 진행하고 실제로 구현을 해봐야 실무에서 써먹을 수 있을 뿐더러 내용도 보다 오래 기억하며 써먹을 수 있다. 토이 플젝을 통해서 강의를 들었던 흔적을 남기려고 한다.간단한 기획서부터, 주제는 게임가장 만만하면서도 실력 향상에 도움이 되는 것은 게임 프로그래밍이다. 로직도 들어가야 되고 객체지향 설계나 잘 만드려고 하다보면 시스템 적으로 고려되야 하는 사항도 하나 둘씩 생간다. 따라서 간단하게 기획을 하고 게임을 만드려고 한다. python 내용을 가지고 간단하게 게임을 만..

데코레이터 패턴 그리고 python 데코레이터

데코레이터 패턴데코레이터 패턴데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다.-위키백과 전에 Nestjs 디자인 패턴에도 언급을 했지만 대부분의 프레임워크에서 사용하는 데코레이트 패턴이 python에도 구현이 되어 있다.   @staticmethod , @classmethod 와 같이 이미 python 기본 기능에 정의되어 사용 가능한 데코레이터도 있지만 사용자가 원한다면 만들어서 사용하는 커스텀 데코레이터도 사용 할 수가 있다. custom decorator import time# 데코레이터 정의def timing_decorator(func): d..

객체 , 인스턴스, 클래스, 정적 메소드 (feat. python)

객체란 무엇인가? 객체란 - 메모리(주로 RAM)에 할당 된 것. 변수, 자료 구조, 함수 또는 메소드 등이 이에 해당한다.   method, class, static method 모두 object 이다. class Animal: # 클래스 속성 (클래스 변수) kingdom = 'Animalia' def __init__(self, name, species): # 인스턴스 속성 (인스턴스 변수) self.name = name self.species = species # 인스턴스 메소드 def describe(self): return f'{self.name} is a {self.species}.' # 클래스 메소드 @c..

NestJS에 적용된 디자인 패턴 - Singleton, Factory, Strategy, Decorator

Framework와 Design Pattern 프레임워크와 디자인패턴은 프로그래머로 하여금 소프트웨어 개발을 할 때 어떤 방식으로 접근을 하고 코드를 작성 해야 되는가에 대해 모범 답안을 제시한다. 디자인 패턴은 소프트웨어에서 필요 할 수 있는 시나리오들을 상정한 상태에서 어떻게 구현을 하면 좋은지에 대해서 알려준다. 프레임워크의 경우에는  시나리오들을 상정한 상태에서 소프트웨어 개발자로 하여금 정해진 규칙에 따라 구현을 하도록 강제함으로써 좋은 소프트웨어 품질을 유지 할 수 있도록 해준다. 결국에 목적은 비슷하기도하고 프레임워크 자체가 소프트웨어로 개발이 되어 있기 때문에 프레임워크 조차도 디자인 패턴이 적용되어 개발이 되어 있다. 때문에 Node.js 기반으로 만들어진 프레임워크 Nest.js에서 사..

자동화를 위한 자동화 slack api 만들기 - NodeJS

자동화를 위한 자동화 회사 앞에 한식 뷔페 식당이 있던 적이 있다.(함바집) 요즘은 이런 식당도 트랜드를 타는 건지 사장님이 매일 아침에 점심 메뉴를 인스타에 올려 주셨었고 우리는 점심 메뉴에 따라 한식 뷔페에서 먹을지 아니면 다른 식당에 가서 먹을지를 고민 했어야 됐었다. 점심을 사먹어야 되는 모든 회사에서 먹고 사는 문제에 대한 중차대한 일이었기 때문에 부장님은 막내에게 식당 메뉴가 무엇인지 물어보곤 하셨다. 정확하지는 않지만 10시 내외로 메뉴가 인스타 그램에 업로드가 됐기 때문에 점심 메뉴를 스크래핑해서 알려주는 슬랙 api를 만든다면 인스타 그램을 확인하여 공유를 하는 절차가 30초 정도 소요 된다고 했을 때 시간이 누적되면 결국에는 슬랙 api를 만드는 일이 효율적이라고 생각 했다. 인스타 확..

프로세스를 관리해주세요 - NodeJS 프로세스 관리하기 PM2

node app.jsnodeJS를 처음 배울 때 하는 명령어는 app.js 파일을 만들고 간단하게 'console.log("Hello World");' 같은거 하나 적은 다음에 실행 시키는 것 부터 시작 했을 것이다. 우리가 프로젝트의 구현, 테스트, 배포 단계에 걸쳐서 진행이 될 때도 'node app.js '를 사용하더라도 문제 될 것이 없겠으나 그럼에도 불과하고 process를 관리하고 log를 남기고 pipeline을 통해서 CI/CD를 하는 등 보다 쉽게 node 관련 프로세스를 관리하고 싶다면 PM2를 사용하는 것이 정석 일 것이다. PM2 란?PM2는 Node.js로 만들어지 app을 관리하기 위한 Process Manager이다. 특히나 테스트나 배포 단계에서 pipeline과 맞물려서 유..

cron expression 스케쥴 프로그래밍

스케쥴 프로그래밍 프로그래밍을 하다보면 특정 시간에 동작해야 되는 것들이 있다. 우리는 이것을 보고 job schedule 이라고 부르기로 했지만 스케쥴 프로그래밍이라고 없는 말을 좀 붙여봤다. 프로그래밍의 역사에 대해서 얘기를 시작하면 빼먹을 수 없는 AT&T 연구소가 유닉스에서 job schedule 을 수행하기 위해 crone expression 이라는 것을 만들었다. cron expression 최소 단위는 '분'이고 그 이하의 시간 단위를 다루고 싶다면 여러 개의 thread 혹은 process를 사용하여 원하는 단위 시간 만큼 sleep을 하여 구현하는 방법이 있다. cron expression 예시 0 5 * * *: 매일 오전 5시 0분에 작업을 실행합니다. 30 8 * * 1-5: ..

Slack 을 막 시작한 당신이 몰라도 좋을 Slack Bot 사용해보기

Slack api 생성 https://api.slack.com/ Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 'Your apps' 선택 'Create an App'으로 Slack App 생성 상개발자용 Manifest file로 설정을 하는 것이 있고 하개발자용 configuration UI 가 있다. 상개발자라면 이 블로그를 나가 Manifest File을 선택하길 바란다. 난 하개발자 임으로 'From sratch' 선택 이후 App Name과 workspace를 선택하고 'Create App'을 선택하여 APP을 생성한다. Bot 설정 Basic Information 에서 Bot..

오~~ Auth~~ OAuth - 너네 API 쩔더라.

OAuth 이전의 시대 OAuth 이전 시절에는 사소한 웹서비스를 사용하기 위해서 하루 종일 회원가입만 해야 됐던 시절이 있었다. 보안 관념도 매우 취약했기 때문에 (어느 정도였냐면 SQL-Injection 조차도 허용 되던 곳이 많던 시절이다) 사이트 해킹이나 개인정보 유출은 일상적인 시대였다. 뉴스만 크게 안나왔을 뿐이지 지금도 털리는 개인정보가 그 당시에 털리지 않았다는 것은 어불성설이다. 지금도 회원가입 절차를 하는 곳이 많은데, 이 경우에는 서비스사의 정보 수집의 욕구가 강하거나 OAuth에서의 정보제공이 제한적이기 때문에 추가 정보를 얻기 위해서 가입하는 경우가 있다. OAuth가 보편화 되지 않았던 시절에는 key-base 요청이라던가 디지털 서명이라던가 쿠키와 세션 기반 인증이던가 기타 ..

git을 막 사용하기 시작한 당신을 위한 몰라도 좋은 git의 기본 원리

2023.11.14 - [프로그래밍/General Development Skills] - Git이란 무엇인가? - 코드 형상관리를 위한 첫걸음 Git이란 무엇인가? - 코드 형상관리를 위한 첫걸음 2023.11.14 - [프로그래밍의 역사] - Git 이전에는 어떻게 코드를 관리했을까? - 시대를 평정한 Git의 등장 Git 이전에는 어떻게 코드를 관리했을까? - 시대를 평정한 Git의 등장 Git은 프로그래머라면 빼 code-mark.tistory.com git을 사용하는 이유 - 코드 백업 - 코드 형상 관리 - 코드 협업 관리 등등 Git을 사용하면 좋은 이점은 사용하지 않았을 때 보다야 훨씬 많다. 이전에도 포스팅했지만 소프트웨어의 규모가 커지면서 git은 소프트웨어 개발의 필수불가결한 존재가 되..

반응형