- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ui만 바뀐줄알았는데 아무 공지없이 갑자기 정답코드였던것도 다시 제출해보니 presentation error 가납니다 아니면 import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] s1 = new int[n]; for (int i = 0; i < n; i++) { s1[i] = scanner.nextInt(); } int m = scanner.nextInt(); int[] s2 = new int[m]; for (int i = 0; i < m; i++) { s2[i] = scanner.nextInt(); } Arrays.sort(s1); Arrays.sort(s2); int p1 = 0, p2 = 0; List<Integer> list = new ArrayList<>(); while (p1 < n && p2 < m) { if (s1[p1] > s2[p2]) { p2++; } else if (s1[p1] < s2[p2]) { p1++; } else { list.add(s1[p1]); p1++; p2++; } } StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.size(); i++) { if (i > 0) sb.append(" "); sb.append(list.get(i)); } System.out.println(sb.toString()); } } 아래 코드에서 문제가 뭔가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 채점 사이트 관련해서 기존 페이지가 아닌 캡쳐한 사진의 화면으로 넘어가집니다. 관련해서 질문 드립니다!
안녕하세요. 인덱스를 활용한 조회 성능 개선을 공부하던 중 궁금한 점이 생겨 질문드립니다. 현재 저는 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 SQL 쿼리는 분석결과 약 1700MS -> 70MS 까지 단축한 것 같습니다. 5. 추가 제약사항 로그인 사용자와 비로그인 사용자의 조회 결과가 다름 (사용자별 구독 게시글이 포함됨) 따라서 캐시는 비로그인 사용자에만 적용 위 성능 수치는 로그인 사용자 기준 6. 현재 고민 위와 같이 개선했지만, 👉 여전히 성능이 충분하지 않다고 느끼고 있습니다. 특히 궁금한 점은 다음과 같습니다. 7. 질문 OFFSET 기반 pagination을 유지하면서 👉 추가로 성능을 개선할 수 있는 방법이 있을까요? 다음과 같은 방법들을 고려했는데, 방향성이 맞는지 궁금합니다. RDS를 2개를 사용하여 조회 성능 데이터를 각각 2개의 db가 처리하도록 한다? Keyset + OFFSET 혼합 방식 ( 일반적인 페이지 이동은 Keyset Pagination을 사용하고, 사용자가 특정 페이지를 직접 입력하거나 점프하는 경우에만 제한적으로 OFFSET 기반 조회를 사용하는 혼합 방식) RDS 스펙 업그레이드 또한 에펨코리아( https://www.fmkorea.com/)와 같은 대형 커뮤니티는 제가 원하는 페이지 네이션 방식을 사용하면서 깊은페이지(최대 1만)도 지원하고 동시접속자 수십만 페이지 수천~수만 대량 데이터 환경에서도 빠른 조회 성능을 유지하는데 👉 이러한 서비스들은 어떤 방식으로 pagination 및 조회 성능을 처리하는지 궁금합니다.
안녕하세요! 질문을 하실 때 아래 내용을 준수 부탁드립니다. 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요. 질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁 드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 수업을듣다가 헷갈리는부분이 있습니다. 참조형, 객체지향 과정 수업을 듣고나서부터 void를 써야할지 return값을받는것이 좋을지 헷갈립니다. 풀이과정을 보면서 따라해보고 다시 생각해보는데요 이러한 생각이 배우는과정이라고 생각해도되는건가요? 아니면 제대로 판단이 될정도로 공부하고 넘어가야되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이런식으로 풀어봤는데요 객체지향적으로 만들어진건지 확인부탁드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 음악 플레이어 끄기 코드중에 isOn = false; 이거는 왜쓰는지 잘이해가안돼서요 어차피 사용되지않아서 System.out.println("음악 플레이어를 종료합니다."); 만 으로도 결과가 같은데 써야하는 이유가있나요?
안녕하세요. 도메인 모델을 설명하는 부분에서 관계와 규칙을 온라인 서점 운영 예시로 간단히 언급해주셨습니다. 강의를 들으면서 실제 업무 도메인에 관계와 규칙을 구분지으며 간단히 개인 실습을 해보았는데요. 적다보니 어느샌가 관계에 규칙이 섞이기도 하더라고요. 문득 이런 생각이 들었습니다. '관계와 규칙의 차이는 무엇인가?' 관계와 규칙을 명확하게 구분지으려면 어떤 기준을 갖고 생각해야할까요? 관계는, DB 모델에 워낙 익숙하다보니 하나의 OO은 여러 OOO을 갖는다. 이쪽으로 먼저 생각이 흐르기도 하고요. 예시로 들어주신 것을 보면 관계는, '비즈니스에서 관계'라는 생각이 듭니다. 규칙은 데이터를 변경할 때 필요한 조건이라고 생각하면 될까요? 토비님 의견이 궁금합니다.
안녕하세요 강사님 좋은 강의 감사합니다 :) 프로젝트 질문 관해서 여쭈어보고 싶은게 있어 글남겨요 혼자 개발한 프로젝트 밖에 없는대 " 혼자 진행하였고 모든 모듈은 혼자 설계했습니다 " 라는 답변보다는 어떤 좋은 답변이 있을까요? 강의 내용과 관련된 질문은 언제든 환영합니다. 다만 개인 이력서/포트폴리오 전체 리뷰 요청이나 기업별 합격 여부 판단 질문에는 답변이 어려울 수 있습니다. 강의 범위 내에서 최대한 성실히 답변드리겠습니다 🙂
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 숫자로 입력 옵션을 처리하는 것은 문제가 있습니다. 만일, 실수로 문자를 입력 할 경우 에러가 발생하여 팅겨버리게 됩니다. 이것은 버그라고 판단 될 수 있습니다. 또한, "올바른 옵션을 선택해 주세요"를 처리하지 못하게 됩니다. 따라서 문자로 처리해야 아무런 문제가 없이 정상적으로 해당 프로그램이 작동합니다. 이점을 참고하여 주세요. package scanner.ex4; import java.util.Scanner; public class ScannerEx2 { public static void main(String[] args) { Scanner input = new Scanner( System.in ); int totalCost = 0; while (true){ System.out.print("1: 상품 입력, 2: 결재, 3: 프로그램 종료 : "); String option = input.nextLine(); if(option.equals("1")){ System.out.print("상품명을 입력하세요 : "); String name = input.nextLine(); System.out.print("상품의 가격을 입력하세요 : "); int price = input.nextInt(); System.out.print("구매 수량을 입력하세요 : "); int count = input.nextInt(); input.nextLine(); totalCost += price count; System.out.println("상품명:" + name + ", " + "가격:" + price + "원, " + "수량:" + count + ", " + "소계:" + (price count) + "원"); System.out.println("=================================================="); } else if (option.equals("2")) { System.out.println("총 비용 : " + totalCost + "원"); totalCost = 0; } else if (option.equals("3")) { System.out.println("프로그램을 종료합니다."); break; } else { System.out.println("올바른 옵션을 선택해 주세요."); } } } }
안녕하세요. 강의 잘들었습니다~ 코테랑 과제테스트를 준비하려고 하는데 요즘에 AI 때문에 어떤 방향으로 준비할지를 모르겠네요 AI 때문에 요즘 기업들이 코테나 과제 테스트를 어떤 방식으로 평가하는지 아시는지 궁금합니다. 그리고 이에 맞춰서 어떤 방식으로 준비를 해야할지 조언을 듣고 싶네요 추가로, 백준은 서비스를 종료한다는데 leetCode의 티어도 요즘에 커리어에 유효한가요?