[Web] 웹(웹 개발 트렌드)

2022. 10. 18. 01:55·Programming/Web
728x90
자바 언어의 대안 등장

한때는 최신 언어였던 자바가 구식 언어가 되어버렸다. 자바로 만든 프로그램을 실행하기 위한 가상머신 기술은 날로 발전해 안정화되고 성능 또한 인정을 받게 되었으나 문법이나 코드 구조는 급속하게 변하는 시대의 흐름 속에서 트렌드에 뒤처지게 되었다. 또한 오라클의 자바 인수로 인해 가속화된 구글과의 자바 라이선스 문제가 오라클의 승리로 끝나자 구글은 새로운 안드로이드 개발 언어로 젯브레인스(JetBrains)에서 개발한 코틀린(Kotlin) 언어를 추가하면서 안드로이드 개발 트렌드는 점점 코틀린 쪽으로 이전하고 있다.

코틀린은 최신 프로그래밍 언어의 특징을 모두 가지는 모던 프로그래밍 언어(Modern Programming Language)이다. 또한 코틀린은 오픈소스 프로젝트로 자바의 가상머신인 JVM에서 돌아가기 때문에 자바와 완벽히 호환된다. 그 외의 대표적인 자바 오픈소스 프레임워크인 스프링에서도 코틀린 사용을 확대하고 있다.

백엔드 개발 및 운영 환경의 변화

대규모 상용 서비스 개발에 필수로 인식되던 자바 엔터프라이즈 에디션(Java EE)의 방대한 스펙과 구현의 복잡함으로 인해 스프링 프레임워크가 등장하게 되었다. 또한 클라우드 기반의 서버 운영이 보편화되면서 전통적인 모놀리식 아키텍처 중심의 서버 운영 전략이 소규모 분산 서비스 운영 방식인 MSA로 전환되기 시작했다.

프론트엔드 중심의 개발이 가속화되면서 서버 프로그램이 보다 간결한 형태로 전환되고 Node.js, 파이썬을 이용한 서버 프로그램 개발이 늘어나고 있다. 특히 REST API 형태의 개발이 주를 이루게 되면서 백엔드에서 화면을 다르어야 하는 경우는 점점 줄어들고 있다. 이와 함께 구글의 파이어베이스(Firebase)를 비롯한 클라우드 기반의 서비스 인프라가 보편화되어 모바일 앱, 웹에서 자체적으로 서버를 두지 않고 필요한 데이터를 REST API 형태로 손쉽게 제공받을 수 있는 서버리스(Serveless)환경도 보편화되고 있다. 따라서 백엔드 개발을 반드시 하지 않아도 되기 때문에 상대적으로 백엔드 비중이 축소된다고 느낄 수도 있다.

프론트엔드 중심 개발로의 이동

데이터를 서버에서 조합(바인딩Binding)한 다음 화면을 구성(렌더링Rendering)하는 서버 사이드 렌더링은 과거 데스크톱이 중심이 되던 시절에는 문제가 없었지만 스마트폰 앱이나 모바일 웹을 통한 서비스가 확대되면서 여러 문제가 부각되기 시작했다. 대표적으로 모바일에서 인터넷을 사용하려면 데이터 요금을 부담해야 하고 유선에 비해 상대적으로 속도도 느리다. 더불어 인터넷 접속이 항상 보장되지 않는데, 실시간으로 데이터 갱신이 필요하다.

이러한 새로운 요구는 서버로부터 데이터만 수신하고 클라이언트(웹 브라우저)에서 데이터를 조합한 다음 화면을 구성하는 클라이언트 사이드 렌더링(CSR) 방식으로 개발을 전환하게 되는 계기가 되었다. 이러한 개발 방식을 프론트엔드 중심 개발이라고 하고, 대표적인 자바스크립트 기반 기술로는 Angular.js, Vue.js, React.js 등이 있다.

스프링 프레임워크와 JSP

스프링 프레임워크(Spring Framework, 이하 스프링)는 상용화할 수 있는 수준의 대규모 서비스를 누구라도 쉽게 개발할 수 있도록 해준다. 자바 기반의 대표적인 백엔드 개발 프레임워크이고 전세계적으로도 널리 사용되고 있으며 특히 국내에서는 절대적인 위치에 있다.

전자정부 프레임워크 역시 스프링 기반이며 국내에서는 JSP를 주로 스프링과 함께 사용하지만 아이러니하게도 스프링에서 기본적으로 권장하는 뷰 템플릿 엔진은 타임리프(Thymeleaf)다. 물론 JSP, 프리마커(FreeMarker)역시 사용 가능하지만 스프링을 쉽게 사용할 수 있게 하는 스프링 부트(Spring Boot)의 경우 JSP 사용에 제약이 있어 권장되지 않는다. 또한 JSP를 비롯해 핵심 구성요소인 JSTL, EL 등의 업데이트가 없는 것도 참고할 만한 사항이다.

JSP는 앞으로도 필요한가?

현재의 개발 트렌드로 보면 새로운 프로젝트에 꼭 JSP를 사용해야 할 만큼의 이점은 없다고 느낄 수 있지만, 오랫동안 JSP를 사용했기 때문에 기존 시스템과의 호환성이나 유지보수를 위해 JSP는 필요하다. 또한 JSP기반의 개발이 필요한 곳은 국내뿐만이 아니다. 그러므로 전반적인 웹 프로그래밍 개발의 큰 그림을 이해하면서 JSP에 대한 최소한의 이해를 겸비하는 학습을 하자.

'Programming > Web' 카테고리의 다른 글

[Web] 웹(Java, JVM, JDK, IDE, Servlet Container)  (0) 2022.10.18
[Web] 웹(요약)  (0) 2022.10.18
[Web] 웹(Server, Front-end, Back-end)  (0) 2022.10.18
[Web] 웹(Network, TCP/IP, Internet, Protocol, Port, DNS)  (0) 2022.10.14
[HTML] [CSS] [Bootstrap] 웹 연습  (0) 2022.09.22
'Programming/Web' 카테고리의 다른 글
  • [Web] 웹(Java, JVM, JDK, IDE, Servlet Container)
  • [Web] 웹(요약)
  • [Web] 웹(Server, Front-end, Back-end)
  • [Web] 웹(Network, TCP/IP, Internet, Protocol, Port, DNS)
arajo
arajo
  • arajo
    아라 메모장
    arajo
  • 전체
    오늘
    어제
    • 분류 전체보기 (509)
      • Language (298)
        • HTML (55)
        • CSS (11)
        • JavaScript (70)
        • TypeScript (8)
        • Python (33)
        • Java (119)
        • C (0)
        • C# (2)
      • Programming (92)
        • Programming (14)
        • Web (51)
        • Apache (1)
        • MySQL (23)
        • AWS (3)
      • Framework | Library (26)
        • Framework | Library (3)
        • Vue.js (2)
        • React.js (5)
        • React Native (4)
        • Node.js (1)
        • Ajax (1)
        • Bootstrap (8)
        • Spring (1)
        • Flutter (1)
      • etc (2)
      • 휴식 (19)
        • 책 (13)
        • 일기 (5)
        • 게임 일기 (1)
      • A (71)
        • 공부 (18)
        • 기타 (6)
        • 일 (47)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    HTML
    web
    object
    객체
    JavaScript
    Java
    MySQL
    array
    타입스크립트
    event
    react
    TypeScript
    next.js
    자바스크립트
    리액트
    Python
    변수
    파이썬
    제어문
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
arajo
[Web] 웹(웹 개발 트렌드)
상단으로

티스토리툴바