티스토리 뷰

반응형

코틀린과 스프링 프레임워크
Kotlin + Spring

오늘은 코틀린+스프링 프레임워크(줄여서 코프링)이라고 하는 기법에 대한 글 중 카카오페이에서 도움이 될만한 글이 있어서 가져왔습니다. 

https://tech.kakaopay.com/post/overcome-spring-aop-with-kotlin/

 

Kotlin으로 Spring AOP 극복하기! | 카카오페이 기술 블로그

Kotlin의 문법적 기능을 사용해서 Spring AOP 아쉬운 점을 극복한 경험을 공유합니다.

tech.kakaopay.com

 

원래 스프링 프레임워크는 코틀린 언어의 할아버지뻘 되는 언어인 자바에서 기본적으로 파생된 언어입니다. 코틀린은 제트브레인(JetBrain)이라고 하는 체코 회사에서 개발한 언어입니다.(안드로이드 스튜디오와 인텔리제이 IDE 툴 등을 개발한 Java 개발자들 사이에서는 모르면 간첩이라고 하는 회사입니다..!) 

 

Spring Framework

스프링 프레임워크(Spring Framework)는 기본적으로 spring.io 조직에서 개발한 자바 언어로 웹 프로젝트를 만들기 특화된 프레임워크를 시작으로 생긴 프레임워크입니다. 기본적으로 가이드 문서가 정말 잘 나와있고, 워낙 정통이 있는 프레임워크인지라 개발을 처음 접해보는 분들은 한 번 이상은 들으셨을 거라 생각합니다. 아래는 스프링 프레임워크 사이트입니다. 

https://spring.io/

 

Spring | Home

Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform.

spring.io

 

 

"스프링 프레임워크"는 현재 보다 더 개발하기 쉬운 스프링 부트(Spring Boot)라는 도구를 사용하여 더 빠르게 접목시키고 발전시킬 수 있습니다. 정작 스프링 프레임워크가 개발자들을 위해 탄생한 프레임워크(Framework)이지만 실제로 효율적으로 사용하기는 다소 어려운 부분과 처음 입문한 사람들이 넘어야하거나 알아야하는 장벽이 너무 높았습니다. 그를 깬 것이 바로 "Spring Boot"입니다. 

 

스프링 부트는 기본적으로 Spring Boot Starter 패키지와 함께 시작하게 됩니다. 기존에 스프링 프레임워크가 먼저 나온 만큼 버전은 스프링 부트가 더 낮지만, 스프링 프레임워크를 만나면서 더 안정성이 높고 뛰어난 퍼포먼스를 갖추게 되었습니다. 마치, 스프링 프레임워크가 자동차의 본체라면 스프링 부트는 자동차 엔진과도 같은 개념 것이죠.

 


 

반복을 지양하는 Kotlin

그럼 사람들은 왜 스프링 프레임워크와 스프링 부트가 있는데도 불구하고 같은 JVM 기반으로 된 코틀린이라는 언어를 사용하고, 이 언어를 스프링 프레임워크에 붙인 것일까요? 답은 위에 카카오페이의 아티클에도 나와있듯이 너무 반복적으로 구현하는 것이 번거롭기 때문입니다. 

 

보통 객체 지향형 프로그래밍을 선호하는 사람들은 하나의 클래스를 인스턴스화해서 사용하는 것을 정말 좋아합니다. 우리도 반복해서 같은 글귀를 여러 번 보기 위해서 책을 사지 않는 원리와 같습니다. 그렇기 때문에 반복을 최소화하고자 Java 언어를 사용하고 객체 지향 언어를 선호하는 것이지만, (요새는 또 흐름이 바뀌어 '데이터 지향 프로그래밍'이라는 프로그래밍 기법이 각광받고 있습니다. 관련해서 제가 글을 적어둔 것이 있으니 참고하면 좋으실 것 같습니다. 🤩 ) 

https://abbo.tistory.com/470

 

개발자가 알아야될 데이터 지향 설계

대부분의 개발자들은 객체지향형 프로그래밍(OOP)라고 하는 것에 굉장히 익숙할 것입니다. 저 또한 대학교에서도 교육을 받으면서도 객체를 중심적으로 프로그래밍을 진행하고, 자바언어는 특

abbo.tistory.com

 

JPA(Java Persistent API) 라고 하는 Java에서 사용하는 ORM(Object Relational Mapping) 기술은 데이터베이스에서 반복적으로 구사되는 조회,입력,수정,삭제를 간소화시키기 위해서 개발된 방법론입니다. 계속 똑같은 SELECT, INSERT, UPDATE, DELETE 문의 빈번한 사용을 지양하고자 만들어진 기술이기 때문에 개발자들은 이 지식을 빠르게 습득하여 클래스와 데이터베이스를 동기화시켜 보다 편하게 사용하고 있습니다. 

 

코틀린의 등장은 이런 반복적인 내용을 많이 간소화시켜주었습니다. 자바 진영과 스프링 프레임워크에서 반복적으로 사용하였던 어노테이션(@Annotation)의 내용을 많이 줄이는데 도움이 되었고, Nullsafe한 공식을 기본적인 방향으로 만들었기 때문에 개발자들의 숙적인 NullPointerException을 발생시키지 않게 도와줍니다. 

 

그래서 아무래도 지금도 빠르게 개발이 가능하지만 더 안정성있고 반복을 줄이는 방법인 코틀린과 안정적으로 운영과 유지보수가 가능한 스프링 프레임워크를 접목시켜 개발을 하는 신생 기술이 꾸준히 나오고 있는 실정입니다. 실제로 Ktor라고 하는 코틀린(Kotlin)전용 프레임워크도 존재합니다. 아래에 이전에 작성한 Ktor에 대한 내용이 나와 있습니다. 관심이 있으신 분들은 참고부탁드립니다. 🙏

https://abbo.tistory.com/283

 

Ktor 프레임워크 공부하기

안녕하세요! 최근에 나온 프레임워크로 Jetbrains 회사에서 만든 핫한 녀석중에 하나입니다. 바로 'Ktor' 라는 프레임워크인데요, 이 프레임워크는 애초에 Java 언어를 주력으로 개발, 기획하고 있는

abbo.tistory.com

 

오늘은 이렇게 Kotlin+Spring Framework의 합성어인 "코프링"과 Spring Framework, Spring Boot의 기본 개념에 대해 짧지만 제가 알고 있는 지식을 공유해보았습니다. 도움이 되셨길 바랍니다 :) 

반응형
댓글
공지사항