[Plays!] 개발자의 상상은 현실이 된다 - 서버 개발자가 만드는 세상
컬처팀 2024-12-06
NHN은 게임, 기술, 결제, 커머스, 콘텐츠 등 5대 사업을 중심으로 다양한 비즈니스를 연결합니다.
NHN에는 다른 산업군에 있지만, 같은 일을 하는 사람들이 많은데요.
때로는 다르게, 때로는 닮은 모습으로 일하는 NHN 플레이어를 소개합니다.
상상을 현실로 만드는 NHN과 NHN Dooray의 서버 개발자를 만나보세요.
우리가 만난 PLAYER 😎
NHN 웹서비스개발팀 김지홍 전임
NHN Dooray 협업서비스개발그린팀 김용표 전임
#1. 게임/협업 서비스 산업의 서버 개발자
Q. 자기소개 부탁드립니다.
[용표] 안녕하세요, Dooray 서비스의 서버 개발을 맡고 있는 NHN Dooray 협업서비스개발그린팀의 김용표 전임입니다.
[지홍] 안녕하세요, NHN 웹서비스개발팀의 김지홍 전임입니다. NHN 게임의 웹 애플리케이션 개발과 서버, 유지보수를 담당하고 있습니다.
Q. 요즘 어떤 업무에 가장 집중하고 있나요?
[용표] 제가 담당하는 서비스인 Dooray는 비즈니스에 필요한 모든 협업 기능을 한번에 제공하는 협업도구인데요. 요즘 Dooray의 업무 서비스나 위키 서비스를 고도화하는 작업에 집중하고 있어요. 또, AI를 연동하기 위한 작업을 돕기도 하고 보안이 더욱 강화된 환경에서 협업할 수 있도록 기능을 개선하는 작업을 하고 있습니다. 버그가 있으면 수정해서 서비스의 안정성을 높이는 작업도 함께 진행해요.
[지홍] NHN에는 바둑이나 포커, 장기 같은 역사가 오래된 게임들이 많은데요. 그래서 요즘에는 최근 지원하는 언어로 변경하거나, 다소 오래되어 유지보수가 힘들어진 프로젝트면 아예 새로 만들어서 개선하는 작업을 주로 진행하고 있습니다
Q. 게임 개발, 협업 서비스 개발에서 고려해야 하는 부분은 무엇인가요?
[지홍] 아무래도 게임하고 관련된 작업이다 보니까 이벤트나 게임 보상을 웹에서 가끔 지급할 때가 있어요. 많이 지급하면 크게 문제가 되고, 보상을 지급하지 못하면 CS가 들어오기 때문에
이런 보상지급하는 일이 있을 때는 특별히 주의해서 작업합니다.
[용표] Dooray는 주요 고객사가 기업과 공공 기관인데요. 고객사의 정보가 외부로 노출되는 상황이 절대 발생하면 안되거든요. 데이터 암호화는 물론이고 데이터가 유실되지 않도록 유의하면서 작업하고 있습니다.
#2. 닮은 듯 다른 서버 개발의 세계
Q. 주로 사용하는 개발언어와 툴은 무엇인가요?
[용표] 주로 사용하는 언어는 JAVA인데요. Kotlin을 섞어서 사용하는 편이기도 합니다. 최근에는 Golang으로 포팅(소프트웨어를 다른 기종의 컴퓨터 또는 프로그램으로 옮기는 과정)하는 서비스도 있는데 실제로 리소스 절감 측면에서 좋은 효과가 있더라고요. 기술 스택으로는 Spring boot, JPA, Redis, RabbitMQ, Elastic Search 와 같은 기술을 사용하고 있고 개발 도구로는 IntelliJ IDEA Ultimate를 쓰고 있습니다.
[지홍] Elastic Search까지는 사용하진 않지만 저희도 주로 JAVA로 백엔드를 사용하고 있어요. 또, 웹 서비스를 제공해야 하다 보니까 웹페이지를 직접 만들어서 제공할 때도 있거든요. 그럴 때는 프론트 개발이 필요해서 Node.js나 Vue.js도 함께 사용하고 있습니다.
Q. 우리 조직만의 특별한 문화는 무엇인가요?
[용표] 스크럼과 독푸딩(Dog Fooding)을 하는 문화가 조금 특별한 것 같아요. 스크럼은 거의 매일 아침에 하고 있는데 어제 있었던 이슈나 오늘 해야 할 일을 함께 공유하면서 개발 지식을 나누고 있어요. 독푸딩은 고객한테 기능을 공개하기 전에 Dooray 내부에서 먼저 사용해보는 문화인데. 그 기간 동안 신규 기능을 미리 사용해보면서 개선점도 찾고 더 나은 서비스를 제공하려고 노력하고 있습니다.
(Q. Dooray는 독특한 닉네임을 사용한다고 들었어요!) 맞아요. 저는 마루라는 닉네임을 사용하고 있는데요. 영어 이름을 제외하고 자기가 평소에 쓰던 재미있는 별명, 과일이나 야채 이름을 선택을 해서 ‘님’자 없이 사용을 하고 있어요. Dooray 대표님 닉네임은 요다인데, 처음에는 님자 없이 부르는 것도 어려워서 대표님한테 ‘요다님’이라 불렀거든요. 그런데 이제는 ‘요다, 저 이거 언제까지 할게요’ 이렇게 편하게 부르면서 일을 하고 있습니다.
[지홍] 분기마다 한 번씩 기술 공유하는 시간이 있어요. 업무 하다가 어려웠던 부분이나 주의하거나 참고할 만한 사항을 정리해서 공유해주시거든요.
이렇게 공유해주신 분한테는 소소하게 상금도 드리고 있고요. 이렇게 지식하고 경험을 공유하는 시간이 있으면 팀원들한테도 더 도움이 되고 성장에도 도움이 되는 것 같아요.
Q. 어떤 동료와 함께 일하고 싶나요?
[용표] 소통을 중요하게 생각하는 분하고 함께 일하고 싶습니다. 문제나 고민을 자유롭게 나누며 의견을 주고받는 환경에서 일하는 게 중요하다고 생각을 하는데, 그런 환경에서 의견을 나누다 보면 더 좋고 나은 해결책을 빠르게 찾을 수 있거든요.
[지홍] 어떤 문제가 생겼을 때 적극적인 태도를 보여주는 사람이 좋은 것 같아요. 문제를 그냥 두기보다는 더 좋은 방법을 찾아서 개선하는 마인드가 있으면 더 좋고요. 문제가 이미 해결 됐어도, 다시 그 유사한 문제 발생할 때 더 개선해서 작업할 수 있는 사람이 될 수 있으니까요.
#3. 변화가 두렵지 않은 개발자가 되는 법
Q. 추천하고 싶은 코딩 공부방법은 무엇인가요?
[용표] 다른 사람들이 잘 잡아 놓은 코드를 보는 게 큰 도움이 됐던 것 같아요. 그래서 다른 사람이 짠 코드를 보면 ‘이렇게 하면 조금 읽고 이해하기가 어렵구나’, ‘이렇게 하니까 조금 더 이해하기 쉽다’하며 배울 수가 있어서 좋은 코드든, 나쁜 코드든 다른 사람의 코드를 보는 게 도움이 되는 것 같습니다. 물론 그 코드를 그대로 사용하거나 의심하지 않고 믿는 태도는 지양해야 되는 것 같아요.
[지홍] 저는 새로 익힌 것을 실제로 적용해 보는 게 가장 경험에 도움이 되었던 것 같아요. 책으로 공부하거나 동영상을 봐도 내가 실제로 써 가지고 업무에 적용해보지 않으면 내 머릿속에 잘 안 들어오더라고요. 직접 만들기도 해보고 써 보기도 하고 오류도 생기고 이러면 더 좋은 방법으로 해결하는 과정이 머릿속에도 더 잘 들어와서 그렇게 공부했던 것 같아요.
Q. AI의 발전 등 기술 변화 속에서 개발자는 어떤 준비를 해야할까요?
[지홍] AI가 많이 발전해서 지금 라이브러리 사용할 때나 처음 접하는 걸 사용할 때는 많은 도움을 받는 부분이 있긴 해요. 그런데 AI가 발전해서 코드를 더 잘 짠다고 해도 그 코드를 사람이 사용해야 되니까 AI의 답변이 틀렸는지 어디에 적용해야 하는 지를 판단하려면 개발자로서 지식과 기틀이 잘 잡혀 있어야 문제 없이 사용할 수 있어요. 어떤 직무든 마찬가지겠지만 개발자도 끊임없이 공부하고 환경을 파악해야 해요. 그러면 AI뿐만이 아니라 또 다른 기술이 나오거나 다른 환경적 변화가 있더라도 언제든지 대처할 수 있는 개발자가 될 수 있을 거라 생각합니다.
[용표] 개발은 기능이나 화면을 만들었다고 끝나는 게 아니라 계속해서 유지보수를 해야 되거든요. 그런데 AI를 통해 만든 코드는 저희의 큰 서비스를 유지보수하기에는 아직은 좀 힘든 것 같아요.
물론 처음 접하는 라이브러리 혹은 프레임워크 설정 변수나 메소드 이름을 추천해주는 부분에서는 도움 받을 수 있지만, 지금으로서는 AI는 개발자를 도와주는 용도이지 대체는 할 수는 없다고 생각합니다. 어떤 업계든 좋은 시기도 있고 위기 아닌 위기를 맞을 때도 있는 것 같아요. 그런데 그 위기를 잘 이겨낼 수 있는 건 그저 꾸준히 하던 걸 계속 하는 힘인 것 같습니다.
NHN 안에서 함께 연결되고 싶다면?