Skip to content

Latest commit

 

History

History
109 lines (59 loc) · 4.81 KB

README.md

File metadata and controls

109 lines (59 loc) · 4.81 KB

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

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