[Tech] AI가 해주는 코드리뷰 - CodeRabbit
·
ETC/ETC
Introduce최근에는 1인 프로젝트를 많이 진행하고 있다. 혼자 개발을 하다 보니 코드에서 놓치는 부분이 많다는 것을 실감하게 되었다.여러 사람과 함께 프로젝트를 진행할 경우, 코드리뷰를 통해 서로의 코드를 교차 검증하고, 클린코드나 컨벤션 같은 사소한 수정은 물론 소프트웨어 결함을 일으킬 수 있는 로직까지 찾아내고 보완할 수 있다.하지만 1인 개발 환경에서는 이러한 코드리뷰 과정을 거치기 어렵고, 여러 명이 함께 리뷰를 하더라도 시간이 많이 들고 리뷰의 정확도도 떨어질 수 있다.이러한 한계를 보완하고자, AI가 자동으로 코드리뷰를 수행하는 솔루션인 CodeRabbit 을 직접 경험해보고자 한다. 특징AI 기반 자동 코드리뷰PR(Pull Request) 생성 시, AI가 자동으로 코드 변경 사항을 분..
[Tech] 순수 프로그래밍 시간 측정(wakatime)
·
ETC/ETC
Introduce 최근 프로그래밍 공부를 하면서 부쩍 이전보다 집중력이 떨어졌음을 느꼈다. 그래서 아이폰의 스크린 타임처럼 수치적으로 내가 얼마나 집중하고 있는지 보여 줄 수 있으면 어느정도 목표치를 갖고 집중할 수 있겠다고 느꼈다. 그래서 알아보던 중 순수 프로그래밍 시간을 측정하는 wakatime 에 대해 알게 되었다. wakatime은 개발자의 코딩 시간을 자동으로 기록하고 시각화해주는 시간 추적 도구 이다. 동작 방식은 실제로 키보드 입력이나 마우스 활동이 있는 시간만을 기록 한다. 지정한 시간만큼 동작이 없으면 세션 종료로 간주하고 다시 동작이 발생하면 새로운 세션이 시작된다. 설치 방법은 매우 간단하며, 개발자들이 주로 사용하는 다양한 통합개발환경에서 지원한다. 추적된 시간은 Dashboard..
[ETC] YAML 문법 정리
·
ETC/ETC
YAML사람이 읽기 쉬운 데이터 직렬화 형식주로 설정 파일과 데이터 저장에 사용됨.  개요 YAML은 데이터 직렬화 포맷(data serialization formats)이다.YAML은 원래 "Yet Another Markup Language"의 약어로 시작되었으나 YAML의 주된 목적이 단순 마크업(MarkUp)이 아닌 데이터를 직렬화하는 것이 강조되면서 "YAML Ain't Markup Language"라는 재귀적 약어로 변경되었다.확장자는 .yaml 을 사용한다.  문법  1. 들여쓰기(Indent)YAML에서 들여쓰기는 기본적으로 2칸 또는 4칸을 지원함. (space Indent)Space Indent 기준으로 2칸을 표준적으로 가장 많이 씀.# 2칸 인덴트metadata: name: pyth..
[CI/CD] Jenkins Build 결과 발송 [Slack]
·
ETC/ETC
Jenkins와 Slack을 연동하여 빌드 결과를 Slack 채널에서 알림 받는 방법에 대해 기술한다. 채널 추가(기존 존재하는 채널이 있다면 생략) Jenkins CI App 설치 및 Setting Slack App에서 Jenkins CI 를 추가한다. 채널에 포스트 항목에서 알림을 받고자하는 채널을 선택한다. Jenkins CI 통합 앱 추가 후 설정 지침의 3단계에서 팀 하위 도메인과 통합 토큰 자격 증명ID 메모한다. 통합 설정에서 아래 항목을 메모한다. 채널에 포스트: 알림을 받기로 한 채널. 토큰: Credential 생성에 사용할 토큰 정보(갱신 가능) 설명 라벨: Slack 앱의 설명 라벨 이름 사용자 지정: Slack 채널에서 알림에 표시될 이름 아이콘 사용자 지정: 알림 아이콘 사용자 ..
[CI/CD] Jenkins Build 결과 발송 [Email]
·
ETC/ETC
본 게시글에서는 Jenkins에서 Build 후 결과를 Email 로 발송하는 방법에 대해 기술한다. Plugin 설치 및 Setting Dashboard - Jenkins 관리 - Plugins에서 “Email Extension”을 검색하여 설치한다. 플러그인 설치 후 Dashboard - Jenkins 관리 - System으로 이동하여 페이지 스크롤을 내려 “Extended E-mail Notification” 항목을 찾는다. 각 필드에 대해 주요 설정에 대한 설명은 아래와 같다. SMTP server: 메일을 발송하기 위한 발송서버의 주소를 기입한다. SMTP Port: 메일 서버의 SMTP 포트 넘버를 기입한다. Default Recipients: 빌드 결과를 수신할 기본 수신자를 입력한다. 다중..
[CI/CD] Jenkins Job을 수행하는 유저 변경
·
ETC/ETC
프로젝트에 따라서 Linux에서 root 및 jenkins User 로 실행되는 것이 아닌 특정 유저에서 실행 되어야 하는 필요성이 존재한다. 본 게시글에서는 Jenkins에서 Build 및 Build 후 실행하는 Execute shell을 수행하는 User를 변경하는 방법에 대해 기술한다. ※ 본 게시글은 Rocky/Centos 기반으로 작성한다. 우선 아래 명령어를 통해 실행되고 있는 젠킨스를 종료한다. $ systemctl stop jenkins 각 파일에서 해당하는 옵션 값을 찾아서 변경하고자하는 User 및 Group 명을 변경한다. $ vim /etc/sysconfig/jenkins JENKINS_USER=”jenkins” # 변경하고자 하는 User 명으로 변경 $ vim /usr/lib/s..
[CI/CD] Jenkins GitLab 연동하여 CI/CD 달성
·
ETC/ETC
본 게시글에서는 Jenkins에서 GitLab과 연동하여 CI/CD를 달성하는 방법에 대해 기술한다. GitLab Plugin 플러그인 설치 및 설정 Dashboard - Jenkins 관리 - Plugins에서 “Git“과 “GitLab”을 검색하여 설치한다. Credentials 추가 Jenkins가 GitLab에 접근하여 데이터를 pull or push 하기 위해 Gitlab 계정 정보를 등록한다. 1. GitLab API Token 발행 GitLab에서 사용자 설정 - 액세스 토큰으로 이동한다. 토큰을 관리할 이름과 만료 일자, 권한을 선택하고 “Create personal access token”을 눌러 토큰을 생성한다. 생성된 토큰을 Credentials 등록에 사용하기 위해 기록한다. (토큰..
[CI/CD] Jenkins 설치
·
ETC/ETC
본 글에서는 지속적인 통합(Continuous Integration, CI) 및 지속적인 배포(Continuous Deployment, CD)를 지원하는 오픈 소스 자동화 도구 Jenkins 설치에 대해 기술한다. Jenkins 설치는 Linux Rocky 8 환경에서 진행한다. Java JDK 설치 Jenkins는 Java 기반으로 동작한다. Jenkins를 설치하고 실행하기 위해 Java JDK를 설치한다. 필자는 해당 버전을 적절한 버전을 설치하지 못해 많은 삽질을 감행했다. 본인이 설치하는 젠킨스에 적절한 Java 버전을 확인하기 위해 아래 링크를 참조한다. Jenkins Java Version : https://www.jenkins.io/doc/administration/requirements/..
[IoT] IoT Network - 통신기술에 관하여
·
ETC/IoT
본 글에서는 IoT Network와 관한 기술에 대해 기술한다. Zigbee (IEEE 802.15.4) - IEEE 802.15.4 무선 표준을 기반으로하는 저전력 무선 통신 기술 중 하나로, 센서 네트워크 및 자동화 제어 어플리케이션에서 사용되는 프로토콜 스택 및 네트워크 구성을 제공함. - 2.4GHz, 868MHz 및 915MHz 주파수 대역에서 작동함. - 네트워크는 Star, Mesh 및 Cluster Tree 구성을 지원하며, 최대 65,000개의 노드를 지원함. - 조명, HVAC (난방, 환기 및 공조), 보안 시스템, 홈 자동화, 센서 네트워크 등에서 다양한 응용 분야에서 사용됨. 저전력 및 저속도: 저전력 및 저속도 무선 통신 기술로, 높은 전력 소비가 필요하지 않으며, 작은 배터리로..
[NFT] 소유하고 있는 NFT를 소각하는 방법
·
ETC/BlockChain
본 게시글에서는 자신의 지갑에 소유하고 있는 NFT를 삭제(소각)하는 방법에 대해 알아본다. NFT를 소유하고 있는 소유자는 스캠, 불만족, 테스트용 NFT 등 모종의 이유에서 자신의 지갑에 있는 NFT를 삭제하고 싶은 경우가 발생할 수 있다. 자신이 소유하고 있는 NFT를 소각(burn)하고자 한다면 이용하고 있는 코인의 블랙홀 주소(또는 eater address)로 NFT를 보내면 된다. 본 블로그에서 NFT 테스트로 사용하고 있는 암호화페는 이더리움 테스트넷의 Goerli이다. goerli의 블랙홀주소는 "0x000000000000000000000000000000000000dEaD" 이다. NFT 마켓플레이스(OpenSea)또는 자신의 지갑에서 해당 주소로 발송하면 해당 NFT는 누구도 사용할 수 ..