안녕하세요, 레이니스트 제품 개발팀에서 소프트웨어 엔지니어로 일하고 있는 최현민입니다. 레이니스트 기술 블로그에 어떤 글을 올리면 좋을까 고민하던 찰나에, 작년 중순부터 레이니스트 기술 스택의 일부로 함께하게된 스칼라에 대해 얘기하고자 합니다. 특히, 레이니스트에서 스칼라를 도입하게 되면서 느낀 점들을 공유하고자 합니다.
스칼라(Scala)라는 이름엔 스칼라의 확장 가능성(Scala = Sca(lable) + la(nguage))이 내포되어 있습니다.
스칼라는
이뿐만 아니라, JVM 기반으로 실행된다는 이점을 갖고 있습니다. 스칼라 프로젝트에서는 Java 라이브러리를 매우 간편하게 사용할 수 있으며, 개발 후에도 JVM의 완성도를 믿고 안심하고 배포를 할 수 있습니다.
레이니스트에서 처음으로 스칼라가 개발 언어로 사용된 프로젝트는 ‘셰프 알프레드’입니다. (레이니스트 서버 개발팀은 뱅크샐러드와 관련된 서버를 뱅크샐러드 세계관의 셰프라고 생각하고, 이에 맞춰 각 프로젝트의 명명을 사람 이름으로 하는 독특한 문화가 있습니다. 카드 추천 서버는 뱅크샐러드 세계관의 셰프 알프레드인 셈입니다.) 알프레드는 기존에 존재하던 카드 추천 서버보다 더욱 가용성 있고, 더욱 표현력이 좋은 카드 추천 서버를 개발하는 것을 목표로 시작된 프로젝트입니다.
스칼라가 뱅크샐러드의 새로운 카드 추천 서버의 개발 언어로 결정된 배경에는 당시 개발팀이 프로그래밍 언어로서의 스칼라의 모습에 대한 신뢰가 있었기 때문입니다. 당시 개발팀은 뱅크샐러드 웹을 개발하면서 파이썬의 list comprehension과 풍부한 리터럴이 금융 상품 추천 엔진 코드의 표현력과 가독성을 높인다는 것을 깨달았기 때문에, 견고하게 설계된 스칼라 컬렉션 라이브러리의 사용이 금융 상품 추천 엔진을 구현하는 데 있어서 도움이 될 것이라고 믿게 되었습니다. 이 뿐만 아니라 스칼라에 내장된 Future/Promise를 이용해 손쉽게 비동기 프로그래밍을 할 수 있을 것 같은 점, akka와 같은 외부 라이브러리를 이용해 쉽게 scale out할 수 있을 것 같은 점 등이 스칼라가 알프레드를 개발하는 데 있어 최적일 것이라 믿게 해줬습니다.
...와, 회사 워크숍에서 힐링도 할 수 있다니 (0) | 2020.02.09 |
---|---|
스타트업! 돈에는 귀천이 없다. (0) | 2020.02.08 |
즐거운 콘텐츠를 만드는 사람들! 아토큐브 나들이가다. (0) | 2020.02.08 |
소프트웨어 개발자에게 성공이란... (0) | 2020.02.07 |
우리가 세월호 현장에 간 이유 (실천) (0) | 2020.02.07 |