2023. 4. 17. 15:21ㆍ개발/spring&springboot
이번에 동아리에서 부트로 프로젝트를 진행하게 되었다.
스프링을 택한 이유
1. 우리나라는 스프링 생태계가 아주 좋다. 스프링 풀이 정말 깊어서 한번쯤 배워보고 싶은 언어였다.
2. 보안과 개발을 함께 공부하는 학도로써, 사이트에 대한 보안은 직접 하나하나 찾아내는 경우가 많은데
스프링 보안에 관한 정보는 정말 방대했다. 심지어 SPRING BOOT SECURITY라는 라는 프레임워크도 있다.
이전에 첫 개발을 했었을 땐, 보안이 뭔지도 몰라서 그냥 꼬꼬마 해커도 sqlinjection 해버려서 관리자 계정 탈취할 법한 사이트를 만들었었는데, 여기는 가이드도 잘 나와있고 시큐어 코딩을 하면서 개발을 할 수 있다는 점이 메리트있게 다가왔다.
개발을 진행하면서 해야했던 보안처리과정들을 후술해보고싶다.
3. 단순함, 유연성 : 토비에서 스프링의 장점이라고 하는데
솔직히 단순한지는 잘 모르겠다.
물론 스프링이 오래된 언어라서 비교적 신생언어인 node.js와 비교하는데에는 무리가 있을 것 같다. 그 효용에 비하면 쉬운편은 맞는 듯.
단순함은 자바의 객체지향 언어라는 본질을 잃어버렸다가, 스프링의 등장으로 재조명된 자바의 산소호흡기라고 한다. POJO 프로그래밍.
유연성은 확장성이 매우 뛰어나다. 다른 많은 프레임워크와 접목하여 사용이 가능하다. 스프링만큼 스스로 발전하는 프레임워크가 있을까? 이건 정말 인정한다. 초기 환경 설정을 하는데 확장하면서 쓸 수 있는 thymeleaf, lombok, springboot security, JPA 등등.. 패키지만 추가하면 쓸 수 있는 환경이 정말 편리한 것 같았다.
필자는 워게임 문제들을 만들면서 PHP로 사이트를 구축하여 개발하고, node.js로 웹사이트 만들기, 안드로이드 스튜디오를 이용한 어플개발 경험은 있었지만 스프링은 처음이었다.
웹사이트 그까이꺼 express.js처럼 RESTfull API쓰고 ajax같은 거 써서 동적페이지 잘 만들고 디자인 예쁘면 되는 게 아닌가? 뭐 언어가 거기서 거기 아닌가?
싶었던 자만심 MAX였던 것과 달리 스프링의 첫 감상은 사뭇 달랐다.
MVC 모델-뷰-컨트롤러? DI 의존성주입? OXM? bean? 이게다 무슨소리야?
안드로이드 개발도 있고, 한때 자바를 주언어로 사용했기 때문에... 적응은 어렵지 않을 것이라고 생각했는데....
처음 배워 보는 언어에 대해 막막하지만서도 나름의 자신감은 잇었는데 기죽었다.
정처기에서 봤던 용어들을 스프링을 공부하면서 거의 다 본 것 같았다.
개념은 이해했지만, 이걸 굳이 왜 써야하는지 이해가 안 되는 그런 상황이 반복되어서 유튜브에서 스프링부트 개발을 한번 쭉 훑어보고나니 이걸 왜 써야하는지 비로소 하나하나 실타래 풀리듯 이해가 되기 시작했다.
아 그리고 왜 스프링이 아니라 부트를 쓰느냐 싶을 순 있는데.
1. 스프링의 편한 버전이다. node.js 의 편한 버전 nest.js, express.js같은 게 아닐까? 편한 게 있다면 마땅히 써야한다고 생각했고
2. 스프링의 개념은 주교재를 보면서 놓치지 않고 할 생각이다. 레거시의 주된 환경까지는 솔직히 모르겠지만 최소한 할수 있는 의존성이나 빈 헷갈렸던 핵심개념은 다 이해할 생각이다.
내가 참고한 주교재는 이러하다.
1. 토비의 스프링, 스프링의 교과서 같은 책이라고 한다. 확실히 스프링이 무엇인지, 그리고 왜 써야하는지, 왜 좋은지에 대해서 알려준다.
2. 점프 투 스프링부트 https://wikidocs.net/book/7601
점프 투 스프링부트
점프 투 스프링부트는 Spring Boot Board(SBB)라는 이름의 게시판 서비스를 만들어가는 과정을 설명한 스프링부트 입문서이다. 자바 설치부터 시작하여 서비스 운…
wikidocs.net
3. 유튜브는 개괄적인 맥락 이해하기에 좋아서 한번 쯤 보는 걸 추천한다.
나는 부트로 게시판만드는 영상을 참고했다. https://www.youtube.com/watch?v=frI5CoZe-vE&list=PLZzruF3-_clsWF2aULPsUPomgolJ-idGJ
'개발 > spring&springboot' 카테고리의 다른 글
[spring] 1. 토비의 스프링, 초난감 DAO (1) | 2023.10.15 |
---|---|
[spring] 2. 토비의 스프링, 제어의 역전 (0) | 2023.10.15 |
Springboot+swagger 연동 (0) | 2023.10.05 |