[챗GPT로 코딩 공부] 앱 개발에 챗GPT 더하기

내일배움캠프 수료생들은 챗GPT를 어떻게 개발 공부에 활용할까요?
Jun 28, 2024
[챗GPT로 코딩 공부] 앱 개발에 챗GPT 더하기
✍🏼
챗GPT, 개발 공부에 있어서 든든한 친구 같은 존재이죠. 내일배움캠프의 수강생들도 혼자 공부할 때에는 챗GPT의 도움을 받고 있는데요. 오늘은 내일배움캠프 수료생들의 챗GPT 경험담을 보고, 여러분의 개발 공부에 적용해봅시다.
요즘 코딩은 챗GPT로 한다는 이야기, 들어보셨나요? 그만큼 챗GPT를 잘 활용하는 것이 중요하다는 의미일텐데요. 앱 개발에서 챗GPT를 사용하는 경우는 크게 다음과 같습니다.
 

1. 코드 작성

가장 주요하면서도 보편적으로 쓰는 경우입니다. 말 그대로, 특정 기능을 수행하는 코드를 만들고 싶을 때 사용합니다. 다만, 어디까지 활용해도 되는가는 순전히 개발자의 역량에 달린 문제이지만, 처음에는 너무 챗GPT에 의존하지 않는 것이 좋습니다. 처음에는 어떻게 만들지도 중요하지만, 왜 이렇게 되는지 아는 것 또한 중요하기 때문입니다.
 
기원: Android Studio에서 bottomnavigationview title을 숨기고 싶은데 어떻게 할 수 있을까? 챗GPT: Android Studio에서 BottomNavigationView의 타이틀을 숨기는 방법은 프로그래밍적으로 제어할 수 있는 기능은 아닙니다. 그러나 BottomNavigationView의 각 항목에 타이틀을 설정하고 있고, 이를 숨기고자 한다면 다음과 같은 방법을 고려할 수 있습니다.
 
  • 타이틀을 비워두기
BottomNavigationView의 각 항목에 빈 문자열을 설정하여 타이틀을 숨길 수 있습니다. 예를 들어, XML에서 각 항목에 app:title=""과 같이 설정합니다.
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/navigation_home" android:icon="@drawable/ic_home" android:title="" /> <!-- 나머지 항목들도 동일하게 처리 --> </menu>
 
  • Custom View 사용
BottomNavigationView의 각 항목을 Custom View로 대체하여 원하는 디자인을 적용할 수 있습니다. 이 경우, 타이틀을 숨기거나 다른 디자인을 적용할 수 있습니다. 하지만 이 방법은 좀 더 복잡하고 많은 작업을 필요로 합니다.
val menu = bottomNavigationView.menu val menuItem = menu.findItem(R.id.navigation_home) menuItem.title = ""
 
위 코드는 Kotlin에서 BottomNavigationView의 항목 중 하나의 타이틀을 비워두는 방법을 보여줍니다. 같은 방법으로 다른 항목들의 타이틀도 비워둘 수 있습니다. 이렇게 하면 BottomNavigationView에서 각 항목의 타이틀이 숨겨집니다.
 
 

2. 코드 해석

위의 코드 작성과는 반대로, 이미 만들어진 코드가 어떤 기능을 수행하는지 알고싶을 때 사용합니다. 그러나 챗GPT에 전적으로 의지하지 않는 것이 좋습니다.
// MyAdapter.kt interface ItemClick { fun onClick(view: View, position: Int) } var itemClick : ItemClick? = null
챗GPT는 아래와 같이 답했습니다. 주어진 코드는 Kotlin에서 MyAdapter라는 클래스 또는 인터페이스를 나타내는 것 같습니다. 이 코드에서 ItemClick이라는 인터페이스를 정의하고, MyAdapter 클래스 또는 인터페이스에 itemClick 변수를 추가하고 있습니다.
  • ItemClick 인터페이스
    • ItemClick 인터페이스는 아이템 클릭 이벤트를 처리하기 위한 것으로 추정됩니다.
    • onClick 함수는 클릭 이벤트가 발생했을 때 호출되어야 하는 함수로, 클릭한 뷰와 해당 아이템의 위치(position)을 전달받습니다.
  • itemClick 변수
    • itemClick은 ItemClick 인터페이스 타입의 변수로, 아마도 아이템 클릭 이벤트를 처리하는데 사용됩니다.
    • 이 변수는 초기에 null로 설정되어 있습니다. 이 변수에 이벤트 처리를 담당할 구현체를 할당할 수 있습니다.
아래는 간단한 예제로 MyAdapter 클래스에 ItemClick을 구현한 예시 코드입니다:
kotlin코드 복사 import android.view.View class MyAdapter { interface ItemClick { fun onClick(view: View, position: Int) } var itemClick: ItemClick? = null // 예시: 아이템 클릭 이벤트가 발생했을 때 호출되는 함수 fun handleItemClick(view: View, position: Int) { // itemClick이 null이 아니면 처리 itemClick?.onClick(view, position) } } // 사용 예시 fun main() { val adapter = MyAdapter() // 아이템 클릭 이벤트 처리를 위한 구현체 설정 adapter.itemClick = object : MyAdapter.ItemClick { override fun onClick(view: View, position: Int) { println("Item clicked at position $position") } } // 아이템 클릭 시 동작 adapter.handleItemClick(View(), 2) }
이 예시에서 handleItemClick 함수를 통해 아이템 클릭 이벤트를 처리하고 있습니다. 이 코드는 실제 Android 앱에서 리사이클러뷰 등의 어댑터에서 사용될 수 있는 패턴을 보여주고 있습니다.
 
 

3. 오류 수정

앱 개발을 하면서 항상 올바른 코드를 작성할 수는 없지요. 가끔씩 무언가를 빼먹거나 잘못 적어서 강제 종료되는 오류가 생기기도 합니다. (실행부터 안 되는 오류들은 Android Studio에서 자체적으로 걸러내니 제외하겠습니다.) 이때 Log에 들어가서 자세히 보시면 어떤 오류가 발생했는지 빨간 글씨로 적혀있는데요. 이걸 챗GPT에게 물어보면 친절하게 알려줍니다.
 
기원: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugCompileClasspath'. 챗GPT:
org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugCompileClasspath' 오류는 Gradle이 프로젝트의 종속성을 해결할 수 없을 때 발생합니다. 이 오류는 종속성을 다운로드하거나 해결하는 동안 발생할 수 있는 여러 가지 문제로 인해 발생합니다.
 
해결 방법은 다음과 같습니다.
  • 인터넷 연결 확인: 종속성을 다운로드하기 위해서는 인터넷 연결이 필요합니다. 인터넷 연결을 확인하고 다시 Gradle 프로젝트를 빌드해보세요.
  • Gradle 설정 확인: 프로젝트의 Gradle 설정 파일에 올바른 저장소(repository)가 있는지 확인하세요. 종속성을 다운로드하는 데 사용되는 Maven 중앙 저장소와 같은 저장소가 Gradle 설정에 포함되어 있는지 확인합니다.
  • 프록시 설정 확인: 경우에 따라 프록시 설정이 Gradle의 종속성 해결을 방해할 수 있습니다. 네트워크 프록시가 설정되어 있는지 확인하고, Gradle 설정에 프록시를 구성해야 할 수 있습니다.
  • Gradle 버전 업데이트: 때로는 Gradle 버전이 낮아서 종속성을 해결하는 데 문제가 발생할 수 있습니다. 최신 버전의 Gradle로 업그레이드하고 다시 시도해보세요.
  • 캐시 및 임시 파일 제거: 종속성 다운로드 중에 캐시된 파일이나 임시 파일이 깨진 경우가 있습니다. Gradle 캐시 및 임시 파일을 제거하고 다시 빌드해보세요.
  • 의존성 충돌 해결: 종속성 간에 충돌이 발생할 수 있습니다. 종속성 그래프를 분석하고 충돌을 해결하세요.
  • 의존성 재설정: 종속성이 올바르게 정의되어 있는지 확인하세요. 종속성 버전이 맞는지 확인하고 필요한 경우 업데이트하세요.
    • 위의 단계를 따라 Gradle 빌드 오류를 해결할 수 있어야 합니다. 그러나 여전히 해결되지 않는 경우에는 더 자세한 오류 메시지와 함께 더 많은 정보를 제공하면 도움이 될 것입니다.
 
 
 

내일배움캠프가 여러분의 러닝메이트가 되어드리겠습니다

내일배움캠프의 많은 수강생들이 부트캠프 생활을 수료하고 현업에서 개발자로 활약하고 있습니다. 내일배움캠프는 모든 운영진이 교육, 특강, 12시간 밀착 케어, 찐한 관리, 인재 채용까지 열과 성을 다해 수강생들의 꿈을 지원하고 있습니다. 수많은 장애물을 넘을 수 있도록 내일배움캠프가 든든한 러닝메이트가 되어드리겠습니다. 내일배움캠프과 함께 여러분의 개발자 여정을 시작하세요.
 
 
CREDIT
글 | 김기원 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
Share article
Subscribe to our newsletter
RSSPowered by inblog