개발 기타 10

협업을 위한 commit 메세지를 작성하는 방법

포스팅 목적 git 에서 좋은 commit 메세지를 작성하기 위한 규칙을 알아봅니다. commit 메세지란? 버전 관리를 하는 프로그램 ( git 등 ) 에서 반영한 코드에 대한 설명을 말합니다. 보통 반영한 내용을 요약해서 작성합니다. commit 메세지는 강제적인 것이 아니고 따로 형식이 지정되어 있지 않기 때문에 개발자가 임의로 입력할 수 있습니다. 코드가 어떤 기능을 하는지 잘 설명이 되어 있다면 전체 변경사항을 하나하나 확인할 필요가 없고 커뮤니케이션에 도움이 되기 때문에 일정에 형식에 따라 입력하는 것이 좋습니다. 널리 쓰이는 규칙이 있는데 팀이나 프로젝트에 효율적인 형식을 새로 정하거나 아래와 같은 형식을 따르면 됩니다. 좋은 커밋 메세지 작성을 위한 방법 메세지 구조 분류: 제목 본문 [선..

개발 기타/깃 2022.03.09

[SourceTree] fail to push some refs to 오류 해결

포스팅 목적 소스트리를 사용하다가 branch 를 merge 한 후 main branch 에 push 할 것이 4건 있다고 나와있어서 push 버튼을 눌렀더니 아래와 같이 failed to push some refs to 오류가 발생했습니다. git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v --tags origin main:main Pushing to "레포지토리" To "레포지토리" ! [rejected] main -> main (fetch first) error: failed to push some refs to "레포지토리" hint: Updates were rejected because the ..

[GitHub] 잔디 심기 오류 해결

포스팅 목적 깃허브에서 볼 수 있는 지표 중 하나인 Contributions ( 일명 잔디 심기 ) 가 기록되지 않는 현상이 발생할 때마다 해결 방법을 추가합니다. Contributions 기록 조건 깃허브 프로필에서 commit 건 수를 볼 수 있는 화면입니다. 기본적으로 commit 을 할 때 마다 쌓이지만 쌓이지 않는 때도 있어서 몇 가지 제한 사항이 있었습니다. 깃허브의 email 과 local git 의 email 이 일치해야 합니다. default 브랜치와 commit 한 브랜치가 같아야 합니다. name 이 다를 경우 문제 해결 깃허브 email 은 위와 같이 확인 할 수 있습니다. 터미널에서 $ git config 명령어로 설정을 알아 볼 수 있습니다. 로컬 email 과 글로벌 email..

[Git] 깃허브 신규 저장소 생성 및 관련 설정하기

포스팅 목적 소스를 깃허브 상에서 관리하기 위해 깃허브 신규 저장소 생성시 해야할 몇 가지 일들을 기록합니다. 디렉토리를 깃이 관리할 수 있도록 새로운 프로젝트를 init 합니다. 깃허브와 연동합니다. 같이 작업할 팀원을 추가합니다. GUI 상에서 깃을 사용할 수 있도록 소스트리에서 불러옵니다. (중간중간 작업물을 확인할 수 있게 되면) 외부에서 작업물을 확인할 수 있도록 배포 합니다. 선행 작업 Git 설치 깃허브 아이디 만들기 소스트리 설치 ( Optional ) 순서 1. 깃허브 접속 후 로그인 https://github.com 2. Repositories - New 생성 저장소 이름과 설명 (생략가능), 공개여부와 초기화를 위한 설정 등을 체크하고 나면 저장소를 만들 수 있습니다. 3. 레포지터리..

[python] 파이썬 기초

포스팅 목적 비전공자, No Base 상태의 코딩 초보자에게 데이터 분석을 위한 파이썬 사용의 장점과 기초 문법을 학습합니다. 0. 프로그래밍 언어란? 파이썬이 무엇인지 이해하기 위해서는 프로그래밍 언어에 대한 설명이 먼저 필요합니다. 컴퓨터는 0과 1로 이루어진 이진 숫자만을 이해할 수 있는 반면에 사람은 0과 1로만 이루어진 프로그램을 이해하기 어렵습니다. 사람의 언어를 대신해서 컴퓨터라는 기계와 소통하기 위해 만든 언어가 프로그래밍 언어 입니다. 컴퓨터는 프로그래밍 언어를 바로 이해할 수 없기 때문에 프로그램(인터프리터, 컴파일러 등)을 사용해서 0과 1로 이루어진 기계어로 변환하여 의사소통을 할 수 있습니다. ( 아래 그림을 보면 어셈블리어라는 저급 언어가 있지만 개념은 같습니다. ) 이러한 프로..

[프론트엔드] 번들러(Bundler)

목적 이 포스팅에서는 자바스크립트의 모듈화의 변화 과정과 번들러와 관련된 개념들에 대해서 알아봅니다. 모듈 시스템의 필요성 자바스크립트는 파일이 나뉘어도 모두 같은 전역 스코프를 사용하기 때문에 함수나 변수명이 겹치는 문제가 생길 수 있습니다. 따라서 스코프가 구분되는 모듈을 만들 필요가 있습니다. 파일이 많아질수록 응답시간이 오래걸리게 됩니다. 모듈 로더 (Module Loader) 런타임에 클라이언트 사이드에서 스크립트를 로드해서 html에 추가합니다. 아래와 같은 모듈 포맷이 있습니다. CommonJS : 브라우저에서 뿐만이 아니라 서버나 데스크롭 애플리케이션에서도 JavaScript 를 사용할 수 있도록한 모듈 시스템입니다. 특징은 동기적으로 모듈을 호출하는 방식으로, ( 필요한 모듈을 바로 사용..

[쿠버네티스]

관련 개념 * 도커 컨테이너 기술의 사실상 표준 * 컨테이너 * 컨테이너 VS VMware 컨테이너 : Host OS 위에서 Docker Engine 이 돌아감 VM : Hypervisor 라는 가상 하드웨어위에 Guest OS, 그 위에서 애플리케이션이 돌아감 > 갯수가 적을 떄는 큰 차이가 없지만, 갯수가 많아질 수록 차이가 심해짐 * 컨테이너 격리 기술 리눅스 - 리눅스 컨트롤 그룹 ( 프로세스로 소비할 수 있는 리소스양 제한 ), 리눅스 네임 스페이스 ( 각 프로세스가 시스템에 독립 뷰를 제공 ) 윈도우 - 하이퍼바이저 * 온프레미스 * 모놀리식 서비스 vs 마이크로 서비스 - 모놀리식 서비스 : 전체를 컴파일 해야하기 때문에 배포시 점검시간이 필요함 - 마이크로 서비스 : 규모 있는 수백개의 컨..

인공지능의 분류와 딥러닝

포스팅 목적 딥러닝을 공부하기 이전에 지금 목적을 달성하기 위해 해야하는 공부가 딥러닝이 맞는지, 맞다면 어떤 알고리즘을 공부해야 하는지, 아니라면 머신러닝의 어떤 부분을 공부해야 하는지를 확인하려고 AI 용어들과 종류들을 분류해서 정리했습니다. 인공지능의 분류 strong AI (AGI : artificial general intelligence) : (보통 영화에서) 사람과 비슷한 강한 성능을 가진 인공지능 weak AI (ANI : artificial narrow intelligence) : (현재 산업에서) 특정 영역에서 작업을 수행하는 인공지능 > strong AI 와 AGI, weak AI 와 ANI 가 실제로 동일한 의미인지는 잘 모르겠지만 혼용해서 쓰는걸로 보입니다. weak AI 의 분류..

Do it! 딥러닝 입문 구글 코랩 실습

포스팅 목적 진행했던 파이썬 및 딥러닝 학습을 기록합니다. 딥러닝을 공부하면서 강의 내용 정리도 필요하겠지만 실습을 미루다 미루다 이 책으로 입문하게 되었습니다. 구글 코랩으로 설치 없이 바로 실습을 할 수 있습니다. 1) 구글 코랩 시작하기 - https://colab.research.google.com 구글 아이디를 통해 코랩 접속 (끝.) 2) 구글 코랩 기능 노트북에는 코드 셀과 텍스트 셀, 이렇게 두 종류의 셀을 만들 수 있습니다. 텍스트 셀에서는 텍스트를 입력하고 코드 셀에서는 코드를 입력하고 실행할 수 있습니다. 여기까지가 65 페이지 까지의 실습입니다. 왜 인지는 모르겠지만 아래와 같이 데이터 분포와 학습이 이상하게 된 결과물이 출력 됐었는데 아마도 구글 코랩에서 소스를 이것저것 실행하다가..