스프링부트 + spring-data-jpa + thymeleaf
간단한 로그인이 가능한 게시판을 만들어 볼려고 한다.
로그인 기능은 스프링 시큐리티를 이용하여 구성할 것이다.
스프링 시큐리티는 로그인 기능만 사용하는 것이 아닌 권한 쪽도 쉽게 구성할 수 있어 사용하면 인증/인가 처리를 빠르게 구성할 수 있어 강추 한다.
게시판은 간단한 spring-data-jpa를 이용하여 테이블을 구성할 것이다.
하이버네이트를 조금이라도 알면 쉽게 따라 올 수 있지만 몰라도 그냥 쉽게 따라 올 수 있다. 그만큼 단순하고 추상화가 잘 되어 있어 간단하게 구성 가능 하다. 물론 개념과 원리를 여기서는 말하지 않는다. 일단 만들어 보고 업그레이드 하는게 이 단원의 목표 이기 때문이다.
화면 렌더링은 thymeleaf를 이용하여 처리 할 것이다. 요즘 흔해 빠진 프론트 프레임워크를 쓰지 않는 이유는 그럴 만한 이유와 여유가 없다. 프론트에 대해서 깊히 공부할 생각도 없다. 나에게 프론트는 그저 내가 생각하는 영역을 모니터 화면에 그려준다 정도 이고 그 그림 속에 기술에 대해서는 관심이 없다.
물론 내가 이렇게 막무가내로 프론트를 그려 되지만 난 그래도 SSR인지 CSR인지에 대한 인지는 분명하다.
SEO가 필요하고, 초기 화면 렌더링 속도가 빨라야 하는 화면에서는 SSR을 사용해야 하고 외부 API나 데이터베이스 연동 데이터를 서버에서 호출해서 불러와 서버에서 화면을 조립해서 그려서 response 객체로 넘겨주어 화면을 그리느냐, 화면의 깜박임을 없애고 중요한 데이터 부터 보여주고 인터랙션이 발생하면 필요에 따라 Ajax 같은 통신을 이용해서 서버에 json 데이터만 요청해서 응답받아 화면을 동적으로 그리느냐 정도 아닐까?
원래는 나도 프론트에 찐팬 이였다. 아니 지금도 프론트앤드 운영을 하고 있다. 그러면 프론트앤드에 관심을 가질만 하지만 프론트앤드는 그닥 흥미가 없었다. 아무래도 내가 디자인과 UX, UI 같은 부분들이 굉장히 약해서 흥미도가 떨어지는 것 같다. 하지만 고객사와 일을 할때는 아무래도 디자인을 중요시 하니 디자인 공부도 게을리 해서는 안된다는 사실을 나는 누구보다 잘 알고 있다.
이제 툴 선정이 남았는데 툴은 아무래도 intellij를 사용할 것이다. intellij는 자바 - 스프링 - 안드로이드 기반의 프로젝트를 하기에는 최적의 환경을 만들어 준다. 그래서 더더욱 intellij를 사랑하지 않을 수 없다. 원래는 그리 멋진 회사는 아니였는데 자바, 안드로이드, 스프링 같은 언어 프레임워크를 지원하고 코틀린 이라는 언어도 개발하면서 이 회사는 이제 누구나 알만한 그런 돈에 눈먼 회사가 된것 같다.
물론 돈만 주고 쓰는게 아닌 커뮤니티 버전도 있긴 하지만 지원되는게 너무 부족해서 걍 ultimate 버전을 사서 쓰는걸 권장한다. 그렇다고 해서 무조건 사라는건 아니다. 대안으로는 이클립스라는 명품 툴이 있기 때문에 제2의 대안으로 볼 수 있다. visual studio code라는 툴에서도 요즘 지원을 하긴 하더라 하지만 ide가 아니라서 컴파일이나 빌드 디버깅 같은게 유연하지 않을 수 있으니 조금의 수고를 해줘야 하는게 흠이다.
이제 구성은 툴까지 설명을 했으니 이정도 정리하면 될 것 같고, 다음 시간에는 설치 방법부터 한번 진행해 볼까 한다. 모두 기대하시고, 그럼 다음 시간에 뵙는걸로 하고 난 이만 사라진다.
구어체로 글을 써서 부단히 죄송하다는 말을 전하고 싶다. 일단 난 존칭해서 글쓰는것에 익숙하지 않고 한글을 그리 잘 쓰지 못하니 이점 양해 부탁 드린다.