inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

등록 폼, 수정 폼에 bootstrap.min.css가 적용되지 않는 것 같습니다.

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/ 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/ 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 등록 폼, 수정 폼에 bootstrap.min.css가 일부 적용되지 않는 것 같습니다. 정적 리소스와 뷰 템플릿 둘 다 아래 사진과 같이 일부 css가 적용되지 않아서 질문 드립니다.

  • spring
  • mvc
최재훈 댓글 2 좋아요 1 조회수 439

Package폴더를 못 찾겠습니다.

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] hello.hellospring 폴더 내부에서 controller 패캐지를 만들려고 똑같이 단축키를 입력해 검색을 했는데 package는 없고 package.json폴더만 있습니다. 어떻게 해결해야될까요 자바는 21버전 사용중이고 스프링은 3.2.4버전 사용중입니다.

  • java
  • spring
  • mvc
  • spring-boot
maxx 댓글 3 좋아요 0 조회수 363

질문 있습니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서 다른 타입이 바인딩 되면 자동으로 FieldError 생성해서 BindingResult에 넣는다고 이해했는데요 이걸 타임리프에서 어떤 부분이 출력을 해주는 건가요? 강의 뒤쪽보니까 th:field가 오류있으면 자동으로 보관된 값 출력해준다고 해서 th:field를 지우면 오류 표시가 안되나? 하고 지워봤는데 그대로 동작하더라고요 이유가 뭘까요 다른 타입을 매핑하면 화면에 오류메시지가 다른 타입이 바인딩 되었다는 메시지랑 저희가 BindingResult에 넣은 "가격은 1,000~1,000,000 까지 허용됩니다."메시지도 같이 출력되더라고요 그런데 저 메시지는 if문으로 판별해서 null이 거나 1000보다 작거나 1000000보다 크면 넣어주는데 필드가 다른 타입이면 if문이 작동하지 않을 것 같은데 왜 FieldError가 넣어지는 거죠?

  • spring
  • mvc
김민재 댓글 1 좋아요 0 조회수 230

jsonignore와 지연로딩?

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[섹션3 - 간단한 주문조회 V1 엔티티를 직접 노출] 강의에서 [6:09] 처음에 api를 호출했을때는 양방향 연관관계 때문에 무한루프가 발생하였는데요, 이때는 지연로딩에 의한 이슈가 없었는데 [11:07] JsonIgnore를 추가하여 순환 참조가 되는 상황을 제거했을때는 왜 지연로딩에 의한 이슈가 생기는 건가요?? 잘 동작하던 프록시객체가 JsonIgnore가 생겼다고 에러가 나는 상황이 잘 이해가 안되어 질문을 올립니다

  • java
  • spring
  • spring-boot
  • jpa
하춘화마타타 댓글 2 좋아요 3 조회수 559

PPT에 오타가 존재하는 것 같습니다.

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

2강 커넥션 풀과 데이터 소스 챕터에서 11 페이지의 상단에 이부분... 쓰레드 풀이 아니라 커넥션 풀 아닌가요? 쓰레드 풀은 지금 내용이 아닌거 같아요

  • spring
  • mvc
  • spring-jdbc
JH Han 댓글 1 좋아요 0 조회수 198

예외처리시 e.printstacktrace()

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 현재 웹백엔드 개발자로 재직중입니다. 최근 security prism 보안취약점 점검으로 인해 catch 부분에서 printstacktrace 를 사용하면 로그에 어디서 에러가 발생했는지 상세내역이 누적되고 이게 해커에게 노출되면 보안상 좋지않다고 해서 printstacktrace 부분을 다 제거하고 있습니다.. 근데 이렇게 다 제거하다보니 고객사에서 오류가 발생했을때 에러를 잡기가 힘들어졌습니다. 이럴땐 어떤 방법을 사용하면 에러를 찾기 쉬울까요..?

  • java
  • 객체지향
backendman 댓글 1 좋아요 0 조회수 683

Unsupported Gradle. The project uses Gradle version which is incompatible with IntelliJ IDEA 2023.3.6.

미해결

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

전에는 문제 없이 잘 실행됐는데 이런 오류가 발생합니다. 솔루션을 보니 Gradle version 3.0 이상 업그레이드 하라고 되어있는데 이미 3.0이상인데 오류가 나는지 모르겠습니다.

  • java
  • spring
  • mvc
  • spring-boot
dev_dw 댓글 1 좋아요 0 조회수 827

에러코드 필터 , 인터셉터, AOP 선택

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

강의 수강 후 제 프로젝트에 AOP 로직을 적용해 보았습니다. 에러코드를 AOP를 빼서 모듈별로 적용했는데 에러코드의 경우 필터나 인터셉터로는 안되는 것일까요? 어떤 기준 으로 공통 사용 부분 을 필터, 인터셉터, AOP로 나눠서 각각 적용해야할지 모르겠습니다.

  • spring
  • mvc
루돌프친구 댓글 1 좋아요 0 조회수 191

빌드 에러

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 빌드 오류가 있습니다. 자바 17로 설정했는데 오류가 고쳐지지 않네요ㅠ 오전 9:18:37: Executing ':ServletApplication.main()'... Starting Gradle Daemon... Gradle Daemon started in 2 s 784 ms FAILURE: Build failed with an exception. * Where: Initialization script 'C:\Users\Sam's\AppData\Local\Temp\ServletApplication_main__1.gradle' line: 6 * What went wrong: Could not compile initialization script 'C:\Users\Sam's\AppData\Local\Temp\ServletApplication_main__1.gradle'. > startup failed: initialization script 'C:\Users\Sam's\AppData\Local\Temp\ServletApplication_main__1.gradle': 6: Unexpected character: '\'' @ line 6, column 86. tudy/springmvc/servlet/servlet') ^ 1 error * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 6s 오전 9:18:47: Execution finished ':ServletApplication.main()'.

  • spring
  • mvc
sam1581 댓글 1 좋아요 0 조회수 479

basic-objects 에 관해 질문이 있습니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강사님의 HTML 코드, Java 코드 모두 복붙하여 진행하였는데, White Label 이 나옵니다. 이 부분에서 #을 빼서 바로 받는 부분에 오류가 발생하는데, 왜 그런걸까요?? 제가 오타를 쳤을 까봐 코드도 강사님 것을 복붙 하였는데도 같은 오류가 납니다.

  • spring
  • mvc
RealTone 댓글 1 좋아요 0 조회수 744

안녕하세요 RequestParam 생략 질문있습니다.

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

안녕하세요 MVC 1편을 수강 중입니다. 강의에서는 파라미터와 이름이 같으면 생략이 가능하다고 하는데, 저는 그 지점이 잘 안되는 것 같아요. 코드랑 오류 올리겠습니다 ㅠ 어디가 문제인지 찾아주시면 감사하겠습니다. package hello.springmvc.basic.request; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.io.IOException; @Controller @Slf4j public class RequestParamController { @RequestMapping("/request-param-v1") public void requestParamV1(HttpServletRequest request, HttpServletResponse response) throws IOException { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); log.info("username={}, age={}", username,age); response.getWriter().write("ok"); } @ResponseBody @RequestMapping("/request-param-v2") public String requestParamV2(@RequestParam("username") String memberName, @RequestParam("age") int memberAge ) { log.info("username={}, age={}", memberName,memberAge); return "ok"; } @ResponseBody @RequestMapping("/request-param-v3") public String requestParamV3(@RequestParam String username, @RequestParam int age ) { log.info("username={}, age={}", username,age); return "ok"; } @ResponseBody @RequestMapping("/request-param-v4") public String requestParamV4(String username, int age) { log.info("username={}, age={}", username,age); return "ok"; } @ResponseBody @RequestMapping("/request-param-required") public String requestParamRequired(@RequestParam(required = false) String username, @RequestParam(required = false) int age) { log.info("username={}, age={}", username,age); return "ok"; } @ResponseBody @RequestMapping("/request-param-default") public String requestParamDefault(@RequestParam(required = false, defaultValue = "guest") String username, @RequestParam(required = false, defaultValue = "-1") int age) { log.info("username={}, age={}", username,age); return "ok"; } } java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.

  • spring
  • mvc
cheche903 댓글 2 좋아요 1 조회수 522

abstract클래스의 인스턴스 생성

미해결

김영한의 실전 자바 - 기본편

[질문 내용] 안녕하세요! 궁금한게 있어서 질문을 남깁니다. 자식클래스로부터 인스턴스가 생성되면 부모클래스의 인스턴스도 함께 생성되는 것으로 공부하였습니다. 추상 클래스는 실체인 인스턴스가 존재하지 않는다고 하였는데, 추상 클래스를 상속 받은 자식 클래스로부터 인스턴스를 생성하면 왜 추상클래스 인스턴스도 함께 생성되는 것인가요?

  • java
  • 객체지향
더블지 댓글 3 좋아요 1 조회수 479

DB 접근 제어자

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. DB는 단 하나만 존재해야하며 이를 재할당해서도 안되고 공통의 개념으로 보려면 DB 객체를 만들 때, private static final 로 하는 것이 맞나요? 헷갈려서 질문드립니다.

  • java
  • spring
  • mvc
  • spring-boot
피곤한개발자 댓글 1 좋아요 0 조회수 232

test 코드에 static을 사용하는 이유와 new 생성자가 나오는 이유

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 너무 늦게 눈치챈 일이긴 합니다만, 테스트 코드를 짤 때, 강의 전반적으로 static 클래스를 사용하는 것을 발견했습니다. 평소 Config를 구성할 땐 static을 사용하지 않았었는데 말이죠. 몇 가지 실험을 통해 발견한 것은 @Slf4j 애너테이션이 non-static nested classes엔 지원하지 않는다 였습니다. 그렇다면 RollbackTestConfig 클래스에선 스태틱 클래스를 new 키워드로 생성하는 부분은 왜 그런 것인지 @TestConfigurationstatic class RollbackTestConfig { @Bean RollbackService rollbackService() { return new RollbackService(); } } , @Slf4j 이외에 static을 쓰는 이유가 무엇인지 궁금합니다.

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
노동준 댓글 1 좋아요 0 조회수 299

테스트가 실패해요

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

하다가 안돼서 깃허브 소스 복붙하고 돌려도 테스트가 실패해요.

  • java
  • spring
  • 동시성
dev 댓글 2 좋아요 0 조회수 454

6-1 질문

해결됨

실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍

runserver을 하기 위해서 manage.py 를 사용하는데 만약에 mysite를 이용하기 위해서는 mysite에 있는 manage.py 를 이용해야하고 dealershop을 이용하기 위해서는 거기있는걸 이용해야하는건가요?? 처음에 mysite의 manage.py 를 이용해서 하다가 inventory로 안넘어가길래 무슨 문제가 있나 했어요ㅠㅠ

  • python
  • django
  • bootstrap
  • rest-api
  • drf
최진욱 댓글 1 좋아요 1 조회수 233

테스트 코드 작성

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.강사님께서 테스트 케이스를 작성할 때 앞의 테스트가 뒤의 테스트에 영향을 미치는 것을 방지하기 위해 clearStore() 를 작성하시고 사용하셨는데 다형성에 의해서 MemberRepository memberRepository = new MemberRepositoryImpl();// 전자 이와 같이 쓰는 것으로 알고 있는데 clearStore()를 적용하기 위해서 코드를 직접 구현체 클래스의 타입으로 바꾸셔서 아래와 같이 작성을 하시고 테스트하셨습니다. MemberRepositoryImpl memberRepository = new MemberRepositoryImpl();// 후자 MemberRepository 인터페이스에 clearStore()를 써주게 되면 직접 기능 구현을 할 때 당연히 이 추상 메서드가 쓰일 일은 없지만 테스트 케이스를 작성할땐 쓰이고 안 써주면 테스트 케이스를 작성할 때 후자처럼 작성을 해야하잖아요...? 어느 것이 더 좋은 방법이라고 할 수 있을까요? 강사님 방법을 100% 신뢰하면 되는 것일까요?

  • java
  • spring
  • mvc
  • spring-boot
피곤한개발자 댓글 2 좋아요 0 조회수 407

내부 호출에 대한 재질문

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

제가 좀 헷갈려서 다시 질문을 좀 드립니다. @Transactional이 있으면 프록시 생성이 된다 그런데 내부 호출을 하면 대상 객체(this)의 메소드를 호출하니까 트랜잭션이 발생하지 않는다 그래서 문제이다. 이를 해결하기 위한 방법 중에서 제일 권장하는 것이 클래스를 분리하는 것이다 라고 이해를 했습니다. 그런데 실무에서는 @Transactional (<= 클래스 전체에 트랜잭션을 걸었다는 표현입니다 어떻게 했는지는 잘 모르겠지만...클래스에 걸린 것은 확실합니다) class ServiceImpl implements Servcie { public void mainMethod() { // 메인 메서드 deleteMethod(); // 내부 메서드 호출 insertMethod(); // 내부 메서드 호출 } public void deleteMethod() {} // 내부 메서드 public void insertMethod() {} // 내부 메서드 } 보통 위와 같이 코딩을 자주 하는데 이때는 클래스에 @Transactioanl 어노테이션이 있어 전체 메서드에 @Transactional 이 적용된다는 것은 이해를 합니다. "그런데 mainMethod()에서 deleteMethod()를 호출하면 내부 호출이라 대상 객체의 즉, ServiceImpl 클래스에서 deleteMethod()를 호출하므로 트랜잭션이 적용되지 않는다" 가 맞지 않나요? 아니면 굳이 클래스를 분리하지 않고 클래스 단위에 @Transactional 애노테이션을 적용시키면 내부 호출에 문제가 없다는 뜻인지? 글로 질문을 하기가 어렵습니다. 답변을 글로써 하시기는 더욱 더 어려우실 것 같은데 너무 궁금해서 다시 질문을 드리니 양해 바랍니다.

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
gaabi1204 댓글 1 좋아요 1 조회수 383

공통 예외처리 질문 있습니다

해결됨

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 예외를 던질 때 cause 예외를 함께 넘기니까 공통 예외처리하는 부분에서는 Exception으로 예외를 잡아서 로그를 남기나요?

  • spring
  • mvc
  • spring-jdbc
eoyeong 댓글 1 좋아요 0 조회수 313

인기 태그

인프런 TOP Writers

주간 인기글