🔥 같이 성장할 사람 찾습니다 - 현실형 코딩 스터디 모집 🔥 혼자 공부하다 멘붕 온 사람 🙋♀ 토이 프로젝트 같이 만들 사람 찾는 사람 🙋♂ 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); 다음과같이 포인터가 존재한다면 어떻게 출력이 되는지와 그 이유를 알 수 있을까요?
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
강의에서 레이아웃을 담당하는 Sidebar, Header 컴포넌트를 만들때 Props으로 children을 받고 렌더링 하는 방식으로 만들었는데 이렇게 만든 이유가 있을까요? 지금까지 진행한걸 계층별로 생각해보면 최상위 Root->Sidebar->Header->... 등 형제 노드는 없고 자식 노드 형태로 계속 깊어지는구조. ------------ 아래의 방법과 비교해서 궁금합니다. 아래 코드와 동일하지 않더라도,Sidebar, Header 컴포넌트가 children과 분리된 구조. <body> <Sidebar/> <div> <Header/> <main>{children}</main> </div> </body>