[챗GPT로 코딩 공부] 질문으로 GPT 학습하기

내일배움캠프 수료생들은 챗GPT를 어떻게 개발 공부에 활용할까요?
Jul 08, 2024
[챗GPT로 코딩 공부] 질문으로 GPT 학습하기
✍🏼
챗GPT, 개발 공부에 있어서 든든한 친구 같은 존재이죠. 내일배움캠프의 수강생들도 혼자 공부할 때에는 챗GPT의 도움을 받고 있는데요. 오늘은 내일배움캠프 수료생들의 챗GPT 경험담을 보고, 여러분의 개발 공부에 적용해봅시다.
 

질문으로 GPT 학습하기

GPT는 이전 대화 기록을 기억합니다. 그렇기 때문에 답변을 받고 그에 이어서 추가적인 질문을 하는 것도 도움이 많이 됩니다. 꼬리에 꼬리를 무는 질문을 하는데요, 주로 물어봤는데 답변이 명쾌하지 않거나 이해가 잘 안되었을 때, 모르는 단어들이 있을 때 추가적으로 질문을 합니다.
 
다음은 제가 최근에 나눈 대화목록입니다.
본인:
@Composable ... /// 프로젝트 코드 생략 ... }
여기서 박스는 애니메이션 없이 밑에 칼럼은 애니메이션 있게 구현하고 싶은데, 박스가 켜지고 꺼짐에 따라 애니메이션이 확확 온오프 돼서 아래 칼럼 애니메이션이 안보이는듯
 
GPT:
BaseBottomSheet 함수 안의 AnimatedVisibility는 박스 전체에 적용되어 있고, 해당 애니메이션은 박스의 가시성을 제어합니다. 그러므로 현재 구현에서는 박스가 켜지고 꺼짐에 따라 박스 안의 모든 컨텐츠가 함께 애니메이션됩니다.
애니메이션을 다르게 적용하려면, 박스와 칼럼을 따로 처리해야 합니다. 박스를 표시하는 애니메이션을 AnimatedVisibility로 유지하되, 칼럼의 애니메이션은 AnimatedVisibility 내부에 따로 구현해 보세요. 아래는 예시입니다:
Box( modifier = Modifier .clickable(onClick = onDismiss) .fillMaxSize() .background( ButterColor.black.copy(alpha = 0.4f) ), contentAlignment = Alignment.BottomCenter ) { // 애니메이션을 가진 컬럼 ... //프로젝트 코드 생략 } } } }
위 코드에서 AnimatedVisibility는 전체 칼럼을 감싸고 있으며, 이렇게 함으로써 박스의 가시성 변화에 상관없이 칼럼 내부의 애니메이션이 별도로 동작하게 됩니다. 이러한 구성은 칼럼의 애니메이션이 박스와는 독립적으로 동작할 수 있도록 합니다.
 
본인:
val (editSheetVisible, setEditSheetVisible) = rememberSaveable { mutableStateOf(false) } ButterBottomSheet.TextField( isVisible = editSheetVisible, defaultText = "", header = "질문 수정하기", hint = "수업과 관련된 질문을 등록해 주세요.\\n" + "질문은 답변과 함께 ‘질문하기’에 게시됩니다.", buttonText = "수정하기" ){ setEditSheetVisible(false) }
이게 다른 곳에서 이렇게 사용하기 때문에 컬럼 애니메이션이 동작해도 박스는 없어서 확확 꺼지고 켜짐
 
GPT:
이해했습니다. 이 경우에는 ButterBottomSheet.TextField 함수를 호출하는 곳에서 칼럼 애니메이션은 동작하지만, 박스는 없어지므로 애니메이션 효과가 보이지 않습니다.
문제를 해결하기 위해 ButterBottomSheet.TextField 함수 내에서 전체 박스를 유지하면서 필요한 경우에만 칼럼을 보이거나 감출 수 있도록 구성할 수 있습니다. 이를 위해서는 박스의 가시성을 바탕으로 칼럼을 보이거나 감출 수 있도록 하면 됩니다.
아래는 해당 함수의 수정된 버전입니다:
@Composable fun TextField( isVisible: Boolean, defaultText: String, header: String, hint: String, buttonText: String, onDismiss: () -> Unit ) { BaseBottomSheet( visible = isVisible, closeIconVisible = true, header = BottomSheetTitle.Default(header), onDismiss = onDismiss ) { // 박스 내부 컬럼은 isVisible에 의해 보이거나 감춰집니다. if (isVisible) { Column( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { Text( text = hint, style = ButterTheme.typography.body2R, textAlign = TextAlign.Center ) Spacer(modifier = Modifier.height(16.dp)) // 이 부분에 TextField 등의 입력 필드를 넣으세요. Spacer(modifier = Modifier.height(16.dp)) // 수정하기 버튼 Button( onClick = onDismiss, modifier = Modifier.fillMaxWidth() ) { Text(text = buttonText) } } } } }
위 코드에서 isVisible 값에 따라 BaseBottomSheet가 보이거나 감춰집니다. 따라서 해당 함수를 호출할 때 editSheetVisible 값을 이용하여 박스 전체의 가시성을 제어할 수 있습니다. 이렇게 하면 칼럼의 애니메이션이 동작해도 박스가 계속 보이게 되므로, 원활한 애니메이션 효과를 얻을 수 있습니다.
 
본인:
저 box가 칼럼이 올라올때 뒤 배경 어둡게 해주는 역할이라 둘을 나눌 순 없을듯
 
GPT:
그렇다면 …. //이하 생략
 
이처럼 GPT와 의견을 교환하듯 계속 대화를 이어 나가다 보면 검색했을 때보다 효율적으로 원하는 결과에 대한 답을 얻을 수 있습니다.
 

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

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