전체 글 149

[Clean Code] 프로그래밍 명명 규칙인 Camel Case, Snake Case, Pascal Case, Kebab Case에 대해 알아보자

프로그래밍을 하다 보면 변수, 함수, 클래스 등을 정의할 때 대문자를 쓰거나 언더바('_')를 쓰는 경우를 볼 수 있는데 이에 대해 자세하게 알아보려고 한다. 요약명명 규칙설명예시Snake_case모든 글자를 소문자로 하며, 단어는 밑줄로 구분한다. new_object, my_website_name, user_profile camelCasePascalCase와 유사하지만 첫 글자는 소문자이며, 공백은 없다. newObject, myWebsiteName, userProfile PascalCase각 단어의 첫 글자를 대문자로 이며, 공백은 없다 NewObject, MyWebsiteName, UserProfile Kebab-case모든 글자를 소문자로 하며, 단어는 하이픈( '-' )으로 구분한다. new-o..

Coding/Clean Code 2024.06.09

YAML, YML이란 무엇인가?

오늘은 yaml과 yml 파일 확장자가 무엇인지 알아보려고 한다. 그 이유는 docker-compose 파일과 스키마 작성시 yaml 확장자 파일을 사용하는데 내가 이전에는 본적이 없던 파일 형식이지만, 자주 사용되는 것을 보게 되었고 이에 대해 공부했던 내용들을 정리하려고 한다. YAML, YML은 무엇인가?yaml( YAML Ain't Markup Language)는 데이터를 표현하는 방법 중에 하나이다. JSON이나 XML와 비슷한 형식으로 작성할 수 있어서 자주 사용하는 방식입니다. 마크업 언어보다 데이터 중심을 구성을 강조한다는 점이 있으며, 공백문자를 이용한 들여쓰기로 파일을 작성한다. 파일 형식은 Key-Value 형식으로 작성한다. YAML, YML의 차이YML은 YAML의 파일 확장자 중..

Coding 2024.06.08

[Python] 'Fatal error in launcher: Unable to create process using' 오류 해결 방법

오류> pipFatal error in launcher: Unable to create process usingpip 오류의 발생원인은 다음과 같다.환경 변수 문제: PATH 환경 변수에 Python 설치 경로가 정확하게 설정되지 않았을 수 있다.버전 충돌: 사용하는 Python 버전과 설치된 패키지 버전이 서로 호환되지 않을 수 있다. 해결방법# pip 재설치python -m pip install --upgrade --force-reinstall pip 해결방법은 pip를 재설치하면 된다.

Coding/Python 2024.06.04

[Python] Progress Bar(tqdm)을 깔끔하게 출력하는 방법은 무엇일까?

tqdm을 이용해서 for문이 실행될 때마다 실행결과를 확인하기 위해 print을 실행한다면 VSCode나 Jupyter에서 사진과 같이 출력된다. 이때 깔끔하게 출력하는 방법에 대해 알아보자. tqdm 기초는 여기를 보면 된다.Jupyter와 VSCode에 대해 각각 설명하겠다. 일단 결론부터 말하자면 다음과 같은 코드를 사용하면 된다.from tqdm.auto import tqdm  Jupyter에서 tqdm 사용방법tqdm 라이브러리 내부의 notebook 모듈을 사용하면 간단하게 해결된다. from tqdm.notebook import tqdmimport timefor i in tqdm(range(100)): print(1) time.sleep(0.1) VSCode에서 tqdm 사용방법..

Coding/Python 2024.05.30

[Python] decorator(데코레이터)에 대해 알아보자

Python FastAPI를 공부하면서 데코레이터를 알게 되었는데 왜 어떻게 작동하는지 잘 이해가 가지 않아서 공부를 하게 되었고 이에 대해 내가 알게된 점에 대해 소개해보려고 한다. 코드는 여기에서 확인할 수 있다. 데코레이터란 무엇인가?데코레이터는 파이썬의 고급 기능 중 하나로, 함수나 메서드에 코드를 수정하지 않고 기능을 주입하는 방법입니다. 함수를 여러 기능으로 사용해야 하며 코드에 수정을 가하지 않을 때 자주 사용한다. 데코레이터는 함수로 인자를 받고, 함수를 감싸는 래퍼(wrapper)를 정의하여, 함수에 추가적인 기능을 할 수 있도록 한다.  데코레이터를 사용하는 이유는?사용하는데 여러가지 이유가 있다.코드 재사용 : 코드가 중복될 때 함수를 사용하는데 이때 함수를 여러 방법으로 사용하기 위..

Coding/Python 2024.05.29

[GCP] GKE(Google Kubernetes Engine)은 무엇일까?

GKE(Google Kubernetes Engine)에 대해 소개해보려고 한다.일단, GKE에 설명하기 이전에 Kubernetes(쿠버네틱스)에 대해 전반적인 소개를 하려고 한다.쿠버네티스(K8S)쿠버네티스를 사용하는 이유여러개의 소프트웨어나 애플리케이션을 관리하는 시스템 관리자는 소프트웨어에 대해 여러가지를 고려해야한다.모든 장비에서 작동하는가?오류 발생시 어떻게 해야하는가?많은 소프트웨어나 애플리케이션을 컨테이너화하면서 컨테이너들을 관리하는 방법이 쿠버네티스(k8s)이다. 여러개의 컨테이너들을 간편하게 관리하기 위해서 쿠버네티스를 사용한다. 쿠버네티스가 좋은 이유여러개의 컨테이너들을 어떻게 사용할지 결정하는 것이 쿠버네티스이다. 쿠버네티스를 이용해 컨테이너의 상태를 모니터링을 통해 컨테이너들이 미리 ..

Cloud/GCP 2024.05.27

[Docker] Docker-Compose에 대해 알아보자

이번에는 Docker-Compose에 대해 정리하려고 합니다.도커 컴포즈란?도커 컴포즈는 여러 도커 컨테이너들을 정의하고 동시에 실행할 수 있도록 하는 도구입니다. 이를 통해서 단일 애플리케이션을 구성하는 여러 컨테이너를 정의하고 한 번에 실행할 수 있도록 관리합니다. 도커 컴포즈를 왜 사용할까?도커 컴포즈를 사용하는 이유는 다음과 같습니다.복잡한 애플리케이션 구성을 위한 컨테이너 관리컨테이너, 서비스, 백과 프론트간의 의존성 관리배포 용이성 도커 컴포즈 설치apt-get install docker-compose# 또는sudo apt-get install docker-compose# 네트워크 설치docker network create nat설치가 완료되면 잘 설치했는지 확인합니다.docker-compos..

Program/Docker 2024.05.18

[프로그래머스] [Python] (Level 2) 리코쳇 로봇

https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제리코쳇 로봇이라는 보드게임이 있습니다.이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임입니다.이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 칩니다.다음은 보드게임판을 나타낸 예시입니다....D..R..

[Docker] Docker Container SSH 접속하는 방법

오늘은 Docker Container을 SSH로 접속해서 사용할 수 있는 방법에 대해 알려드리려고 합니다. 각자의 포트를 통해 컨테이너에 따로 접속해서 서로 영향을 미치지 않고 사용할 수 있게 됩니다.Dockerfile 작성하기FROM python:3.12RUN apt-get update && apt-get upgrade -y && apt-get install -y vim openssh-server net-tools가장 최소한으로 작성하였습니다. SSH 접속을 할 때, Dockerfile은 크게 고려하지 않으셔도 됩니다. Container를 실행할 때 포트포워딩이 핵심입니다. 이미지 빌드하기docker build -t ssh_image . Container 실행하기# docker run -idt -p 원..

Program/Docker 2024.05.03

[Hugging Face] 내가 만든 Dataset을 Hugging Face에 올려보기

오늘은 허깅페이스에 내가 만든 Dataset을 올리는 방법에 대해 소개해드리려고 합니다. 이를 통해 다른 사람들이 업로드한 데이터셋을 사용할 수 있습니다. Dataset을 업로드하려면 허깅페이스 토큰이 필요합니다. 토큰을 발급받지 않은 분들은 여기를 클릭해서 토큰을 발급해주세요데이터셋 저장할 Repo 만들기데이터 만들기데이터 허깅페이스에 업로드하기 코드는 여기에 있습니다. 데이터셋 저장할 Repo 만들기 허깅페이스 홈페이지에 들어갑니다.위의 이미지와 같이 프로필을 누르고 New Dataset 버튼을 누릅니다. 다음과 같이 저장할 Repo 이름을 작성합니다.작성을 하고 Create dataset 버튼을 누릅니다.그러면 다음과 같이 giliit/upload_dataset 이라는 Repo가 생성됩니다. 데이터..