적절한 인격을 갖춘 사람에게서 리뷰를 받아야 적절한 리뷰가 되는데, 공격적이고 적절하지 못한 리뷰를 하는 리뷰어보다 객관적이고 감정이 섞이지 않은 인공지능의 리뷰를 받을 수 있는 좋은 시대가 되었군요
@jinhoshinnhn15 күн бұрын
좋은 사례 공유 감사합니다.
@joonlab9816 күн бұрын
## LLM을 이용한 AI 코드 리뷰 도입기 ### 1. AI 코드 리뷰를 도입하게 된 계기 - 개발자들은 코드 작성 외에도 많은 업무를 처리해야 하기 때문에 상대적으로 코드 리뷰에 소홀할 수 있음. - 좋은 코드를 작성하기 위해 노력하지만 코드 리뷰 시간이 부족한 것이 현실임. ### 2. 기업 사례 분석: 자동 코드 리뷰 도입 현황 - Amazon: LLM 기반 코드 리뷰 도구인 CodeGuru를 사용하고 있음. - GitHub: Microsoft에서 제공하는 LLM 코드 도구인 Copilot을 사용해 자동화된 코드 리뷰를 제공하고 있음. - Coursera, Atlassian, Cognizant, Samsung, Wheel Pros 등 많은 회사들이 자동 코드 리뷰 도구를 도입하고 있음. - 개발자 후기에 따르면 자동 코드 리뷰 도입 후 코드 품질 향상, 코딩 속도 향상, 코드 안정성 향상 효과를 경험했다고 함. ### 3. 아키텍처 및 시나리오 - Meta에서 개발한 LLM 모델인 Llama3 70B를 채택했음. - 오픈소스이며 라이선스 문제가 없음. - 15조 개의 토큰으로 훈련되었으며, 토큰나이저가 매우 크기 때문에 한정된 리소스로 실행시키기에 적합함. - Human Evaluation 부문 벤치마크에서 Llama3가 다른 모델들에 비해 성능이 높음. - 시나리오 1. 사용자가 Pull Request를 생성하면 GitHub Actions를 통해 Runner 내부 클라이언트가 동작하게 됨. 2. 클라이언트는 GitHub에서 Pull Request의 리뷰 대상과 코드 패치들을 가져와서 전처리 과정을 거친 후 모델 서버에 리뷰를 요청함. 3. 모델 서버는 전처리 과정을 거쳐 코드를 리뷰하고, 리뷰 결과를 후처리 작업 후 GitHub에 리뷰 코멘트를 남김. 4. 피드백 결과들을 취합하기 위해 Runner에 띄워져 있는 Post Processor에 코드에 대한 피드백을 전송함. 5. 모든 리뷰가 끝나면 Runner 내부의 Post Processor는 피드백들을 취합해서 후처리 작업을 하고, GitHub에 리뷰 결과들을 취합한 리포트를 코멘트로 남김. ### 4. AI 코드 리뷰 도입기 - 코드 리뷰 도구를 만드는 만큼 코드 리뷰의 기준을 네 가지로 크게 정립했음. - 함수나 메서드가 올바르게 동작하는 상태인지 - 런타임 에러 가능성은 없는지 - 코드가 더 나아질 수 있는지 - 보안상 이슈가 없는지 - 네 가지 리뷰 기준을 검사하도록 시스템 프롬프트를 작성하고, 한국어를 출력하도록 제한하는 프롬프트를 추가해야 했음. - LLM은 답변이 정말 다양하게 나오는데, LLM이 이상한 답변을 주지 않도록 프롬프트 엔지니어링 기법 중 하나인 역할 부여를 통해 Hallucination을 크게 줄일 수 있었고, 다양한 출력 형식이 나오지 않도록 출력 제한을 요청하는 시스템 프롬프트도 설정해야 했음. - 모델에게 명령할 시스템 프롬프트를 정하고, 모델이 실행될 서버를 구축해야 했는데, AI Platform에서 모델 서빙을 쉽게 할 수 있도록 구축해 놓았기 때문에 Inference Service 컴포넌트를 Kubernetes 상에 단순히 띄워 놓으면 모델과 REST API를 통해 통신이 가능했음. - 그다음 OSS에서 Pull Request, GitHub Action을 통해 클라이언트를 트리거할 수 있는 동작을 만들 수 있도록 action.yaml 스크립트를 작성해야 했음. 이 스크립트는 트리거가 되면 Runner 내부에서 클라이언트가 동작하도록 하는 스크립트임. - 자동 리뷰 시스템을 도입하고자 하는 repository에 Runner를 띄우고 위 GitHub Action workflow 스크립트를 삽입하게 되면 자동 리뷰 시스템을 도입할 수 있도록 했음. 이 스크립트를 리뷰 받고자 하는 repository 저장소 최상위 경로에서 .github/workflows 폴더를 만들어 주고 이 안에 yaml 파일 형식으로 이 스크립트를 넣어주면 POI의 자동 코드 리뷰를 사용하게 됨. - 실제 리뷰 예시: HTTP 통신을 하는 코드에서 Thread.sleep을 사용하는 코드에 대해 기존 코드는 스레드를 블로킹해서 아무 작업도 하지 않고 에러 핸들링이 어려운 코드인 반면, 제안받은 코드는 Akka와 Concurrent 모듈을 추천해 줌으로써 높은 수준의 추상화가 가능하고 에러 처리에 대해 기능을 가짐. 또한 기존 코드는 스레드풀 환경에서 아무 작업도 수행하지 않아 리소스가 비율적으로 사용될 수 있는 반면, 추천받은 코드는 비동기적으로 동작해서 블로킹 없이 이벤트를 처리할 수 있음. 에러 핸들링의 경우에도 더 안전한 코드를 위한 조치를 제안하는 것을 확인하실 수 있음. - 리뷰 결과 리포트는 총 세 가지 항목으로 이루어져 있음. - 리뷰 기준의 각 항목에서 몇 건이 해당되는지 제공해 줌. 작성한 코드의 개선 방향을 파악하고 팀원들과 논의해 볼 수 있음. - 이슈들을 요약해서 제공해 줌으로써 다시 한번 이슈들에 대해 점검해 볼 수 있음. - 작성한 코드에서 적용 가능한 외부 개발자 도구나 플랫폼과 같은 솔루션을 추천해 줌. - 시범적으로 사용해 본 팀원들의 후기: 도입을 함으로써 코드 개발 문화가 훨씬 향상되었음을 느꼈음. ### 5. What's Next? - 최종적으로 모든 코드 에러를 개발 초기 단계에서 탐지하는 것을 목표로 함. - 외부 플랫폼 취약점 방지 사항을 파인튜닝해서 적극적으로 추천하는 모델로 발전시키고자 함. (By Joon's KZread Analyzer)
Пікірлер
잘 모르는거같은데? 인터넷에 나도는거 읽는수준이잖아
3:50
값진 영상 감사하빈다.
적절한 인격을 갖춘 사람에게서 리뷰를 받아야 적절한 리뷰가 되는데, 공격적이고 적절하지 못한 리뷰를 하는 리뷰어보다 객관적이고 감정이 섞이지 않은 인공지능의 리뷰를 받을 수 있는 좋은 시대가 되었군요
좋은 사례 공유 감사합니다.
## LLM을 이용한 AI 코드 리뷰 도입기 ### 1. AI 코드 리뷰를 도입하게 된 계기 - 개발자들은 코드 작성 외에도 많은 업무를 처리해야 하기 때문에 상대적으로 코드 리뷰에 소홀할 수 있음. - 좋은 코드를 작성하기 위해 노력하지만 코드 리뷰 시간이 부족한 것이 현실임. ### 2. 기업 사례 분석: 자동 코드 리뷰 도입 현황 - Amazon: LLM 기반 코드 리뷰 도구인 CodeGuru를 사용하고 있음. - GitHub: Microsoft에서 제공하는 LLM 코드 도구인 Copilot을 사용해 자동화된 코드 리뷰를 제공하고 있음. - Coursera, Atlassian, Cognizant, Samsung, Wheel Pros 등 많은 회사들이 자동 코드 리뷰 도구를 도입하고 있음. - 개발자 후기에 따르면 자동 코드 리뷰 도입 후 코드 품질 향상, 코딩 속도 향상, 코드 안정성 향상 효과를 경험했다고 함. ### 3. 아키텍처 및 시나리오 - Meta에서 개발한 LLM 모델인 Llama3 70B를 채택했음. - 오픈소스이며 라이선스 문제가 없음. - 15조 개의 토큰으로 훈련되었으며, 토큰나이저가 매우 크기 때문에 한정된 리소스로 실행시키기에 적합함. - Human Evaluation 부문 벤치마크에서 Llama3가 다른 모델들에 비해 성능이 높음. - 시나리오 1. 사용자가 Pull Request를 생성하면 GitHub Actions를 통해 Runner 내부 클라이언트가 동작하게 됨. 2. 클라이언트는 GitHub에서 Pull Request의 리뷰 대상과 코드 패치들을 가져와서 전처리 과정을 거친 후 모델 서버에 리뷰를 요청함. 3. 모델 서버는 전처리 과정을 거쳐 코드를 리뷰하고, 리뷰 결과를 후처리 작업 후 GitHub에 리뷰 코멘트를 남김. 4. 피드백 결과들을 취합하기 위해 Runner에 띄워져 있는 Post Processor에 코드에 대한 피드백을 전송함. 5. 모든 리뷰가 끝나면 Runner 내부의 Post Processor는 피드백들을 취합해서 후처리 작업을 하고, GitHub에 리뷰 결과들을 취합한 리포트를 코멘트로 남김. ### 4. AI 코드 리뷰 도입기 - 코드 리뷰 도구를 만드는 만큼 코드 리뷰의 기준을 네 가지로 크게 정립했음. - 함수나 메서드가 올바르게 동작하는 상태인지 - 런타임 에러 가능성은 없는지 - 코드가 더 나아질 수 있는지 - 보안상 이슈가 없는지 - 네 가지 리뷰 기준을 검사하도록 시스템 프롬프트를 작성하고, 한국어를 출력하도록 제한하는 프롬프트를 추가해야 했음. - LLM은 답변이 정말 다양하게 나오는데, LLM이 이상한 답변을 주지 않도록 프롬프트 엔지니어링 기법 중 하나인 역할 부여를 통해 Hallucination을 크게 줄일 수 있었고, 다양한 출력 형식이 나오지 않도록 출력 제한을 요청하는 시스템 프롬프트도 설정해야 했음. - 모델에게 명령할 시스템 프롬프트를 정하고, 모델이 실행될 서버를 구축해야 했는데, AI Platform에서 모델 서빙을 쉽게 할 수 있도록 구축해 놓았기 때문에 Inference Service 컴포넌트를 Kubernetes 상에 단순히 띄워 놓으면 모델과 REST API를 통해 통신이 가능했음. - 그다음 OSS에서 Pull Request, GitHub Action을 통해 클라이언트를 트리거할 수 있는 동작을 만들 수 있도록 action.yaml 스크립트를 작성해야 했음. 이 스크립트는 트리거가 되면 Runner 내부에서 클라이언트가 동작하도록 하는 스크립트임. - 자동 리뷰 시스템을 도입하고자 하는 repository에 Runner를 띄우고 위 GitHub Action workflow 스크립트를 삽입하게 되면 자동 리뷰 시스템을 도입할 수 있도록 했음. 이 스크립트를 리뷰 받고자 하는 repository 저장소 최상위 경로에서 .github/workflows 폴더를 만들어 주고 이 안에 yaml 파일 형식으로 이 스크립트를 넣어주면 POI의 자동 코드 리뷰를 사용하게 됨. - 실제 리뷰 예시: HTTP 통신을 하는 코드에서 Thread.sleep을 사용하는 코드에 대해 기존 코드는 스레드를 블로킹해서 아무 작업도 하지 않고 에러 핸들링이 어려운 코드인 반면, 제안받은 코드는 Akka와 Concurrent 모듈을 추천해 줌으로써 높은 수준의 추상화가 가능하고 에러 처리에 대해 기능을 가짐. 또한 기존 코드는 스레드풀 환경에서 아무 작업도 수행하지 않아 리소스가 비율적으로 사용될 수 있는 반면, 추천받은 코드는 비동기적으로 동작해서 블로킹 없이 이벤트를 처리할 수 있음. 에러 핸들링의 경우에도 더 안전한 코드를 위한 조치를 제안하는 것을 확인하실 수 있음. - 리뷰 결과 리포트는 총 세 가지 항목으로 이루어져 있음. - 리뷰 기준의 각 항목에서 몇 건이 해당되는지 제공해 줌. 작성한 코드의 개선 방향을 파악하고 팀원들과 논의해 볼 수 있음. - 이슈들을 요약해서 제공해 줌으로써 다시 한번 이슈들에 대해 점검해 볼 수 있음. - 작성한 코드에서 적용 가능한 외부 개발자 도구나 플랫폼과 같은 솔루션을 추천해 줌. - 시범적으로 사용해 본 팀원들의 후기: 도입을 함으로써 코드 개발 문화가 훨씬 향상되었음을 느꼈음. ### 5. What's Next? - 최종적으로 모든 코드 에러를 개발 초기 단계에서 탐지하는 것을 목표로 함. - 외부 플랫폼 취약점 방지 사항을 파인튜닝해서 적극적으로 추천하는 모델로 발전시키고자 함. (By Joon's KZread Analyzer)
와우네요.. 소중한 개발경험 공유 감사합니다
적용 사례 공유 감사합니다
코드 리뷰 프롬프트를 받을 수 있을까요?
네이버 언제 망함?
근데 믿을만하긴한가요? 아니면 돌리다가 하나라도 잡아낸적 없는거 나오면 이득이다란 생각으로 쓰나요
코드 리뷰를 받지 못하는 1인개발자에게 큰 도움이 되겠네요. 좋은 사례 공유 감사합니다!
멋집니다!
위 영상에서, 사내 발표영상을 외부로 공개하다보니, 제가 발표하면서 미쳐 바꾸지 못한 용어들이 있는데요, n2c = 구축한 쿠버네티스 환경 oss = github 이렇게 이해하시면 됩니다!
연구 개발만하다가 이렇게 적용 사례를 보니 정말 신박합니다. 구축부터 활용까지 야무지게 하네요.
너무 좋은 프레젠테이션이예요
정말 멋지시네요!! 인사이트 얻고 갑니다. 이렇게도 활용이 가능하군요!
너무 좋은 영상 공유 감사드립니다. 큰 도움이 될 것 같아요!
누가 제 얘기 하는거 같은 제목에 이끌려 들어왔습니다. 감사합니다!
왜케 떠세요?
갓세규 오오
레전드입니다 감사합니다
혹시 오픈소스로 올라갔는지 궁금합니다~
영상 잘 보았습니다. 궁금증이 조금 생기는데 답변해주실 수 있으실까요? 1. 피그마 구독은 엔터프라이즈 계정을 사용하고 있는지요? 2. DSAD 피그마 플러그인을 외부인이 사용해볼 수 있을까요? 3. DSAD repo 구성이 궁금한데 찾아 볼 수 있을까요? 감사합니다.
2년 전즈음에 듣고갔는데, 요즘 htmx 때문에 다시 공부할 필요가 있어서 또 들으러 왔네요. 또 잘 듣고, 배우고 갑니다! 감사합니다~
굉장히 흥미로운 주제인 것 같습니다. 한가지 궁금한 점은 암호화된 암호문도 기존의 데이터가 가졌던 패턴을 그대로 가지고 있는가입니다. CNN을 학습시키려면 데이터속의 패턴을 찾아내야 하는데, 암호화된 후에도 이런 패턴이 찾아지는지 궁금합니다.
개추박고간다
좋은 Typescript 강의 감사합니다. 한층 더 Typescript에 깊은 이해가 되는 것 같습니다.
흥미로운 내용 감사합니다. 실무에서 사이드카를 쓰고 있는데, 네이티브 사이드카로 전환이 가능한지 확인해봐야겠어요ㅎㅎ
자세하게 설명해 주셔서 감사합니다❤
잘 들었습니다~
어떤값을 가질 수 있는 구조이며 그 구조를 유지한채 그 값에 함수를 적용할 수있다면 펑터
매우 좋은 강의입니다. 감사합니다!
vue2에서 flicking 잘 안되던데 모두 지원한다는 것이 참 어려운게 아닌가 싶은데...
오😮
수식이나 알고리즘 힌트라도 좀 주시징
게임 중계에도 사용해서 하이라이트를 자동으로 뽑아주면 편하겠다
오 이런게 된다고? 신기하네
😊
제목 센스가 장난아니에요😀
감동의 도가니탕...
5년이 지난 영상임에도 배울게 아직 많은 영상입니다!!
일목요연한 강의 잘보았습니다.
일본 스마트플레이스 언제부터 사용할 수 있나요??
전체 영상이 없나요..?
안녕하세요. NAVER D2 담당자입니다. 글 전문은 링크 : d2.naver.com/helloworld/9581727 에서 보실 수 있습니다.
17초 인가요?
아니 여기서 끊으시는건 ㅋㅋㅋㅋ 관련링크 주세요 ㅠㅠ
안녕하세요. NAVER D2 담당자입니다. 글 전문은 링크 : d2.naver.com/helloworld/9581727 에서 보실 수 있습니다.
@@naver_d2 감사합니다!
전체 영상은 어디서보나요?
안녕하세요. NAVER D2 담당자입니다. 해당 영상은 블로그 글 소개를 위한 트레일러 영상으로 글 전문을 읽어주시면 됩니다. 글 전문은 링크 : d2.naver.com/helloworld/9581727 에서 보실 수 있습니다. :)
좋은 강의 감사합니다
지역과 세대에 따라서도 그렇고, 사회가 발전하면서 항상 변화하는 한국어를 분석하는 게 쉽지 않은데 그런데, 한국어의 특징 자체를 이해해서 만든 이러한 방식은 급식체나, 아이들의 카톡 데이터, 지역 사투리를 분석하는데 굉장히 유용할 것 같습니다.