본문 바로가기
728x90
728x90

Spring19

[@Transactional은 만능이 아니다!] Checked Exception과 @Transactional: 초보 스프링 개발자를 위한 가이드 Checked Exception과 @Transactional: 초보 스프링 개발자를 위한 가이드스프링(Spring) 프레임워크는 개발 생산성을 높이고, 복잡한 트랜잭션 관리 및 예외 처리를 간소화하는 데 강력한 도구를 제공합니다. 하지만 초보 개발자들은 Checked Exception과 트랜잭션 처리에 대해 자주 혼란스러워합니다. Checked Exception은 발생 시 반드시 처리해야 하는 특징을 가지며, 이는 코드의 안정성을 보장하지만 스프링의 기본 트랜잭션 관리 규칙과 충돌할 수 있습니다.이 글에서는 Checked Exception과 @Transactional 어노테이션의 기본 개념을 설명하고, 트랜잭션 관리에서 Checked Exception의 중요성을 실제 애플리케이션 사례를 통해 다룹니다. .. 2025. 1. 23.
MSA(마이크로서비스 아키텍처) vs 모놀리식 아키텍처 비교 MSA vs 모놀리식 아키텍처 비교: 장단점과 적용 사례 소프트웨어 설계에 있어 모놀리식과 마이크로서비스(MSA)의 차이점을 이해하고 적합한 아키텍처를 선택하세요. MSA와 모놀리식 아키텍처란? 아키텍처 설계는 소프트웨어의 성능, 유지보수성, 확장성에 큰 영향을 미칩니다. 모놀리식 아키텍처는 단일 애플리케이션 구조를 의미하며, MSA(마이크로서비스 아키텍처)는 작은 서비스 단위로 나뉘어진 분산 시스템을 말합니다. 위 이미지는 픽사베이에서 제공받았습니다. 픽사베이 1. 아키텍처 구조 모놀리식 아키텍처: 모든 기능이 하나의 코드베이스에서 동작하는 단일 구조. MSA: 각 서비스가 독립적으로 동작하며, REST API 또는 메시지 큐로 통.. 2025. 1. 9.
[Spring; 스프링] 직렬화와 역직렬화: Jackson ObjectMapper와 스프링부트에서의 활용 직렬화와 역직렬화는 데이터 저장 및 전송 시 자주 사용되는 개념입니다. 특히 Java와 같은 언어에서 객체를 효율적으로 다루기 위해 필수적인 기술입니다. 이 글에서는 직렬화와 역직렬화의 기본 개념을 소개하고, ObjectMapper를 활용한 JSON 데이터 변환 예제를 통해 어떻게 활용할 수 있는지 알아보겠습니다. 더 나아가, 스프링부트(Spring Boot) 환경에서 이를 어떻게 활용할 수 있는지 살펴보겠습니다.1. 직렬화(Serialization)와 역직렬화(Deserialization)란?1.1 직렬화(Serialization)직렬화는 객체의 상태를 저장하거나 네트워크로 전송할 수 있는 형식(예: JSON, XML, 바이너리 데이터)으로 변환하는 과정입니다. 이를 통해 메모리에 존재하는 객체를 파일.. 2024. 9. 23.
[Spring; 스프링] 스프링에서 `final`과 `@RequiredArgsConstructor`로 의존성 주입(DI) 쉽게 이해하기 스프링 프레임워크를 사용하다 보면 **의존성 주입(Dependency Injection, DI)**이라는 말을 자주 듣게 됩니다. 의존성 주입은 객체 간의 의존 관계를 스프링이 대신 관리해주는 것을 의미하는데요, 이 과정을 효율적으로 하기 위해 final과 @RequiredArgsConstructor를 많이 사용합니다. 이 글에서는 이 두 가지 키워드가 무엇인지, 왜 사용하는지, 그리고 롬복(Lombok) 없이도 의존성을 주입하는 방법까지 알아보겠습니다.1. final 키워드는 무엇인가요?final은 자바에서 변수를 한 번만 초기화하고, 이후에는 변경할 수 없게 만드는 키워드입니다. 이 키워드를 사용하면 다음과 같은 장점이 있습니다:변경 방지: 해당 변수가 의도치 않게 변경되는 것을 방지합니다.안정성: .. 2024. 9. 23.
[Spring; 스프링] JAR , WAR, EAR 차이점 및 특징 개요 JAR (Java ARchive, 자바 아카이브)는 여러 개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다. WAR (Web application ARchive, 웹 애플리케이션 아카이브) 파일은 소프트웨어 공학에서 자바서버 페이지, 자바 서블릿, 자바 클래스, XML, 파일, 태그 라이브러리, 정적 웹 페이지 (HTML 관련 파일) 및 웹 애플리케이션을 함께 이루는 기타 자원을 한데 모아 배포하는 데 사용되는 JAR 파일이다. JAR, WAR 모두 JAVA의 jar 툴을 이용하여 생성된 압축(아카이브) 파일이며 애플리케이션을 쉽게 배포하고 동.. 2024. 2. 1.
[Spring; 스프링] Spring MVC 자동구성 제어 / WebMvcConfigurer vs WebMvcConfigurationSupport / Swagger Spring Boot Version : 3.2.1 Java Version : 17 Swagger : 2.3.0 // swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' 새로운 프로젝트를 스프링부트 3.x 버전으로 해보고싶어서 간단하게 Controller, Service, Repository, Entity, Dto 등을 만들고 Security 설정을 해주고 Swagger 관련 설정들도 해줬다. 내 생각엔 모든게 완벽해 보였다. 하지만 스웨거 작동이 뭔가 삐걱거렸다. 내가 설정한 /v3/api-docs 가 나오는게 아니고 기본 페이지인 petstore 가 자꾸 기본으로 나오는것이다. "https://petstore... 2024. 1. 5.
728x90
728x90