분류 전체보기 (99) 썸네일형 리스트형 FTP 서버에 대해 배운 내용 (ubuntu, vsftpd) FTP 서버를 셋업하다 알게 된 내용들을 정리하였습니다. Ubuntu 20.04 / vsftpd FTP server를 사용하였습니다. 1. FTP 기본 개념FTP는 제어 연결, 데이터 연결 2개의 연결을 사용하여 파일을 송수신한다.제어 연결은목록 보기(ls), 다운로드(get), 업로드(put)과 같은 명령을 전송하는데 사용 된다.21번 포트를 기본값으로 사용한다. (사용자 정의 포트로 변경 가능)클라이언트가 서버에 접속하는 연결이다.제어 연결은 active/passive 모드와 상관 없이 공통 연결이다.제어 연결은 FTP 세션이 끝날 때 까지 유지 된다.데이터 연결은제어 연결에서 전송된 명령을 실행하기 위해 파일 데이터나 디렉토리 목록을 전송하는데 사용된다.데이터 전송이 필요할 때 일시적으로 생성되고,.. [실습 코드] 리팩토링 예제 # 리팩토링 전: 테스트하기 어려운 구조import redisimport pymysqlimport requestsimport jsonfrom typing import Dict, Anyclass MessageProcessor: def __init__(self): # 하드코딩된 연결 정보 self.redis_client = redis.Redis(host='localhost', port=6379, db=0) self.db_config = { 'host': 'localhost', 'user': 'user', 'password': 'password', 'database': 'mydb' .. [코드리뷰] 리뷰 해줄 사람이 없을 때, LLM 활용하기 Disclamer: 이 문서는 사내용 세미나 진행을 위해, 사외에서 취득 가능한 정보만를 활용하여 사외에서 작성되었습니다.◼︎ 한번 더 우리의 현실우리 조직에서는 한 명이 여러 마이크로서비스를 동시에 개발하는 경우가 많습니다.그러다 보면 코드 리뷰를 맡아줄 동료가 부족하거나, 아예 없는 상황도 생깁니다.가까운 동료에게 부탁 할 수도 있지만, 코드 리뷰를 기다리는 시간으로 인해 개발 프로세스에 병목이 발생하기도 합니다. 이런 상황에서는 코드 품질이 개발자 개인의 역량과 습관에 크게 좌우 됩니다.작은 실수나 구조적 문제를 장기간 안고 가는 경우도 많고, 기술 부채가 눈덩이처럼 쌓이기도 합니다.◼︎ AS-IS 지금은 어떻게?우리의 코드 리뷰는 많은 부분이 아래 처럼 돌아갑니다.코드가 돌아가기만 하면 넘어 간다.. [리팩토링] LLM으로 테스트 불가능한 구조를 개선하기 Disclamer: 이 문서는 사내용 세미나 진행을 위해, 사외에서 취득 가능한 정보만를 활용하여 사외에서 작성되었습니다.◼︎ 문제는 테스트할 수가 없다는 것입니다.대부분의 코드에서 가장 흔히 부딪히는 문제는 "테스트할 수 없는 구조"입니다.데이터베이스 연동, 외부 API 호출, 파일 핸들링 등이 코드에 박혀있으면 단위 테스트는 사실상 불가능합니다.이런 문제를 근본적으로 해결하기 위해서는 다음과 같은 활동이 필요합니다.의존성 분리인터페이스 추출추상화 계층 설계이러한 활동은 프로젝트 구조를 충분히 이해하고, 경험이 많은 개발자가 수동으로 직접 해내야 했습니다. 불가능한 것은 아니지만 비용이 크고 시간이 오래 걸리는 활동입니다.이러한 활동을 기반으로 테스트 가능한 구조를 확보하는 리팩토링을, 이제는 LLM을.. [리팩토링] LLM으로 운영 중인 코드, 안전하게 리팩토링하기 Disclamer: 이 문서는 사내용 세미나 진행을 위해, 사외에서 취득 가능한 정보만를 활용하여 사외에서 작성되었습니다.◼︎ 우리의 현실은리팩토링 자체가 어렵거나 힘든 작업은 아닙니다. 하지만 우리가 마주한 환경은 그렇게 쉽지만은 않은 것 같습니다.우리가 마주하는 어려움은 보통 이런 항목들 입니다.코드가 이미 배포되어서 운영 중이다.그런데 이 코드에 테스트 코드가 없거나 있더라도 매우 부족하다.리팩토링을 하다가 서비스 장애가 발생하면, 곧 바로 유관 부서 혹은 현장에서 피드백이 발생한다.일부 프로젝트에서는 불량 유발이나, 설비 고장으로 이어질 수 있다.우리가 이런 상황에서 마음편히 LLM에게 "리팩토링 해줘"라고 요청할 수 있을까요?따라서 운영 중인 코드를 리팩토링하는 것은 "변경 범위를 최소화" + .. [리팩토링] LLM을 사용하여 목적 기반으로 리팩토링 수행하기 Disclamer: 이 문서는 사내용 세미나 진행을 위해, 사외에서 취득 가능한 정보만를 활용하여 사외에서 작성되었습니다.◼︎ 목적 기반 리팩토링: "그냥 고치지 말고, 이유가 있어야 한다"목적 기반 리팩토링(goal-oriented refactoring)이란 용어는 소프트웨어 공학에서 공식적으로 사용하는 용어는 아닙니다.그런데 LLM을 사용하여 리팩토링을 진행하다 보면, 왜 리팩토링의 "목적"이 중요한지 어렵지 않게 체감할 수 있습니다.사내 LLM에게 대규모 코드베이스를 대상으로 리팩토링을 요청하거나, 단순히 "리팩토링 해줘"와 같은 목적이 불분명한 요청을 하면,주어진 맥락과 목적을 스스로 해석한다거나, 갈피를 못잡고 산만해지는 경우를 마주합니다. 이는 본래의 의도와는 다른 방향으로 코드를 변경하는 결.. LLM 성능 한계를 개선하기 위한 방법 (prompt 전략) Disclamer: 이 문서는 사내용 세미나 진행을 위해, 사외에서 취득 가능한 정보만를 활용하여 사외에서 작성되었습니다.◼︎ 왜 이 문서를 쓰게 되었나?최근 새로운 모델의 도입으로 많은 부분이 개선되었지만, 사내에 배포된 LLM은 외부의 최신 모델에 비해 학습 데이터, 파라미터 수, 튜닝 수준이 부족할 수 있습니다. 이로 인해 답변이 모호하거나, 코드가 불완전하거나, 실제 업무 상황과 맞지 않은 경우가 있습니다. 이 문서에서는 사내 LLM의 "충분히 만족스럽지 않은 답변을 어떻게 극복할 것인가?"에 대한 이야기를 나누어 봅니다. 이후에 다루는 주제들에서 사내 LLM을 활용하여 실습을 진행하기 위해서는 이 부분에 대한 고민이 선행되어야 된다고 생각하여 첫 주제로 작성하게 되었습니다. 이후 부터 작성되는 .. 한성 키보드 GK694 매뉴얼 읽어보기 가끔 출장이나 여행을 갈때면, 노트북을 가지고 가기는 부담 스러운 때가 있습니다. 그럴때, 적당한 휴대용 키보드가 하나 있으면 좋겠다는 생각에 GK694를 구입했습니다. 구입하고 보니 키보드는 매우 마음에 듭니다. 특히 마감이 깔끔하고, 키감이 가격대비 나쁘지 않다는 느낌 입니다. 예상치 못한 것은, 생각보다 무겁습니다. 이 키보드는 사무실에 두고, 스마트폰 연결용으로 사용해야겠습니다. 절전 모드 시간 설정하기FN + Z, X, C 버튼으로 절전 모드 시간을 설정할 수 있습니다. 단일 버튼을 누를 때마다, LED 깜빡임으로 설정을 구분하는 것보다 이 설정 방법이 훨씬 마음에 듭니다. 블루투스/2.4GHz 연결하기GK694는 물리 스위치로 블루투스, 2.4GHz 모드를 변경할 수 있습니다. 특이한 점은 .. 이전 1 2 3 4 ··· 13 다음