개발일지/Spring19 동시성 문제를 고려한 HashMap<>() 선택하기 Spring에서 HashMap을 저장소로 사용할 때 동시성 문제를 고려하는 것은 중요합니다. HashMap은 Java의 key-value(키-값) 쌍을 저장하는 자료구조로, java.util 패키지에 포함된 해시 테이블 기반의 맵이고, 동기화되지 않은 자료구조입니다.public class MemoryMemberRepository implements MemberRepository{ // DB 확정이 되지 않아서 Memory용 test용으로만 사용 private static Map store = new HashMap(); // 동시성 문제를 고려한다면 ConcurrentHashMap() 을 사용해야 한다. 1. HashMap과 동시성 문제HashMap은 동기화되지 않은 자료구조이므로, 멀티스.. 2025. 2. 7. 객체지향원칙을 고려한 Spring 테스트 설계 전략 (JUnit) Spring 애플리케이션에서 객체지향 원칙을 준수하는 테스트 설계는 유지보수성과 확장성을 보장하는 데 매우 중요합니다.특히, DIP(의존 역전 원칙)와 IoC(제어의 역전)을 활용한 설계를 기반으로 테스트를 작성하면, 테스트 코드가 변경 없이 다양한 구현체를 검증할 수 있습니다.이번 글에서는 객체지향 원칙을 고려한 테스트 설계 전략을 스프링 컨테이너와 JUnit을 활용해 설명합니다.🔹 객체지향 원칙과 테스트 설계의 관계Spring은 기본적으로 객체지향 프로그래밍(OOP) 원칙을 따르며, 이를 바탕으로 DI(의존성 주입)를 활용하여 객체 간 결합도를 낮춥니다.테스트 코드에서도 객체의 책임을 분리하고, 유연한 구조를 유지하기 위해 객체지향 원칙을 적용해야 합니다. 1️⃣ 객체지향 원칙 (SOLID)과 테스.. 2025. 2. 6. Spring 테스트 케이스 작성 방법과 팁 (JUnit) Spring Boot 애플리케이션을 개발할 때, 테스트 코드 작성은 필수적입니다.테스트를 잘 작성하면 버그를 사전에 방지할 수 있고, 코드 변경이 발생해도 안정성을 보장할 수 있습니다.이번 글에서는 Spring Boot에서 JUnit을 활용한 테스트 케이스 작성 방법과 실전 팁을 정리했습니다.단위 테스트부터 통합 테스트까지 모든 테스트 전략을 한눈에 정리할 수 있도록 구성했습니다.✅ Spring Boot 테스트의 기본 개념Spring에서의 테스트는 크게 두 가지로 나뉩니다.1️⃣ 단위 테스트 (Unit Test)하나의 메서드나 클래스가 올바르게 동작하는지 확인하는 테스트보통 Mockito를 사용하여 Mock 객체를 활용DB나 외부 API와의 의존성을 제거하고 순수한 비즈니스 로직만 테스트2️⃣ 통합 테스.. 2025. 2. 6. Thymeleaf(타임리프) 템플릿엔진 ? Thymeleaf(타임리프)는 Java 기반의 템플릿 엔진으로, Spring Boot와 함께 가장 많이 사용되는 뷰 템플릿 엔진 중 하나입니다. HTML을 기반으로 하여 동적인 웹 페이지를 만들 수 있으며, 서버에서 데이터를 전달하여 이를 HTML 내에서 표현하는 방식으로 작동합니다. 1. Thymeleaf의 특징1) 순수 HTML 파일을 그대로 열어볼 수 있음Thymeleaf는 일반적인 HTML 파일로 작성되므로, 브라우저에서 직접 열어도 깨지지 않고 정상적인 HTML 페이지로 보입니다. 이는 JSP와 같은 템플릿 엔진과 비교했을 때 가장 큰 장점 중 하나입니다.2) Spring Boot와의 강력한 통합 지원Spring Boot에서 spring-boot-starter-thymeleaf를 추가하면 자동으.. 2025. 2. 6. Spring 중요한 라이브러리 스프링 부트(Spring Boot)는 스프링 프레임워크를 더 쉽게 사용할 수 있도록 도와주는 강력한 툴입니다. 다양한 스타터(Starter) 패키지를 제공하여 개발자가 빠르게 애플리케이션을 구성할 수 있도록 지원합니다. 이번 글에서는 스프링 부트에서 중요한 라이브러리들을 정리하고, 각 라이브러리의 역할과 특징을 설명하겠습니다.1. 스프링 부트 핵심 라이브러리1.1 spring-boot-starter (공통 패키지)스프링 부트 프로젝트의 기본적인 설정 및 라이브러리를 포함합니다.spring-core, spring-boot, spring-boot-starter-logging 등을 포함합니다.1.2 spring-boot스프링 부트의 핵심 라이브러리로, 자동 설정(Auto Configuration) 기능을 제공.. 2025. 2. 6. Spring 프로젝트 기본 환경 설정 - Intellij 1. 프로젝트 생성Java 17 이상 설치IDE: IntelliJ 또는 Eclipse 설치 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성하기https://start.spring.io/ 2. IntelliJ Gradle 대신에 자바 직접 실행최근 IntelliJ 버전은 Gradle을 통해서 실행 하는 것이 기본 설정입니다. 이렇게 하면 실행속도가 느립니다. 다음과 같이 변경하면 자바로 바로 실행해서 실행속도가 더 빠릅니다. (1) 맥 사용자Preferences 들어가기 -> Build, Execution, Deployment Build Tools -> Gradle 선택Build and run using: Gradle을 -> IntelliJ IDEA로 변경Run tests using: Gradl.. 2025. 2. 6. 이전 1 2 3 4 다음