Lars Hvam은 덴마크 코펜하겐에 살면서 ABAP 프로그래밍 언어를 무척 좋아해요. Exercism에서 ABAP 트랙을 함께 만든 Lars를 만나, 어떻게 IT 업계에 들어오게 되었는지 편안하게 이야기를 나눠 봤어요.
Jonathan: 안녕하세요, 여러분 환영해요. 제 이름은 Jonathan이고요. 저는 Exercism 팟캐스트의 진행자예요. 오늘은 Lars와 함께해요. 지금 어디에 계세요, Lars?
Lars: 저는 덴마크 코펜하겐에 있어요.
Jonathan: 좋네요. 멋져요. 적도보다 조금 북쪽이네요. 저는 지금 적도보다 훨씬 남쪽에 있고요. 오늘 방송에 함께해 주셔서 정말 기뻐요. 이렇게 이야기 나눌 수 있어서 정말 좋았어요. 그럼 바로 시작해볼게요. 이번 주 방송으로 들어가 볼까요. Lars, 자기소개를 조금 해주세요. 어떻게 IT 쪽에 들어오게 됐고, 어떻게 지금 있는 곳에 오게 됐어요?
Lars: 네, 어디 보자. 지금 어디 있냐면, 이야기했듯이 코펜하겐이에요. 주로 SAP 커스텀 코드, ABAP 분야 컨설팅을 하고 있어요. 어떻게 여기까지 왔냐면, 늘 그렇듯이 긴 이야기예요. 그래도 IT니까요. IT 여정에 대해 이야기해 봐요. 제가 어렸을 때, 아주 오래전이었죠. 저와 제 일란성 쌍둥이는...
Jonathan: 일란성 쌍둥이가 있다고요? 그럼 오늘 말하고 있는 사람이 다른 쌍둥이가 아닌지 어떻게 알아요?
Lars: Microsoft 쪽 일을 하고 있어요.
Jonathan: 알겠어요. 무섭네요.
Lars: ...그러니까 그에게 SAP에 대해 뭐든 물어보세요. 그러면 그 사람은 제게 Microsoft에 대해 아무것도 물어볼 수 없어요. 그러면 저는 대답할 수 없고요.
Jonathan: 네.
Lars: 그런데 어렸을 때 우리는 시작했어요. Commodore 64에서 놀기 시작했죠. 그 Commodore에서 BASIC 프로그래밍 언어로 아주 기초적인 프로그래밍을 했던 게 기억나요. 흑백의 아주 작은 TV 화면이었어요. 그걸 하면서 몇 시간을 보내고, 새 컴퓨터를 사서 386과 486에서 QBasic을 했어요. 메모리를 8메가바이트로 업그레이드하는 게 그 시절이었죠. 네, 그게 QBasic으로 한 Pascal 프로그래밍이었어요. 결국 Windows로 넘어갔고, Visual Basic을 많이 했어요. 네, 저는 Visual Basic을 좋아해요. 그때가 90년대쯤이었고요. 결국 Linux를 좀 하게 됐어요. 그리고, 네. 좋았던 옛 Linux 시절을 기억하는 분들은 아시겠지만, themes.org라는 웹페이지가 있었는데 거기서 여러 윈도 매니저용 테마를 다운로드할 수 있었어요. 아주 Linux다운 거죠. 그게 제가 커뮤니티와 이 공간에 처음으로 정말 관여하게 된 때였던 것 같아요. 그 웹사이트를 PHP로 만들면서 시간을 보냈죠. 네.
Jonathan: 아, 와.
Lars: 제게 도장을 몇 개 찍어준 셈이죠. Visual Basic, 박사 과정 프로그래밍. 네.
Jonathan: 네. 좋네요. 좋아요. 네, 좋은 이야기예요.
Lars: 그리고 결국 대학에 가서 컴퓨터 과학 석사를 했고, 이런저런 프로그래밍을 했어요. 그러다 우연히 작은 일자리를 얻었죠. 네, 집세 낼 돈이 필요했거든요. 그리고 다른 프로그래밍을 했어요. 그게 지난 15년 정도 SAP ABAP 커스텀 코드 개발로 이어졌어요. 그리고, 네. 그럼 다음 질문이에요. 왜죠? 왜 계속 이어졌을까요? ABAP은 지금 그다지 현대적인 프로그램이 아니거든요. COBOL이랑 비슷하지만, 아주 흥미로운 프로그래밍 언어이기도 해요. 폭이 아주 넓고, 서로 다른 문장이 아주 많고, 잘못될 수 있는 것들이 아주 많거든요.
Jonathan: 네. 그러면 문제 해결도 많고 디버깅도 여러 종류가 있겠네요. 그게 이 일의 성격인가요?
Lars: 네. 그래서 저는 보통 이런 종류의 일을 하는 이유가 디버깅을 정말 좋아하기 때문이라고 말해요. 그리고 디버깅할 오래된 코드가 넘쳐나죠? 바로 지난주에도 20년 된 오래된 프로그램을 고쳤어요. 그때 '아, 좋네, 좋아' 했죠. 그리고 오래된 프로그램을 들여다볼 때마다, 제가 이 일을 여러 해 했어도, 배울 게 있어요. 이미 쓰였고 여전히 매일 돌아가는 오래된 기능들이요. 그렇죠?
Jonathan: 네. 그러면 15년 전에 시작하신 거네요. 같은 회사였나요, 아니면 그냥 SAP로 ABAP을 배우기 시작해서 여러 회사로 옮기신 건가요?
Lars: 지금은, 지금은 재미있는 일을 하는 제 회사가 있고, 뭘 할지 제가 정해요. 그리고 여러 컨설팅 회사에서 컨설팅도 많이 했고, 인턴으로도 일했어요. 그래서 지금은 프리랜서로 일하고 있고, 다시 집세를 낼 수 있게 프리랜서 일을 좀 받고 있어요. 그게 중요하죠.
Jonathan: 네. 인생에서 흔한 주제처럼 들려요. 돈. 집세를 내는 것.
Lars: 네.
Jonathan: 낼 방법을 찾는 것.
Lars: 그러면서도 오픈 소스 프로젝트에 너무 많은 시간을 쏟고, 도전적인 뭔가로 옆길로 새고요.
Jonathan: 네. 그러면 사업의 일부로 함께 일하는 팀이 있나요, 아니면 그런 면에서는 거의 혼자이신가요? 일상이나 한 주가 어떻게 흘러가요?
Lars: 저는 혼자이고 제 회사가 있어요. 협업이라고 하면, 고객과 협업하죠? 그리고 오픈 소스 공간에서는 오픈 소스 커뮤니티에 좋은 친구들이 많아서 이따금 뭔가를 도와주고, 저도 그들을 이따금 도와주고, 그래서 윈윈이에요.
Jonathan: 네. 그러면 제가 잘못 알고 있지 않다면, ABAP 트랙을 Exercism에 만드는 일을 사실상 전적으로 맡으셨거나, 아니면 아주 깊이 참여하고 계신 걸로 아는데요. 그 얘기를 조금 해주세요.
Lars: 네. ABAP 트랙은 여러 커뮤니티 구성원들이 만들었어요. 주로 ABAP 오픈 소스 프로젝트 출신 커뮤니티 구성원들이죠. 물론 우리는 좀 특별해서, 우리만의 CLI 클라이언트를 처음부터 만들어야 했는데, 그건 다른 날 이야기할 다른 얘기예요.
Jonathan: 네. 네. 네.
Lars: 그게 본거지예요. 그래서 여러 사람이 Exercism에 기여하고 있어요. 그런데 ABAP 트랙은 좀 특별하죠? 왜냐하면 시작하기가 상당히 어려운 프로그래밍 언어거든요. Node 같은 JavaScript 런타임이나 Python 런타임을 그냥 다운로드할 수 있는 게 아니에요. ABAP에서는 그걸 아주 쉽게 할 수 없어요. 가장 최신의 방법은 16기가바이트짜리 Docker 컨테이너를 대상으로 하는 것이었어요.
Jonathan: 16...
Lars: 이걸 돌리려면 최소 32기가바이트의 메모리가 필요해요. 그리고 이런 인프라를 실제로 쉽게 갖춘 사람은 많지 않아요. 게다가 이런 종류의 인프라에서 돌리는 건, 모르겠어요, 생태계를 뒷받침하는 인프라로는 불가능할 거예요. 그런데 트랙은 전부 작은 Docker 컨테이너 여러 개가 시작해서 코드를 돌리고 연습 문제를 확인한 다음 다시 종료되는 방식이거든요.
Jonathan: 네.
Lars: 그리고 이 정도 크기의 Docker 컨테이너를 시작하는 데는 쉽게 10분이 걸릴 수 있어요.
Jonathan: 아니죠. 아니죠. 그러니까요.
Lars: 그래서 다른 접근 방식이 필요했어요. 다행히 저는 몇 년 전부터 정적 분석 작업을 해오고 있었는데, 거기엔 추상 구문 트리가 있어요. 그래서 이 코드를 가져다가 JavaScript 코드로 만들고, Node에서 돌린 다음, 그 코드에 대한 피드백을 줘요. 그래서 우리가 지원하는 공식 언어는 ABAP이고, ABAP은 제가 전에 몇 번 언급했듯이 좀 특별해요. ABAP 언어 자체에 대한, 진짜 잘 정리된 공식 설명이 없어요. 설계된 다른 언어들과는 달라요. ABAP은 주로 70년대부터, 언제 시작됐든 그때부터 지금 모습으로 발전해 온 것 같아요. 그래서 우리는 그때그때 만들어 나가요.
Jonathan: 그러면 그게 일상 업무에서 어떤 도전을 만들어 내나요? 아마 매일 문제를 새 눈으로 바라보고, 그걸 만든 사람의 마음속으로 들어가려고 해야 하니까요. 왜냐하면 참고할 문서가 거의 없다고 하는 게 맞나요? 그래서...
Lars: 문서는 많아요. 그런데 그냥 텍스트일 뿐이고, 항상 100퍼센트 정확한 건 아니에요.
Jonathan: 아. 알겠어요.
Lars: 맞는 방법은 코드를 시험해 보고 실제로 뭘 하는지 보는 거예요. 물론 언어 안에는 올바른 것들이 많아요. 그런데 우리가 SAP 시스템에서 뭔가를 만들 때는 보통 한 시스템에 여러 개발자가 있어요. 그리고 이 한 시스템에는 2억 줄이 넘는 코드와 8만 개가 넘는 데이터베이스 테이블이 있죠.
Jonathan: 세상에.
Lars: 그게 좋아요. 저는 그중 하나를 좋아해요. 특히 모든 걸 아주 가까이 붙여서 만들면, 여러 가지를 서로 연결할 수 있는 멋진 정적 분석을 많이 얻을 수 있어요. 반면 Microsoft식 아키텍처를 하면 전부 느슨하게 결합돼 있죠. 둘 다 장단점이 있어요.
Jonathan: 그러면 모놀리식 구조를 더 선호하신다는 거네요? 그렇게 말해도 될까요, 아니면 좀...
Lars: 네. 저는 모놀리스를 선호해요. 그래도 네. 좋아요. 그러니까 기본적으로, 선호하는 건 레거시를 다루는 거예요. 네. 멋져요.
Jonathan: 레거시 코드. 네. 오래 존재해 온 것들, 그런 것들이요.
Lars: 네. 저는 오래된 걸 좋아해요. 꽤 재미있죠? 저는 보통 말해요, 나이 들면 PL/1이나 APL 프로그래밍으로 들어가고 싶다고요. 그런 프로그래밍 언어들 말이에요. M에서도 아마 할 수 있겠죠? 어쩌면...
Jonathan: 아마요. 지금은 모든 게 다 들어 있으니까요. 뭐가 있는지 한번 봐요. ABL? APL이라고 하셨어요, ABL이라고 하셨어요?
Lars: APL, 아, APL 트랙은 없어요.
Jonathan: 아, 기회가 있겠네요.
Lars: PL/I요. PL/1 트랙도 없어요. 좋아요. 좋아요. 그러면 두 개의 트랙이네요, 커뮤니티의 누군가가...
Jonathan: 아, 지금 바로 가입하시는 거예요?
Lars: 아니요.
Lars: 그러면 일상적으로 어떻게 보이는지, 예를 들어 ABAP 트랙은요? ABAP 트랙은 올바른 것에 대한 근사치예요. 그리고 우리는 항상 100퍼센트에 한 걸음 더 가까워지도록 노력해요. 실제로 올바른 해답인데도 Exercism에서 작동하지 않는 사람들이 있어요.
Jonathan: 알겠어요.
Lars: 제가 만들어 놓은 이 이상한 테스트 더미 때문이죠. 하지만 단계별로, 하루하루 작동하기 시작해요. 그리고 백엔드와 Exercism 러너에 계속 유닛 테스트를 더하고 더해요. 그러면 언젠가는 100퍼센트 완벽해지기를 바라죠. 하지만...
Jonathan: 누가 알겠어요. 그 시점에서 뭐가 나올지 누가 알겠어요. 그럼 지금, 한 주에 보통 몇 개의 고객과 일하세요? 한두 개인가요, 아니면 서너 개, 아니면 최대 열 개까지 될 수도 있나요?
Lars: 한두 개요.
Jonathan: 알겠어요. 그리고 그게 한동안 계속된 일이고요.
Lars: 네. 네. 컨설팅을 여러 해 했어요.
Jonathan: 그리고 주로 코펜하겐에 집중되어 있나요, 아니면 팬데믹 동안 더 멀리 원격으로 일할 기회를 얻었나요? 여행을 많이 다니시나요, 아니면...
Lars: 젊었을 때는 여행을 많이 다녔는데, 지금은 그냥 보통 집에 앉아서 원격으로 일해요.
Jonathan: 알겠어요.
Lars: 그렇죠.
Jonathan: 네. 커피 머신을 따뜻하게 유지하고요.
Lars: 네.
Jonathan: 계속 돌아가게 하고요. 그럼 마지막으로, 어릴 때부터 프로그래밍을 하면서 자랐다고 하셨고, 꽤 어린 나이부터 그런 것에 관심이 있었다고 하셨죠. 프로그래밍이 어느 시점에 이해가 됐나요? '아, 이제 알겠다' 하는 순간이 있었나요, 아니면 어릴 때부터 자연스럽게 이해했던 건가요? 어떻게 설명하시겠어요?
Lars: 아, 모르겠어요. 저는 항상 프로그래밍을 이해했다고 생각해요, 그렇죠?
Jonathan: 네.
Lars: 그런데 보통, 제 어린 시절에는 항상 절차적 프로그래밍이었어요. 그래서 기억나요, 대학에서 함수형 프로그래밍과 논리 프로그래밍 입문이 있었어요. 프로그래밍을 하는 완전히 다른 두 가지 패러다임이죠. 그리고 Prolog가 있죠, 제가 알기로는. 네, Prolog 트랙이 있어요. 논리 프로그래밍을 해보지 않은 분들께는 Prolog 프로그래밍을 좀 해보시길 권해요. Standard ML도 아마 있을 거예요. 절차적 프로그래밍을 하면서 실제로 뭘 생각했는지 이해할 수 있게요. 그런데 할 수 있는 다른 것들도 아주 많아요. 네, 저는 매일 새로운 걸 배워요. 그래서 '딱 맞아떨어지는' 순간은 없었어요.
Jonathan: 그래도 여전히 모든 것과 씨름하고 계신 거네요? 아뇨, 그냥 흥미로운 게요. 제 경험은 대부분... 뭔가, 예를 들어 언어 같은 것에 몰입해야 하는 거였어요. 그러면 갑자기 낯설었던 개념들이 어느 날 밤사이 확 바뀌어요. 그러면 거의 '와, 완전히 이해가 돼' 하게 되죠. 그리고 팟캐스트에서 만난 다른 분들 중 몇 분도 비슷한 경험이 있다고 하셨어요. 그래서 제가 '어떻게 그렇게 하셨어요?' 했더니, 어떤 분은 '아, 저는 그냥 프로그램을 이야기처럼 상상해요. 함수가 등장인물이고, 그런 거죠' 하더라고요. 정말 흥미로웠어요. 그런데 ABAP을 하기로 어떻게 결정하셨어요? 그게 집중할 대상이라고요? 그냥 '아, 이게 집세를 내주니까'였나요, 아니면 '이게 정말 좋아, JavaScript보다 이게 낫다'였나요?
Lars: 프로그래밍에 들어가는 건 항상 우연으로 시작되죠? Basic 스타일로 시작하고, ABAP을 하고, 우연히 시작하는 거예요. 그리고 그냥 아주 도전적인 프로그래밍 언어로 두드러졌어요. Java나 JavaScript는 문장이 그렇게 많지 않고, 큰 라이브러리가 있거든요. ABAP과 비교해 보면, ABAP에는 라이브러리 같은 것들이 프로그래밍 언어의 일부로 들어 있어요. 반면 JavaScript에서는 같은 종류의 언어 구조를 써서 라이브러리를 호출하죠.
Jonathan: 알겠어요.
Lars: 네.
Jonathan: 알겠어요. 그러면 거의 우연히 ABAP을 발견하신 거네요. 그럼 앞으로, 다음 10년을 내다보면, 그렇게 멀리까지 생각하고 싶지 않으실 수도 있지만요. 프로그래밍과 사업 면에서 앞으로 5년에서 10년은 어떻게 보이나요? '아, 여기가 내가 있고 싶은 곳이고, 이걸 하고 싶다' 하는 감이 있나요?
Lars: 아, 정말 알 수 없죠? 저는 재미있다고 생각하는 한 계속해요. 더 이상 재미없으면 그만두고 다른 걸 해요.
Jonathan: 알겠어요. 그러면 그게...
Lars: 계획이죠. 그렇죠. 제 생각에는 매일매일 해 나가려면 재미있어야 해요. 아마 10년 후에도 메뉴에 ABAP이 있을 거예요. 그리고 그건 어느 정도 여기로 귀결돼요. 저는 프로그래밍 언어와 기술에 관해 꽤 까다로워요. 그래서 ABAP을 하고, JavaScript나 TypeScript를 하고, 그 외의 다른 언어에는 되도록 손대지 않으려고 해요.
Jonathan: 네. 알겠어요. 그런데 제가 만약 'Lars, 지금 ABAP과 JavaScript를 놓고 다른 프로그래밍 언어를 골라야 해요'라고 하면, 어떤 걸 하고 싶은지 감이 있나요?
Lars: 네, 그렇게 할게요. 그러니까 우리가 APL 얘기를 했잖아요.
Jonathan: 알겠어요. 네.
Lars: 아주 멋지고, 아마 저보다 나이가 많은 언어일 거예요, 모르겠지만. APL과 PL/1은 둘 다 ABAP보다 오래됐을 거예요.
Jonathan: 아. 와. 그럼 왜 하필 그런 건가요? 흥미로운 점이 뭐예요?
Lars: APL은 제가 진짜 해본 적은 없는데, 인터넷에 시뮬레이터가 몇 개 있어서 해볼 수 있어요. 그리스 문자투성이이고, 모든 게 행렬이고, 행렬 곱셈이고요. 저는, 그냥 아주 이상해 보여요. 그리고, 네, 멍청해 보이죠. 그런데 그게 또 재미있는 이유예요, 그렇죠? 어느 정도 도전이어야 하니까요. 그리고 PL/1은 그냥 뭔가 달라요. 잘 모르겠어요.
Jonathan: 뭔가 신비롭고 조금...
Lars: 네. 꼭 그런 건 아니에요. 저는 오래된 고전적인 걸 좋아하고, 새로 반짝이는 것들은 별로예요. 그래서 아마 Rust라고 할 수도 있겠지만, 아니에요. 언젠가 Rust를 하게 될 수도 있지만, 그건 해야 해서가 아니라, 하고 싶어서가 아니에요.
Jonathan: 네. 그리고 ABAP을 쓰는 사람 수가 줄고 있는지 늘고 있는지, 아니면 최근에 이 언어에 대한 관심이 다시 살아나고 있는지 눈치채셨나요? 그에 대한 생각은 어떠세요?
Lars: 네, 꽤 어려워요. ABAP은 대형 다국적 협업체 안에서 내부적으로 돌아가는 이런 큰 시스템이라, 실제 숫자가 얼마인지에 대한 정확한 공개 수치를 구하기가 꽤 어려워요. 그런데 소문으로는, 이걸 달달 외우는 개발자들의 나이가 점점 많아지고 시장에서 점점 더 멀어지고 있다고 해요.
Jonathan: 알겠어요.
Lars: COBOL처럼요, 그렇죠? 오래된 언어이고, 젊은 사람들은 그다지 재미있어하지 않아요. 그래서 저 같은 나이 든 사람들이 하는 거죠. 그런데 그게 바로 우리가 ABAP 트랙을 만든 이유이기도 해요. 더 많은 젊은 사람들을 이 언어로 끌어들이고 싶거든요. Exercism은 여러 가지를 시도해 볼 수 있는 좋은 플랫폼이에요. 가입하고, 클릭하고, 로그인하고, 코딩을 시작하면 끝이에요.
Jonathan: 네. 그리고 많은 사람들이 이 트랙, ABAP 트랙을 한다는 걸 보셨나요?
Lars: 네. 지금 학생이 5,000명에 가까워요.
Jonathan: 와, 대단하네요. 네.
Lars: 네. 그래서 여기 9월에 SAP 개발자 지원팀이 주최한 9월 커뮤니티 코드 챌린지가 있었어요. 사람들을 플랫폼으로 끌어들이고, 우리가 내부 테이블이라고 부르는 것으로 몇 가지 연습 문제를 해보도록 하려고요. 다른 언어에서는 보통 배열이라고 부르죠. 그리고 중첩 내부 테이블, 다른 프로그래밍 언어에서는 보통 배열의 배열이라고 부르는 것도요.
Jonathan: 네.
Lars: 그래서 그걸로 새로운 학생들이 많이 들어왔어요. 그리고 GitHub에서 피드백과 버그, 이슈도 많이 받았어요. 그것도 ABAP 세계에서는 별로 익숙하지 않은 일이죠. 여러 조직에 걸쳐 협업하는 것. 실제로 코드를 GitHub에서 공유하는 건 이 커뮤니티에서 아주 흔한 일이 아니에요.
Jonathan: 그건 그냥 사람들 때문인가요? 이 회사는 이걸 하고 저 회사는 저걸 하는 식으로 아주 사일로화되어 있어서, 개발자들이 별로 이야기를 안 하나요? 각자의 특정한 맥락에 있고, 공유와 협업이 좀 적은 건가요, 아니면 왜 그런가요?
Lars: SAP 시스템의 성격 때문이기도 해요. 표준 시스템이라 뭐든 해줄 수 있거든요. 그래서 제가 고객을 도울 때는 보통 그 고객에게 특별한 게 필요하기 때문이에요. 그리고 그건 그들의 비즈니스를 독특하게 만드는 것에 따른 특별함이에요. 그래서 다른 고객은 쓸 수 없고, 쓰지도 않을 것이고, 다른 고객과는 다른 방식으로 독특한 그 고객이기 때문에 쓰죠. 그런데 코드를 공유하는 오픈 소스 커뮤니티도 생겨나고 있어요. 하지만 보통 유틸리티 수준이에요. 로깅이나 오류 처리 같은 것들이요. 그래도 언젠가는 될 거예요. SAP 세계에서는 뭐든 5년 이상 걸리니까요.
Jonathan: 네. 모든 게 그렇게 추진력을 얻기 시작하는 데 말이죠. 그건 그렇고, 저희가 방송에 나오는 모든 분께 묻는 것 중 하나인데요, 제가 보낸 문서를 보셨을 수도 있지만, 저희는 보통 기술 업계에서 끝까지 굽히지 않고 지킬 하나의 의견이나 관점이 뭐냐고 물어요. 또는 보통 기술 업계에서 영원히 지키고 싶은 하나의 고집이 뭐냐고요. 프론트엔드라면 '나는 항상 CSS 다음에 로직을 쓴다'처럼 우스울 수도 있고, 아주 사소할 수도 있고, '나는 절대 GitHub을 쓰지 않겠다' 같은 것일 수도 있어요. 뭐든 괜찮고, 다만 논리적으로 설명하거나 제시할 수 있어야 해요. 생각이 정리되어 있어야요. 그런데 그 하나, 그 의견이 뭐예요?
Lars: 하, 하나요, 하나의 의견이요?
Jonathan: 알겠어요. 두 개를 드릴 수도 있어요. 두 개요. 네. 세 개요. 알겠어요, 세 개요. 세 개까지 괜찮아요. 기술 쪽 사람들은 보통 별로 자기주장이 없다는 걸 아니까요.
Lars: 네. 사람들이 저를 묘사할 때, 때로 제가 아주 강한 의견을 가지고 있다고 하기도 해요. 그래서 제 주요 의견 중 하나는 '아니요, 이건 불가능할 거예요. 해결책과 기술에 더 잘 맞는 다른 걸 하세요'라고 말하는 거예요. 예를 들어 Jenkins 같은 도구를 쓰는 것에 '아니요'라고 하는 거죠. Jenkins에 '아니요'라고 하세요. 그건 누구도 쓰면 안 된다고 제가 즐겨 언급하는 도구 중 하나예요, 그렇죠?
Jonathan: 왜요? 왜요? 왜죠? 이유가 뭐예요?
Lars: 파이프라인을 코드 가까이 두는 게 훨씬 쉬워요. 그래서 저는 그냥 구식이라고 생각해요.
Jonathan: 알겠어요. 그러면 뭘 하는지 안다면 굳이 추가할 필요 없는 추상화 계층 같은 거네요.
Lars: 네. 그리고 더 잘하는 다른 도구들이 있어요. 제가 건너뛰고 싶어 하는 또 다른 도구는 Eclipse예요. Java 세계에서, 5년, 10년 전을 돌아보면, Eclipse는 보통 Java 코드를 빌드하는 데 쓰였어요. 제 관점에서는 Eclipse가 이제 Java 코드를 빌드하는 데조차 쓰이지 않는 지점에 왔어요. 보통 Eclipse에서 쓰이는 큰 엔터프라이즈 애플리케이션 같은 것들이고, Eclipse가 처음에 의도했던 게 아닌 것들을 빌드하는 데 쓰이죠. 이걸 하는 다른 방법이 많지 않고, 고를 수 있는 다른 도구도 많아요. 그래서 Eclipse는 이제 가려졌어요.
Jonathan: 네. 좋아요. 그리고 의견을 하나 더 드릴게요. 다른 세 번째 의견은 뭐예요?
Lars: 공백이요. 아니면 공백에 관한 거요. 제 사이드 프로젝트 중 하나가 ABAP용 정적 분석이에요. 그리고 실제로 ABAP에서는 문장이 아주 많고, 들여쓰기와 대소문자, 헝가리안 표기법 등등을 하는 방식이 아주 많아요. 네. 텍스트 어딘가에 공백이 두 개 있는 것 같은 게 저를 정말 짜증나게 해요.
Jonathan: 그게 모든 걸 흐트러뜨려서요, 아니면 그냥 악몽이라서요?
Lars: 그냥 읽는 흐름에서 벗어나게 해요. 텍스트나 코드 한 조각을 읽는 것처럼요. '아, 여기 사이에 공백이 두 개 있네' 하면, 흐름이 깨져요.
Jonathan: 알겠어요, 알겠어요. 그럼 정리하면, Jenkins, 파이프라인은 코드 가까이 두기, Eclipse, 필요 없음. 그리고 공백 두 개. 이렇게 심각도가 다양한 세 가지 의견을 받았는데, 아주 좋네요. 정말 멋져요. 그리고 그 의견들 잘 지키고 계신 것 같아요.
Lars: 그리고 지속적 통합 얘기가 나왔으니, 지속적 통합을 지속적 대기로 만들지 마세요.
Jonathan: 알겠어요. 그러면 코드를 푸시하면 거기 앉아서 PR을 기다리는 건가요?
Lars: 개발자에게 피드백을 빨리 줘야 해요. 한두 시간씩 피드백을 기다리게 하는 대신에요.
Jonathan: 알겠어요. 그러면 체계적으로, 시스템적으로 그게 안전장치인가요? 그래서 그게 들어 있는 건가요? 그냥 검토할 수 있게 멈춰 두는 건가요, 아니면 왜 그런 거예요?
Lars: 그냥 나쁜 아키텍처예요.
Jonathan: 네. 알겠어요. 알겠어요. 흥미롭네요. 알겠어요. 그럼 오늘 마지막 질문이에요. 지금까지 즐거우셨기를 바라고요, 그런데 이걸 여쭤보고 싶었어요. 이번 주 Exercism 커뮤니티를 위해 어떤 추천을 해주시겠어요? 커뮤니티를 위해 한 가지를 추천해주신다면 뭐겠어요? 뭐든 괜찮아요. 초밥을 먹어라. 강에 뛰어들어라. 뭐든요.
Lars: 물론 트랙을 해보세요. 그게 아마...
Jonathan: 공짜로 하나 드릴게요. 이건 공짜예요. 알겠어요.
Lars: 그런데 물론, 전에도 몇 번 언급했듯이, 재미있게 하라는 걸 기억하세요. 재미있어야 해요. 그래서 때로는 이상한 아이디어가 있더라도, 그냥 재미있으면 해보세요. 어떻게 되는지 보세요. 오픈 소스 프로젝트를 만들 때도 제가 보통 하는 말이에요. 그냥 뛰어들어서 재미있는지 아닌지 보세요. 해보세요. 안 되면 괜찮아요. 그러면 다음 파티나 오픈 소스 프로젝트, 아니면 언어로 뛰어드세요.
Jonathan: 네.
Lars: 왜냐하면 기술 세계와 기술 세계 밖에 할 게 너무 많아서, 항상 지루하다면 그럴 가치가 별로 없거든요.
Jonathan: 네, 그러니까요. 좋은 추천이네요. 그럼 기술 분야에서 재미를 좀 느끼고 있는 모든 분들께. 마지막으로, 오늘 시간 내주셔서 정말 감사해요. 정말 감사합니다. 녹음을 멈추면 잠깐 이야기 나눌게요, 끝에 잠깐 얘기해요. 그런데 정말 큰 감사를 전하고 싶었어요. 그리고 관심 있는 모든 분들, ABAP 트랙을 확인해 보세요. 연습 문제를 좀 풀어보세요. 어떻게 되는지 보세요. 그리고 한동안 존재해 왔고 다시 중요성과 영향력이 커지고 있는 걸 배우고 싶다면, 그렇다고 할 수 있겠네요. 많은 핵심 다국적 플랫폼을 떠받치고 있으니까요. 여러분이 알아볼 만한 사람들, 여러분이 알아볼 만한 회사들 말이에요. 속사정을 배우고 싶다면 ABAP은 분명히 확인해 볼 가치가 있어요. Lars, 방송 링크가 있으면 아래 설명란에 넣을게요. 그때가 되면요. 그동안 정말 감사하고, 잠시 후에 다시 뵐게요. 네, 다시 한번 감사해요. 정말 고마워요.
커뮤니티 멤버들의 이야기를 듣고 배우며 영감을 받아봐요.