묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
3분 30초 쯤 id값 질문
처음으로 Team과 Member를 persist 하면 Team_Id 는 1이고 Member_Id 는 2로 저장되고 다시 다른 Team과 Member를 저장하면 Id값이 각각 2씩 증가하는데 왜 처음 저장할때 Member_Id 값은 2 이고 새로 저장한 Team과 Member의 Id는 2씩 증가하는 이유가 궁금합니다 mariaDB 사용 중입니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
안녕하세요. 영한님 죄송합니다만 http와는 조금 다른 nginx 오류 질문입니다..
영한님 우선 강의와 관련된 내용이 아니라 죄송합니다. 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보면서 공부를 하고 있는데 nginx error! The page you are looking for is temporarily unavailable. Please try again later. 오류가 발생되어 구글 검색을 통해 많은 동일한 오류 사례들을 찾아 봤으나 해결되지 않아서 염치 없지만 강의와 관련 없는 오류 문의를 질문 드립니다. 죄송합니다...
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
gradlw build 에러
안녕하세요. 강의 너무 잘 듣고 있습니다. 인텔리제이에서 할 때는 빌드 잘 되고 실행까지 잘 되는데, wsl2 터미널 환경에서 ./gradlew clean build를 하니까 에러가 나오는데 이게 왜 나오는 건지 잘 모르겠습니다. 구글링을 해도 원하는 답을 찾기가 어렵네요ㅠㅠ 스프링 버전은 2.5.4 h2는 1.4.2000입니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
bounding box regerssion
안녕하세요 선생님 bounding box regerssion에 의문점이 생겨 질문 드립니다. 강의를 수강하면서 object detection은 region proposal이 없으면 물체를 탐지하는 성능이 떨어진다고 알고있습니다. 궁금한점은 10:00 ~10:15쯤 유사한 유형의 데이터가 들어오면 학습 모델을 기반으로 object detection 힌다고 언급하십니다. 그런데, CCTV 영상과 같이 탐지하고자 하는 물체의 위치가 특정 좌표가 아닌 모든 좌표에서 검출 되는 경우 region proposal에 대한 bounding box regression 학습이 의미 없다고 생각되는데, 잘 못 생각한 것일까요? 즐거운 강의 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
스프링 핵심원리 강의..
스프링 입문 강의를 반복해서 보고도 이해가 어려워서, 반포기 상태로 다음강좌인 스프링 핵심원리로 넘어왔는데, 이 강의에서 퍼즐이 맞춰지네요. 진짜 어떠한 학원, 교재, 강의보다 훌륭한 것 같아요 ! 개발 초심자들을 위해서 힘 써주셔서, 정말 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Program.cs의 TickCount 부분이 문제가 되어 프로그램이 작동되지 않습니다.
'미로 준비' 챕터의 오른손 법칙까지 강의를 듣고 이어서 트리를 배우고 해당 BFS 길찾기 강의 까지 온 그 며칠 사이에 TickCount가 음수로 반환되어 프레임 관리 부분에 걸려 무한루프를 돌고 있습니다. 전에는 잘 출력됐었는데 말이에요. 구글링에선 프로그램을 오버플로어 때문에 몇날며칠 켜두면 그렇게 된다고 하는데 당연히 전 그렇게 프로그램을 돌리지도 않아서 더 의아할 따름입니다... 강사님께서 오른손 법칙에 올리셨던 코드로도 빌드를 해보았지만 여전히 동일한 문제가 발생되네요. 왜 이렇게 나오는걸까요? visual studio 2019 버전이고 따로 비주얼을 업데이트 하거나 그러진 않았습니다.
-
미해결
구글 클라우드 플랫폼에서 설치 시 오류가 있어서 문의 드립니다.
안녕하세요 열심히 수강하고 있는 수강생입니다. Local 환경에서 설치 하고 테스트 하다보니 회사 내 보안적인 이슈 때문에 테스트가 쉽지 않아 구글 클라우드 플랫폼 환경에서 VM을 이용하여 마스터 서버와 work 노드를 구성하려고 합니다. 알려주신 절차대로 수행 중에 kubeadm init를 수행하면 아래와 같은 오류가 발생합니다. 여러번 반복해 보았는데도 오류가 계속 발생되는데 도움이 될 만한 사항이 있으면 알려주세요.. ps) 내부적인 보안 때문에 네트워크 문제가 아닌가 의심은 가는데 어떻게 조치를 해야 되는지 알 수가 없네요. 감사합니다. ======================================================================== Hit:2 http://asia-northeast3.gce.archive.ubuntu.com/ubuntu bionic InRelease Hit:3 http://asia-northeast3.gce.archive.ubuntu.com/ubuntu bionic-updates InRelease Hit:4 http://asia-northeast3.gce.archive.ubuntu.com/ubuntu bionic-backports InRelease Hit:1 https://packages.cloud.google.com/apt kubernetes-xenial InRelease Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] Fetched 88.7 kB in 1s (72.9 kB/s) Reading package lists... Done Reading package lists... Done Building dependency tree Reading state information... Donecurl is already the newest version (7.58.0-2ubuntu3.14).apt-transport-https is already the newest version (1.6.14).The following package was automatically installed and is no longer required: libnuma1Use 'sudo apt autoremove' to remove it.0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.OKdeb https://apt.kubernetes.io/ kubernetes-xenial mainHit:1 http://asia-northeast3.gce.archive.ubuntu.com/ubuntu bionic InReleaseHit:2 http://asia-northeast3.gce.archive.ubuntu.com/ubuntu bionic-updates InRelease Hit:3 http://asia-northeast3.gce.archive.ubuntu.com/ubuntu bionic-backports InRelease Hit:4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s[kubelet-check] Initial timeout of 40s passed.[kubelet-check] It seems like the kubelet isn't running or healthy.[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.[kubelet-check] It seems like the kubelet isn't running or healthy. [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.[kubelet-check] It seems like the kubelet isn't running or healthy.[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.[kubelet-check] It seems like the kubelet isn't running or healthy.[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.[kubelet-check] It seems like the kubelet isn't running or healthy.[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused. Unfortunately, an error has occurred: timed out waiting for the condition This error is likely caused by: - The kubelet is not running - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled) If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands: - 'systemctl status kubelet' - 'journalctl -xeu kubelet' Additionally, a control plane component may have crashed or exited when started by the container runtime. To troubleshoot, list all containers using your preferred container runtimes CLI. Here is one example how you may list all Kubernetes containers running in docker: - 'docker ps -a | grep kube | grep -v pause' Once you have found the failing container, you can inspect its logs with: - 'docker logs CONTAINERID'error execution phase wait-control-plane: couldn't initialize a Kubernetes clusterTo see the stack trace of this error execute with --v=5 or higherroot@kube-master-1:~#
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
질문있습니당
안녕하세요 강사님 1. 강의 10분 56초 즈음에 강사님께서 async getWorkspaceMembers(url: string) { this.usersRepository .createQueryBuilder('user') .innerJoin('user.WorkspaceMembers', 'members') .innerJoin('members.Workspace', 'workspace', 'workspace.url = :url', { url, }) .getMany(); } 이렇게 해 놓으면 가입되어 있는 워크스페이스들 전부 가져올 수 있다고 하셨는데 실제로 값을 어떻게 가져오려고 확인해봤습니다 async getWorkspaceMembers(url: string) { const hello = await this.usersRepository .createQueryBuilder('user') .innerJoin('user.WorkspaceMembers', 'members') .innerJoin('members.Workspace', 'workspace', 'workspace.url = :url', { url, }) .getMany(); Logger.log('hello:', JSON.stringify(hello)); } 그런데 출력값이 이렇게 나오더라구요 즉 user정보를 가지고 오더라구요 제 디비에는 이렇게 데이터가 들어가있구요 User Workspace Workspacemembers 그래서 궁금한게 왜 workspace모든 정보가 아닌 User정보만 가지고 오는지 궁금합니다! 2. 제가 이해한 순서가 맞는지 헷갈리는데요. async getWorkspaceMembers(url: string) { return this.usersRepository .createQueryBuilder('user') .innerJoin('user.WorkspaceMembers', 'members') .innerJoin('members.Workspace', 'workspace', 'workspace.url = :url', { url, }) .getMany(); } 이 코드에서 순서가 첫째 .innerJoin('members.Workspace', 'workspace', 'workspace.url = :url', { url, }) url로 workspace테이블의 url에 일치하는 workspace로우를 찾은다음 worspaceId로 인해 이것과 관계되어있는 workspacemembers로우를 찾습니다. 둘째 .innerJoin('user.WorkspaceMembers', 'members') workspacemembers의 관계되어있는 uerId를 통해서 유저 정보를 전부 불러옵니다. 즉 순서가 밑에서 위로 찾는게 맞는 순서인지 궁금합니다! 3. 위의 코드를 바탕으로 sql 에서는 inner join을 할때 관계되고 일치되는 테이블의 값들을 전체 불러왔는데 왜 typeorm에서는 마지막 user정보만 불러오는지 궁금합니다 4. .innerJoin('user.WorkspaceMembers', 'members') 이 코드에서 별명이 members잖아요? 그럼 user.WorkspaceMembers전체를 가리키는 것인가요 아니면 WorkspaceMembers만 가리키는 것인가요?ㅎㅎ
-
해결됨HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
탭 메뉴 콘텐츠(스타일 01) with JQUERY 수업을 듣고 질문남깁니다.!
안녕하세요.! 이 강의를 듣고, [한걸음 더] 로 .content에 transition을 주는 방법을 설명해주셨는데 그걸 보고 해봤는데 이게 transition효과가, fadeOut()/fadeIn()효과가 걸린게 맞는지 확인차 여쭤보고 싶어서 이렇게 질문을 남깁니다. CSS에 transition 값을 줘도/ script에 fadeOut과 In에 (숫자 또는 'fast' 'slow') 줘도 효과가 적용이 된건지 모르겠어요ㅠㅠ <html> <!-- jQuery CDN --> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <link rel="stylesheet" href="css/ex7.css"> </head> <body> <div class="review-section"> <h1><span>CodingWorks</span> Publishing Online Class with Inflearn</h1> <div class="review-pic"> <img class="active" src="../images/face-01.jpg" data-alt="tab1"> <img src="../images/face-02.jpg" data-alt="tab2"> <img src="../images/face-03.jpg" data-alt="tab3"> <img src="../images/face-04.jpg" data-alt="tab4"> </div> <div class="review"> <div class="content active" id="tab1"> <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nulla dolorem alias facere amet quae, ducimus, eum fuga hic necessitatibus perferendis, officiis saepe molestiae harum quas unde cumque ad reprehenderit perspiciatis maxime suscipit velit est architecto nobis. Doloremque vitae rerum provident mollitia, ut explicabo illum repellat magni aut veritatis. Facere, magni?</p> <p> Sally, Web Desginer </p> </div> <div class="content" id="tab2"> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto a tempora porro fugit ipsum. Fugit, a minima doloremque incidunt cum odio quidem suscipit provident impedit soluta aspernatur recusandae magnam saepe animi iusto voluptate ipsa, qui voluptatum, sed tenetur! Enim quasi totam inventore nam optio magnam, nesciunt impedit reprehenderit possimus. Vero saepe fugit adipisci eveniet deserunt.</p> <p> Amy, Graphic Designer </p> </div> <div class="content" id="tab3"> <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim, quia pariatur ipsum unde eligendi reprehenderit a vero necessitatibus nostrum consequuntur, praesentium quae id. Deleniti repellendus similique vel, quas facilis neque ut esse aut nihil? Repellendus nihil praesentium accusantium. Distinctio iste laudantium vero dicta quas? Ducimus quisquam soluta excepturi quasi eligendi, veniam quaerat dolor at placeat id ipsa fuga minus quo!</p> <p> Jung Ho, Developer </p> </div> <div class="content" id="tab4"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad, necessitatibus error! Perferendis cum alias quia itaque fuga repellat impedit deleniti aliquid sapiente incidunt voluptates sed praesentium, accusamus iste sequi deserunt? Iste suscipit sunt dolorem necessitatibus expedita ut, quo consequuntur accusantium culpa fugiat numquam nisi ratione nobis quaerat dolorum sequi obcaecati omnis, voluptas rerum a, commodi corrupti nam repudiandae. Est ut nemo cumque iste voluptates provident dolore consequuntur sint ex id!</p> <p> Chris, Printing Desinger </p> </div> </div> </div> <script> $('.review-pic img').click(function(){ $(this).addClass('active') $(this).siblings().removeClass('active') $('.review .content').removeClass('active') $('#' + $(this).attr('data-alt')).addClass('active') $('.review .content').faedOut(500) $('#'+ $(this).attr('data-alt')).fadeIn(500) }) </script> </body> </html> <CSS> /* Google Web Font */ @import url('https://fonts.googleapis.com/css?family=Noto+Sans+KR:300,400,500,700,900&display=swap'); body { font-family: 'Raleway', sans-serif; /* color: #fff; */ line-height: 1.5em; font-weight: 300; margin: 0; background: #eee; display: flex; justify-content: center; align-items: center; height: 100vh; } a { color: #222; text-decoration: none; /* font-weight: 700; */ } .review-section { width: 800px; text-align: center; background-color: #fff; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } .review-section h1 { font-size: 25px; margin-bottom: 30px; } .review-section h1 span { color: crimson; } .review-pic img { width: 100px; border-radius: 50%; filter: grayscale(1); margin: 5px; transition: 0.3s; cursor: pointer; } .review-pic img.active { border-radius: 5px; filter: none; } .review { position: relative; min-height: 180px; } .review .content { display: none; position: absolute; transition: 0.5s; } .review .content.active { display: block; } .review .content p:nth-child(2) { font-weight: bold; }
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
Sublimetext3 설치
Sublimetext3 다운받았는데, 무슨 업데이트 하라고 해서 하긴했는데도 프로그램 상단창에 (UNREGISTERED)라고 뜨고 12:33에서 설명하는것처럼 <b>의 색상이 변경되거나 하지 않네요
-
미해결파이널 코딩테스트 : 프론트엔드
질문드립니다!
안녕하세요 😃 강의 듣다 작은 궁금함이 생겨 질문 드립니다. 문제 1번과 문제 3번을 들었는데 CSS 작성 시 1번은 부모 자식 클래스를 한 줄에 다 작성하시고 .cont-movie .list-movieNav .link-nav{ } 3번은 클래스를 하나씩 작성하셨는데 .star-average{ } .star-point-container{ } .star-background{ } 두 방식에는 어떤 차이점이 있을까요? 개인적으로는 3번 방식을 선호하는데 장단점이 있는지도 궁금합니다! 감사합니다😃
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
프로젝트마다 패킷을 개별적으로 생성해주는 이유가 무엇인가요?
안녕하세요. 우선 좋은 강의 감사드립니다! 이 강의를 보면서 정말 많은 공부가 되었습니다 :) -------- Listener, Connector를 ServerCore에 작성하고 클라이언트, 서버에서 이를 참조하여 사용하듯 패킷도 하나의 프로젝트에 정의하고 클라이언트와 서버에서 참조하는 것은 어떤가요? 그렇게 하지 않고 프로젝트마다 개별적으로 생성해주는 이유가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
환경설정 오류
지금 며칠째 환경설정 오류가 생겨 진도를 못나가고 있습니다ㅠㅠ 구글링을 하면서 문제해결을 하려고 해도 해결이 되질 않네요 왜 메인클래스를 찾을 수 없다고 그러는걸까요,,, 빨리 진도 나가고 싶네요ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
protected void service(HttpServletRequest request, HttpServletResponse response) 메서드
안녕하세요 pdf7에서 localhost:8080/hello 라고 요청하면 protected void service(HttpServletRequest request, HttpServletResponse response) 메서드가 호출되잖아요? 그런데 그런데 이 방법은 GET 방법(pdf8 에서 로그) 인데, 조회라서 자동으로 GET으로 그냥 브라우저가 호출한 건가요? 만약 같은 경로로 POST로 호출하면 어떻게 되나요? 이 service메서드에는 일반 Controller의 함수에서 HTTP메서드를 설정하는 것처럼, 정하는 것이 없어서 헷갈리네요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
public T Load<t>(string path) where T : Object 질문
object 에서 이러한 오류가 떠서 구글랭해보니까 이름이 달라서 모호하다고 나오길래 vs 서 제공하는 오류 수정 방식으로 Object앞에 UnibityEngine.Object 를 붙이니까 오류가 사라지던데 왜 그런것인가요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 오류,,,
안녕하세요 제가 다른 강의 때문에 자바 1.8버전을 사용하고 있고 인텔리제이도 잘 알지도 못해서 아무거나 깔다가 인텔리제이 에듀를 깔아서 사용하고 있었슴미다 cmd에서 오류가 생기는 것 같아 인텔리제이 에듀를 삭제하고 커뮤니티를 다시 깔아서 처음부터 하려고 하였는데 "Error running 'All in hello-spring': No junit.jar" 라는 메시지와 함께 실행이 되지 않습니다ㅜㅜ 왜 이러는 것일까요 자바 1.8이나 자바 11버전을 용도에 따라 골라 사용하거나 그럴 수는 없는건가요? ---------------------------------------------------------------------------------------------------------------- https://stackoverflow.com/questions/4757800/configuring-intellij-idea-for-unit-testing-with-junit 페이지를 참고하여 junit을 수동으로 추가한거같은데 "Tests were not found in module 'hello-spring.main'. Use module hello-spring.test instead" 라는 메시지가 뜹니다
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
C++를 사용하지 않고 문제를 해결하고싶습니다.
문제에서 sort함수를 이용하여 정렬을 해주는데 만약 C++ 함수들을 사용하지 않고 C로만 문제를 해결하려고 하는데 방법이 있을까요? #include<stdio.h> #include<math.h> #include <stdlib.h> #define MAX(x, y) x > y ? x : y int main(void) { int s,n,m,a,i,j,pos=0; scanf("%d",&n); int *arr=(int*)malloc(sizeof(int)*n); for(i=0;i<n;i++) { scanf("%d",&arr[i]); } scanf("%d",&m); int *brr=(int*)malloc(sizeof(int)*m); for(i=0;i<m;i++) { scanf("%d",&brr[i]); } int *sum=(int*)malloc(sizeof(int)*MAX(n,m)); int left=0,right=0; while(left<n && right<m) { if(arr[left]==brr[right]) { sum[pos++]=arr[left++]; right++; } else if(arr[left]<brr[right]) { left++; } else if(arr[left]>brr[right]) { right++; } } for(i=0;i<pos;i++) { printf("%d ",sum[i]); } free(arr); free(brr); free(sum); return 0; } 저는 이 부분에서 정렬을 하지못하여 막혀있습니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
상품 상세 화면이 나오지 않아요..
상품 상세 화면에서 비동기식 처리로 null 이 끝나고 다음 처리가 되지 않는 것 같아요 이 화면에서 새로고침을 하거나 그냥 기다려도 변하지 않네요 뭐가 문제인것일까요????? product 의 index.js 함께 첨부합니다. import { useParams } from "react-router-dom"; import axios from "axios"; import { useEffect, useState } from "react"; function ProductPage() { const { id } = useParams(); const [product, setProduct] = useState(null); useEffect(function () { axios .get( "https://a961ad84-b349-455c-9581-09eecba1d299.mock.pstmn.io/products" + id ) .then(function (result) { setProduct(result.data); }) .catch(function (error) { console.error(error); }); }, []); if (product === null) { return <h1>상품 정보를 받고 있습니다..</h1>; } return ( <div> <div id="image-box"> <img src={"/" + product.imageUrl} /> </div> <div id="profile-box"> <img src="/images/images/icons/avatar.png" /> <span>{product.seller}</span> </div> <div id="contents-box"> <div id="name">{product.name}</div> <div id="price">{product.price}원</div> <div id="description">{product.description}</div> </div> </div> ); } export default ProductPage;
-
미해결3dsmax 초급부터 전문가까지 - 한방에 끝내는 3dsmax 강좌
3d max 2020 핫키 삭제
목마하임이 주신 단축키는 저장했는데 제가 별로도 저장한 kbdx 를 넣으려고 했는데 hotkey 에 들어갔어요 ㅠ 이거 어떻게 지울 수 있나요? 또 별도로 저장한 kbdx 를 목마하임이 주신 단축키 안에 넣을 수 있는 방법을 알려주세요~
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
foreach문을 이용해서 child에 접근하는 부분이 이해가 가지 않습니다.
public override void Init() { base.Init(); Bind<GameObject>(typeof(GameObjects)); GameObject gridPanel = Get<GameObject>((int)GameObjects.GridPanel); foreach (Transform child in gridPanel.transform) { Managers.Resource.Destroy(child.gameObject); } } 요런형태로 child들을 다 삭제할 수 있었는데, 이해가 안되는 부분은 어떻게 child에 접근할 수 있었는지가 이해가 안됩니다. foreach를 통해 접근한 gridPanel.transform은 패널 자체의 transform을 접근한 것 아닌가요?? 왜 패널이 아닌 그아래의 child들이 foreach를 통해 삭제되는지 잘모르겠습니다..