- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드에서 마지막에 s=s.substring(7);이 있는데(9번째줄) i가 for문에서 n-1까지 갔을 때 뒤에 남은 String이 없는데 index out of bound exception이 안나는 이유가 무엇일까요? 코드 똑같이 했다고 생각했는데(똑같지 않으니 에러가 나겠지만요 ㅠㅠ) 해당 에러가 떠서 여쭤봅니다. 혹시 이 에러가 떴다면 어느 부분에서 차이가 나는 걸까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네, jpa와 db 설정, 동작 확인 동영상 입니다. 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니요. 있는 내용인데 찾아보고 해결하지 못했습니다. 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. 테스트 코드 실행 시 member 테이블이 생성되지 않습니다. ddl 설정은 create이고, 관련 설정 확인해도 못찾아서 문의 드려요. 테스크 코드 맨 마지막에 로그를 찍어놨는데, 해당 로그가 찍히고 이 뒤에 테이블이 왜 drop될까요? 도저히 모르겠습니다...ㅎ https://drive.google.com/file/d/1WT3dZ7HexApj0xAYZsFJSkKVpaSmGEFM/view?usp=sharing 구글 드라이브 프로젝트 첨부 드립니다.
🔥 같이 성장할 사람 찾습니다 - 현실형 코딩 스터디 모집 🔥 혼자 공부하다 멘붕 온 사람 🙋♀ 토이 프로젝트 같이 만들 사람 찾는 사람 🙋♂ CS 기본기나 알고리즘, 면접 준비까지 하고 싶은 사람 🙌 그런 당신을 위한 진짜 실속형 스터디, <코딩존>에서 함께해요. ✅ 스터디 소개 💡 목적: 실력 있는 개발자 되기 위한 꾸준한 성장 💡 방식: 온라인 중심 + 선택적 오프라인 / 협업 툴 활용 💡 대상: 개발을 진지하게 공부하고 싶은 누구나 (초보도 환영!) 💡 스터디 커리큘럼: CS 기본기 (운영체제, 네트워크, 자료구조 등) 알고리즘 문제풀이 (백준/프로그래머스 중심) 토이 프로젝트 기획 및 협업 코드리뷰 & 발표 스킬 향상 개인 목표 점검 및 피드백 ※ 주제별 소그룹 운영 예정 🧠 우리가 중요하게 생각하는 가치 무작정 열심히보다, 꾸준하고 효율적으로 “몰라요”를 부끄러워하지 않는 성장 마인드셋 시간 아끼고, 진짜 도움이 되는 피드백 중심 커뮤니케이션 ✨ 이런 분들 특히 환영해요 자격증이나 취준 준비 중인데 같이 공부할 팀이 필요한 분 “혼자 공부는 잘 안 돼요…” 싶은 동기부여가 필요한 분 사이드 프로젝트 하고 싶은데 디자이너/프론트/백 구하는 중인 분 단순 스터디가 아닌, 함께 성장하는 커뮤니티를 원하는 분 📌 신청 방법 📅 마감: 선착순 6명 (진짜로 소수 정예로 갑니다) 📍 지원링크: [https://docs.google.com/forms/d/1aoKEz2ppgUvGmC5jf_jgeid0BjBk6 CwVMROEp503Zv0/edit] 📩 문의사항은 댓글에 남겨주세요!
강의 열심히 듣고 있습니다. 다름이 아니라, DTO 관련 의구심이 들어서 질문 올립니다. 선생님께선 modifyConfirm 일때 dto의 pw 값을 encode된 값으로 변경하셔서 entity로 넣으셨는데, String encodedPW = passwordEncoder.encode(memberDTO.getPw()); memberDTO.setPw(encodedPW) findedMemberEntity.setMemPw(memberDTO.getPw()); 위의 방법대로 하면, dto값이 변경이 되어 "단순 전달 객체"를 위배할 수 있으며, 간결성과 가독성이 떨어지는게 아닌가 싶어서요 아래와 같이 리펙토링 하면 조금 더 간결하게 되지 않을까요? if (optionalMember.isPresent()) { MemberEntity findedMemberEntity = optionalMember.get(); findedMemberEntity.setMemPw(passwordEncoder.encode(memberDTO.getPw())); ~~ return MODIFY_SUCCESS; }
필터부분은 DispatcherType으로 구분하기때문에 이해를 한 것 같은데.. 인터셉터는 잘 이해를 못했습니다. 인터셉터에서 excludePathPatterns("/css/**", "/*.ico", "/error", "/error-page/**") 하여 경로를 제외했는데요. 그렇다면 첫 요청에서 에러 발생 후 인터셉터 호출은 아예 제외되어야하는 것아닌가요..? 그러니까 6:00 경부터 말씀하시는 전체흐름에서 WAS -> 필터 -> 서블릿 -> 인터셉터 -> 컨트롤러 -> View 가 첫 흐름인데 지금 호출된 로그를 보면 afterCompletion 만 호출된 상황입니다. 이것은 요청 완료 이후 서블릿?에서 호출되는 것으로 기억하고 있는데요. 그런데 인터셉터에서 경로를 제외했으니 afterCompletion 역시 호출 자체가 안되어야 하는 것아닌가요? 지금 강의에선 첫 요청에서의 인터셉터는 호출되고 이후 에러 발생후 요청에서의 인터셉터는 제외 경로 설정대로 로그 출력이 되지 않는데요. 에러가 발생하면 addInterceptors() 와 extendHandlerExceptionResolvers() 은 호출이 안되고 afterCompletion 만 호출되는 것으로 기억하는데, excludePathPatterns() 에서 경로를 아예 제외했으니 그냥 자체가 호출 되지 말아야하는것 아닌지 궁금합니다. 왜 첫 요청에서의 인터셉터는 호출되고 에러 발생 했을 떄의 인터셉터에서만 호출 되지 않는건가요? DispatcherType 은 필터에서만 적용되는 거라 인터셉터에 적용되는 경우는 아닌 것 같은데 말이죠.. 지금 머릿속으로 제대로 정리가 되지않아 질문 이해가 잘 되셨을지 모르겠습니다. 감사합니다. Dis
안녕하세요. 강의에서 실습을 종료할 때는 첫 구동 순서의 반대로 순서로 종료를 하라고 말씀을 하셨는데 그러지 못했습니다...ㅠㅠ 이후 zookeeper, kafka, connect 순으로 구동을 하려고 했지만 아래와 같은 오류가 connect구동단계에서 떴습니다. [2025-06-30 19:42:13,440] INFO [AdminClient clientId=adminclient-8] Retrying to fetch metadata. (org.apache.kafka.clients.admin.KafkaAdminClient:3177) 위 구문이 무한반복으로 로그에 뜨게 되는데요. ~/data/kafka-logs/ meta.properties 을 지웠다가 kafka 구동부터 다시 시작을 시도해 봐도 여전히 connect구동을 위 에러로 진행할 수 없었습니다. 해결방법이 무엇인지 궁금합니다.
안녕하세요. 제가 빈에 대해 정리한 문장에 대해 교정 부탁드립니다. 빈은 스프링 컨테이너(즉, 스프링)에 의해 관리되는 객체이다. 관리라는 것은 객체의 생성부터 의존성 주입 등 기존 프로그래머가 해줘야 했던 작업을 스프링이 해 주는 것이다. 즉 스프링 빈은 제어의 역전의 주 대상이다. 내가 작성한 클래스의 객체의 제어권을 스프링에게 넘겨주려면, 그 객체를 반환하는 멤버함수를 작성해서 @Bean을 붙여준다. 멤버함수가 소속된 클래스에는 @Configuration을 붙여서, 이 클래스의 멤버함수는 빈을 반환한다고 스프링에게 선언한다. 빈이라는 개념이 참 햇갈리네요. 식견이 짧아 저 정도밖에 이해를 못하겠습니다. 틀린 부분 교정 부탁드립니다.
안녕하세요 플러터에 관심이있어서 재밌게 공부하고있는 백엔드개발자입니다! 먼저 이해하기 쉽게 설명해주신 좋은강의를 제공해주셔서 감사합니다! 16강 수강중에 강의자료와 영상내용과 달라서 문의드렸습니다! 2회차 노션자료의 "[링크] DartPad StatefulWidget 학습" 에 연결된 dart-pad코드의 경우에는 StatelessWidget 으로 되어있습니다. 16강 4분22초 에 나온 StatefulWidget dartpad코드 예제와는 완전 다른 결과로 나왔습니다. 2회차 강의자료링크 수정이 필요해보여서 질문&답변 게시글을 작성해봅니다! 감사합니다!
int a[2][3] = { {1, 2, 3}, {4, 5, 6} }; int sum = ( a+0) + ( a+1) + ( a+2); 여기서 내가 모르겠는 부분은 a는 배열이기 때문에 a[0]이 a의 주소로 참조 되고 주소를 100이라고 가정한다면 a는 100의 값이 저장된다. 이때 *a는 왜 1이 아니고 *a는 100번지라는 주소를 가지는 건가요?? 1차원 배열 포인터는 주소의 위치 값을 말한다고 배웠는데 배열에서는 적용이 다른 거 같아서 헷갈리는데 2차원 배열의 특징으로 외워야 하는 건가요? GPT 설명 🔎 핵심: a , *a , a[0] , &a[0][0] 모두 주소는 같아도 타입이 다르다 표현의미타입주소값 예시 a 2차원 배열의 첫 번째 행의 주소 int (*)[3] 100 *a 첫 번째 행 a[0]int[3] 100 a[0] 첫 번째 행 int[3] 100 &a[0][0] 첫 번째 요소의 주소 (즉, 1의 주소) int* 100 **aa[0][0] == 1 int (값) 1 즉 *a == a[0] == 주소 , **a == a[0][0] == 값 저는 a = 100 인데 *a도 100인게 이해가 안되요
OnExperienceFullLoadComplete() 이 함수가 모든 GameFeatureAction이 로딩이 완료될 때 호출이 되는 거라면 OnExperienceLoaded델리게이트가 브로드캐스팅을 할 때 AddComponent로 추가한 컴포넌트들이 초기화가 완료되었다는 것이 보장되는 시점일까요?
int arr[] = {10, 20, 30,40,50}; int *p = arr; printf("%d", *p++); printf("%d", (*p)++); printf("%d", ++(*p)); printf("%d", *++p); printf("%d", ++*p); 다음과같이 포인터가 존재한다면 어떻게 출력이 되는지와 그 이유를 알 수 있을까요?