[챗GPT로 코딩 공부] 람다와 스트림을 효과적으로 사용하는 방법 알기

내일배움캠프 수료생들은 챗GPT를 어떻게 개발 공부에 활용할까요?
Jul 08, 2024
[챗GPT로 코딩 공부] 람다와 스트림을 효과적으로 사용하는 방법 알기
✍🏼
챗GPT, 개발 공부에 있어서 든든한 친구 같은 존재이죠. 내일배움캠프의 수강생들도 혼자 공부할 때에는 챗GPT의 도움을 받고 있는데요. 오늘은 내일배움캠프 수료생들의 챗GPT 경험담을 보고, 여러분의 개발 공부에 적용해봅시다.
 
자바를 배우며 가장 힘들었던 부분이 람다(Lambda)와 스트림(Stream)이었습니다. 기존에 사용하던 자바와 이질적인 부분이 많았기에 코드를 원하는 대로 작성하기가 쉽지 않았는데요. 람다와 스트림을 작성할 때 책을 참고하며 코드를 작성하였지만, 모든 프로젝트가 주어진 조건이 동일한 것은 아니었기에 많은 에러가 발생하였습니다. 그래서 저는 많은 예시 코드를 작성하며 람다와 스트림을 공부하였고, 이 과정에서 GPT를 매우 유용하게 활용하였습니다.

람다와 스트림 예시 코드 학습하기

처음에는 GPT에게 람다와 스트림을 이해할 수 있게 몇 가지 예시 코드를 알려달라고 하였습니다. 이를 통해 컬렉션 정렬, 리스트 필터링 및 컬렉션을 스트림으로 처리하는 예시 코드를 학습할 수 있었습니다.
예를 들어, 리스트를 정렬하거나 특정 조건에 맞는 값을 필터링해서 return 하는 방법 등을 GPT의 예시 코드를 통해 학습할 수 있었습니다. 이후에는 반복문 코드를 만들어서 이를 람다와 스트림으로 리팩토링 하는 과정을 거치며 람다와 스트림을 학습하였습니다. 반복문 코드를 만든 후 저 혼자서 람다와 스트림으로 변환해 보고 GPT에게 코드 리뷰를 요청하면 코드의 잘못된 부분이나 수정할 부분을 확인할 수 있어서 도움이 많이 되었습니다.
 
특히, GPT는 다양한 예시 코드에 상세한 설명을 함께 제공하기 때문에 이해가 되지 않는 코드들도 꼬리 질문을 통해 쉽게 이해할 수 있었습니다. 예를 들어 스트림의 중간 연산과 최종 연산의 차이점을 묻거나, 비슷한 결과를 출력하는 코드의 차이점과 사용 용도 및 성능에 대한 질문을 하며 람다와 스트림에 대한 이해도를 높일 수 있었습니다. 또한 람다와 스트림 학습 시 책과 GPT를 연계하여 학습하며 기본 개념부터 심화까지 폭넓게 학습할 수 있었습니다.
책에서 이해되지 않는 부분을 GPT에게 물어볼 수 있기 때문에 책을 통한 학습이 훨씬 쉬워졌고, 실제 코딩을 통해 빠르게 프로젝트에 적용할 수 있었습니다. 예를 들어, 책에서 설명하는 개념을 실제 코드로 구현하는 데 어려움을 겪을 때 GPT에게 질문을 던짐으로써 도움을 받을 수 있었습니다.
 
다만 람다와 스트림을 GPT에게 적용할 때 유의해야 할 점은 GPT4 버전까지는 Java16에서 개선된 기능이 적용되지 않는다는 문제가 있습니다.
예를 들어, 다음과 같은 코드가 있습니다.
.collect(Collectors.toList()); Java16부터는 리턴타입이 명확하다면 toList를 쓸 수 있습니다. .toList();
그러나 GPT는 toList를 사용할 수 있는 경우에도 .collect(Collectors.toList()); 를 사용한 코드를 보여줍니다.
 
notion image
notion image
이러한 이유로 항상 GPT에게 예시 코드를 받더라도 스스로 검증하고 옳은지 확인하는 과정이 필요합니다. 더불어 이를 검증하는 과정에서 람다와 스트림에 대한 이해도가 올라감을 느낄 수 있었습니다.
 

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

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