inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

Hibernate 질문 있습니다.

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 17 :13 에서 MemberServiceIntegrationTest 의 회원가입을 실행했을 때 김영한님은 insert into member(id,name) values (null,?) 라고 뜨시는데 저는 insert into member (name, id) values (?,default) 라고 뜹니다 member 과 values 둘 다 순서가 바뀐 것 같은데 어디를 봐야 고칠 수 있을까요..?

  • java
  • spring
  • mvc
  • spring-boot
이가영 댓글 2 좋아요 0 조회수 243

rtm.start() 오류

미해결

날씨를 알려주는 나만의 SlackBot 만들기 (파이썬)

아래와 똑같은 질문입니다. 19번 라인 trm.start부분에서 계속 오류가 납니다. 아래 질문의 답변을 통해 Classic Slack App으로 생성하지 않아(현재 불가능) 발생한 것으로 파악하였습니다. 강의 업데이트 공지 상으로 6월 중으로 완료될 예정이라고 하셨는데 아직 강의가 업데이트 되지 않은 것 같아 질문 드립니다. 업데이트 된 강의는 언제 올라올 예정인가요? 오류 해결 방법을 알고 싶습니다.

  • python
  • slack
  • github-actions
  • playwright
  • httpx
dudzw623 댓글 1 좋아요 0 조회수 137

문제와풀이3 강의중 inputmismatchexception 예외처리 하는 방법이 궁금합니다

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 내용] 섹션9 배열 문제와풀이3 강의 10:41초부터 선생님께서 사용자가 메뉴를 잘못칠 수 있는 경우에 처리방법을 else문으로 알려주셨는데요! 만약 사용자가 아래처럼 숫자가 아닌 문자를 입력하면 어떻게 처리를 해야하는지 궁금하였습니다. 입력값을 문자로 하였을때 나오는 inputmismatchexception 에러검색을 하다가 try catch문을 알게되었습니다 제가 원하는 방향은 사용자가 정수가 아닌 문자를 입력했을시에 에러메시지를 출력하고 다시 메뉴 선택으로 돌아가는 방향으로 하고싶어서 전체코드를 보시면 try문에 실행하고자 하는 코드를 넣고, 메뉴선택시 문자를 입력하면 에러가 나도록 catch문에 에러메시지를 출력하고 continue문을 넣었습니다. package array.ex; import java.util.InputMismatchException; import java.util.Scanner; public class ProductAdminEx { public static void main(String[] args) { // *제약 조건 : 상품은 최대 10개까지 등록할 수 있다.* int maxCount = 10; // 상품구조 최대치를 유연하게 정하기위해 ArrayList 자료구조 사용 int productCount = 0; String[] productNames = new String[maxCount]; int[] productPrices = new int[maxCount]; Scanner sc = new Scanner (System.in); while(true) { System.out.println("1. 상품등록 | 2. 상품목록 | 3. 종료"); System.out.print("메뉴를 선택하세요 : "); try { int option = sc.nextInt(); sc.nextLine(); if(option == 1) { if(productCount >= 10) { System.out.println("더 이상 상품을 등록할 수 없습니다."); continue; } System.out.print("상품 이름을 입력하세요:"); productNames[productCount] = sc.nextLine(); System.out.print("상품 가격을 입력하세요:"); productPrices[productCount] = sc.nextInt(); sc.nextLine(); productCount++; } else if(option == 2) { System.out.println("지금까지 등록한 상품의 이름과 가격입니다."); for(int i = 0; i < productCount; i++) { System.out.println(productNames[i] + ":" + productPrices[i]); } } else if(option == 3) { System.out.println("프로그램을 종료합니다."); break; } // 잘못된 메뉴 입력시 문자입력시에 inputmismatchexception 예외처리를 사용할 수 있다. else { System.out.println("잘못된 메뉴 입력입니다."); } } catch (InputMismatchException e) { System.out.println("[ERROR] 숫자를 입력해주세요."); break; // continue문을 쓰면 에러메시지가 계속 반복된다. } } } } 문제는 다시 메뉴선택 부분으로 가지않고 끝없이 에러문이 반복됩니다. 그래서 일단 break문을 써서 프로그램이 종료되도록 하였습니다.. 여기서 에러메시지가 한번 출력되고 다시 메뉴선택 부분으로 가도록 하려면 어떻게 해야 할까요..?!

  • java
  • 객체지향
owl s 댓글 1 좋아요 0 조회수 204

다익스트라 코드 중에 궁금한 것이 있습니다.

해결됨

코딩테스트 [ ALL IN ONE ]

def dijkstra(graph, start, final): costs = {} # 방문 여부 pq = [] # 우선순위 큐 heapq.heappush(pq, (0, start)) # 시작 노드 추가 while pq: cur_cost, cur_v = heapq.heappop(pq) if cur_v == final: return cur_cost if cur_v not in costs: # 방문여부 확인 costs[cur_v] = cur_cost # 인접 노드 탐색하면서 비용 업데이트 for next_v, cost in graph[cur_v]: # 현재노드와 연결된 인접노드와 그 비용 next_cost = cur_cost + cost heapq.heappush(pq, (next_cost, next_v)) return costs[final] 정말 사소한건데요, while pq: 내용 중 for cost, next_v in graph[cur_v]: 를 for next_v, cost in graph[cur_v]: 로 고쳐도 되는지 묻고 싶습니다. 우선순위 큐는 비용을 기준으로 하니까 (E,V)가 맞는거 같은데요. 그래프가 G=(V,E) 수식을 따르다 보니까 그래프로 초기화할 때도 ("A", 3)과 같이 노드와 비용 순서대로 하잖아요? 그래서 이러한 논리를 for문에도 적용하면 훨씬 이해하기 쉽지 않을까 개인적으로 생각이 듭니다. (아! 이건 제 개인적인 생각이니 코드를 고쳐달라고 요구를 하는 건 절대 아닙니다 😅 )

  • python
  • 코딩-테스트
  • 알고리즘
Ambition 댓글 1 좋아요 1 조회수 168

지라에서 조직 삭제 하는 방법

미해결

Atlassian Jira Cloud 입문자를 위한 필수 강의 구성부터 관리까지

안녕하세요. 지라를 다운 받고 따라 하다가 실수로 조직을 하나 더 만들어서 문의 드립니다. 삭제하는 방법을 잘 모르겠습니다. https://community.atlassian.com/t5/Jira-questions/%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%B0%8F-%EC%A1%B0%EC%A7%81-%EC%82%AD%EC%A0%9C-%EB%AC%B8%EC%9D%98/qaq-p/2440491 여기 나와 있는 방법이 제가 실수로 만든 부분을 제거하는 방법인 것 같아서 따라해 보았습니다만 결과적으로 아직 제거하지 못해서 문의 드립니다. 위에 나온 방법대로 청구탭에서 관리를 선택후 프리미엄 구독을 취소 해두었습니다. 조직을 삭제하기 위해서 모든 제품과 도메인을 제거해야 한다는 부분에서 문제가 생긴 것 같습니다. 어떻게 해결해야 하는지 알려주실 수 있을까요.

  • jira
  • issue-tracking
  • Jira Cloud
sieg 댓글 1 좋아요 0 조회수 1561

실습 및 공부 방법 문의

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요 🙂 전자공학과임에도 디지털회로와 코드에 많은 어려움을 겪고있는 학생이기에 강의를 친절히 잘 설명해주셔서 매우 감사합니다. 실습파일까지 제공해주셔서 매우 감사히 잘 이용하고 있습니다. 여기서 여쭤보고싶은것은 강의자료는 실습하다가 막히는 부분이 있으면 그때 비교해보라고 주신거라고 하셨는데, 실제 강의 영상에서도 코드 설명 이후에 다 실습파일로 제공해주신것들을 이용하는것으로 알고있습니다. 그렇게 실습은 그냥 하라는대로 다 따라하며 프로그램 다루는 법은 많이 익숙해졌지만 각 단계를 ip를 만들고 프로젝트를 새로 하나 만들어서 넣는거 HWplatform 생성 블록디자인생성 비트스트림생성 wrapper생성을 각각 왜 하는지 모르겠습니다. 그런 과정에대한 이해도가 높아지려면 어떻게 해야할까요? 또 각 코드를 제가 아무것도 없는 상태에서 만들 수 있기는 커녕 코드만보고 Block diagram도 저 혼자서 눈에 그려지지 않는 상황입니다. 코드를 제가 직접 다 따라 써봐야하는것인건가요? 만약 그래야한다면 손으로 노트에 코딩받아쓰기 혹은 직접 컴퓨터에 바로 써보는 활동중 어떤것을 더 추천하시나요?

  • fpga
  • 임베디드
t24395 댓글 1 좋아요 1 조회수 237

스프라이트 시트

해결됨

Godot Engine 마리오라이크 2D PC 게임 만들기

강의 재밌게 잘 듣고 있습니다. 혹시 케릭터 스프라이트 시트 파일 제작은 무슨 도구로 제작하셨나요? 강사님 제공해주신 자료는 어떻게 만드신건지 궁금하네요 +스프라이트 시트 저작권 문제 없이 제공하는 곳도 있을까요?

  • 2d
  • godot-engine
  • gdscript
  • adventure
kirk 댓글 1 좋아요 1 조회수 227

카카오톡 오픈 채팅방 운영

해결됨

Git & GitHub, 원리부터 차근차근 - 근본깃

아래 링크의 오픈 채팅방을 운영하고있어요. Git & GitHub 관련 질문이라면, 무엇이든 환영입니다! [카카오톡 오픈 채팅방 링크] https://open.kakao.com/o/gyCY74Mg

  • git
  • github
geek 댓글 1 좋아요 0 조회수 230

우분투 24.04에서 Install Sysmon설치시 에러 발생

해결됨

한 번에 끝내는 SIEM 구축: Wazuh와 ELK를 활용한 위협 헌팅 첫걸음 (기초)

✨ 질의 안내 선수 지식이 부족하더라도 걱정하지 마세요. 강의를 통해 필요한 내용을 차근차근 배워나갈 수 있습니다. 각 항목별 추천 자료를 통해 기본 지식을 탄탄히 하면 강의 내용을 더 깊이 있게 이해하고 활용할 수 있습니다. 디스코드 또는 인프런으로 질문주시면 바로 답변드리겠습니다 디스코드 채널 : https://discord.gg/uCQEnRaSMG 안녕하세요 유익한 강의 잘 듣고 있습니다. 04_Agent 방식 Wazuh Sysmon 연계 구축하기(Linux) 강의 수강중 3:58초 부분의 우분투 Sysmon설치시 에러가 발생합니다. 에러는 다음과 같았습니다 unable to locate package sysmon for linux dpkg: error: cannot access archive '-': No such file or directory packages-microsoft-prod.deb: Permission denied Microsoft 리포지토리 추가 자체가 안되는것으로 보였고 구글링을 해도 명확한 방법을 찾지 못했는데 wget -q ~/packages-microsoft-prod.deb h ttps://packages.microsoft.com/config/ubuntu/23.04/packages-microsoft-prod.deb 리눅스 버전을 23.04로 넣어주니 설치가 가능했습니다. 혹시나 저와 같은 어려움을 겪고 계실 분들이 있을까 싶어 글 올려봅니다.

  • linux
  • microsoft-windows
  • security
  • wazuh
  • ossec
정영훈 댓글 1 좋아요 1 조회수 382

로깅은 어떻게 하는게 효율적일까요?

미해결

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

안녕하세요. 몇가지 질문이 있습니다. 저는 NestJS에서 지원하는 @nest/common 패키지의 Logger 를 사용해왔는데요. MTTD 를 최소화 하기 위해서 다른 사람들은 로깅을 어떻게 하는지 찾아보다 winston 과 pino 라이브러리를 발견했습니다. 이런 라이브러리들과 NestJS 에 내장되어 있는 Logger 와는 어떤 차이가 있나요? 커스텀 하는 기능 외에 성능적으로 우위가 있는건가요? 현업에서는 보통 로그를 어떻게 남기나요? 제로초님은 현업에서 로그 모니터링 도구로 Data Dog 과 Sentry 를 사용하신다고 하셨는데 저는 와탭랩스를 사용해보려고 합니다. 이 때, 로그는 보통 어떤 형식으로 남기시나요? 제가 계획하고 있는 구조는 미들웨어에서 아래처럼 남겨주고, 에러가 발생하면 ExceptionFilter 에서 한번 더 위의 형식에 에러 메시지를 포함해서 로그를 남겨주려고 합니다. LOG [HTTP] [DateTime] [method] [statusCode] [responseTime] - [url] - [ip] - [userAgent] 제로초님의 로그 구성이 궁금합니다. 감사합니다.

  • node.js
  • express
  • nestjs
  • typeorm
뱅준 댓글 1 좋아요 0 조회수 267

text가 border 밖에 형성되는 이유와 해결방법을 알고싶습니다

미해결

Tailwind CSS로 만드는 멋진 웹 UI 스타일링

안녕하세요 강의 재미있게 잘 듣고 있습니다 제가 궁금한 것은 예제 삼아 다른 코드를 테스트해보고 있는데 문제는 붙임 코드를 실행하면 4열로 형성된 카드 안에 더미 텍스트와 버튼들이 있어야 하는데 border 밖에 형성되어서 아무리 옵션을 바꿔도 변화가 없습니다 강사님의 명쾌한 해답을 듣고 싶어요 <div className="grid grid-cols-12 gap-6"> <div className="col-span-12 lg:col-span-6 xxxl:!col-span-3"> <div className="box border-t-[5px] border-t-danger dark:border-t-danger"> <div className="box-header"> <h5 className="font-semibold text-xl text-danger text-center">New Project <span className="font-normal text-xs text-gray-500 dark:text-white/70">(03)</span></h5> </div> <div className="box-body overflow-auto"> <div className="gap-4 grid" id="task-left"> <div ref={leftContainerRef} onMouseEnter={OnDivChange} className='firstdrag' id="new-tasks-draggable" data-view-btn="new-tasks"> <div className="box task-box"> <div className="box-body space-y-4"> <div className="flex"> <div className="flex space-x-3 rtl:space-x-reverse"> <img src={"../../assets/img/logos/4.png"} className="p-1 h-full avatar avatar-sm bg-gray-100 dark:bg-black/20 rounded-sm" alt="logo" /> <div className="my-auto hidden sm:block"> <h5 className="text-base font-semibold w-44 truncate">Zanex Laravel Project</h5> <p className="text-gray-500 dark:text-white/70 text-xs my-auto flex space-x-1 rtl:space-x-reverse"><i className="ri-calendar-line"></i><span>05-12-2022</span></p> </div> </div> <div className="ltr:ms-auto rtl:mr-auto hs-dropdown ti-dropdown [--placement:left-top]"> <Link aria-label="anchor" href="#!" scroll={false} className="hs-dropdown-toggle ti-dropdown-toggle hover:bg-transparent dark:hover:bg-transparent inline-flex !p-0 flex-shrink-0 justify-center items-center gap-2 w-full rounded-sm border-0 font-medium text-gray-500 shadow-none align-middle focus:outline-none focus:ring-0 focus:ring-offset-0 transition-all dark:text-white/70"> <i className="ri ri-more-2-line text-lg leading-none"></i> </Link> <div className="hs-dropdown-menu w-40 min-w-[10rem] mt-0 transition-none ti-dropdown-menu"> <Link className="ti-dropdown-item" href="#!" scroll={false} ><i className="ri-eye-line"></i>View</Link> <Link className="ti-dropdown-item" href="#!" scroll={false} ><i className="ri-edit-2-line"></i>Edit</Link> <Link className="task-remove ti-dropdown-item" href="#!" scroll={false} ><i className="ri-delete-bin-6-line"></i>Delete</Link> </div> </div> </div> <div> <p className="mb-2">Justo kasd duo sanctus et elitr et, sed diam clita lorem sed eirmod, clita labore tempor et sanctus et ipsum stet, eos.</p>

  • HTML/CSS
  • 반응형-웹
  • tailwind-css
fbhhk 댓글 1 좋아요 1 조회수 203

속도를 위해 dynamic_cast를 static_cast로 변경하는 경우가 있나요?

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

dynamic_cast는 다운 캐스팅할 때 실행 시간에 타입을 검사하기 때문에 상대적으로 안전하지만 동작 속도가 static_cast보다 상대적으로 느리다고 알고 있습니다. 반대로 static_cast는 다운 캐스팅할 때 사용할 수 있지만, 실행 시간에 타입을 검사하지 않기 때문에 위험하고요. 이에 궁금한 점이 생겨서 다음 질문을 드립니다. 실제 현업에서는 dynamic_cast의 안전성을 포기하고 속도를 향상하기 위해 static_cast로 교체하는 경우가 있나요? 그러한 경우가 있다면, 프로그래머가 실수해서 잘못 캐스팅 경우를 방지하기 위해 어떻게 대응하나요? (수업에서 명시된 열거체으로만 검사하면, 열거체가 수정되거나, 프로그래머가 잘못된 열거체를 지정하는 경우, 문제가 생길 소지가 있어보입니다.)

  • c++
  • 게임수학
  • windows-api
Continue 댓글 1 좋아요 0 조회수 197

필터와 인터셉터에서 스레드 로컬 clear

미해결

스프링 핵심 원리 - 고급편

안녕하세요 강의 끝부분에서 스프링 필터나 인터셉터에서 스레드 로컬 값들 클리어해주는게 베스트인 뉘앙스로 얘기해주셨는데요. (혹은 원칙대로 최소 remove() 호출해주거나요) remove() 호출을 생각할 때, 보관된 값 제거는 스레드 로컬이 적용된 특정 인스턴스 필드값을 알아야 가능해보입니다. e.g. traceIdHolder.remove() 필터 및 인터셉터에서는 이 인스턴스 변수를 알 수 없을 것 같은데, 어떻게 스레드 로컬에 보관된 값을 제거할 수 있을까요? 머릿속에 잘 그려지지 않아서 질문 드립니다.

  • spring
  • 디자인-패턴
Luvel 댓글 1 좋아요 1 조회수 172

보스턴 집값 강의에서 csv 파일이 없습니다.

미해결

파이썬으로 시작하는 머신러닝+딥러닝(sklearn을 이용한 머신러닝부터 TensorFlow, Keras를 이용한 딥러닝 개발까지)

안녕하세요 훌룡한 강의 잘 수강하고 있습니다. 보스턴 집값 예측 강의에서 csv 파일이 없습니다. 말씀 주신 링크에서도 찾을 수가 없습니다ㅠㅠ jm90.hong@gmail.com 제 메일이긴 하는데 csv 파일 보내 주셔도 됩니다 감사합니다^^

  • python
  • 머신러닝
  • 딥러닝
  • keras
  • sklearn
홍정민 댓글 3 좋아요 0 조회수 296

filter, rename axis 기본값

해결됨

5분빨리 퇴근하자! 파이썬 데이터 분석, 시각화, 웹 대시보드 제작하기

filter의 경우에는 axis 기본값이 1이 설명대로 맞는거 같은데, rename 메서드 설명에도 axis 기본값이 1로 작성되어 있습니다. 하지만 실제로 수행해보니 rename의 경우에는 axis의 기본값이 0인것 같은데 제가 잘못이해한걸까요?

  • python
  • pandas
  • seaborn
  • plotly
  • matplotlib
  • data-visualization
  • streamlit
이동훈 댓글 1 좋아요 0 조회수 171

스크립트 오류

미해결

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

#!/bin/bash git clone -b 5_1_monolithic_s3 https://github.com/burger-2023/aws-operation-prac.git cd /aws-operation-prac ./gradlew build sudo java -jar build/libs/aws-msa-monolithic-prac-0.1.jar \ --spring.datasource.url=jdbc:postgresql://비밀:5432/geonmin_database \ --spring.datasource.username=postgres \ --spring.datasource.password=postgress \ --cloud.aws.s3.bucket=geonmin-bucket-test \ --cloud.aws.region.static=us-east-1 빌드까지는 잘되는거 같은데 마지막줄이 오류납니다 ㅜㅠ 원인을 모르겠어요 그리고 강사님이 밑에 써준 스크립트 예시에 버킷 들어가기전에 \ 하나가 빠진거 같아요

  • aws
  • docker
  • msa
  • container
  • ecs
  • fargate
건민 댓글 1 좋아요 0 조회수 195

UI 연동방식에 대해서 질문드립니다.

미해결

[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작

하나의 예시를 들자면 HP를 UI에 표시할때 저는 Playercontroller에서 프로퍼티로 set를 해주었는데 강사님께서 올려주신 프로젝트를 보니 action을 통해서 해당 UI 스크립트에서 처리하신 것 같더라구요.. 제가 한 방식으로 구현을 해도 되는지 궁금해서 질문을 드립니다... 강사님께서 하신 방식은 어디서 구독 신청을 해줬는지 찾기가 너무 어렵더라구요 ㅠㅠ

  • C#
  • unity
  • object-pooling
황보민 댓글 1 좋아요 0 조회수 203

커널 모드 전환시 질문이 있습니다!

미해결

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

안녕하세요 선생님, 강의 잘 듣고 있습니다! 강의 중 궁금한 점이 있어서 질문드립니다.. ㅎㅎ 커널모드로 전환 시 시스템 콜과 응용 프로그램 사이에 라이브러리라고 표기가 되어있던데, 자바일 경우 JNI를 의미하는 것이 맞으실까요??.. 병렬 스트림 사용에 대한 예시를 구글링 해보면, 따로 스레드 풀을 생성해서 만들지 않을 경우, 하나의 common 스레드 풀을 공유하여 사용해 스레드가 부족하게 될 경우를 대비해, 따로 별도의 포크조인 스레드 풀을 생성하라는 가이드가 많은데요, 무분별하게 스레드 풀을 많이 생성했을 경우에 생기는 문제점들이 어떤 것이 있을지 알 수 있을까요?.. i/o가 잦은 프로세스에서 스레드의 개수가 많아 스레드들간의 컨텍스트 스위칭이 많은 경우에는 메모리 점유 외에 프로세스 성능에 크게 영향을 주지 않을 것이라고 생각 중이지만 다른 사이드 이펙트가 있을까 하여 질문 드립니다! 감사합니다 :)

  • java
  • 동시성
  • multithread
  • synchronisation
hylim 댓글 1 좋아요 0 조회수 169

섹션 5-1 효율적 라우팅 질문 있습니다.

해결됨

20년 경력자의 알기 쉬운 컴퓨터네트워크

안녕하세요 아래 그림은 강의 내용 따라하면서 수행한 내용입니다. R0, R1, R2 에 RIP v2 적용 후 R0 에서는 static으로 설정 했습니다. pc0에서 tracert 수행시 콘솔과 같은 결과가 나옵니다. 강의에서 보여주신것과 동일 합니다. 질문: pc0 -> server에서 보시는 바와 같이 router0->router1->router2->sever로 가는 것은 확인 했는데 왜 3번 보면 205.205.205.1 이 찍히나요? 여기는 205.205.205.0 네트워크니까 데이터 흐름과는 상관 없는 영역아닌지요? 원래 저의 예상은 3번 부분에 204.204.204.2 가 찍혀야 하지 않나 하고 생각하고 있었습니다. 강의 잘 보고 있습니다. 감사합니다!

  • 네트워크
  • 프로토콜
내동댕댕이 댓글 2 좋아요 0 조회수 219

에러만 나와요

미해결

처음 만난 리액트(React)

깃 복붙도 해봤는데 계속 저래요... ㅜㅜ

  • HTML/CSS
  • javascript
  • react
진영 댓글 2 좋아요 1 조회수 215

인기 태그

인프런 TOP Writers

주간 인기글