학습관련 질문을 남겨주세요! 상세히 작성주시면 더 좋아요 🙂 안녕하세요, 재밌는 강의 만들어주셔서 감사합니다! 저는 먼저 구현 후, 강사님의 강의를 보며 리팩토링을 진행하고 있습니다. 제가 궁금한 것은 강사님은 external 모듈에서 naver/kakao 를 하위 모듈로 분리하셨는데, 저는 external 하위에 kakao 패키지, naver 패키지로 분리했었습니다. 그래서, 모듈로 분리하신 이유가 무엇인질 고민하다가 naver 와 kakao 의 수정되는 주기가 달라서 빌드/배포에 이점이 있겠다는 생각이 들었는데 강사님은 어떤 기준으로 모듈과 패키지를 선택하시는지 질문 드립니다.
for문과 if문을 통해 가장 첫번째 달성하는 순간 return(i,j)까지는 이해 했는데요. 해당 코드를 봤을때, 첫번째 i for문과 두번째 j for문이 있는데 가장 밖에 return -1은 첫번째 i for문에 return이 아닌 함수 fp(arr)의 return으로 봐야하는건가요? i for문과 j for문에 해당하는 리턴값이 없을경우에 영향을 미치는 걸까요? return(i,j) 값을 받아 함수를 탈출할때, return -1은 영향이 없는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 영한님. 프로젝트 환경설정 - JPA와 DB 설정, 동작확인 오탈자 제보합니다. 강의에서는 Spring을 사용하고 있기 때문에 Spring의 org.springframework.transaction.annotation.Transactional 을 사용하셨지만 수업자료는 jakarta.transaction.Transactional 을 사용하고 있습니다. [1. 프로젝트 환경설정 | JPA와 DB 설정, 동작확인] import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.transaction.annotation.Transactional; import 문 수정 내용입니다. 감사합니다.
'섹션 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 및 조회 성능을 처리하는지 궁금합니다.
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)
다차원 배열과 문자열 배열 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 오른쪽으로 이동하는 것 관련하여 어떻게 구분하는지 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 지금 영상 따라 진행하던도중 막혔는데 최신 버전 설명도 읽어봤으나 무슨 말인지도 하나도 모르겠습니다.. 계속 오류만 뜨고 화면도 전혀 다르고...
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 강의 자료의 버전 별 파라미터 차이에 관해 질문드립니다. HttpRequestHandlerV2는 process()에 Socket 파라미터를 받지 않고 멤버 변수를 쓰는데, HttpServerV1과 V3부터 최종 버전까지는 process()에 Socket을 받는 것으로 강의 자료에 나와 있습니다. 어떤 스타일을 따르는 게 맞을까요?