Programming (8) 썸네일형 리스트형 LLM을 사용한 AI 코드 리뷰 이야기 - NAVER Engineering day 2024 많은 회사에서 추구하는 개발 문화에서 코드 리뷰는 늘 빠지지 않고 나오는 이야기이다. 하지만 이러한 문화를 성공적으로 정착시키기는 정말 어려운데, 코드 리뷰를 반복하다 보면 단순한 반복 업무가 되어 실제로 그 의미가 퇴색되는 경우가 많은 것 같다. 이러한 코드 리뷰 문화 개선을 위해 많은 기업에서 근래 LLM을 통한 AI 코드 리뷰를 도입하고 있다. 다음과 같은 서비스를 통해 AI 코드 리뷰를 도입할 수 있다.AWS CodeGuruGithub Copilot 다만 비용이 발생하기 때문에 검증되지 않은 방법을 섣불리 도입을 결정하기 어려운 것도 사실이다. 그래서 관련해서 정보를 찾아보던 중, 네이버 엔지니어링 데이에서 최근에 LLM AI 코드리뷰 도입에 대해 발표했던 유튜브 영상이 있어 이를 정리해보.. DDD(Domain Driven Design) - [NHN FORWARD 22] DDD 뭣이 중한디? 최근 유튜브를 통해 다양한 기술 관련 내용을 보고 있던 중, 알고리즘이 DDD(Domain-Driven Design) 관련 영상을 추천해 주었다. DDD를 처음 접한 것은 오래전 회사의 다른 부서 팀원과 솔루션 개발 방향에 대해 이야기하던 중이었는데, 당시에는 개발방법론으로서 DDD를 접했지만, 자세히 알지 못해 여러 아티클을 찾아보았던 기억이 난다. 당시에는 단순히 논리적인 영역에서 도메인을 나누어 개발하는 것으로만 이해했었고, 이는 이미 많은 개발자들이 자연스럽게 사용하는 방법론이라고 생각했었다. 하지만 이번에 유튜브에서 본 영상을 통해 DDD의 주요 포인트를 다시 생각해 보게 되었고, 이를 정확히 이해할 수 있었다. 이 영상은 DDD를 명확하게 설명해 주는 아주 좋은 자료라고 생각되어 그 내용을.. JDK Vender 확인 명령어 기존에는 사실 Oracle JDK만 사용하며, 간혹 IBM JDK를 사용했으나, Oracle JDK의 유료화로 OpenJDK로 이동하면서 Oracle뿐이 아닌 Azul와 같은 여러 Vender의 JDK를 쓰는 일이 많아졌다. 고객사 지원 시, OS에 탑재된 JDK의 배포사와 같은 내용을 알기 위한 간단한 명령어를 찾아보았다. java -XshowSettings:all -version 위 명령어를 쓰면, 자세한 JDK 버전과 배포된 Vender사 또한 알 수 있다. 다들 어떤 버전의 JDK가 설치되었는지 헤메는 일이 없기를 바란다. 무야호~ Json 타입별 간편 Convert(ObjectMapper) Restful API를 사용하여 Request, Response를 보내고 받다보면, 각 API에서 사용하는 파라메터의 타입별로 변환해줘야하는데,, 회사에서 쓰는 Util을 분석하다보니, 결국 사용하는 변환 방식은 동일한 것임을 발견했다. 방법은 어렵지 않더라, Request Parameter => Json Message // Request Param DataMap paramMap = new HashMap();// JSON 파싱 (Java 용 JSON 라이브러리(Jackson)ObjectMapper om = new ObjectMapper();// 어떤 타입을 넣던지, 자동으로 변환.// Map이 아니라 List, List>, Map> 도 마찬가지로 잘 처리한다.om.writeValueAsBytes(p.. JAVA - Classpatch 지정 시 오류 발생 해결법 오늘 콘솔창에서 자바 컴파일 및 실행할 일이 생겨서 오랜만에 cmd창과 노트패드로 원시코딩 하던 중.. 참조한 lib를 찾지 못해서 classpatch를 지정해줘야 할 일이 생겼다.그래서 아래와 같이 cp 지정 후, 시도헀는데 엉뚱하게도 정상적으로 실행되던 class가 실행이 되지 않아서 알고보니.. java -cp "./*" test.Test 위처럼 하면 안되고 cp 경로의 마지막에 꼭 " ; " 를 붙여줘야한다. 그래도 처리가 안되면, 환경변수에 잡혀있는 java classpatch에 ;가 붙어있지 않아서일 수 있으니 java-cp ";./*;" test.Test 위와 같이 시도해보는것도 나쁘지 않을 것 같다. C언어 - 분기문 (goto, break, continue, return) C언어 분기문의 종류 4개를 간단한 예제로 알아보겠다. #include int main() { int num = 0; retry: printf("1 : goto \n"); printf("2 : break \n"); printf("3 : continue \n"); printf("4 : return \n"); while (1) { printf("Input : "); scanf("%d", &num); if(num == 2) { break; } switch(num) { case 1: goto retry; .. C언어 - 비트연산자 / 연산자 먼저 비트연산부터 알아보자. 처리속도 : 비트연산 > 일반연산 종류1. 논리 연산자2. shift(시프트) 연산자 위 표 하나로 종결한다. 추가로 ~ (NOT)의 연산의 경우 *부호비트가 반전된다. (부호비트란? : signed 자료형의 경우, 맨~ 왼쪽에 첫번째 비트 하나를 음수(-)인지 정수인지 판단하는 비트가 존재한다.)#include int main(){ int num = 0; printf("typing num : "); scanf("%d", &num); printf("%d", ~num); return 0;}더보기더보기## 결과 값 1 ##typing num : -2 .. C언어 - switch문 C 언어에서의 switch문 사용 방법은 아래와 같다. #include int main(){ int num = 0; printf("typing 1 ~ 3 : "); scanf("%d", &num); switch(num) { case 1: printf("num is 1"); break; case 2: printf("num is 2"); break; case 3: printf("num is 3"); break; default: printf("num not in (1,2,3)"); } .. 이전 1 다음