본문 바로가기
728x90

백엔드40

스프링 DI(Dependency Injection) 스프링을 사용하면 객체 간의 의존성을 관리하는 방식이 기존의 Java 코드와 다르다.특히, **의존성 주입(DI, Dependency Injection)**은 스프링의 핵심 개념 중 하나이며, 이를 통해 객체 간의 결합도를 낮추고 유지보수를 쉽게 만들 수 있다.✅ 의존성(Dependency)이란?객체 A가 객체 B를 사용해야 할 때, A는 B에 **의존(Dependency)**한다고 말할 수 있다.예를 들어, MemberService 클래스에서 MemberRepository 클래스를 사용한다고 가정해 보자.public class MemberService { private MemberRepository memberRepository = new MemberRepository();} 위 코드에서는 Mem.. 2025. 3. 27.
@Transactional: 데이터베이스 트랜잭션 관리의 핵심(백엔드개발/Spring Framework) Java와 Spring 프레임워크를 사용하여 개발할 때, 데이터베이스 트랜잭션 관리의 중요성을 간과할 수 없다. 이때 @Transactional 어노테이션이 큰 역할을 한다.1. 트랜잭션이란?트랜잭션은 데이터베이스에서의 작업 단위를 의미한다. 여러 작업을 하나의 단위로 묶어 처리하며, 데이터의 일관성과 무결성을 보장하기 위한 중요한 요소이다. 트랜잭션은 다음과 같은 네 가지 주요 속성(ACID)으로 정의된다:원자성 (Atomicity): 트랜잭션 내의 모든 작업이 완전히 수행되거나 전혀 수행되지 않아야 한다.일관성 (Consistency): 트랜잭션이 성공적으로 완료되면 데이터베이스는 일관된 상태여야 한다.고립성 (Isolation): 동시에 실행되는 트랜잭션이 서로에게 영향을 미치지 않도록 보장한다.지.. 2025. 2. 28.
개발자를 위한 필수 기술 스택 간단정리(프론트엔드/백엔드) 개발자로 취업하기 위해서는 다양한 기술을 익히고 활용할 수 있어야 한다. 각 기술은 특정 목적을 가지고 있으며, 어떤 상황에서 사용되는지 이해하는 것이 중요하다. 여기서는 백엔드, 프론트엔드, 데이터베이스, 인프라/기타 기술로 구분하여 정리한다.(chatGPT의 도움을 받아 정리한 내용)1. 백엔드 기술백엔드는 클라이언트 요청을 처리하고 데이터베이스와 통신하는 역할을 한다.1.1 백엔드 프로그래밍 언어Java: 객체 지향 프로그래밍 언어로, 대규모 웹 애플리케이션 개발에 많이 사용된다. Spring Framework와 함께 사용되며, 안정성과 확장성이 뛰어나다.1.2 백엔드 프레임워크Spring Framework: Java 기반의 대표적인 웹 프레임워크로, 의존성 주입(DI), AOP 등의 기능을 제공하.. 2025. 2. 27.
Java의 Optional: Null 안전한 프로그래밍(Java8) Java에서 NullPointerException은 자주 발생하는 문제 중 하나이다. 이를 피하기 위해 Java 8에서는 Optional이라는 클래스를 도입하였다. Optional을 사용하면 보다 안전하고 명확한 코드 작성을 할 수 있다. 1. Optional이란?Optional은 값이 있을 수도 있고 없을 수도 있는 상황을 표현하기 위한 컨테이너이다. 즉, Optional 객체는 null이 아닌 값을 담거나, 아무 값도 담지 않을 수 있다. 이를 통해 null 체크를 수월하게 하고, null로 인한 오류를 방지할 수 있다.1.1. Optional의 주요 메서드isPresent(): 값이 존재하는지 확인하는 메서드이다.ifPresent(Consumer action): 값이 존재할 경우, 주어진 동작을 수.. 2025. 2. 27.
(React + Typescript) + (Spring Boot + JPA + MySQL) 프로젝트 세팅 / tailwind css 설치 오류 포함 개인적으로 React + Typescript도 공부할겸, Spring Boot도 복습할 겸 맨땅에 헤딩을 하는 방법으로 무작정 프로젝트를 시작했다.그런데 역시나 초기 세팅부터 이래저래 우여곡절이 많았다. 기존에는 백엔드 프로젝트를 할때 spring boot 프로젝트 만들고 프론트엔드 부분은 Thymeleaf를 주로 활용해서 intelliJ나 STS로 진행을 했었는데, 이렇게 프론트엔드 작업과 백엔드 작업을 한번에 하는 경우 프로젝트를 어떻게 세팅해야 할지 막막했다. 특히 React + Typescript는 기본 지식이 있는게 아니라 이번에 맨땅에 헤딩 하면서 공부할 생각이었기에 전적으로 chatGPT와 구글링의 도움이 필요했다. 그래서 지금 정리하는 아래의 방법이 일반적인 방법인지 솔지히 모르겠지만, 나.. 2025. 2. 12.
장바구니 상품삭제 Ajax 에러(해결)_(CSRF 토큰 관련) Spring Boot, Spring Security, JPA, MySQL을 활용하여 간단한 프로젝트를 진행하는 과정중 장바구니 상품 삭제에서 오류가 발생했다. @PostMapping("/delete") public String deleteCartItem(@RequestParam("cartNo") Integer cartNo, RedirectAttributes redirectAttributes) { try { System.out.println("cartNo: " + cartNo); cartService.removeCartItem(cartNo); redirectAttributes.addFlashAttribute("message", ".. 2025. 2. 5.
728x90