Jan 8, 2024 - Gradle 6.x to 8.x 업그레이드 가이드

Gradle 6.x에서 8.x로의 업그레이드 시, 여러 변경 사항이 있습니다.

아래는 주요 변경 내용입니다:

1. 의존성 관리 변경

1.1 compileimplementation

Gradle 8.x에서는 compileimplementation으로 변경되었습니다.

이전:

compile 'group:artifact:version'

변경 후:

implementation 'group:artifact:version'

1.2 api → implementation (옵션)

Gradle 5.x 이상에서 도입된 api는 그룹 간 의존성을 전파시키는 역할을 했습니다. 8.x에서는 이를 implementation으로 대체하였습니다.

이전:

compile 'group:artifact:version'

변경 후:

implementation 'group:artifact:version'

2. 테스트 의존성 변경

2.1 testCompile → testImplementation

테스트 의존성을 선언할 때 testCompile은 testImplementation으로 변경되었습니다.

이전:

testCompile 'group:artifact:version'

변경 후:

testImplementation 'group:artifact:version'

3. 기타

3.1 compileOnly는 그대로 유지

Gradle 8.x에서도 compileOnly는 변경되지 않았습니다.

Jan 7, 2024 - jenv를 사용하여 여러 Java 버전 관리하기

1. jenv 설치:

Homebrew를 이용하여 jenv를 설치합니다.

brew install jenv

Homebrew를 사용하지 않는 경우, jenv GitHub 페이지에서 설치 방법을 확인하세요.

2. Java 버전 추가:

이미 설치된 Java 버전들을 jenv에 추가합니다.

jenv add /Library/Java/JavaVirtualMachines/<Java 버전>/Contents/Home

예: Java 11 추가

jenv add /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

3. 전역(default) 버전 설정:

기본적으로 사용할 Java 버전을 설정합니다.

jenv global 11.0

‘11.0’은 설치한 Java 버전에 맞춰 수정합니다.

4. 로컬 프로젝트 설정 (선택 사항):

특정 프로젝트에만 특정 Java 버전을 사용하려면 프로젝트 폴더로 이동하여 아래 명령을 실행합니다.

jenv local 11.0

5. Java 버전 확인:

설정이 제대로 되었는지 확인하기 위해 다음 명령을 사용합니다.

java -version

jenv로 Java 버전 변경 시 권한 문제 해결:

Java 버전 변경 시 “Permission denied” 오류가 발생하는 경우, 권한 문제를 해결하기 위해 다음 명령을 실행합니다.

sudo chown -R $(whoami) ~/.jenv

다시 Java 버전 설정:

이제 Java 버전을 다시 설정할 수 있습니다.

jenv local 11.0

Java 버전 확인:

변경된 Java 버전이 표시되는지 확인합니다.

java -version

위 단계를 따라 진행하면 jenv를 사용하여 여러 Java 버전을 효과적으로 관리하고, 프로젝트별로 다른 버전을 사용할 수 있습니다.

Nov 27, 2023 - 인공지능 제대로 일 시키기

얼마전에 개발자에게 두려웠던 나머지… 라는 유투브 내용을 감명깊게 보았습니다.

YouTube Video

위 유투브 동영상은 프롬프트에서 원하는 걸 명확하게 요구해야하거나 역활부여에 대한 프롬프트 팁에 대한 설명과 함께, 챗GPT 를 잘 활용할 수 있는 내용들의 유익한 유투브 내용이었습니다.

그러한 부분이, 인공지능 제대로 일 시키기 라는 책에서도 잘 나오고 있습니다.

WORK_AI

5년 뒤에는 과연 개발자가 할일이 있을까 싶을 정도로, 현재 챗GPT 가 매우 좋은 코드 컨밴션을 가지고 코드를 작성하며,

개념적인 내용이나, 여러 디자인패턴들을 잘 사용하고 있습니다.

저는 일을 할 때, 챗GPT 를 매우 많이 사용합니다.
단순 작업을 할때도,
혹은 어려운 작업을 할때도 챗GPT 를 잘 사용합니다.

내가 원하는 결과를 얻기 위해, 적어도 3번 이상 같은 질문을 해야하는데, 이 책을 읽고 나서, 좀더 원하는 방법을 잘 찾는 노하우를 얻게 되었습니다.

책에 나오는 기본 단계 프롬프트 엔지니어링의 정리는 다음과 같습니다.

  1. 구체적으로 작성할 것
  2. 프롬프트를 작성하려는 배경을 잘 설명할 것
  3. 기대하는 응답에 대한 예시를 추가할 것 (이것은 예시를 그대로 사용하는 단점이 있을 수 있습니다. ㅠㅜ)
  4. 잘 사용되지 않거나 동응이의어가 있는 경우에 대한 정의 등을 사전에 정리함.
  5. 문법적 오류, 모호성을 제거함.
  6. 최대한 간결하게, 토큰화할 수 있게 필요한 정보가 누락되지 않게 단어를 잘 정리함.
  7. 하이퍼파라미터 튜닝 (이 책의 가장 중요한 포인트!)
  8. 반복 질문, 7번 항목을 이용하여, 동일한 질문을 조금씩 튜닝해서 원하는 겨로가에 최대한 맞출 수 있도록 처리함.
  9. 불필요한 정보를 제외하여 원하는 응답의 범위를 조절함.

직업 상 해외 이탈리아 업체들과 이메일로 소통을 해야하는 경우가 많은데, 이 때도 챗GPT 를 자주 사용합니다. ‘이러이러한 내용을 비지니스 이메일 영어로 작성해줘’ 라는 한글을 요청을 ‘비지니스 이메일’을 한글로 작성해주거나, ‘영어’ 로 이상하게 번역하는 경우가 작성을 하는 경우가 많고, ‘영어로 작성된 비지니스 이메일을’ 이라고 해도, 한글로 적다보니, 한글로 작성하는 경우가 많았습니다.

그런데, 프롬프트 방법을 알게되어,

비지니스 이메일을 작성해줘 {영어로 작성}

로, 조금 더 명확하게 명령을 내릴 수 있게 되어, 업무의 편의성이 증가되었습니다.
이 책을 읽으면서, 프롬프트에 대해 조금 더 학습할 수 있었습니다.

아직 {결과{앞의 프롬프트와 동일}} 과 같은 패턴을 동일하게 하는 법보다, 그냥 새롭게 동일한 내용을 챗GPT 에게 물어보는 것이 더 익숙하지만, 책에 내용은 30% 정도 그림 생성 AI 쪽에 대한 프롬프트를 할애하고 있어, 그 쪽에 관심이 있는 책에서 알려준 프롬프트 마켓플라이스를 좀더 검색해보면서, 좋은 프롬프트 엔지니어링을 배워야할 듯 합니다.