본문으로 건너뛰기
코드룸CODE ROOMTENMO ↗

기술 블로그

웹과 앱을 만들며 남긴 기록 447편입니다.

올인원 백엔드 서버 Appwrite.io

Appwrite는 풀 스택 웹앱 개발을 돕기 위한 오픈 소스 백엔드 서버입니다. DB, 인증, 스토리지, 실시간 API 등 서버부터 데이터베이스 다양한 기능을 제공합니다. (간편하게 개발할 수 있는 이점이 존재하지만, 규모가 커짐에 따라 가격이 기하급수적으로 증가합니다...

[Spring Boot] 트랜잭션(Transaction) 가이드

Spring Boot에서 트랜잭션(Transaction)은 데이터의 일관성을 보장하고, 여러 작업을 하나의 논리적 단위로 묶어 처리할 수 있도록 지원합니다. 트랜잭션(Transaction)이란? 트랜잭션은 데이터베이스에서 일련의 작업 단위 를 말하며, 작업이 모두 성공...

Next.js에서 next/script를 사용하여 Google Analytics 통합하기

왜 Next.js에서 Google Analytics를 사용해야 하나요? Google Analytics를 사용하면 페이지 조회수, 사용자 상호작용, 전환 등 중요한 메트릭을 측정할 수 있어 데이터 기반의 결정을 내리는 데 도움이 됩니다. Next.js와 통합함으로써 서버...

[Spring Boot] Hibernate ORM 가이드

Hibernate ORM(Object-Relational Mapping)은 Spring Boot에서 관계형 데이터베이스와 상호작용하는 데 널리 사용되는 프레임워크입니다. 객체 지향 프로그래밍 언어(Java)에서 관계형 데이터베이스를 사용할 수 있도록 지원하는 ORM 프...

[Spring Boot] JPA 설정 및 사용 방법

Spring Boot는 데이터베이스와의 상호작용을 간소화하고, 복잡한 설정 없이도 JPA(Java Persistence API)를 손쉽게 활용할 수 있도록 지원합니다. 객체와 관계형 데이터베이스 간의 매핑(ORM)을 통해, SQL 작성 없이도 데이터를 저장하고 조회할 ...

[MongoDB] 안정성과 일관성을 위한 트랜잭션 가이드

1. 트랜잭션 API의 이해 MongoDB의 트랜잭션 API는 복수 문서와 컬렉션에 걸쳐 데이터 작업을 원자적으로 처리할 수 있습니다. 이는 데이터 일관성을 유지해야 하는 금융 애플리케이션이나 재고 관리 시스템에서 특히 유용합니다. 주요 트랜잭션 제어 메서드는 다음과 ...

XML vs JSON vs BSON: 언제, 어떻게 사용해야 할까?

※ 해당 게시글은 MongoDB를 사용으로 작성됐습니다. JSON이 NoSQL로 사용된다고 해서 NoSQL에서만 사용하는게 아닙니다. 1. XML, JSON, BSON의 개요 XML (Extensible Markup Language) XML 은 과거부터 데이터 교환 및...

[Spring Boot] JDBC 이해하기

1. JDBC 개요 JDBC(Java Database Connectivity)는 Java에서 데이터베이스와의 상호작용을 가능하게 해주는 표준 API입니다. SQL을 활용해 데이터베이스 작업을 수행하며, JDBC는 Java와 데이터베이스 간의 다리 역할을 합니다. 2. ...

[Spring Boot] 내장 톰캣 서버 설정

Spring Boot는 내장된 톰캣(Tomcat) 서버를 통해 별도의 서블릿 컨테이너 없이도 웹 애플리케이션을 손쉽게 실행할 수 있습니다. 내장 톰캣 서버의 주요 장점 빠른 개발 환경 구축 : 외부 서버 설치나 복잡한 설정 없이 애플리케이션 실행만으로 웹 서버가 동작하...

[Spring Boot] 외부화 구성 (설정 관리 방법)

Spring Boot의 외부화 설정(Externalized Configuration)은 애플리케이션의 설정을 코드 외부에서 관리할 수 있도록 해줍니다. 다양한 환경에서 애플리케이션을 쉽게 설정하고, 유지보수성을 높일 수 있습니다. 외부화 설정이란? Spring Boot...

[VS Code] 저장 시 자동 정렬 안 될 때 해결법

VS Code에서 ESLint와 Prettier를 설치했는데 저장할 때 코드가 자동으로 정렬되지 않는 문제가 발생하면 아래 내용을 확인해서 해결할 수 있습니다. 1. VS Code 설정 확인 먼저, VS Code의 기본 설정을 확인해야 합니다. 일반적으로 Editor:...

[Spring Boot] 소개 및 설정

Spring Boot는 Spring Framework의 복잡성을 줄이고 빠르게 애플리케이션을 개발할 수 있게 해주는 강력한 도구입니다. 사실 지금까지 Java, Spring 내용을 정리한 가장 큰 이유는 Spring Boot를 사용하기 위함입니다. 복잡한 설정 없이 빠...

Tailwind CSS Overflow 속성 가이드

overflow 속성은 웹 페이지 요소의 콘텐츠가 요소의 크기를 벗어날 때 어떻게 처리될지를 결정하는 중요한 CSS 속성 중 하나입니다. Tailwind CSS는 overflow 유틸리티 클래스를 통해 간편하게 요소의 콘텐츠 처리 방식을 제어할 수 있습니다. Tailw...

[Spring] 폼 처리와 유효성 검사

웹 애플리케이션에서 폼 처리와 유효성 검사는 사용자 입력을 관리하고 데이터의 정확성을 보장하는 중요한 과정입니다. 1. 폼 처리 (Form Handling) 1.1 폼 객체 (Form Object) 폼 데이터를 담을 객체를 정의합니다. 이를 '커맨드 객체' 또는 '폼 ...

Tailwind CSS Position 속성 가이드

Tailwind CSS Position 유틸리티 클래스 종류 Tailwind CSS에서는 HTML 요소에 위치 지정 속성을 쉽게 적용할 수 있도록 다음과 같은 position 유틸리티 클래스를 제공합니다. static: 요소를 문서의 일반적인 흐름에 따라 배치합니다. ...

[Spring] MVC 컨트롤러와 RequestMapping

※ @Controller와 @RestController는 다릅니다. Spring MVC에서 컨트롤러는 웹 애플리케이션의 요청을 처리하고, 데이터를 준비하여 적절한 뷰에 전달하는 역할을 합니다. 컨트롤러를 통해 특정 URL과 HTTP 메서드(GET, POST 등)에 따라...

VSCode 대소문자 변경 단축키 사용 가이드

기본 사용법 기본 설정 : VSCode에는 대소문자 변경을 위한 단축키가 이미 설정되어 있습니다. 별도의 설정 없이 바로 사용 가능합니다. Windows/Linux에서 사용 대문자로 변경: Ctrl + Shift + U 소문자로 변경: Ctrl + Shift + L m...

[Spring] 뷰 리졸버 (View Resolver)와 템플릿 엔진 (Template Engine)이란?

View 수요가 계속 감소하고 있습니다. 기존 JSP 유지보수 코드도 계속 감소하고, 꾸준히 우상향 하던 Thymeleaf도 감소로 돌아서기 시작했습니다. 그럼에도 다양한 곳에서 수요가 존재하기 때문에 알아가면 좋습니다. [카테고리를 백엔드로 선택했지만, View Re...

서버리스(Serverless) vs 상시 실행 서버(Server-based) 차이점과 선택 기준

요약하면 상시 실행 서버 는 요청이 없어도 서버가 항상 대기 상태로 유지되며, 서버리스(Serverless)는 요청이 있을 때만 함수가 실행되기 때문에 요청이 없을 때는 대기 상태처럼 보여도 실제로는 리소스를 사용하지 않기 때문에 서버리스라고 부릅니다. 1. 서버리스(...

이미지 최적화 라이브러리 Sharp 가이드

Sharp란 무엇인가요? sharp 는 고성능 이미지 처리 라이브러리로, 이미지 크기 조정, 포맷 변환, 압축 등 다양한 작업을 효율적으로 수행할 수 있습니다. Node.js 환경에서 이미지 처리를 손쉽게 할 수 있어 웹 애플리케이션의 성능 향상에 도움이 됩니다. 설치...