묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
js 직접 다운로드 방법
babel 다운로드 잘 했습니다.알고 보니 다음 두 파일도 잘못 다운로드 한 거 같아요;;react.production.min.js, react-dom.production.min.js이 2개 js파일도 직접 다운로드할 수 있는 방법 알려주시면 감사하겠습니다.
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
동물앨범 3-3 express 설치 후
express 파일까지 설치하고 server.js에 코드를 작성해 주었습니다.그런데 웹을 새로고침한 경우Cannot GET /penguin이런 에러가 계속 발생합니다. 이 에러를 해결하기 위해서 express를 설치한 것 같은데..무엇이 문제인 걸까요?혹시 몰라 깃의 코드를 확인해 봤는데, 코드상 문제는 없었습니다. import Content from "./components/Content.js"; import TabBar from "./components/TabBar.js"; import { request } from "./components/api.js"; export default function App($app) { this.state = { currentTab: window.location.pathname.replace("/", "") || "all", photos: [], }; //tab const tab = new TabBar({ $app, initialState: this.state.currentTab, onClick: async (name) => { history.pushState(null, null, `/${name}`); this.updateContent(name); }, }); const content = new Content({ $app, initialState: [], }); // 상태 업데이트 함수 this.setState = (newState) => { this.state = newState; tab.setState(this.state.currentTab); content.setState(this.state.photos); }; this.updateContent = async (tabName) => { try { const currentTab = tabName === "all" ? '' : tabName; const photos = await request(currentTab); this.setState({ ...this.state, currentTab: tabName, photos:photos, }) } catch (error) { console.log(error) } }; window.addEventListener("popstate", () => { this.updateContent(window.location.pathname.replace("/", "") || "all"); }); const init = async () => { this.updateContent(this.state.currentTab); }; init(); } const express = require('express'); const path = require("path"); const app = express(); const PORT = 3000; app.use(express.static(path.join(__dirname, ".."))); app.get("/*", (req, res) => { res.sendFile(path.join(__dirname, "..", 'index.html')); }); app.listen(PORT, () => { console.log('START SERVER') })++추가질문port주소를 3000으로 변경하면 해당 오류가 발생하지 않는 것을 확인했습니다. 라이브서버를 자동으로 실행하면 port가 5500이어서 오류가 발생한 것 같습니다.1) port는 자동으로 3000으로 변경이 안되나요?2)server.js에서 port를 새로 지정해준 이유가 궁금합니다. 그대로 5500을 하면 안되나요?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
PostListView 에서 PostDetailView (미리보기) 사용하는곳..
<PostDetailView :id="1"></PostDetailView>main.js:8 [Vue warn]: Invalid prop: type check failed for prop "id". Expected String with value "1", got Number with value 1. at <PostDetailView id=1 > at <AppCard> at <PostListView onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< undefined > > at <RouterView> at <TheView> at <App> 위처럼 사용하는 경우 경고창이 표시가 됩니다.. 또한 <PostDetailView :id="abc"></PostDetailView>위처럼 abc를 id값으로 주면 undefined가 뜨는데 왜그럴까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
일주일전 준비 시작분들위한 정리자료
각 작업형 끝에 캐글 문제 풀이 적혀있는데 이건 어디서 푸는걸까요? 궁금합니다.
-
미해결99% J형 엔지니어와 함께하는 AWS EKS와 GitLab CI/CD 기초 완벽 정복
eksctl create iamserviceaccount 문의
Load Banacer Controller 설정 과정 중eksctl create iamserviceaccount \ --region ${region} \ --name aws-load-balancer-controller \ --namespace kube-system \ --cluster ${clusterName} \ --attach-policy-arn ${policyArn} \ --override-existing-serviceaccounts \ --approve을 실행하면1 existing iamserviceaccount(s) (kube-system/aws-load-balancer-controller) will be excluded 1 iamserviceaccount (kube-system/aws-load-balancer-controller) was excluded (based on the include/exclude rules)metadata of serviceaccounts that exist in Kubernetes will be updated, as --override-existing-serviceaccounts was setno tasks 위와 같은 로그가 출력되고 k get sa -n kube-system 을 실행하면 aws-load-balancer-controller가 나타나지 않습니다. NAME SECRETS AGEattachdetach-controller 0 111maws-cloud-provider 0 111maws-node 0 108m 어떤 원인인지 알수 있을까요?
-
미해결
취직/이직 전용 코테 스터디 모집!!
여러분은 몇 단계인가요?[ 1단계 ] 비전공자 혹은 자료구조/알고리즘을 공부한 적이 없습니다. (백준 🥉브론즈)[ 2단계 ] 자료구조/알고리즘을 학습해 봤고, 기초 문제는 풀 수 있습니다. (백준 🥈실버4 ~ 🥈실버2)[ 3단계 ] 자료구조/알고리즘에 대한 이해도가 있고, 중급 문제를 풀 수 있습니다. (백준 🥈실버1~🥇골드4)[4단계 ] 대부분의 문제를 풀 수 있지만, 고난도 문제에서 막힙니다. (백준 🥇골드3 ~ 🥇골드1)1~4단계를 위한 알고리즘 스터디입니다.콜럼버스 스터디 9기 모집합니다.<콜럼버스 스터디> 는 4주 단위의 집중 스터디를 통해 코딩테스트 빈출 유형에 대비하는 알고리즘 스터디입니다.☀ 콜럼버스 스터디 소개체계적인 시스템으로 ❗자료구조와 알고리즘 유형별 완벽 정복 ❗1. 💌 매주 유형별로 제공되는 개념 + 꿀팁 압축 길라잡이 노트매주 월요일 콜럼버스 자체 제작 알고리즘 개념 요약과 꿀팁이 가득 담긴 [Columbus Times]를 제공해드려요.➡ 1주차 정리 미리보기: 1주차 (문자열 + 기초수학) *링크 클릭2. 🔑 유형별 핵심 문제 풀이알고리즘 공부를 할 때 꼭 알아야 할 개념들의 핵심 문제, 도전문제 그리고 추천문제까지 풀어보며 유형별 개념을 완전히 정복할 수 있어요.매일 제공되는 양질의 핵심 유형 필수문제 - 4주간 60+문제 풀이3. 📕 콜럼버스와 함께 작성해나가는 나만의 개념노트 & 오답노트대표문제를 풀고 직접 개념노트를 작성합니다. 기초를 다질 때는 직접 쓰는 개념노트가 아주 큰 도움이 됩니다. 저희가 제공하는 자료로만 공부하기보단 직접 써보면서 정리를 하면 공부 효과가 훨씬 좋습니다. 개념노트 작성 양식은 제공해드립니다.4. 중간, 기말고사 및 체계적인 관리문제 푸는 습관을 잡아주는 체계적인 커리큘럼2주, 4주차 시험을 통해 집중도 있는 스터디매주 일요일 작성하는 코딩 테스트를 위한 나만의 알고리즘 노트(양식 제공)5. 팀원들과 함께하는 코드 리뷰매일 팀원들과 함께 자유롭게 코드 및 의견 공유주 1회 코드 리뷰를 통한 효과적인 알고리즘 공부 6. 문제허브 제공스터디를 통해 해결한 문제들과 별도의 추천 문제들까지 200+문제를 정리한 노션페이지 평생 제공(수강 완료 후 제공, 참여한 스터디에 맞는 페이지 제공, 상/중/하 모두 수강 시 200+)☀ 콜럼버스의 모험을 이런 분께 추천 드려요아래 7가지 중, 1개라도 해당되는 분이라면 참여해보실 것을 적극 권장드립니다 !비전공자나 자료구조/알고리즘을 공부한 적이 없는 분자료구조/알고리즘 알고는 있지만 처음부터 다시 탄탄하게 기초를 다지고 싶은 분 코딩테스트를 위해 유형별로 체계적인 준비가 필요하신 분 어떤 문제를 풀지 모르겠어! 누가 매일매일 문제를 떠먹여줬으면 좋겠다..하시는 분정해진 커리큘럼만 완주하면 코딩 테스트 마스터가 되길 원하시는 분재직하면서 혼자 코딩 테스트 준비하기가 힘든 분짧은 시간에 집중도 있는 알고리즘 공부를 통해 코딩 테스트 조기졸업 원하시는 분☀ 콜럼버스 스터디와 함께 항해를 마치면?매일매일 알고리즘 푸는 습관을 만들 수 있어요자료구조와 알고리즘 기초를 탄탄하게 다지게 돼요어려운 문제를 만나도 해결할 수 있는 힘을 기르게 돼요언제든 다시 공부할 수 있는 문제 허브와 알고리즘 길라잡이 노트를 가지게 돼요모든 유형이 정리된 나만의 알고리즘 노트가 생기게 돼요수강생 후기김**님퇴근 후 무의미한 시간을 보내던 직장인들에게 정말 최고의 선택이라고 생각합니다. 본업이 있어 스터디에 많은 시간을 투자하기 어려운 제게는 현재의 익명성과 참여 강도가 매우 잘 맞아 좋습니다. 중간고사와 같은 중간 점검 제도가 있고, 단계별로 문제를 풀다 보면 점점 더 어려운 난이도의 문제를 해결할 수 있어 코딩 테스트 공부에 흥미를 잃지 않도록 해주는 점이 정말 만족스럽습니다. 또한 커리큘럼을 따라가다보면 자연스레 실력이 늘게 된다는 점에서 이 스터디가 정말 세심하게 기획되었다고 느꼈습니다. 실제 참가자 분들 비율은 취준/재직 비율이 1대1 정도이고 모두 만족하실 수 있게 꾸준히 업데이트 하고 있습니다.초보 환영!! 고수도 환영!! 모두 환영!!자세한 내용은?콜럼버스 9기 자세히 보기
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
rf = RandomForestClassifier(random_state=0)
rf = RandomForestClassifier(random_state=0) 여기서 random_state를 꼭 해줘야 하나요? 이제까지는 안했던거 같아서요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
SetCanvas에는 Stack Push를 안해도 되나요?
SetCanvas 함수에서 true 일 때 _order++ 은해서_order값은 올라 가는데 Stack에는안올라 가는거 같은데 별로 상관 없는 걸까요?
-
미해결BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[빠짝스터디] 3주차 리텐션 과제
Notion 링크로 대체합니다.https://colney4844.notion.site/3-13a59b98d5db80438b7fcef0146771f6?pvs=4
-
미해결
Encase 해상도 문제 해결 ㅠㅠ
안녕하세요 디포전 자격증 준비중인 사람입니다. Encase v8.05를 사용하여 이미징 파일을 주로 분석하고 있는데 raw 이미지 파일을 불러오거나 할때 열리는 창이 너무 커서? 즉, 해상도가 안맞는 문제가 발생하여 하단의ok버튼을 누를 수가 없습니다. 창 최대화나 이동도 안되고요. 그럴 때마다 디스플레이 옵션을 가로에서 세로로 변경하여 매우 귀찮게 일일이 ok 버튼을 누르고 있는 실정인데... 해당 문제 해결 방법이 간곡히 필요합니다..![인케이스 창]하단의 ok/ cancel 부분이 보이지 않습니다...
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
빈도정렬 코드 질문있습니다
http://boj.kr/9cd107f1e26541b9b11c0840518d53a7큰돌님 강의를 듣고 며칠 지나서 복습 삼아서 혼자 작성했는데 좀 다르지만 통과했습니다. 혹시 가독성이나 효율 이런 측면에서 안 좋은 코드인지 궁금해서 질문드립니다 ..!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품 수정 form이 안열립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]섹션8: 상품수정강의에서 1:51부분이 상품 수정 form이 안열립니다. @PathVariable("itemId")이렇게 고쳤고, 설정에 gradle도 인틀리제이에서 gradle로 바꾸고 했는데도 안됩니다..어떻게 해야 할까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
영속성 컨텍스트 1차캐시 질문
안녕하세요! 질문이 생겨 질문글 남깁니다 :) 영속성 컨텍스트는 트랜잭션을 사용하면 생겨난다 라고 말씀 해주셨는데요. 이중에 1차 캐시 부분에 대한 내용이 궁금해서 코드를 작성하던중에 의아한점이 생겼습니다. @Transactional public List<UserResponse> getUsers() { User user = userRepository.findById(4L).orElseThrow(); user.updateName("test"); userRepository.findById(4L); userRepository.findById(4L); return userRepository.findAll() .stream() .map(UserResponse::new) .toList(); }우선은 위 내용인데요, updateName을 호출한 시점에 변경 감지가 되어서 update문이 호출 되었는데, 이후에 로그로 찍히는 select문이 없더라구요. 1차캐시가 진행되면 그 이후에 객체의 값이 변경 되더라도 그 내용까지 다시 반영해서 캐싱 해주는걸까요? public List<UserResponse> getUsers() { userRepository.findById(4L); userRepository.findById(4L); userRepository.findById(4L); return userRepository.findAll() .stream() .map(UserResponse::new) .toList(); }그리고 두번째 질문은 코드를 이런식으로 트랜잭션 어노테이션 없이 작성했을 때 인데요.제 추측은 트랜잭션 어노테이션이 없으니 영속성컨텍스트가 생성되지 않을것이고 그에따라 select문이 3번 호출될것이다. 였는데 실행해보니 select문은 한번만 호출되더라구요.나름대로 왜일까 고민해본 결론은 findById가 구현된 SimpleJpaRepository클래스에 붙어있는 Transactional이 영향을 주는건가? 싶긴 한데 명확한 답은 모르겠습니다 ☹1차캐시에 한해서는 트랜잭셔널과는 독립되게 영속성컨텍스트가 동작하는걸까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
1987번 관련 질문입니다.
1987번 제 풀이가 선생님의 리스트 풀이와 비슷하다고 생각해서 제출을 해봤는데 시간 초과가 나는 것 같습니다. 이상하다고 생각해서 선생님께서 작성해주신 예시코드도 복붙해봤는데 똑같이 시간 초과가 나는 것 같아서요... 혹시 뭐가 문제일까요? 컴퓨터마다 시간이 달라서 그런걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회사 PC로 구글드라이브 접속이 안되어서...
혹시 학습용 CSV 파일을 메일로 받아볼수 있을까요?
-
미해결BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[빠짝스터디 3주차 과제] 리텐션 연습문제
1. Weekly RetentionWITH base AS ( SELECT DISTINCT DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATE_TRUNC(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul'), WEEK(MONDAY)) AS event_week, DATE_TRUNC(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul'), MONTH) AS event_month, user_id, user_pseudo_id, event_name, platform, event_params FROM advanced.app_logs ), user_visit_base AS ( SELECT user_pseudo_id, MIN(event_week) OVER (PARTITION BY user_pseudo_id) AS first_visit_week, event_week AS visit_week FROM base ), user_visit_weekdiff AS ( SELECT first_visit_week, DATE_DIFF(visit_week, first_visit_week, week) AS week_diff, COUNT(DISTINCT user_pseudo_id) AS visit_users FROM user_visit_base GROUP BY ALL ) SELECT first_visit_week, week_diff, visit_users, SAFE_DIVIDE(visit_users, FIRST_VALUE(visit_users) OVER (PARTITION BY first_visit_week ORDER BY week_diff ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)) AS retention FROM user_visit_weekdiff 2. Retain User → New User, Current User, Resurrected User, Dormant User-- 한 달(30일)을 기준으로 구분하였다. -- 신규 유저: 최근 한 달 이내 새로 방문 -- 기존 유저: 최근 한 달 이내 재방문, 그 이전 한달에도 방문 -- 복귀 유저: 최근 한 달 이내 재방문, 그 이전 한달에는 방문 X -- 휴먼 유저: 최근 한 달 이내 재방문 X WITH base AS ( SELECT DISTINCT DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, user_pseudo_id FROM advanced.app_logs ), user_first_last AS ( SELECT user_pseudo_id, MIN(event_date) AS first_date, MAX(event_date) AS last_date FROM base GROUP BY user_pseudo_id ), last_event_date AS ( SELECT MAX(event_date) AS current_date FROM base ), user_activity AS ( SELECT user_pseudo_id, event_date, LEAD(event_date) OVER (PARTITION BY user_pseudo_id ORDER BY event_date) AS next_event_date, CASE WHEN DATE_DIFF(LEAD(event_date) OVER (PARTITION BY user_pseudo_id ORDER BY event_date), event_date, DAY) > 30 THEN 1 ELSE 0 END AS dormant_history FROM base ), user_types AS ( SELECT u.user_pseudo_id, u.first_date, u.last_date, led.current_date, MAX(us.dormant_history) AS dormant_history, CASE WHEN DATE_DIFF(led.current_date, u.last_date, DAY) > 30 THEN 'dormant_user' WHEN DATE_DIFF(u.last_date, u.first_date, DAY) <= 30 THEN 'new_user' WHEN MAX(us.dormant_history) = 1 THEN 'resurrected_user' ELSE 'current_user' END AS user_type FROM user_first_last AS u CROSS JOIN last_event_date AS led LEFT JOIN user_activity AS us ON u.user_pseudo_id = us.user_pseudo_id GROUP BY u.user_pseudo_id, u.first_date, u.last_date, led.current_date ), first_week_and_diff AS ( SELECT ut.user_type, fw.user_pseudo_id, fw.event_date, DATE_DIFF(DATE_TRUNC(fw.event_date, WEEK(MONDAY)), DATE_TRUNC(ut.first_date, WEEK(MONDAY)), WEEK) AS diff_of_week FROM base AS fw JOIN user_types AS ut ON fw.user_pseudo_id = ut.user_pseudo_id ), user_cnt_by_type_and_week AS ( SELECT user_type, diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_and_diff GROUP BY user_type, diff_of_week ), retention_base AS ( SELECT user_type, diff_of_week, user_cnt, FIRST_VALUE(user_cnt) OVER (PARTITION BY user_type ORDER BY diff_of_week) AS first_user_cnt FROM user_cnt_by_type_and_week ) SELECT user_type, diff_of_week, ROUND(SAFE_DIVIDE(user_cnt, first_user_cnt), 2) AS retention_rate FROM retention_base ORDER BY user_type, diff_of_week 3. retention이 높은 그룹?current user: 최고 0.41 (4~5주차)new user: 최고 0.11 (1,3주차)resurrected user: 최고 0.14 (9~12주차)dormant user: 최고 0.09 (3주차)리텐션이 그나마 높은 그룹: current usercurrent user, resurrected user 리텐션 분포의 경우 상승세 → 하강세 경향성을 보여 피크를 찍을 때 즈음 어떤 이벤트가 있었다고도 추측할 수 있다. 4. click_payment 이벤트를 중점으로 본 Weekly Retention?WITH base AS ( SELECT DISTINCT DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime, event_name, user_id, user_pseudo_id FROM advanced.app_logs WHERE 1=1 AND event_name = "click_payment" ), event_week_and_first_week AS ( SELECT DISTINCT DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week, user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id ORDER BY event_date), WEEK(MONDAY)) AS first_week FROM base ), retention_base AS ( SELECT *, FIRST_VALUE(user_cnt) OVER(ORDER BY day_of_week) AS total_user FROM ( SELECT DATE_DIFF(event_week, first_week, WEEK) AS day_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM event_week_and_first_week GROUP BY day_of_week ) ) SELECT day_of_week, ROUND(SAFE_DIVIDE(user_cnt, total_user), 2) AS retention FROM retention_base ORDER BY day_of_week
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
3085번 사탕 게임에서 제 풀이가 왜 틀린걸로 처리되는지 잘 모르겠습니다.
안녕하세요 선생님. 백준 3085번 풀이2와 제 풀이가 비슷한 것 같은데 제 풀이는 틀린 것으로 나오는데 어떤 부분이 잘못됐는지 잘 모르겠습니다. 제가 어떤 부분을 놓치고 있는지 알려주시면 감사하겠습니다!import sys from itertools import combinations def input(): return sys.stdin.readline().rstrip() def get_max(i,j): global data, n ser1 = data[i] ser2 = [data[k][j] for k in range(n)] return max(count_max(ser1), count_max(ser2)) def count_max(ser): count = 0 bef = '.' for idx in range(len(ser)): if bef != ser[idx]: count = 1 else: count += 1 bef = ser[idx] return count n = int(input()) data = [] for _ in range(n): data.append(list(input())) dx = [0,1,-1,0] dy = [1,0,0,-1] cur_max = 0 for i in range(n): for j in range(n): if i == j: cur_max = max(cur_max, get_max(i, j)) for di, dj in zip(dx,dy): ni = i + di nj = j + dj if not ((0 <= ni < n) & (0 <= nj < n)): continue if (data[ni][nj] == data[i][j]): continue data[i][j], data[ni][nj] = data[ni][nj], data[i][j] cur_max = max(cur_max, get_max(i, j)) data[i][j], data[ni][nj] = data[ni][nj], data[i][j] print(cur_max)
-
미해결스프링 핵심 원리 - 고급편
오타 제보....
안녕하세요 강사님강의 잘 듣고 있습니다.수업 내용을 정리하다가 별거 아니지만....오타 제보 입니다! 창구 지원 -> 창구 직원
-
해결됨독하게 시작하는 C 프로그래밍
realloc 질문
예제 파일을 보고 있던중에 들은 생각인데요, free(pszBuffer) 를 하지 않는 이유는 무엇인가요
-
해결됨독하게 시작하는 C 프로그래밍
동적 메모리 할당 관련 질문 있습니다.
개발자 님께서 제공해주신 예제 파일에 제 맘대로 주석을 달아봤습니다.18 행에 오류 확인을 위해 의도적으로 해제하지 않음 이라는 주석이 처음부터 달려있었는데메모리 해제를 하지 않아도 런타임 오류는 발생하지 않더라구요. 18 행 주석의 의도가 무엇인지 궁금합니다!