[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..
[Git] 자주쓰는 깃 명령어 모음 (CLI)
·
ETC/ETC
프로젝트의 버전을 관리하고 개발자간에 협업을 위해 전체 개발 소스를 공유하기 위해 Git Repository를 위한 웹 기반 호스팅 서비스인 GitHub 또는 GitLab를 많이 사용한다. GitHub또는 GitLab에 업로드하기 위해 오픈 소스 버전 관리 시스템(VCS: Version Control System)인 Git을 사용하게 된다. 본 게시글에서는 필자가 자주 사용하는 git 명령어를 정리한다. 필자가 자주 쓰는 명령어를 정리하기 때문에 내용이 자세하지는 않다. 자세한 명령어에 대한 정보는 [Git 공식문서]를 참고한다. Git 저장소 생성(초기화) 1. git init git 저장소를 생성(초기화) 한다. $ git init Git 전역 옵션 설정 1. git config (git 설정) gi..
[Contest] 2022 국방 데이터 활용 경진대회에 참가하다 - 국방 단어교정 체계
·
ETC/ETC
필자는 2022 국방 데이터 활용 경진대회에 참가했다. 참가 결과는 아쉽게 1차 서류 통과 후 탈락하였다. 비록 수상은 하지 못했지만 이번을 경험으로 앞으로 좋은 결과가 생길 것이라고 기대하며, 간략하게 출품한 작품에 대해 기록한다. 주제 소개 본 공모전에서 제작한 국방 단어 교정 체계는 문서 또는 사용자가 입력한 문장에서 금칙어를 지정하여 문서에 사용하는 단어의 표준화의 목적을 갖고 있다. 또한 파일의 해시 추출 및 암호 키 파일 기반의 대칭키 문서 암호화 기능을 추가하여 문서의 보안성을 높일 수 있도록 하였다. 국방 단어 교정 체계는 공모전의 취지와 부합하게 국방부 국방데이터 표준단어 목록 공공데이터를 메인으로 이용하였고 국립국어원 개방형 사전(우리말샘) 공공데이터를 보조 데이터 수단으로 이용하였다...
[Software] Visual Studio Code 활용 이야기
·
ETC/ETC
필자는 Microsoft에서 개발한 텍스트 에디터인 Visual Studio Code를 여러분야에서 매우 유용하게 사용하고 있다. 본 게시글에서는 VSCode를 사용하면서 유용했던 설정이나 오류 해결법에 대해 기술한다. 디렉터리 파일 검색 VSCode에서 좌측 탐색기의 파일 탐색하는 방법에 대해 알아본다. 1. F1 키를 눌러 명령어 팔레트(Command Palette)를 활성화 한다. 2. > 기호를 지운 후 검색하고자 하는 파일명을 입력한다. 3. 폴더명 파일명 형태로도 검색이 가능하다. SSH-Key 등록하여 패스워드 없이 접속 1. host pc의 터미널에서 ssh-keygen 명령어로 공개키/암호키 쌍을 생성 (생성한 경로 기억) ssh-keygen -t rsa 2. 호스트에서 생성한 키 파일을..
[E-Mail] 메일 보안 필터링 이론 정리
·
ETC/ETC
스팸 및 악성 메일 위협 유형 인터넷 메일 시스템은 개인, 기업, 학교, 기관 등 다양한 곳에서 상호간 커뮤니케이션을 위한 중요한 서비스이다. 인터넷 이메일 서비스가 중요한 커뮤니케이션 수단으로 이용되는 만큼 이를 악용한 사이버 공격 사례와 정상적인 서비스 이용을 방해하는 광고성(Spam Mail)성 메일도 늘어나고 있다. 이러한 사이버 공격과 광고성 메일은 기존보다 고도화, 지능화되고 있어 이를 막기 위한 기술과 서비스가 필요한 실정이다. 아래는 스팸 및 악성 메일과 관련된 용어와 위협 유형이다. (1) 용어 가. 스팸메일 : 불특정을 대상으로 보내는 광고성 메일. 최근 빅데이터 및 인공지능을 이용하여 특정 대상에 대해 발송하기고 하기만 기본적으로 불특정을 대상으로 함. 악의적인 목적은 갖고 있지 않지..
[E-Mail] 이메일 시스템 구조 및 용어 정리
·
ETC/ETC
본 게시물에서는 이메일 시스템의 송/수신 구조 및 용어 정리에 대해 작성한다. 참고 사이트 이메일 시스템 구조 가. 구조 User Agent: 사용자 장치에서 메일 작성, 읽기, 관리 기능 수행. (or A.K.A Client). Mail Server: 다수 사용자들의 메일박스 관리, 메일 송/수신 제어. SMTP(Simple Mail Transfer Protocol): 메일 전송 프로토콜. MUA(Mail User Agent): 메일을 작성하여 보내는 프로그램(데몬). MTA(Mail Transfer Agent): 이용자로부터 메일을 받아서, 외부로 전달하는 프로그램(데몬). MDA(Mail Delivery Agent): MTA로부터 분리된 메일을 사용자에게 전달하는 프로그램 나. 이메일 전송 과정 순..
[E-Mail] Telnet과 OpenSSL을 이용한 SMTP 메일 발송
·
ETC/ETC
본 게시물에서는 Telnet과 OpenSSL를 이용하여 SMTP 메일 발송을 실습한다. 실습하기에 앞서 게시물에서 다루는 환경은 Linux(Rocky)에서 실습한다. SMTP SMTP(simple mail transfer protocol) 프로토콜은 인터넷 상에서 이메일을 전송할 때 쓰이는 표준 프로토콜이다. 기본 포트(Port)는 25번 포트를 사용하며, MUA-MTA 또는 MTA-MTA 전송간 사용하게 된다. 기본적으로 ASCII 텍스트를 보내는 프로토콜이지만 ASCII의 7bit 문자열을 초과하는 데이터는 MIME(Multipurpose Internet Mail Extension) 포맷으로 변환하여 전송한다. Telnet 가. Telnet Telnet은 원격지의 컴퓨터를 인터넷을 통해 접속하여 자신..
[Math] 진법변환 (2진수, 8진수, 10진수, 16진수)
·
ETC/ETC
컴퓨터에서 표현되는 진법인 2진수, 8진수, 10진수, 16진수에 대해 알아본다. 아래는 각 진법의 표현 방법이다. 10진수(Decimal) 2진수(Binary) 8진수(Octal) 16진수(Hexadecimal) 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 표에서 보는 바와 같이 10진수는 우리가 실생활에서 보는 친숙한 진법이고, 2진수는 0과 1로만 표현하는 컴퓨터가 이해 할 수 있는 진법이다. 8,16진법은 ..