요즘 많은 사람의 입에 ChatGPT가 많이 오르내리고 있는데 도대체 얼마나 대단한지 궁금해졌다. 개발자에 대해 간단히 물어봤는데 생각보다 친절하고 상세하게 답(가르침)을 줘서 감명받아 블로그를 써보게 됐다.
ChatGPT, 든든한 코딩 비서의 가능성
요즘 블로깅을 하면서 공부하고 있는 개념들(Spring Framework, Domain Driven Design)에 대해 ChatGPT에 대해 물어보다가 대답을 너무 잘해주고 심지어 코드 샘플까지 꽤 잘 만들어줘서 깜짝 놀랐다.
물론 AI가 개발자를 당장 대체하긴 어려워 보이며 당분간 코드 샘플 생성, 코드 리뷰 등 프로그래밍을 서포트해 주는 정도로 사용될 것 같다. 아직까진 생체 컴퓨터인 인간이 다른 동료들과 집단지성으로 의사소통하고 통합적인 사고를 통해 제품을 완성시키는 역량이 AI보단 나을 것이기 때문이다.
ChatGPT에 접속해서 개발자를 AI가 대체할 수 있는지 대충 물어봤는데 막연했던 내 생각보다 훨씬 일목요연하게 정리해 줘서 깜짝 놀랐다.
어떤 질문을 하더라도 상세하게 알려주는 것 같다. 특히 ChatGPT는 대화의 맥락까지 고려하기 때문에 대화형식으로 질문을 구체화시킬수록 더 정교한 답변을 얻을 수 있다고 한다. 앞으로는 일할 때 잘 모르는 개념이 나오면 ChatGPT에게 물어보면 될 것 같다.간단한 소스코드 생성도 꽤 잘해서 얼마든지 맡길 수 있을 것 같아 일의 효율을 대폭 올릴 수 있을 것 같다.
아래는 ChatGPT가 Spring Security Configuration 코드를 작성하는 것을 화면 캡처한 것이다.
OAuth 2.0 authorization server, 액세스 토큰 발급이 가능한 환경 설정의 Spring Security 코드 생성을 부탁했다. 위 영상은 편집된 거라 무척 빠르지만 실제로 15초 정도 기다렸다가 코드를 생성하기 시작했다. 아마 밤에 트래픽이 몰려서 그런 것 같고 빠를 때는 3~5초만 있어도 바로 코드를 작성하기 시작한다.
ChatGPT가 똑똑하다고 생각되는 것은 토큰 발급 URI (/oauth/token)에 대해서는 permitAll() 처리를 하고 나머지 요청에는 authenticated()을 걸어주는 등 endpoint까지 구분해서 보안 설정을 하는 부분이었다. formLogin()을 통해 로그인이 성공한 유저에 대해 토큰을 발급하도록 하였는데 영상에서는 잘려서 보이지 않지만 In-Memory tokenStore로 액세스 토큰을 관리하는 부분까지 생성되어 조금만 수정해 주면 실행도 가능한 코드 샘플이었다.
물론 이 코드를 바로 사용하기는 어렵지만 영상 마지막에서 알 수 있듯이 애플리케이션의 요구사항에 대해 커스터마이징을 하라고 친절하게 설명하며 답변은 끝이 난다. 실무를 할 때는 In-Memory 부분을 JPA 구현체로 생성해달라고 또 부탁하면 그만일 테고 토큰의 타입과 만료 시간 정도만 설정해 주면 더는 할 게 없어 보일 정도로 쓸만했다. ☺️
개발자 부업에 대한 고민 (feat. 블로그)
개발자로 9년 가까이 일하면서 어느덧 30대 중반이 되었는데 앞으로 얼마나 더 일할 수 있을까? 얼마 전 내 가정을 꾸리게 되면서 현실적인 수입과 개발자의 짧은 수명에 대한 걱정을 가끔 하는 편이다. 당장 돈이 되는 과외, 강의를 고민하지만 체력소모가 큰 부업을 하는 것은 당장 회사 업무를 잘 해내는 것도 벅차서 엄두를 못 내겠더라. 회사 업무에 지장을 주지 않는 선에서 실력을 키우고 추가적인 수입도 해결하는 방법은 블로그가 유일한 것 같아서 블로그에 다시 도전해보고 있다.
고민되는 것은 ChatGPT에게 물어보자. 개발자가 할 수 있는 부업은?
1번, 4번은 근로계약 위반 or 체력소모가 큰 방법이라고 생각한다.
2번은 프로그래밍 과외나 인터넷 강의인데 과외는 할 수 있지만 일회성에 체력소모가 제법 된다. 인터넷 강의는 아직 내가 할 레벨이 아니라고 생각한다. 5번 컨설팅도 마찬가지로 깜냥과 경험이 부족하다. 아직 수직적인 성장이 필요한 나에겐 3번 블로깅이 적절한 방법이라 생각한다. 블로깅하면 좋은 게 혹여나 틀린 글을 쓰더라도 피드백을 주시는 감사한 분들이 있기 때문에 내 성장에 도움이 되는 방법인 것 같다.
자 이제 정말 궁금한.. 블로그 수입은 어떤 구조로 되는 걸까? ChatGPT에게 애드센스의 수입에 대해 물어봤다.
수입에 영향을 주는 요소를 정리해 보자면 아래와 같다.
- 블로그의 주제
- 방문자수, 방문자의 지역
- 광고가 노출된 페이지뷰(횟수)
- 광고 포맷과 배치된 위치
광고 방식은 CPC(cost per click) 방식이며 구글의 엄격한 정책을 잘 따라야 한다고 적혀있다. 구글은 평균적으로 광고 수입의 68%를 공유한다고 하는데 그중 제일 중요한 건 역시 고품질의 콘텐츠로 진솔한 방문 트래픽을 끌어올리는 것..! 참 짧은 질문에 현답을 이리도 주다니 미안하고 고맙다. 참선생 GPT.. 아참. 프로그래밍 토픽에 대해서도 물어봤는데 거의 비슷한 답변이 돌아왔다. 역시 중요한 것은 고품질의 컨텐츠!
개발자가 실력을 키우는 방법
개발자가 실력을 키우는 방법에 대해서도 물어봤는데 뻔한 질문에 교과서적인 대답이지만 개발을 잘 모르는 초심자에게는 이 정도의 설명만으로도 많은 도움이 될 것 같다.
정리해 보자면
- 정기적인 코딩 : 일, 주 단위로 주기를 정해서 새로운 도구나 코딩 챌린지등을 하기.
- 컨퍼런스, 밋업 참여 : 개발자 네트워크에 참여하여 다른 개발자에게서 배우고 최신 기술 트렌드를 분석한다. 국내에도 많은 개발자 컨퍼런스가 있는데 리프레쉬도 되고 공부도 되고 아주 좋은 것 같다.
- 온라인 강의, 튜토리얼 수강 : 나 또한 강추한다. Coursera, 인프런 등 다양한 온라인 강의 사이트에서 수강을 했었는데 업계 전문가의 질 좋은 강의를 들을 수 있는 게 정말 큰 장점이다. 가끔 무료이거나 저렴한 강의도 있으니 수시로 찾아보면 도움이 될듯하다.
- 기술 블로그 글 읽기 : 구글링 하면서 늘 경험하는 것인데 ChatGPT에게 물어봐도 충분할 것 같은데 내 회사에서도 사용할 수 있는 날이 얼른 오면 좋겠다.
- 오픈소스 프로젝트 참여 : 글로벌하게 오픈된 장소에서 코드 리뷰를 받고 좋은 이미지를 곳곳에 심어놓으면 채용까지도 염두할 수 있는 좋은 방법.
- 개인프로젝트 작성 : 내 개인 깃헙에 많이 하는 방법이다. 잘 모르거나 삽질한 경험을 코드로 남겨서 체득하는 데에 도움이 되는 것 같다. 그리고 어느 정도 퀄리티에도 신경을 쓴다면 개인의 포트폴리오로서도 활용가능하며 스타를 받는다면 꽤 쏠쏠한 동기부여가 된다.
마지막으로 꾸준히 공부하는 것을 강조하는데 정말 맞는 말이다. ChatGPT 그는 참선생..
ChatGPT는 잠깐 써봤는데도 많은 가르침을 주며 제법 빠른 응답속도까지 사용하기 너무 좋았다. 앞으로 인생을 좀 더 효과적으로 살기 위해 여러 방면으로 애용하게 될 것 같다.