TIL

· TIL
이런 테이블을 가지고skillTxt를 기준으로 찾아서 이런 결과물을 뽑고싶었음 해결을 하긴 했는데 맘에 들지 않아서 좀 더 좋은 방법이 없을까 고민하다가지피티에게 장문의 편지를 보냈더니 해답을 주었따  대충 이러하당 SELECT temp.SKILL_CDS AS skillCds , GROUP_CONCAT(skill.SKILL_TXT ORDER BY FIND_IN_SET(skill.SKILL_CD, temp.SKILL_CDS)) AS skillTxt FROM TEMP AS tempLEFT JOIN SKILL AS skill ON FIND_IN_SET(skill.SKILL_CD, temp.SKILL_CDS) FIND_IN_SET () 함수는 쉼표로 구분된 문자열(temp.SKILL_CD..
· TIL
Long bookResult = queryFactory .update(book) .set(book.bookStatus, 1) .where(book.bookNo.eq(bookNo)) .execute(); javax.persistence.TransactionRequiredException: Executing an update/delete query 책 대출 기능 개발 중, 대출하려는 도서의 대출 상태값을 수정하기 위해 querydsl로 update 구문을 실행하였으나 해당 Exception이 발생하면서 정지... update, delete구문을 실행할 땐 transaction 내에서 실행을 해야 하기 때문에 해당 메서드에 @Transactional 어노테이션을 붙여 해결하였다. @Override @Trans..
· TIL
그냥... 한 번 해봤따. 응답 데이터가 좀 더 복잡한 api를 원했는데 승인이 너무 안 나서 일단은 간단한 것 먼저 시도해보았다. 사실 뭔가 구구절절 설명을 할만한 구문이 딱히 없는 것 같아서 기록 남기기 정도로 써본다... 코드는 여기에... : https://github.com/rriverr/OpenApiToDB JPA를 사용해보니 생각만큼 복잡하진 않은데, 해당 API는 총 데이터가 600개 언저리라 대용량이라고 할만한 데이터를 다뤄보지 못해서 좀 아리까리하다... 조만간 데이터 승인 나면 해보는 걸로! 600개 정도를 한 번에 조회하여 집어넣을때 약 15~20초정도 소요된 것 같은데 그럼 10000개에 5분정도 걸리려나... 조금 찾아보니 DTO+JDBC를 사용했을 때 제일 빠른 경우가 있다고 ..
· TIL
@OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "bookNo", referencedColumnName = "bookNo") private Book book; @OneToOne 일대일(One-to-One) 관계의 테이블 컬럼을 가져올 때. 그 외 다대일(@ManyToOne), 일대다(@OneToMany), 다대다(@ManyToMany) 등 지금은 책 한 권에 대한 해당 책의 별점 레코드를 가져오는 상황이므로 1:1 fetch = FetchType.LAZY 지연로딩. LAZY를 사용하면 연관 엔티티에 접근하는 시점에 쿼리가 실행된다. 필요한 경우에만 데이터를 가져오므로 성능 최적화 반대는 FetchType.EAGER 부모 엔티티가 로드되는 순간 함께 로드된다...
· TIL
Spring Security를 추가한 경우 이렇게 어플리케이션을 시작하고 어느 경로로 들어가던 login창이 뜨는 경우가 있다. 이는 스프링 시큐리티가 모든 url 요청을 가로채 검증을 요구하기 때문이다. 기본적으로 계정 정보는 username : user password : 콘솔창에 출력되는 비밀번호 를 입력하면 접속할 수 있다. 이렇게 로그인을 진행하면 자체적으로 세션이 생성되는데, 우린 따로 회원가입/로그인 과정을 DB와 함께 직접 구현하기 때문에 굳이 이 페이지가 필요하지 않다. 그리고 계속 구현을 진행하며 테스트할땐 귀찮기도 하구... 🙄 1️⃣ 어노테이션을 통해 인증 과정 없애기 @SpringBootApplication(exclude = SecurityAutoConfiguration.class..
· TIL
프로젝트를 진행할 때마다 수많은 외부 라이브러리들을 직접 파일로 다운로드 받아 알맞는 경로의 폴더에 넣어가며 관리해야 한다면 굉장히 피곤할 것이다... maven과 gradle은 이런 귀찮은 작업들을 손쉽게 해결할 수 있도록 도와주는 빌드 관리 도구이다. 각각의 설정파일에 의존성을 주입해주면 알아서! 자동으로! 네트워크를 통해 다운로드를 받는다. - Maven 메이븐은 상술한 귀찮은 작업들을 간소화할 수 있도록 도와준다. 필요한 라이브러리를 프로젝트 최상위 디렉토리의 pom.xml 파일에 dependency로 주입해주면 알아서 내가 사용하려 하는 라이브러리 뿐만 아니라 해당 라이브러리가 작동할 때 필요한 다른 라이브러리까지 관리하여 다운로드 받아준다. 문법이 복잡한 편은 아니지만 끝없이 가 이어지다보면 ..
유나룽야
'TIL' 카테고리의 글 목록