스프링 프레임워크가 필요한 객체를 생성하여 관리하는 역할을 대신해 줍니다.스프링 '빈' 사용 방법@Autowired멤버변수 선언 위에 @Autowired → 스프링에 의해 DI (의존성 주입) 됨주입하려는 변수 위에 다가 @ Autowired 선언 하면 생성된 빈
JWT 회원가입, 로그인 구현
이번주 스프링 숙련강의는 한 강의 듣을때마다 많은 시간이 소요되어 강의를 과제 제출 전까지 다 들을 수 있을지 걱정이었는데, 결국 밤새어 들어서 다행히도 과제제출까지 할 수 있었다. 정규식 구현까지 하지는 못하였지만, 이번주 강의는 굉장히 이해하는데에 어려움도 있었지만
https://velog.io/@wonizizi99?tag=3Tier@Controller 사용시 500이슈 생김 MVC.html .thymeleaf 등 회원가입.html등 뷰를 찾는데 뷰가 없기 때문에 에러발생@ResponseBody 달면 뷰를 찾지 않고
ResponseEntity를 이용한 메세지와 상태코드 반환🔺 에러발생은 하지 않았지만 테스트가 필요하여 진행중임 🔺
Payload 부분에는 토큰에 담을 정보가 들어있습니다. 여기에 담는 정보의 한 ‘조각’ 을 클레임(claim) 이라고 부르고, 이는 name / value 의 한 쌍으로 이뤄져있습니다. 토큰에는 여러개의 클레임 들을 넣을 수 있습니다.클레임 의 종류는 다음과 같이 크
로그인, 게시글 삭제 후 상태코드와 메세지 반환방법
폴더 Entity 관점폴더 여러 개를 회원 1명이 가질 수 있음"@ManyToOne"폴더를 소유한 회원을 조회객체의 관계를 맺어주면, DB 의 관계 설정 맺어줌객체) 회원과 폴더의 관계 폴더를 소유한 회원 id 가 아닌 객체를 저장DB) 회원과 폴더의 관계 외래키를
이번주는 가장 어려웠기도 하면서 여태까지 배운것들이 조금씩 퍼즐이 맞춰가는 것같아 어려운 만큼 재밌었다. 일일히 수작업으로 써야만 했던 코드들이 Spring Data JPA 를 사용하니코드가 후루룩 가독성과 함께 너무 편리한 기능들로 나의 손가락이 즐거워졌다. (고생한
이 포스팅은 공부를 위해 망나니개발자 를 참고 하였습니다. JDK8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 Java를 이용해 함수형으로 프로그래밍할 수 있는 API 들을 제공해주고 있다. 그 중에서 Stream API는 데이터를 추상화하
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL🎈블로그를 네이버에서 벨로그로 이사했습니다. ^^ 🎈
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL(https://blog.naver.com/wonizizi89/222922686335업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL업로드중..
이전 사용한 블로그 TIL
이전 사용한 블로그 TIL업로드중..
ㅇ
초기 프로젝트가 뭔가 잘 작동되지 않는거 같아 프로젝트를 종료한 채 새로 프로젝트를 만들었더니 아래와 같은 코드가 발생했다. 구글링을 통해 알게 되었다.이 에러가 발생하는 경우는 서버를 구동하려고 할 때 서버가 사용하려고 하는 port를 다른 프로세스나 프로그램이 점유
스프링 시큐리티는 SecurityContext에 인증된 Authentication 객체를 넣어두고 현재 스레드 내에서 공유되도록 관리하고 있는데요.아래는 SecurityContext 인터페이스에 기재된 주석의 일부를 발췌했습니다.(SecurirtContext : Int
자주 겪는 에러이기 때문에 순서 기록하기일단 JVM 버전 변경 - 이건 진짜 왠만하면 자동으로 잡힌다.File - Project Structure - Project - Project SDK 변경File - Project Structure - Project - Proje
스프링 시큐리티는 요청이 들어오면 Servlet Filter Chain을 자동으로 구성한 후 거치게 된다. Filter는 Client요청이 전달되기 전후의 URL패턴에 맞는 모든 요청에 필터링 역할을 한다. 예) CSRF, XSS 등 보안 검사를 통해 올바른 요청이 아
1 . 문제점 회원가입 및 로그인 시 비밀번호를 안정성을 위한 비밀번호 암호화 시도와 아이디 및 패스워드에 정규식 적용 2 . 시도한 점 원래는 양방향 비밀번호였지만 해킹 등의 안정성을 고려하여 단방향 암호화 알고리즘을 시도했다. @Valid 유효검사를 이용하여 해당 클래스에 세부적인 어노테이션으로 정규식 사용함 3 . 해결 UserController...
회원가입, 로그인 후 토큰이 발급되면 생성된 토큰을 Header에 담아 게시글 작성, 댓글 작성 등 할때마다 각 API Header Authorization에 수동으로 넣어줘야하는 수고스러움이 있었다. 그래서 매번 그럴 수는 없어 방법을 찾는데 구글에서는 토큰을 바디에
1\. 사용자가 ID, PW를 입력하여 서버에 로그인 인증을 요청한다.2\. 서버에서 클라이언트로부터 인증 요청을 받으면, Header, PayLoad, Signature를 정의한다. Hedaer, PayLoad, Signature를 각각 Base64로 한 번 더 암호
부모 엔티티 삭제CascadeType.REMOVE와 orphanRemoval = true는 부모 엔티티를 삭제하면 자식 엔티티도 삭제한다.부모 엔티티에서 자식 엔티티 제거CascadeType.REMOVE는 자식 엔티티가 그대로 남아있는 반면, orphanRemoval
정기 회의 시간: 매일 1회, 저녁 7시merge 하기 전 팀원 2명 이상에게 approve 받기Pull Request할 때, 슬랙으로 팀원들에게 공지해주기feature/1-작업명 간단하게 만들고 시작하기1 - 태이, 2 - 준혁, 3 - 혜원, 4 - 승엽, 5 -
포스트맨 사용법 ( 토큰 환경변수 설정하여 자동 기입 )Spring Security Access Token 과 RefreshToken 개념 및 구현연관관계깃허브 협업 방법JVM 의 메모리 영역 원리 스프링 시큐리티 심화 다 듣고 개인 프로젝트 응용해보기-security
게시글 작성 구현 후 포스트맨으로 게시글 작성을 보내니 , 500에러와 함께 콘솔창에 아래와 같은 에러 발생했다. ........... JSON 보낼때 content 변수명이 잘못되었다.contents(x) -> content
5 . 기타 공부
5 . 기타 공부
Jwt 토큰을 이용한 인증 방식은 매 요청때마다 인증을 해야 하는 수고스러움이 있다. 이것을 서비스에서 매번 인증하지 않고 SecurityFilter 를 이용 하여 커스텀한 JwtAuthFilter 로 인증, 인가를 한번에 처리 할 수 있다. 변경 전변경 후 변경 전
SQL을 직접 사용해보며 연관관계에 대해 좀 더 이해하게 됨직접 SQL 문을 작성하여 데이터베이스 추출 refresh Token 응용 스프링 시큐리티 심화 다 듣고 개인 프로젝트 응용해보기-예외처리(x)알고리즘 문제 매일 1문제이상 풀기 (o)테스트 코드 작성해보기(x
개발 진행에 따른 기록 작성(★★★★★)어떠한 이유로 해당 기능을 사용하였는지 해당 기능의 코드는 어떠한 로직을 가지고 있는지※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지코드를 작성하며 발견된 버그나 오류는 어떠한게 있었는지 그리고 어떻
개발 진행에 따른 기록 작성(★★★★★)
어떠한 이유로 해당 기능을 사용하였는지프로덕트를 등록하거나 CRUD 기능 에서 판매자의 id가 필요하여 @ManyToOne 으로 단방향 연관관계를 맺어줬다. 해당 기능의 코드는 어떠한 로직을 가지고 있는지※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지
개발 진행에 따른 기록 작성(★★★★★) 1. 어떠한 이유로 해당 기능을 사용하였는지 코드 구현 후 테스트하기 위해 포스트맨을 사용시 매번 회원가입을 해야하고, 판매자였다가 고객이었다가 로그인을 번갈아가며 테스트하는 반복작업을 위해 사용했다. 2. 해당 기능의 코드는 어떠한 로직을 가지고 있는지 참고 https://velog.io/@wonizizi99...
gf
에러코드 정의하기 클라이언트에게 보내줄 에러 코드를 정의해야 한다.에러 코드는 애플리케이션에서 전역적으로 사용되는 CommonErrorCode와 특정 도메인에 대해 구체적으로 내려가는 UserErrorCode로 나누고, 인터페이스를 이용해 추상화한다. 먼저 다음과 같
Array는 오브젝트 같은게 쭉쭉와야 되는데만약에 이랬을 경우 다른 기능들도 주입 할 수 있는 확장성이 생기는데배열로 바로 받아버리면 확장성이 굳혀져 확장 할 수 없다. Object Type으로 반환하는 것이기 때문에 Result 라는 껍데기를 씌워줄것이고 필드의 값은
4 . 알게 된점
jUnit + mockito 를 이용한 단위테스트 방법알고리즘 : priority Queue 자료구조알고리즘 : Arrays.sort 를 사용하면 연산시간이 길다. priority Queue (우선순위 큐, 오름차순 자동) 또는 pop 이용 하면 연산시간이 3배 가까이
userService test 중 회원가입은 잘되었으나 로그인때 에러발생함 Cannot invoke "com.example.myblog1.common.jwt.JwtUtil.createToken(java.lang.String, com.example.myblog1.use
문제 설명두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.제한사항1 ≤ left ≤ r
Repository : 특별한 기능을 제공하는 인터페이스가 아닌 마크 인터페이스입니다. 이 인터페이스가 Repository 용도로 사용될 것이라는 것을 알리는 용도로 쓰이죠. * @NoRepositoryBean 어노테이션* Repository ~ JpaRepository 까지는 @NoRepositoryBean 이 붙어있는 인터페이스 ![...
Repository : 특별한 기능을 제공하는 인터페이스가 아닌 마크 인터페이스입니다. 이 인터페이스가 Repository 용도로 사용될 것이라는 것을 알리는 용도로 쓰이죠. Repository ~ JpaRepository 까지는 @NoRepositoryBean
jUnit + mockito 를 이용한 단위테스트 방법알고리즘 : priority Queue 자료구조알고리즘 : Arrays.sort 를 사용하면 연산시간이 길다. priority Queue (우선순위 큐, 오름차순 자동) 또는 pop 이용 하면 연산시간이 3배 가까이
TIL 23.02.06
TIL
기존 페이징 처리는 page 수만 유저가 원하는 페이징 처리를 할수 있게 했는데 , 추가적으로 정렬순, 정렬기준 또한 유저가 정할 수 있게 하는 것이 미션📌 고객이 원하는 방식의 페이징 방법Control단Service 단명세에 따라 메서드를 구현 했는데 정작 포스트맨
공지사항에 키워드 검색 구현 후 생긴 에러이다.찾아보니 스프링에서 이런 에러가 나면 해당 \*\*Controller.java 파일의 Mapping 에 문제가 발생한 것이라고 한다.나의 경우 다음과 같이 같은 이름의 GetMapping 이 두 개 들어가 있었다.따라서 G
내용을 입력하세요.4 해결
연관관계를 최소화하여 대댓글 구현 연관관계를 맺는 대신 별도로 포스트서비스에서 댓글서비스를 호출 하는 등 계층구조 구현 키워드 검색 조회고객이 원하는 대로 페이징 처리 기법 이가 없으면 잇믐으로 프론트 강의 듣고 간단히 프론트 만드는 법 웹 소켓 SpringData
※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지3\. 코드를 작성하며 발견된 버그나 오류는 어떠한게 있었는지 그리고 어떻게 해결하였는지.
프론트엔드를 시작하는주 프론트에 힘을빼기 위해 탬플릿을 최대한 이용하려 하지만 ㅠㅠㅎ 아무리 찾아도 게시판목록 조회에 어울리는 건 없어 결국 ,, 단순하게라도 만들기로 !!부트스트랩(https://getbootstrap.com/docs/5.3/getting-s
우선 회원가입 및 로그인 하여 jwt 토큰 값을 받아야 함으로 먼저 임시로 사용한 로그인 구현 한다. ( 나의 경우 init data 로 스프링 구동시 유저를 가입시켜 놓았기 때문에 바로 로그인하면된다. )extends→ live server 설치 웹페이지를 보여주는
프론트단에서 총페이지수, 현재페이지 번호, 시작번호, 끝번호를 알아야 구현 할 수 있어 기존 페이지처리 코드를 리팩토링 했다. ※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지코드를 작성하며 발견된 버그나 오류는 어떠한게 있었는지 그리고 어떻게 해결하였
어떠한 이유로 해당 기능을 사용하였는지해당 기능의 코드는 어떠한 로직을 가지고 있는지※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지코드를 작성하며 발견된 버그나 오류는 어떠한게 있었는지 그리고 어떻게 해결하였는지.
프론트엔드 구현하면서 백엔드만 생각해서 만든 로직으로는 프론트구현이 어렵다는 걸 알아서 프론트에 필요한 값들을 받기 위한 백엔드 로직을 수정하였다. 페이징 처리 : 프론트엔드를 하기위해서는 , 총페이지수와 시작페이지, 끝페이지, 한화면에 보여질 페이지수, 한화면에 보여
https://velog.io/@wonizizi99/TIL-23.02.172.17 댓글 보여주기 구현을 했으나 자세히 보니 부모댓글도 한칸씩 밀려 들어가는 것을 볼수 있었다. 결과: ....부모댓글은 나오지만 대댓글 구현이 쉽지 않다. ㅠㅠ 값을 불러오는데서
※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지3\. 코드를 작성하며 발견된 버그나 오류는 어떠한게 있었는지 그리고 어떻게 해결하였는지.
g
https://school.programmers.co.kr/learn/courses/30/lessons/42626PriorityQueue 오름차순 적용되는 heap 특징을 이용하여 풀었다. // 첫번째 값을 반환하고 제거, 비어있다면 nullpriorityQu
ㅇㄹㅇ
현재는 위와 같이 로그아웃 후 게시글 등록할때 나오는 예외를 커스텀 해서 ''로그아웃 되었습니다''라고 알려주기 ※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지3\. 코드를 작성하며 발견된 버그나 오류는 어떠한게 있었는지 그리고 어떻게 해결하였는지.
※ 입력값이 들어가면 어떠한 코드를 통해 어떠한 값으로 변화하는지3\. 코드를 작성하며 발견된 버그나 오류는 어떠한게 있었는지 그리고 어떻게 해결하였는지.
여러 사람의 로직을 머지 후 새로 배포하는 과정에서 아침만해도 잘되던 업로드 되지 않았다. 우선 머지 된 것을 풀 받은 후 잘 작동하는지 확인 jar파일을 만들어 파일질라로 업로드까지 했다.근데 서버에서 구동하니 에러가 난다. . . 서버 구동 명령어 인텔리제이에서 잘
userService를 모키토를 이용한 단위 테스트 중 jwtUtil 을 @Spy로 선언 하니 아래와 같은 에러 발생 JwtUtil에 빈생성자가 있는지 확인 해라.~ jwtUtil Test 그래서 위의 기존 코드에 @NoArgsConstructor를 입력하면 위에 pr
도메인 : http://gylike.shop/ 🗓️팀노션 🗒️와이어 프레임! 🎥 시연연상 23.02.06 - 23.03.13 Search GYM 은 헬스장 가격 비교 및 운동 커뮤니티입니다.사업자가 등록한 운동시설과 지도 검색을 통한 운동시
⁉️ readOnly=true 쓰면 변경이 안된다?? 호출해보기 호출하면 런타임입셉션 날것임 @Transactional쓰는이유?? 지연로딩 만약에 @ 트랜잭셔널 안쓰면 한줄씩 호출할때 DB connection을 열고 반납하고, 또 열고 반납함으로 리소스를 효율적으로
https://zzang9ha.tistory.com/360#%F0%9F%8E%AF%C2%A0-gradle-%EB%B9%8C%EB%93%9C
자동화 해놓은 작업 과정으로 yml파일에 크게 2가지 설정이 필요하다 해당 워크 플로우가 언제 발생하는지 가상머신 또는 컨테이너에서 돌아가는 하나의 처리단위 runs-on : 속성을 통해 해당 리눅스나 윈도우같은 실행환경을 지정steps : 작업의 순서를 정의
1 ) 이번 주 알게 된 점깃 액션을 이용한 ci / cd 원리 도커를 이용한 서비스 배포 2 ) 다음 주 목표 세우기일일 알고리즘 문제 1개 이상 풀기 ( 알고리즘 스터디 참여)영한님 강의 기본편 인강듣고 , 스프링 컨테이너 원리 확실히 이해하기 자기소개서 보완부분
IoC(제어의 역전)은 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것으로 코드의 최종호출은 개발자가 제어하는 것이 아닌 프레임워크의 내부에서 결정된 대로 이루어집니다.의존성 주입은객체가 다른 객체에 의존할 때 이를 외부에서 주입해주는 방식을 말
배열을 -> 리스트로 for문을 이용해 변경한다. 기존 배열은 오름차순한다. (만약에 배열을 먼저 오름차순을 한후 리스트로 변경하면 , 리스트값도 또한 추후 오름차순으로 정렬되어 기존 배열에가진 순서가 무너지므로 리스트를 먼저 저장하는 것이다. 오름차순 된 배열에서 가
TIL
일일 알고리즘 문제 1개 이상 풀기 (완료) \- 알고리즘 스터디 참여 영한님 강의 기본편 인강듣고 , 스프링 컨테이너 원리 확실히 이해하기 (완료)영한님 강의를 다보진 못했지만 스프링 컨테이너원리에 대해 CS 면접 준비하며 이해했음 자기소개서 보완부분 수정하기 (
모든 AWS Service와 mySql 연동을 종료 한 후 프로젝트를 연동했을때 발생한 에러를 해결한 후 생긴 또다른 에러였다. 현재 RDS 연동을 종료된 상태에서 application.yml에 설정 값 중 url이 RDS 엔드포인트 주소로 되어 있어서인거 같다.
코드 커버리지는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표소프트웨어 테스트를 진행했을 때 코드 자체가 얼마나 실행되었냐는 것Jacoco를 통해 눈으로 쉽게 확인 할 수 있다....!1\. 프로젝트 폴더의 build.gradle 파일의 plu
터미널에서 실행 후로 열어줘야 합니다.인텔칩은 위의 명령어로 열렸지만, M1은 The file /usr/local/bin/jmeter does not exist. 이런 경고와 함께 경로에 실행 파일이 설치되어 있지 않더군요.
JMeter 를 이용한 성능테스트 테스트 전 진행 순서 1) 전체조회를 대상으로 성능이 좋지 않은 것으로 예상되는 API를 테스트 대상 선정하기 1-1) API 명세서보고 리스트 추리기 1-2) 테스트 시나리오 짜기 2) TPS - 점차적 스레드수를 늘려가면서 Sa
내가 만든 고객센터 부분에서 중복코드가 다수 발견되었다. 프로젝트 완료 후 클린코드와 유지보수를 위해 리팩토링 시작~ 중복되는 부분은 하나의 메서드를 별도로 만들어 처리했다.
명령창에 아래 명령어 입력 후 sudo systemctl start docker docker pull redis 했더니 에러가 발생했다. 이 오류 메시지는 사용자가 docker 명령을 실행할 때 Docker 데몬 소켓에 접근할 수 있는 권한이 없다는 것을 낸다.이 소켓
EC2 인스턴스에서 실행 중이던 앱에 접속이 안되어 인스턴스 상태 확인을 해보니 상태검사 1/2개 통과 라는 메시지를 발견했다. 위 두 가지중 어떤것이 문제인지 파악하기 위해서는 'ec2 콘솔 -> 인스턴스 -> 상태 검사' 탭을 참조하면 알 수 있다.아래는 문제가
목킹하여 페이징 처리된 Page 객체 를 어떻게 반환하지?? Page도 안되어 여러가지 해본 결과 PageImpl은 Page 인터페이스를 구현한 클래스 중 하나이다. 따라서 PageImpl 객체를 생성하여 thenReturn() 메서드의 인자로 전달하는 것은, Page
자바는 메모리관리를 자동으로 처리하는 가비지 컬렉션시스템을 사용하기 때문에 개발자는 일반적으로 메모리 관리에 대해 크게 걱정하지 않아도 된다. 그러나 여전히 공간복잡도는 자바애플리케이션의 이슈가 됩니다. 이유는 다음과 같습니다.모든 자바애플리케이션은 메모리 제한을 갖습
스프링컨테이너 ( ApplicationContext ) 를 생성하여 스프링 빈을 관리하며 의존관계를 주입하는 역할을 한다. @Configuration : 설정정보 @Bean : 이 어노테이션이 달리면 스프링컨테이너가 스프링 빈으로 등록한다. DI(의존성주입) :
공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 분리AOP는 Aspect Oriented Programming의 약자로,여러 객체에 공통으로 적용할 수 있는 기능을 분리해 재사용성을 높여주는 기법으로써 다음과 같은
1. 프로젝트 설정 스프링이 바로 띄워지는 것이 아닌 그라들을 통해 띄워지면 [Test worker] 와 함께 느려진다. 해결방법 : 설정- 빌드-그라들 - 그라들로 셋팅된값을 인텔리제이로 변경해주면 그라들을 통하지 않고 띄워져 빠르다. 롬복 설정 시 설정 -
JPA 페이징 리포지토리 코드org.springframework.data.domain.Sort : 정렬 기능 org.springframework.data.domain.Pageable : 페이징 기능 (내부에 Sort 포함)Jpa가 아닌 org.springframewor
벌크성 업데이트 또는 삭제(Bulk Update/Delete)는 데이터베이스에서 한 번에 여러 행을 업데이트하거나 삭제하는 작업을 의미합니다. 개별적으로 업데이트 또는 삭제 쿼리를 실행하는 것보다 효율적으로 작업을 수행할 수 있습니다. 예를 들어, 특정 조건을 만족하는
쿼리 방식 선택 권장 순서1\. 우선 엔티티를 DTO로 변환하는 방법을 선택한다.2\. 필요하면 페치 조인으로 성능을 최적화 한다. 대부분의 성능 이슈가 해결된다.컬렉션 최적화 ( 컬렉션 페치조인 사용시 페이징을 함께 사용 불가하다)페이징 필요 : hibernate.d
low level 로 연관관계 매핑을 하지 않고 일일히 필요한 객체의 데이터를 가지고 와서 연관관계 된것처럼 사용했다. 이번에는 매핑을 시켜보고 차이점을 느껴보려고 한다. ContactCommentService 기존 코드에서 inquiryId 채로 ContactComm
스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동 생성 스프링 데이터 JPA가 제공하는 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음다양한 이유로 인터페이스의 메서드를 직접 구현하고 싶다면?JPA 직접 사용( EntityMana
queryDsl 공부하며 memberDto클래스를 만들고 Dto로 결과를 반환하는 방법 중 첫번째 방법인 setter를 이용했는데 에러가 발생했다. 에러 내용 QueryDSL의 Projections.bean() 메서드는 기본 생성자와 프로퍼티의 getter/setter
실전QueryDsl + 순수 Jpa -> 스프링 데이터 JPA 리포지토리로 변경스프링 데이터 JPA - MemberRepository 생성 스프링 데이터 JPA 테스트⚡️ Querydsl 전용 기능인 회원 search를 작성할 수 없다. ->사용자 정의 리포지토리 필
김영한의 QueryDsl 강의를 다보고 난 후 네이버 쇼핑 처럼 다중 조건으로 검색 하는 방법에 대해 궁금해져서 네이버 쇼핑몰을 모델로 파헤쳐 보았다. 네이버 쇼핑몰 Where 조건에 해당하는 값들이 0 ~ N 개 까지 선택이 가능하다. 네이버 쇼핑몰 같은 경우 필
레디스 캐시를 적용하기 위해 준비를 완료 한후 포스트맨으로 실행 결과 에러가 발생했다. 현재 시점의 코드 CacheConfiguration이 오류는 Java 8의 날짜/시간 타입인 java.time.LocalDateTime이 기본적으로 지원되지 않아 발생합니다. Jac
쇼핑몰을 만드는 과정에서 예전에는 포괄적으로 상품을 만들고 판매를 한다면 이번에는 상품마닥 가지는 특성을 살리면서 등록 및 판매가 하고 싶어졌다. 근데 상품 수 마다 클래스를 만들 수는 없다는 생각이 들었고.. 전에 소셜로그인 할때 팩토리 패턴을 쓴다는 말이 어필 생
검색조건을 다중선택 하여 동적으로 검색하기 위해 QueryDsl의 페이징 과 sort기능으로 구현해보았다. 검색 조건은 item 의 1\. name2\. priceGoe ( 가격 이상 ) 3\. priceLoe ( 가격 이하 ) 정렬 속성은 1\. name2\. pr
Spring AOP 적용 방법 1. build.gradle 설정 2. Application 클래스에 추가 3. 실행시간 측정 Timer 어노테이션 정의 4. 실행측정 AOP 클래스
자바스크립트는 싱글 스레드 기반의 동기방식으로 순차적으로 수행된다.자바스크립트의 엔진 : 콜스택 , 힙자바스크립트는 싱글스레드 기반의 동기 방식이지만 비동기 방식을 이용할 수 있는 것은?브라우저 및 nodeJS 의 이벤트루프 및 테스크큐에 의해서 가능하다.원리 :자바스