단일 페이지 애플리케이션이(SPA) 필요할까?
대표적인 프론트엔드 리엑트 관련된 모든 것들에 대한 것인데요.
어떤것을 사용할때는 그것이 왜? 만들어 졌고 사용하지 않으면 어떤 문제가 있을 수 있고 사용했을때의 장점을 알고 있는 것이 좋습니다.
요즘 보면 안해도 될것들을 하는것들이 보입니다.
물론 내가 취업을 하는데 필요하고 이직을 하는데 있어 필요하면 위와 관계 없이 하는것에 대해 뭐라 할 수 없습니다.
경험을 쌓기 위해서 일부러 업무를 이런것 하는것은 좀 ....
보통의 일반 사이트에선 SPA가 필요가 없어요.
차라리 없는게 더 좋습니다. 초기 로딩속도 느릴 수 밖에 없는 방식이기 때문에 그렇습니다.
뒤로가기 문제가 왜? 있을까요. SPA 이니까 그렇잖아요.
▷ SPA 장점
- 빠른 사용자 경험: 페이지 전환 없이 필요한 데이터만 받아오므로 네이티브 앱처럼 부드러운 사용감을 제공합니다.
- 서버 부하 감소: 초기 로딩 후에는 데이터만 주고받아 서버 요청이 줄어들고, API 서버로 역할을 분리할 수 있습니다.
- 개발 생산성: 컴포넌트 재사용이 쉽고, 프론트엔드와 백엔드를 분리하여 독립적으로 개발할 수 있습니다.
- 풍부한 인터랙션: 복잡한 UI/UX 구현이 용이하고, 실시간 업데이트나 애니메이션을 자연스럽게 처리할 수 있습니다.
▷ 싱글페이지 단점
- 초기 로딩 시간: 모든 자바스크립트를 한 번에 받아야 해서 첫 화면이 늦게 뜹니다. 번들 크기가 클수록 더 심각합니다.
- SEO 문제: 검색엔진이 자바스크립트로 생성된 콘텐츠를 제대로 읽지 못해 검색 노출이 어렵습니다.
- 브라우저 호환성: 오래된 브라우저에서는 작동하지 않거나 성능이 크게 떨어질 수 있습니다.
- 메모리 관리: 페이지 전환 없이 계속 실행되므로 메모리 누수가 발생하기 쉽고, 장시간 사용 시 느려질 수 있습니다.
- 과도한 복잡성: 간단한 사이트에도 무거운 프레임워크를 사용하면 오히려 개발과 유지보수가 어려워집니다.
- 보안 이슈: 모든 로직이 클라이언트에 노출되어 민감한 코드를 숨기기 어렵습니다.
---
언어자체가 템플릿인 언어가 있는데 PHP 같은 언어 입니다.
그렇기 때문에 PHP개발하신분이 그러잖아요 언어자체가 템플릿인데 왜? 또 템플릿을 거기서 사용하냐고...
웹의 특성상 템플릿 형태로 되어야 하니 그렇게 만들어진거죠.
리엑트는 페북에서 나왔는데 거기 특징이 있는데 하나의 어플케이션 같은거라서 그런게 필요한데 일반사이트는 그런 요소가 많이 들어가 있지 않습니다.
배보다 배꼼이 더 크면 좋은가요?
예전에 웹프로그램 처음 할때 폼으로 데이터를 넘기면 힌색 화면에 자바스크립트 경고가 나왔는데 ... 알아보니 프레임 처리 하면 되었습니다.
난 현재 화면 그대로인 상태에서 오류메시지가 나왔으면 좋겠는데 말이죠.
frame 설정을 하단에 1픽셀짜리 바탕화면과 같은것 -> iframe -> AJAX 이런 형태로 흘렀습니다.
그런데 말입니다. 이거 웹사이트에서 유연하게 보여주면 좋지만 치명적인 부분은 아닙니다.
물론 AJAX로 처리 하고 클릭하면 모래시계도 보여주고 스피너도 버튼에 돌고 하면 당연히 좋습니다.
* 아래 관련된 영상 보면 좋습니다.
Nextjs 가 등장한 기술적인 배경(프론트엔드 개발 역사와 함께 살펴보기)
https://www.youtube.com/watch?v=EwY6hbAxdV8
(Next.js 0강) 요즘 프론트엔드만으로 먹고살기 힘든 이유
https://www.youtube.com/watch?v=jYJ3ygUfPrU
그리고 아래는 저도 다른것 보고 그랬는데 할 필요가 없이 기존것으로 해도 되는데 왜들 그럴까 싶어 다시 한번 검토하기 위해서 확인해 봤던 사항입니다.
- PHP 웹사이트 구축시 오래된 방식의 문제점은 > PHP
