All

Programing Language/Python

아스테리스크와 패킹, 언패킹 기법

파이썬 코드를 보면 인자로 받는 부분에 *arg, **kwargs라는 표현을 많이 볼 수 있다. arg, kwarg가 어떤 변수의 이름인 것은 알겠지만 앞서 붙어있는 "*" 표현은 낯설기만 하다. 따라서 이번에는 해당 표현에 대해서 알아보고 어떻게 사용하는지에 대해서 알아보자. 파이썬의 아스테리스크 (Asterisk " * ") 파이썬이 지원하는 여러 연산자 중에 하나인 아스테리스크 (이하 * )는 단순히 곱셈만이 아닌 여러 의미를 가진 연산들을 지원하고 있다. 크게 4가지 종류로 사용이 된다. 곱셈, 거듭제곱 연산으로 사용 시퀸스 타입의 데이터를 반복 확장하고자 할 때 사용 가변인자를 사용하고자 할 때 사용 컨테이너(시퀸스) 타입의 데이터를 언패킹 할 때 사용 1, 2 문항은 자주 사용하기도 하고 대부..

Programing Language/Python

mypy, pyright 을 이용한 정적 타입 검사

mypy, pyright 사용법은 아래 게시글과 연동됨을 알립니다. 참고 : 파이썬 typing module을 통한 타입 표기법 : https://jheaon.tistory.com/63 typing module (Type annotation and Typehint) 을 통한 가독성 좋은 코드 작성하기 Python은 동적 프로그래밍 언어이기 때문에 코드를 실행하면 해당 변수의 타입을 추론하여 체크한다. 변수의 타입은 정해져 있지 않기 때문에 개발자가 자유롭게 사용할 수 있다는 장점이 있지만 jheaon.tistory.com mypy와 pyright mypy와 pyright 모두 파이썬 타입 검사를 위해 만들어진 정적 타입 검사 도구이다. 두 개의 차이점을 들어보자면 아래와 같다. mypy : python에..

Programing Language/Python

파이썬의 객체지향 프로그래밍 4가지 특성과 객체 메모리 효율적으로 다루기

객체지향 프로그래밍 객체지향 프로그래밍 (Object Oriented Programming)이란 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고 그 객체들 간의 유기적인 상호작용을 통해 흐름을 구성하는 프로그래밍 방법을 의미한다. Class : 설계도 instance : 설계도에 찍혀 나온 실체, 하나의 class로 만들어진 instance는 각각 독립적이다. 📢 프로그램을 실제 세상에 가깝게 모델링하는 기법이다. 객체지향 프로그래밍의 4가지 특성 객체지향의 프로그래밍의 4가지 원칙은 다음과 같다. 지금부터는 해당 내용을 하나씩 코드를 들어가면서 살펴보고 마지막으로 컴포지션에 대해서 알아보도록 하자. 추상화 (abstraction) : 불 필요한 것은 숨기고 중요한 정보만을 표현 함으로써 공통의 속..

FrameWork/Spring

[Spring] Spring boot 프로젝트 생성하기

Spring Spring은 자바로 만들어진 웹 프레임워크의 종류중 하나이다. 해당 웹 프레임워크의 역활은 HTTP 요청에 따른 응답을 돌려주는 Web Application을 만드는 것을 목적으로 하고 있다. Spring Boot 프로젝트 생성하기 https://start.spring.io/ 일단 스프링 initalizer을 통해 생성하는 것을 우선으로 시작한다. 그리고 생성하기를 누르면 zip 파일 하나가 생성되고 이를 통해 스프링 부트를 시작하면 된다. 해당 폴더에 들어가서 데모 애플리케이션을 실행시키게 되면 localhost:8080 포트로 웹 서버가 실행되게 된다.

Programing Language/Java

[Java] Java가 실행되는 과정과 JDK, JRE

Java가 실행되는 과정 자바의 소스코드는 다음과 같은 과정을 통해 실행된다. 📢 JVM : Java Virtual Machine 으로 자바 프로그램이 실행되는 가상의 공간으로 운영체제와 상관없이 JVM이 구성되어 있다면, JAVA 프로그램 실행이 가능하다. JRE Java Runtime Environment을 의미하며, Java로 컴파일 된 프로그램을 실행하는 환경을 의미한다. JDK Java Developer Kit 이라고 하며 Java 어플리케이션 개발을 위해 반드시 필요한 것이며 Java 컴파일러와 JRE을 포함하고 있다. 즉 JRE만 설치하게 되면 자바 프로그램을 실행 할 수 있으나, 자바 소스코드를 작성하여 실행 시키는 것은 불가능 하다.

Programing Language/Python

sqlite3 모듈을 통해 sqlite3.db 파일 관리하기

파이썬으로 sqlite3 DB을 관리하는 방법을 알아보기 전 간단하게 데이터베이스와 그 개념에 대해 살펴보고, 그 지식을 활용하는 형식으로 sqlite3을 이용해 보자. 글의 순서는 데이터베이스가 무엇인지에 대해 살펴보고, sqlite SQL 쿼리문 작성, python에서 sqlite3.db관리 순으로 정리한다. 데이터베이스 데이터베이스 (DB) 정의 데이터베이스란 구조화된 정보 또는 데이터의 조직화된 모음으로 일반적으로 컴퓨터의 시스템에 전자적으로 저장되는 데이터의 모음을 의미한다. 일반적으로 DBMS(Data Base Management System)에 의해 관리되고 처리된다. 주로 삽입(Create), 조회(Read), 수정(Update), 삭제(Delete)를 통해 데이터가 수정되고 처리된다. 📢..

Computer Theory/development theory

[Dev] 소프트웨어 개발 방법론 애자일(Agile), 폭포수(Watherfall)

소프트웨어 개발을 할 때에는 요구사항 분석 -> 설계 -> 구현 -> 배포 -> 유지보수 등과 같은 과정이 존재한다. 그 중에서도 소프트웨어 개발 프로젝트를 진행할 때 가장 널리 사용되는 두 가지 방법론인 애자일, 폭포수 모델 방법론에 대해 알아보자. 폭포수 모델 폭포수 방법론은 소프트웨어 개발 단계가 위에서 부터 아래로 폭포에서 물 흐르듯 순차적으로 진행하는 방법이다. 폭포수 방법론은 한단계씩 진행함에 따라 다시 이전 단계로 가지 않고 계속 진행하기 때문에 다음 단계로 가기전에 완벽하게 요구사항을 반영하여 개발 했다는 것을 전제로 진행한다. 📢 절차가 뚜렷한 대기업이나 외주, 또는 각자의 팀원이 자신의 계층 역활을 완벽하게 잘 할 것 같다고 생각하는 팀이 자주 사용하는 방법론이다. 단점으로는 수직적으로..

Cloud/Docker

[Docker] 컨테이너 끼리의 통신

Docker에서는 컨테이너 끼리의 통신을 원할하게 하기 위해서 docker network을 사용하여 처리 할 수 있다. 1. docker network 을 생성한다. docker network create favorites-net 2. docker container 을 실행한다. 옵션으로는 --network 을 통해 docker network에 연결한다. docker run -d --rm --name mongodb --network favorites-net mongo 그 다음 같은 네트워크에서 해당 컨테이너로 접근하여 데이터를 가져올 때에는, 컨테이너 명을 적어서 가져 올 수 있다. 다음은 그 예제 이다. # mongodb가 컨테이너 이름 이다. docker에서는 컨테이너 이름만 적으면 ip주소로 변환해..

Cloud/Docker

[Docker] 환경변수, env 파일 작업

1. Dockerfile에 기입해서 환경변수를 만드는 방법 🐋Dockerfile FROM node:14 WORKDIR /app COPY package.json . RUN npm install COPY . . ENV PORT 80 EXPOSE $PORT CMD ["node", "server.js"] Dockerfile 내에서 환경변수를 사용하기 위해서는 $을 사용한다. 2. 터미널내에서 컨테이너를 실행 할 때 옵션 값으로 넣어서 실행 docker run -e PORT=8000 -e NAME=JHEAON ... 3. .env 파일로 관리하여 실행 만약 환경변수를 사용하고 .env 파일을 만들어 관리하고 있다고 가정하고 도커 환경에서 컨테이너로 실행하고 싶다면 다음과 같은 명령어를 사용하여 도커를 실행한다. ..

JHeaon
'분류 전체보기' 카테고리의 글 목록 (16 Page)