분류 전체보기 24

[JPA 오류] Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting constructor argument 오류

@WebMvcTest를 진행하는데 아래와 같은 오류를 만났습니다. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting constructor argument at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:377) at org.springframework.be..

오류 해결/JPA 2023.07.23

[Security] Spring Security 6 적용해보기

이동욱님의 스프링부트와 AWS로 혼자 구현하는 웹서비스 책을 쭉 따라가다보니 Spring Security를 적용하는 부분이 있었습니다. 책이 쓰여질 당시에는 boot 버전도 2이고, spring도 5버전대였던 것 같은데, 예제를 boot 3버전, spring은 6버전대로 적용해가며 따라가 보았습니다. 문제가 됐던게 spring security 적용하는 부분이었습니다. spring security가 SecurityFilterChain을 적용하는 부분부터 많이 변경되어서 그런거 같은데, 만났던 오류 상황들을 정리해보려고 합니다. 1. Authentication(인증) vs Authorization(인가) 기본적으로 스프링 시큐리티가 해결하고자 하는 핵심적인 문제인 인증과 인가에 대해서 공식문서를 보면서 쭉 ..

Spring/Security 2023.07.23

최대공약수 구하기 (feat 최소공배수 구하기)

1. 최대공약수 구하기 (gcd) 유클리드 호제법 두 개의 정수가 주어졌을 때, 최대공약수를 구하는 알고리즘 두 정수 A, B에 대해서, R이 A / B의 나머지이면 최대공약수(A, B) = 최대공약수(B, R)이 성립한다. R이 0이 되었을 때 B는 A와 B의 최대 공약수 이다. private int gcd(int big, int small) { if (small > big) { int tmp = small; small = big; big = tmp; } if (big % small == 0) { return small; } return gcd(small, big % small); } 2. 최소공배수 구하기 (lcm) 위 유클리드 호제법으로 구한 최대공약수를 활용 두 정수 A, B에 대하여 최소공배수는..

[Querydsl] SpringBoot 3 Querydsl 적용해보기 (Dto반환)

"스프링 부트와 AWS로 혼자 구현하는 웹서비스" 라는 도서를 읽던 중에 Querydsl 실제 적용 내용이 없어서, Querydsl 강의 들은 내용도 정리 할 겸 블로그에 글을 남겨보려고 합니다. 해당 프로젝트에서 사용한 버전은 다음과 같습니다. - SpringBoot 3.1.0 - hibernate 6.2.2 - querydsl 5.0.0 버전이 바뀌면 적용 방법이 달라질 수 있습니다. 1. build.gradle 셋팅 먼저 build.gradle에서 querydsl 의존성을 추가합니다. 기본적으로 data-jpa의 의존성은 있다고 가정합니다. dependencies { ... //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'..

JPA/Querydsl 2023.06.21

[클린 아키텍처] 프로그래밍의 패러다임

엉클 밥의 [클린 아키텍처] 독서 스터디를 진행하며, 느낀 생각들을 정리해 보고자 합니다. 02. 벽돌부터 시작하기: 프로그래밍 패러다임 저자는 "패러다임이란 프로그래밍을 하는 방법으로, 대체로 언어에는 독립적이다."라고 소개합니다. 뒤이어 과거부터 현재까지 존재하는 딱 3가지 패러다임, 구조적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍에 대한 이야기를 시작합니다. 각 패러다임은 소프트웨어를 개발하는 우리에게 어떠한 권한과 기능을 제공하지 않습니다. 오히려 "제한"을 요구합니다. 구조적 프로그래밍은 goto문을, 객체지향 프로그래밍은 함수 포인터를, 함수형 프로그래밍은 할당문을 개발자에게 사용하지 못하도록 합니다. 이를 통해 각 패러다임에서 얻고자 하는 것을 장점으로 취합니다. 구조적 프로그래밍..

[Batch] Spring Batch 따라하기 | Creating a Batch Service

담당 시스템 재구축 프로젝트를 하면서, 기존 레거시 시스템을 Spring Batch로 전환하게 되었습니다. 자체 개발로 진행되지 않은 프로젝트 특성상.. 입맛에 맞지 않는 부분이 참 많습니다. 일단 Spring Batch에 대해 scratch부터 이해하고자, Spring 공식 가이드부터 따라하며 정리해보고자 합니다. https://spring.io/guides/gs/batch-processing/#scratch Getting Started | Creating a Batch Service A common paradigm in batch processing is to ingest data, transform it, and then pipe it out somewhere else. Here, you need ..

Spring/Batch 2023.05.30

[JPA 오류] org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL

JPA 자동 ddl 사용하여 테이블을 생성 중 다음의 오류가 발생했습니다. org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table ... 중략 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000a create table candidate (\000a candidate_id bigint not null,\000a [*]month integer,\000a year integer,\000a nominated_member_id bigint,\000a primary key (candidate_id)\..

오류 해결/JPA 2023.04.08

[Mac] Zulu JDK Java 17 버전 설치하기 - Macbook Pro m1

Spirng 6, Spring Boot 3 버전 이상을 사용하기 위해선 Java 17 이상의 버전이 요구됩니다. 그동안 Java 11 버전에 Boot 2.x 버전을 사용해 왔었는데, 새로 프로젝트를 시작하기 전에 Java 버전을 올려보려고 합니다. brew를 통해 설치하는 방법도 있는데, 오히려 dmg 파일로 설치하는게 더 간편하다고 느껴 이 방법으로 진행해보겠습니다. 1. 먼저 zulu 사이트에 접속합니다. https://www.azul.com/downloads/#zulu Azul Downloads According to the Gartner report, “by 2025, more than 70% of Java applications will be deployed on third-party Java ..

mac 2023.04.07

mac 쌍자음 문자 삭제 한번에 하기 (gureum 입력기 homebrew 설치)

맥북으로 한글을 많이 타이핑 하다보면 화나는 것이 한가지 있습니다. 쌍자음 오타가 나면, ㄸ => 백스페이스 => ㄷ 한번에 ㄸ이 지워지지 않고 ㄷ으로 남아 또 다시 오타를 유발합니다. 인터넷 검색을 하다보니 구름 입력기를 많이 설치하시는 것 같은데, 바뀐 mac 시스템 설정 화면과 다른 부분들이 있어 한번 과정을 정리해보겠습니다. 참고) gureum 입력기 github 주소 https://github.com/gureum/gureum GitHub - gureum/gureum: 더 편리한 macOS 한글 입력기 더 편리한 macOS 한글 입력기. Contribute to gureum/gureum development by creating an account on GitHub. github.com 1. gu..

mac 2023.02.01

[WAS] JEUS 에서 Tomcat 으로 전환하기 (Intellij Tomcat 연동)

회사에서 로컬 WAS 환경을 JEUS6.0에서 Tomcat6 버전으로 바꾸면서 겪은 것들을 기록해보려 합니다. 이와 같은 일을 할 사람이 많이 없을 것 같지만, 자리 이동시를 대비하고, 대단하진 않지만 그 과정에서 얻는 내용을 적어보겠습니다. 망분리가 이뤄지는 환경이라 스크린샷은 개인 PC 환경으로 조금씩 대체해보겠습니다. 1. 상황 그간은 회사에서 10년도 넘은 시스템을 개발/운영 하였습니다. 개발 환경은 Java 7, JEUS6.0 (WAS), WebtoB (WEB), Xplatform (프론트 툴), Svn (형상관리) 등.. 금융사에서 많이 사용하는 업체 제품과, IDE는 Ecplise만 지원받았습니다. 그러다 회사 젊은층을 중심으로 JetBrains 제품을 사달라는 얘기가 나왔고, Java 환경..