'섹션 1. 1장 스프링 부트 개발 준비하기' - '1. JDK와 STS설치, 웹 서비스의 동작 원리, Spring Boot Devtools과 롬복 설치 등' 관련된 내용 입니다. 'LiveReload++'가 '이 확장 프로그램은 Chrome 확장 프로그램 권장사항을 준수하지 않으므로 더 이상 지원되지 않습니다.'라고 뜨면서 '크롬에 추가' 버튼이 비활성화 되네요. 혹시 LiveReload++와 비슷한 대체할만한 게 있나요?
안녕하세요. 인덱스를 활용한 조회 성능 개선을 공부하던 중 궁금한 점이 생겨 질문드립니다. 현재 저는 OFFSET 기반 pagination을 사용하는 서비스 를 개발하고 있으며, 다음과 같은 환경에서 성능 테스트를 진행했습니다. 데이터: 약 1,000만 건 서버: EC2 t3.small DB: RDS t4g.micro k6 vus100 1. 문제 상황 초기에는 OFFSET 제한 없이 마지막 페이지까지 이동 가능하도록 구현했습니다. 하지만 데이터가 1,000만 건 수준으로 증가하자, 깊은 페이지로 갈수록 조회 속도가 급격히 느려지는 문제 를 확인했습니다. 2. 고민 및 제약 일반적으로 이 문제는 Keyset Pagination(커서 기반) 으로 해결하라고 많이 알려져 있습니다. 하지만 제 서비스는 👉 네비게이션 바를 통한 페이지 직접 이동 (ex. 1, 10, 100 페이지 클릭) 이 필요하기 때문에 Keyset 방식만으로는 요구사항을 만족시키기 어렵다고 판단했습니다. 3. 적용한 개선 방법 다음과 같은 방식으로 성능 개선을 진행했습니다. OFFSET 최대 범위를 제한 (최대 10,000 페이지 / OFFSET 100,000) 커버링 인덱스 적용 조회 방식 개선 먼저 ID만 조회 → 이후 필요한 10건만 상세 조회 전체 게시글 수(count)는 캐싱 처리 4. 성능 개선 결과 [Page 10] avg: 1.4s → 700ms p95: 4.5s → 1.8s [Page 100] avg: 17s → 1.18s p95: 24s → 3.3s [Page 1000] avg: 32.1s → 1.7s p95: 59s → 4.27s 5. 추가 제약사항 로그인 사용자와 비로그인 사용자의 조회 결과가 다름 (사용자별 구독 게시글이 포함됨) 따라서 캐시는 비로그인 사용자에만 적용 위 성능 수치는 로그인 사용자 기준 6. 현재 고민 위와 같이 개선했지만, 👉 여전히 성능이 충분하지 않다고 느끼고 있습니다. 특히 궁금한 점은 다음과 같습니다. 7. 질문 OFFSET 기반 pagination을 유지하면서 👉 추가로 성능을 개선할 수 있는 방법이 있을까요? 다음과 같은 방법들을 고려했는데, 방향성이 맞는지 궁금합니다. RDS를 2개를 사용하여 조회 성능 데이터를 각각 2개의 db가 처리하도록 한다? Keyset + OFFSET 혼합 방식 ( 일반적인 페이지 이동은 Keyset Pagination을 사용하고, 사용자가 특정 페이지를 직접 입력하거나 점프하는 경우에만 제한적으로 OFFSET 기반 조회를 사용하는 혼합 방식) RDS 스펙 업그레이드 또한 에펨코리아( https://www.fmkorea.com/ )와 같은 대형 커뮤니티는 제가 원하는 페이지 네이션 방식을 사용하면서 깊은페이지(최대 1만)도 지원하고 동시접속자 수십만 페이지 수천~수만 대량 데이터 환경에서도 빠른 조회 성능을 유지하는데 👉 이러한 서비스들은 어떤 방식으로 pagination 및 조회 성능을 처리하는지 궁금합니다.
안녕하세요 31. 히든클래스와 성능저하모드 강의를 듣고 질문남깁니다. 해당 강의를 react에 적용해보고 있습니다. 기존에는 useState를 사용해서 상태관리를할때 object와 Map은 수정 삭제시 대부분의 경우 불변성을 지키며 setState를 하고 있었습니다. 매번 Map과 object를 재생성할때 Map이 좀더 메모리를 많이 차지한다고 들어서 비번한 수정/삭제가 일어날때는 Map대신 object를 사용해서 상태관리를 하고 있었는데 Map 강의듣고나니 일반적인 수정삭제일때는 Map이 좋은걸로 이해했는데 불변성을 지켜야할 때는 기존에 제가 가지고 있던 생각이 맞는지 의문이 생겼습니다. 불변성을 반드시 지켜야하는건 아니지만 그래도 지켜야 하다 가정하고 수정삭제가 1초에 1번정도 난다고 해도 Map이 유리한가요?
select o from Order o where o.orderAmount > ALL(select p.stockAmount from Product p) ALL 예제가 강의록에 위와같이 되어있던데요. 이게 아래 sql 문처럼 서브쿼리에 MAX 적용한 거랑 동일한 결과를 내는 걸까요?? select o from Order o where o.orderAmount > (select MAX(p.stockAmount) from Product p)
(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
pdf파일에 있는 프롬프트를 복사항 붙여넣기 하면 아래와 같은 모습으로 붙여넣기가 되어 보기가 불편합니다. 해결방법 알려주시면 감사하겠습니다. ❯ get_top_gainers 함수를 코스피 , 코스닥 둘 다 호출해서 합친 뒤 등락ㄹ뉼 순으로 정렬하는 코드를 추가해줘 . 상위 15 개만
다차원 배열과 문자열 배열 21:45 다차원 문자열 배열에서 포인터 변수 관련으로 질문이 있습니다. *arr[2][2]={{"Hello", "World"}, {"app", "dev"}} 이렇게 2차원 문자 배열이 있을 때 printf("%c\n", arr);의 답은 arr의 초기값으로 H인지 아니면 Hello인지 궁금합니다. 그리고 arr+1 또는 arr ++ 하면 다음 주소로 이동하는 값을 나타내는 것이라고 하는데 그러면 답이 e인지 아니면 World인지 궁금합니다.
다차원 배열과 문자열 배열 1:14 예를 들어, {2, 4, 8, 10, 12} 라는 배열이 있을 때 포인터 p 변수 경우 *(p+4)를 하면 12가 답이 됩니다. 하지만 아래와 같이 다차원 배열 일 때 {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}} *(p+4)를 하면 답이 어떻게 되는지 궁금합니다.
안녕하세요! 좋은 강의 감사합니다! 제가 1년 동안 기획하고 개발해서 플레이 스토어에 출시한 커뮤니티 앱이 있습니다. 그 후 6개월동안 꾸준히 업데이트하고 관리해서(코드 13만줄, 앱 계속 운영중) 현재 1300다운로드, 리뷰 80개를 달성했는데, 이제 취업을 하려고 하니 차라리 적당히 하고, 다른 스펙 쌓는 게 나았을까 생각이 드네요 저의 성과가 어느 정도 가치가 있는지 솔직한 평가가 궁금합니다. 앱 개발에 너무 몰두하다 보니 다른 팀 프로젝트나 자격증이 부족하다고 느껴져서 만약 그렇게 큰 가치가 없다고 하면 부트캠프를 지원하거나 해서 팀 프로젝트를 쌓고, 가치가 있다고 하면 코테에 몰두하려고 합니다 정말 솔직한 말씀 부탁드립니다!
함수와 재귀함수(v2) 22:15 void printString(char *str){ printf("입력된 문자열: %s\n", str); } int main(){ char myString[] = "this is string"; printString(myString); return 0; } 위 구문에서 void 구문 중 char *str 부분에서 설명으로 myString을 가리키는 주소 값 중 1번째를 가리킨다고 하는데 t가 아니라 왜 this is string 배열 전체를 의미하는지 이해가 되지 않습니다.
섹션[6] 66.[출제유형] 거리측정, 최단거리 페이지 오타 방법 2) 큐에 거리 정보까지 함께 저장하는 방식 ✔ visited를 사용한 구현 코드 설명에 visited 코드 예시가 아니라 아래 설명되어있는 distance와 동일한 코드 예시로 되어있습니다. visited로 활용하는 코드로 변경 필요할 것 같습니다. 현재 노션도 이와 동일하게 되어있습니다..!
포인터 조작과 출제 패턴(2. 포인터 중가/감소, 이중 포인터) 9:40 포인터 값 관련하여 예를 들어 배열 값이 5, 7, 9, 11, 13일 경우 *(ptr_a + 1) 출력값에 대해서는 초기 인덱스 [0]의 값 5에서 포인터 위치를 1칸 오른쪽으로 이동 후 해당 값에 대한 것을 적는것으로 확인이 되는데 그러면 답은 7이 될 겁니다. 지금 강의를 보면 ++이나 +1에 대해서는 값을 더하기 1하는 것이 아닌 포인터 위치를 오른쪽으로 1칸 이동시키는 것만 나오는 것 같은데 값 자체를 1증가시크는 것과 포인터 위치를 1 오른쪽으로 이동하는 것 관련하여 어떻게 구분하는지 모르겠습니다.