본문 바로가기

분류 전체보기143

프록시??? 스프링 AOP?? 트랜젝션?? (3) 지난 블로그에서 동적프록시에 대해서 이야기 해봤다. 오늘은 프록시 팩토리에 대해서 이야기해볼예정이다. 앞선 블로그를 정리해보자면 인터페이스가 있는 경우 JDK 동적 프록시가 적용되고, 그렇지 않은 경우 CGLIB가 적용된다. 근데 여기서 궁금한점이 있다. 누가 인터페이스 유무를 인지해서 프록시를 생성할까?? 만약 JDK 동적 프록시, CGLIB프록시를 모두 사용하면 각각 InvocationHandler, MethodInterceptor를 만들어서 관리해야하는가?? 또는 If문과 같이 어쩔때는 적용하고 안하고 싶다면 어떻게 해야할까? ProxyFactory 스프링이 ProxyFactory를 통해서 동적 프록시를 통합하여 편리하게 만들어주는 기능을 제공한다. 뿐만 아니라 Advice라는 개념을 통해 Invo.. 2024. 3. 12.
[Key Word 개발기] 친구 검색 쿼리 개선기 최근 인덱스에 대해서 공부하다가 프로젝트를 생각해보니 검색 쿼리 속도 개선을 하면 좋을 거같아서 테스트하는 도중에 좋은 개선사항이 있어 적어본다. 쿼리 수정기 해당 프로젝트에서 친구관련 리스트를 가져올때 총 3가지의 경우가 존재한다. 1. 내가 친구한테 친구를 요청한 경우 2. 친구가 나에게 요청한 경우 3. 이미 친구인 경우 1,3번의 경우 밑에 코드를 이용한다. @Query("SELECT f.friend.memberId FROM Friend f JOIN f.friend friend JOIN f.memberRequest memberRequest " + "WHERE memberRequest.memberId = :memberRequestId AND f.status = :friendStatus ORDER B.. 2024. 3. 11.
[개인프로젝트] ElasitcSearch 에 대해 좀 더 공부해보자 (2) 저번 블로그에서는 ElasticSearch 개념에 대해 알아보았고 이번에는 과정에 대해 알아볼 예정이다 색인과정 색인이란 문서를 분석하고 저장하는 과정이다. 색인과정을 간단하게 설명하자면 인덱스의 존재 유무 파악 -> 있다면 매핑정보 있는가(없다면 동적매핑) -> 매핑정보 올바른지 확인(안올바르면 에러) -> inverted index 생성 -> 프라미머리 샤드에 저장 -> 레프리카 샤드에 복사 1. 색인 과정 어떤 노드에 요청을 해도 동일한 응답을 보장하지만 여기서는 레플리카가 존재하는 노드에 요청했다고 가정하면 첫번째 노드(데이터노드)로 전달하여 프리미어 샤드에 저장되고 레플리카 노드로 다시 들어온다. 저 이미지 상황에는 문제가 있다. 1. 하나의 노드가 놀고 있다 2. 프라이머리 샤드가 노드하나에만.. 2024. 3. 11.
[개인프로젝트] ElasitcSearch 에 대해 좀 더 공부해보자 (1) 개인프로젝트에서 ElasitcSearch를 사용했다. 생각해보면 개념을 정확하게 인지하지 않은채 적용한 거같아서 좀더 공부해보았다. ElasticSearch 루씬 기반의 오픈소스 검색엔진이라고 한다. ElasticSearch의 특징은 1. 준실시간 검색 시스템 : 실시간이라 생각될 만큼 색인된 데이터가 빠르게 검색된다. 2. 고가용성을 위한 클러스터 구성 : 한대 이상의 노드로 클러스터를 구성하여 높은 수준의 안정성 달성 및 부하 분산 가능 3. 동적 스키마 생성 : 입력될 데이터들에 대해 미리 스키마를 생성하지 않아도 동적으로 생성가능 4. Rest API 기반의 인터페이스 : Rest API 기반의 인터페이스를 제공하여 비교적 사용을 위한 진입 장벽이 낮다 클러스터와 노드 컴퓨터에서의 클러스터란 여러.. 2024. 3. 11.
[mySQL] OrderBy 인덱스 (3) 지난 블로그에서 인덱스 종류와 커버링 인덱스에 대해서 알아보았다. 오늘은 OrderBy 인덱스에 관해서 이야기해볼예정이다. Order BY 인덱스 Order By절에 명시된 칼럼에 인덱스가 있다면 MySQL은 이미 정렬된 데이터를 사용하기 때문에 추가적인 정렬작업이 필요없다. 그러나 만약 없다면 filesort방식으로 임시 테이블을 사용해 정렬 작업을 수행한다. filesort 이용하고 있는지 여부는 EXPLAIN 명령어를 통해 Extra칼럼에 Using filesort가 있다면 filesort를 사용하고 있다는 것이다. 왜 Order By절에 명시된 칼럼에 인덱스를 사용하는 것이 좋을까? -> Limit절과 사용하게 된다면 인덱스가 있을때 MySQL은 필요한 만큼만 데이터를 읽고나서 처리를 중단한다. .. 2024. 3. 10.
2024-03-10 일주일 회고록 아무 생각이 없는 요즘 최근 취업안되는 것도 맞고 서류합격도 안되고 있는데 정말 생각이 없다. 뭐랄까 이제 해탈한 기분이랄까... 멘토링도 3,4번 받아보고 고쳐봐도 결과보면 그냥 벽보고 서있는 느낌이랄까..?? 그래서 사실 그냥 백수로 살고 싶다는 생각이...ㅎㅎㅎㅎ 그냥 알바나 하면서 인생을 살아야하나...ㅋㅋㅋㅋ 공채시즌 공채시즌이다.. 그래서 자소서 쓰고 있긴한데..이게 맞나;; 싶기도 하고,,, 사실 뭔가 나는 대기업보다는 스타트업 가서 밑바닥부터 해보고 싶은데... 그게 맘대로 되지않는다.. 스타트업도 채용이 잘 되지않는 시즌이니... 요즘그래서 뭐하냐고? 그냥 공부해 이전에 적용했던 기술들 공부하고, 면접질문도 짜보고, cs관련 질문도 한번씩 읽어보고,,, 싫어하는 코테도 3문제이상씩 풀려고.. 2024. 3. 10.
728x90