주절주절

경험담] GhatGPT vs Claude vs Gemini 코딩 체감 비교

  • -
728x90
반응형

현재 회사에서는 GhatGPT vs Claude vs Gemini를 다 사용하고 있다.

 

GhatGPT-4o vs Claude 3.5 Sonnet vs Gemini 1.5 Pro

 

총 이렇게 사용을 하고 있는데 체감상 프로그래밍하는데 있어서 좀 더 나은 플랫폼은 어떤건지 궁금하기도 했다.

 

아래는 간단한 에러(?)를 잡는 예시를 총 3개의 플랫폼에 똑같이 질문했다

 

다만 역할을 정해주는 등의 프롬프트 없이 테스트를 해봤다

 

 

문제

plugins {
    id 'org.springframework.boot' version '2.6.8'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.group'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    runtimeOnly 'com.h2database:h2'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

 

간단한 gradle 빌드 파일의 내용이다. Intelij IDE에서 실행하면 tasks.named 안의 useJUnitPlatform()에 다음과 같은 에러가 뜬다.

 

No candidates found for method call useJUnitPlatform.

 

이 부분을 각각 어떤 결과를 보여주는지 살펴보자.

 

질문

plugins {
id 'org.springframework.boot' version '2.6.8'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

group = 'com.group'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.junit.jupiter:junit-jupiter-engine' // Add this line
}

tasks.named('test') {
useJUnitPlatform()
}

해당 코드에서     useJUnitPlatform() 에 대해서 설명해주고 IDE에 빨간 줄이 있으면서 다음과 같은 내용이 있는데 해결 방법을 알려줘
No candidates found for method call useJUnitPlatform.

 

 

ChatGPT - 4o

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.3'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.3'
}


tasks.withType(Test) {
    useJUnitPlatform()
}

===== 전체 코드 =====

plugins {
    id 'org.springframework.boot' version '2.6.8'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.group'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    runtimeOnly 'com.h2database:h2'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.3'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.3'
}

tasks.withType(Test) {
    useJUnitPlatform()
}

 

GPT 같은 경우 버전을 명시했다 왜 5.9.3을 추천했을까란 궁금증때문에 Maven Repository에 들어가서 확인해봤으나 이유를 모르겠다

5.9.3이 사용 조회수가 많은 것도 아닌데 말이다...? (최신 버전은 5.11.4이다.)

 

또한 tasks.withType(Test)로 변경을 했는데 보통 모든 테스트에 대한 설정을 저렇게 하는데 아마도 큰 허용 범위로써 설정을 하면 사용자의 요구에 대한 해결을 빠르게 할 수 있어서 저런 답변을 하지 않았을까 싶다

 

하지만 IDE에서는 불필요한 테스트에 대한 경고(?)를 날려준다

 

 

Claude

plugins {
    id 'org.springframework.boot' version '2.6.8'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.group'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    runtimeOnly 'com.h2database:h2'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.junit.jupiter:junit-jupiter-engine'
}

test {  // tasks.named('test') 대신 이렇게 변경
    useJUnitPlatform()
}

 

테스트에 대한 버전 명시를 하지 않았고 테스크에 대해서도 이름으로 명시했다.

 

 

Gemini 1.5 pro 

dependencies {
    // ... other dependencies ...
    testImplementation 'org.junit.jupiter:junit-jupiter-engine' 
}

 

잼미니는 너무 심플하게 대답했다... 장황한 설명을 다 제외하고 해결법을 위와 같이 의존성 주입에 대한 명시만 해놨다..

 

 

 

결론

위는 간단한 예시를 보여준 것 뿐이고 실질적으로 코딩에 대한 부분에 있어서는 체감상 Claude가 한수위인 것 같다.

 

 

반응형

'주절주절' 카테고리의 다른 글

이직 일기 001] 너무 짜증난다  (1) 2022.08.24
회고] TIL 스터디 회고  (0) 2022.07.03
회사 내에 스터디를 계획하다.  (0) 2022.06.01
이직 후기] 이직이란 어렵다.  (0) 2021.11.08
TEST  (0) 2019.11.13
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.