목록spring (6)
마이의 개발 블로그

배경아래 스크린샷의 메시지와 함께 스웨거가 렌더링되지 않는 현상이 발생했습니다. 내용만 보면 간단한 문제같아 보입니다. OpenAPI 설정에 필요한 버전 정보를 명시해주면 되는 것처럼 보이기 때문입니다. 취합한 정보를 바탕으로 여러 가지 방법을 적용해봤습니다. 그 과정에서 application.properties에 설정값도 넣어보고, @OpenAPIDefinition 어노테이션을 통해 문서 정보를 기입해보기도 하고, 별도의 SwaggerConfig 클래스를 생성하여 설정을 주입해보기도 하고, 스프링부트 버전과 springdoc의 버전을 변경해보기도 했지만 문제를 해결할 수는 없었습니다. 문제의 원인1. 파싱 불가능한 형태로 openapi 명세가 리턴됨스웨거에서는 왜 버전 필드를 읽어오지 못했을까요?저..
배경 ORM의 장단점을 알아보고, 어떤 상황에서 사용되는지 알아보려고 합니다. ORM의 장점 - 객체지향적 접근: 객체와 DB를 맵핑시켜 객체지향 언어로 DB를 조작할 수 있게 됩니다. - 추상화: DB를 추상화하여 접근하므로 구체적인 SQL 지식 없이 간편한 DB 조작이 가능해집니다. - 자동화: 반복적인 CRUD 작업을 자동화할 수 있습니다. 매번 직접 SQL을 작성할 필요가 없기 때문입니다. - 유지보수성 향상: DB 모델이 변경되거나 하는 경우 변경된 부분들에 대한 수정이 상대적으로 용이해집니다. - DB 독립성: ORM을 거쳐 DB에 접근하여 DB에 대한 의존도가 낮아집니다. 만약 DB 벤더가 변경되더라도 그에 따른 제반 작업(SQL 수정 등)을 할 필요가 없어집니다. - 성능 향상: 쿼리 최적..
배경 스프링 진영에서 ORM을 이야기할 때 함께 언급되는 키워드로 JPA, Hibernate, Spring Data JPA가 있습니다. 아래에서 이 네 가지의 개념에 대해 각각 알아보고, 관계를 간단하게 정리해보려고 합니다. ORM (Object Relational Mapping, 객체-관계 매핑) 객체(object)와 관계형(relational) 데이터베이스를 맵핑하는 프로그래밍 기법을 말하며, 객체지향 언어의 객체와 관계형 데이터베이스의 테이블 간의 매핑을 자동화하고 관리할 수 있게 해줍니다. ORM을 도입하면 개발자는 SQL 쿼리를 직접 작성할 필요 없이 이미 구현된 메서드를 통해 DB 조작을 수행할 수 있게 됩니다. JPA (Java Persistence API) 자바 진영의 ORM 표준 명세(s..
배경 JWT 보안 처리를 위한 필터체인 securityFilterChain를 구성 중 일부 코드가 동작하지 않아 동작하도록 고치는 과정에서 연속적으로 맞닥뜨리게 된 문제들이 있었다. 이를 해결하기 위해 꼬박 하루 이상의 시간을 사용했는데, 국내외를 막론하고 생각보다 문제에 대한 답을 제시해주는 포스트가 없기도 했고, 내가 평소에 개발을 하며 어떤 식으로 문제를 살펴보고 해결하는지를 기록으로 남겨두는 것도 좋을 것 같아 글을 쓰게되었다. 문제 1 - requestMatchers 메서드의 String 타입 사용 불가로 인한 컴파일 오류 메시지: cannot resolve method 'requestMatchers(String)' 기존에 사용된 antMatchers 메서드가 deprecated되어 reques..

문제 스프링부트를 공부하던 중 DevTools 의존성을 아래와 같이 추가했음에도 코드 변화를 감지하여 어플리케이션을 재시작하는 동작을 스프링이 수행하지 않는 문제가 발생했다. 기존에 사용했던 이클립스에서는 발생하지 않았던 문제로 인텔리제이만의 문제로 여겨져 검색하다가 해결방법을 찾아 공유한다. 해결 방법 인텔리제이 settings (Ctrl + Alt + S) - advanced settings - Allow auto-make to start even if developed application is currently running 항목에 체크 - 인텔리제이 종료 후 재시작 정상적으로 동작함을 확인했다.