목록SpringBoot (13)
우당탕탕
JPA vs MyBatis: 어떤 ORM을 선택해야 할까? 스프링 백엔드 개발자라면 한 번쯤 고민해 봤을 질문, JPA와 MyBatis 중 무엇을 선택해야 할까?두 기술은 자바 애플리케이션에서 데이터베이스와 상호작용하는 데 사용되지만, 접근 방식과 특징이 크게 다릅니다. 이번 글에서는 JPA와 MyBatis의 차이점, 장단점, 그리고 상황에 따른 선택 기준을 명확히 정리해 보겠습니다. 1. JPA와 MyBatis의 기본 개념 JPA란?JPA(Java Persistence API)는 자바 표준 ORM(Object-Relational Mapping) 기술입니다. 객체 지향 프로그래밍 방식으로 데이터베이스와 상호작용할 수 있도록 설계되었습니다. JPA를 사용하면 SQL 대신 객체(Entity)를 통해 데이터..
HttpRequest 30초 Timeout오류 최근 사이드 프로젝트를 진행하면서 외부 기관과의 API 연동을 시도한 적이 있다. 이 과정에서 API 호출에 1분 이상의 시간이 소요되었고, 30초가 지나면 500 오류가 발생하는 현상을 경험했다. 흥미롭게도 Spring Boot 서버에서는 오류가 발생하지 않고 정상 응답이 돌아왔다. 이러한 문제를 해결한 방법을 공유하려 한다.프로젝트 구성 Next.js: 프론트엔드 (포트 3000)Spring Boot: 백엔드 (포트 8080)외부 기관: 데이터 제공이 구조에서 프론트엔드에서 Spring Boot 서버로 요청을 보내면, 서버가 외부 기관의 데이터를 가져와 다시 프론트엔드로 리턴하는 방식으로 작동한다.문제 발견API 호출을 진행했을 때, 30초에서 31초 사..
무작정 따라 하기 1탄 나만의 TODO리스트 만들기 3편 👩💻안녕하세요! 이전 2편에서는 데이터베이스 설계 및 엔티티 클래스를 구현을 진행하였습니다. 이번 편에서는 CRUD 기능중 Create, Read를 구현해 보겠습니다.기본적인 디자인은 부트스트랩(Bootstrap)을 활용해보겠습니다.3편 예시 완성본이제 시작해 봅시다~1. HTML 폼 작성1.1 HTML 폼 만들기src/main/resources/static/ 폴더에 index.html 파일을 생성하고 아래 코드를 입력합니다. TODO 리스트 추가 ..
10분 만에 인텔리제이(IntelliJ) 설치하기 안녕하세요!이번 편에서는 실제 프로젝트에 들어가기 전 필요한 인텔리제이 (IntelliJ) 설치를 진행해 보도록 하겠습니다.인텔리제이(IntelliJ)란?인텔리제이는 JetBrains사에서 만든 IDE(통합 개발 환경)으로 이클립스보다 보다 편리한 기능들이 많이 포함되어 있는 툴입니다. 인텔리제이 설치하기인텔리제이는 기본적으로 Community(무료) 버전과 Ultimate(유료) 버전으로 나뉘어있는데 이번 편에서는 Community버전 설치를 진행해 보겠습니다. [ Ultimate버전의 경우 30일 무료 사용이 가능합니다 ]아래 링크를 통해 JetBrains 사이트에 접속합니다https://www.jetbrains.com/ko-kr/idea/downlo..
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException Spring boot 2.6 이후의 버전에서 matching-strategy의 값이 ant_path_matcher에서 path_pattern_parser로 변경되었다. 이러한 과정에서 오류가 발생하고 있는 것이었다. 해결방법으로는 application.yaml 파일에서는 spring: mvc: pathmatch: matching-strategy: ant_path_matcher application.propertie..
IoC와 DI란? 스프링을 사용하면 IoC와 DI라는 단어를 많이 듣게 된다. IoC와 DI는 뭘까?? IoC(Inversion of Control)란? IoC란 영어 그대로 제어의 역전이라 부른다. 제어의 역전이란 메서드나 객체의 호출 작업을 개발자가 아닌 스프링에게 제어권을 넘기는 것을 말한다. 이전까지는 개발자가 객체의 생성을 관리하며 제어했지만, 스프링을 사용하게 되면 스프링 컨테이너에게 제어권을 넘겨 스프링 컨테이너가 흐름을 제어하게 된다. DI(Dependency Injection)란? DI란 의존성 주입이라 부르며, 객체를 직접 생성하는 게 아닌 외부(IOC 컨테이너)에서 생성한 후 주입시켜주는 방식이다. 의존성 주입 방식으로는 3가지 방법이 존재한다 생성자 주입 ( Constructor I..
