Skip to content

stella6767/free

Repository files navigation

Easy Fullstack Web with SpringBoot (with Zero cost)


Backend

Kotlin

제일 좋아하는 언어이다. 강타입이면서 null로부터 안전하게 코딩이 가능하고, 각종 편의성 기능들을 듬뿍 제공한다. 거기다 풍부한 자바의 에코시스템을 고대로 갖다 쓸 수 있다는 장점까지

Spring Boot

서버 사이드에서 여러가지 프레임워크를 써봤지만, Spring Boot 만한 게 없다. 물론 전부 다 찍먹이고 예전 기억이라 다른 프레임워크에 대한 인상은 틀릴 수 있다. 하지만 순전히 내가 느낀 점은 각각의 프레임워크마다 특화된 장단점이 존재하고, 어떤 부분에서는
SpringBoot를 뛰어넘는 장점들이 다들 존재하지만, 전반적인 종합 능력치면에서는 SpringBoot 를 따라올 수 있는 프레임워크는 없다고 생각한다.

JPA

자바 공식 표준 ORM 인터페이스, 아마 대부분 인터페이스의 구현체를 하이버네이트로 쓸 거다. 필자는 다른 ORM 툴은 TypeOrm 잠깐 남의 노드 프로젝트 꺼 유지보수하느라 건드려 봤는데, TypeOrm을 써보니 비로서 하이버네이트가 선녀구나하는 걸 몸소 느낄 수가 있었다. 그동안 너의 고마움을 잊고 있었다..

Kotlin JDSL

이제 3.0 으로 업그레이드 되면서, JPQL 기반으로 새로 만들어졌다. 그 말인 즉슨 JPQL로 할 수 있는 모든 짓을 Kotlin JDSL로 TypeSafe하게 작성할 수 있다는 것이고, 아주아주 꿀소식이다. QueryDsl같은 귀찮고 짜증나는 빌드 스텝을 셋업할 필요가 이제는 없어졌다.

FrontEnd

Kotlinx html

혼자서 소규모 웹 어플 개발하는데 있어서 프론트엔드 벡엔드 나누고, HTTP API 위로 JSON 프로토콜로 통신하는 구조를 짜는 것은 비효율적이고 시간낭비라는 게 내 생각이다. kotlinx html로 서버에서 html 조각을 직접 던져주자, 타입 세이프하고 재활용 가능한 html 조각을 쉽게 만들어준다.

HTMX

서버에서 html 조각을 던져주면, html tag 단위로 갈아끼울 수 있게 도와주는 라이브러리이다. 이 녀석을 사용하면 마치 SPA 프레임워크로 만든 웹앱같은 부드러운 화면 전환이 가능해진다. 더 이상 클라이언트 상태와 서버 상태를 일치시키려고 골머리를 안 써도 된다. 가장 맘에 드는 점은 사용하는데 별도의 빌드 스텝과 종속성을 요구하지 않는다는 것. 접근방식은 심플하고 빠르며 우아하다.

  1. not java -> json -> javsScript -> HTML
  2. Just JAVA -> HTML

tailwindcss + daisy ui

디자인 진짜 하기 싫은데, 그래도 사람답게는 만들어야 하니까, 잘 만든 UI Component Library를 찾게 된다. 부트스트랩은 좀 너무 한 물 간 거 같고, 조금 신세대스러우면서, 엣지있는 tailwindcss를 선택한다. 그렇다고 내가 css를 짤 수는 없는 노릇 아닌가, 이 tailwindcss를 사용하는 컴포넌트 라이브러리를 찾아본다. 원하는 요구사항은

  1. 돈이 안 들고
  2. 별도의 JS 종속성 없이 CDN 링크를 통한 간편한 설치가능
  3. JS 없이 HTML + tailwindcss 로 스니펫을 제공해 복붙해서 편하게 갈아끼울 수 있는
  4. 나름 깃허브에서 스타 수 있는

위 조건을 다 만족하는 게, daisy ui 빼고는 잘 못 찾겠더라..

toast UI

마크다운과 Html을 둘 다 지원해주는 고마운 웹 에디터다. 앞으로 에디터 쓸 일 있으면 이 친구로 고정

Infra

AWS EC2

프리티어 끝나서 돈 나간다. 그래도 개인이 호스팅하기에 AWS 만한 게 없다. 다른 클라우드 서비스는 래퍼런스도 적고 취업에 도움 안 된다.

Github action

깃허브 액션에 쉘 명령어 박아서 EC2에 배포하도록 간편하게 설정했다. 젠킨스 및 다른 CI/CD 툴은 호스팅해주는 서버가 따로 필요한데 얘는 깃허브에서 원격으로 무료로 제공해주는 서버가 있다는 게 참 매력적이다.

Docker

사실, Docker 안 쓰는 게 내 입장에서는 편하긴 한데..

Let's encrypt

돈 안 들게 HTTPS 인증서 깔아주는 고마운 녀석이다.

NGINX

최고의 오픈소스 프록시 서버

SupaBase postgresql

DB를 쌩으로 EC2에 까는 것보다 무료로 빌려쓸 수 있는 클라우드 서비스가 있다면 그걸 쓰느 게 낫다. 파이어베이스 쓸까 하다가 NOSQL이라 고민됐는데, 이 녀석은 postgresql을 프리티어로 제공해주는 옵션이 있다. 고마운 녀석이다.

Github Oauth2

소셜로그인으로 Github 를 사용한다. 나머지 소셜로그인은 프로덕션 레벨로 올릴려면 심사를 받아야 한다. 얘가 제일 간편하다

Intellij

갓텔리제이와 함께라면 코딩이 무섭지 않다.