inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

OperationEx3에서 꼭 boolean을 써야 하나요?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 김영한님은 이렇게 푸셨는데 저는 이렇게 풀었습니다. 이게 문제가 있는 건지 알고 싶습니다. package operator.ex; public class OperationEx3 { static void main(String[] args) { int score = 88; System.out.println(80 <= score && score <= 100); } }

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

synchronized 대신 join 을 사용하여 순서를 보장할 경우 해법이 아닌가요?

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] synchronized 이전 강의에서 join 을 활용하여 순서를 쓰레드의 순서를 보장하여 실행하는 방법에 대해 배웠습니다. 만약 동시에 같은 값에 대해 접근하는 것이 문제 라고 가정 할 경우 join 을 활용하여 특정 쓰레의 종료 이전 까지 다음 쓰레드 를 시작하는 것을 막는 다면 해결할수 있는 문제가 아닌가 생각합니다. 예를들어 다음과 같이 t1.join() 을 사용하면 t1 의 쓰레드가 종료 이전 까지는 t2 는 대기 상태가 될 것이고 t1 에서 최종 결과가 나오기 전까지는 t2 는 실행하지 못할 것 입니다. public class BankMain { public static void main(String[] args) throws InterruptedException { //BankAccount account = new BankAccountV1(1000); BankAccount account = new BankAccountV1(1000); Thread t1 = new Thread(new WithdrawTask(account, 800), "t1"); Thread t2 = new Thread(new WithdrawTask(account, 800), "t2"); t1.start(); t1.join(); sleep(500); log("t1 state :"+t1.getState()); log("t2 state :"+t2.getState()); t2.start(); //t2.join(); log("최종 잔액 : "+account.getBalance()); } }

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
정동희 댓글 2 좋아요 0 조회수 159

메모리 가시성 문제 질문

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 메모리 가시성 문제 가 발생하는 이유는 쓰레드가 공유 된 runFlag 값에 대해 반영이 않되어서 발생하는 문제라고 설명을 해주셨습니다. 예를들어 main 쓰레드에서는 false 를 true 로 변경하였으나 work 쓰레드에서는 해당 값이 변경되었는지 모르기 때문에 계속 동작하는 상태 입니다. 여기서 이해가 않가는 부분이 모든 프로그램은 보조기억 장치에서 실행을 하고 실행에 필요한 변수가 값 들은 모두 ram 과 같은 주 기억 장치에 저장되고 사용되는 걸로 알고 있습니다. 그렇다면 이 과정에서 쓰레드는 캐시메모리가 아닌 주기억 장치에서 값을 읽어서 사용해야 합니다. 지금 과정으로 설명된 것을 이해 하면 주기억 장치 또한 단순히 값을 저장하는 것 뿐이고 실제로는 캐시 메모리에서 한번더 데이터를 저장하고 cpu 는 캐시메모리에 접근하여 데이터를 연산한다고 이해 했습니다. 맞을까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
정동희 댓글 1 좋아요 0 조회수 119

섹션 4 연산자 실습 영상의 앞부분이 잘린 것 같습니다.

해결됨

누구보다 빠르게 배우는 코틀린 (1시간)

안녕하세요. 먼저, 코틀린 강의를 올려주시고 무료로 학습할 수 있게 해주셔서 감사합니다. 다름이 아니라, 섹션 4의 연산자 실습 영상의 앞 부분이 맥락상 잘린 것 같습니다. 확인 부탁드리겠습니다. 🙇🏻‍♂️

  • kotlin
  • 객체지향
  • intellij-idea
tinybuild.lab 댓글 2 좋아요 0 조회수 91

5-4 Sealed Interface는 주로 모든 케이스 검증이 필요할 때 사용하나요?

해결됨

오브젝트 - 설계 원칙편

안녕하세요 좋은 강의 너무 잘 듣고 있습니다. 강의 내용중 parseCommand 메서드를 분리하는 과정에서 sealed interface 를 사용하셨는데 sealed interface 를 쓴 목적이 컴파일타임에 모든 가능한 명령어 케이스를 처리했는지 검증하기 위함인가요? sealed interface 는 주로 모든 케이스를 검증하고 싶을 때 사용한다고 판단하면 될까요?

  • 객체지향
  • 소프트웨어-테스트
  • 소프트웨어-설계
바나나 댓글 1 좋아요 1 조회수 545

인앱결제 버전 변경에 따른 질문

해결됨

유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

현재 인앱 결제 시스템 관련 수업 내용을 듣고 있는데, 25년 8월부터 IAP v4에서 v5로 바뀌면서 강의에서 사용한 방식이 현재는 동작하지 않게 바뀌었더라구요. 혹시 v5으로 작성하는 방법을 공유해주실 수 있나요? 강의 코드랑 유니티 문서를 번갈아가면서 기능을 만들고 있는데, StoreController로 구매 처리 단계부터 완전히 갈피를 못잡겠습니다.

  • C#
  • unity
  • 객체지향
kabu 댓글 3 좋아요 0 조회수 212

퀴즈다시풀기

미해결

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 퀴즈들을 다시 풀어보고 싶은데 한번 풀면 정답이 공개돼 불편함이 있습니다. 방법이 따로 없나요?

  • spring
  • 객체지향
아아아 댓글 1 좋아요 0 조회수 107

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 쇼핑카트 문제 요구사항이 명확하지 않아서 혼돈을 준다고 생각합니다. -상품을 최대 10개만 담을 수 있다. 라는 것을 저는 상품의 '개수'(quantity 총 합) 를 생각했으나, 문제 풀이하시는 것을 보니 상품의 '종류'가 총 10개 더군요. 둘의 풀이는 완전히 달라지기에, 더 명확히 해야한다고 봅니다.

  • java
  • 객체지향
Jihoon Choi 댓글 1 좋아요 0 조회수 131

섹션 5 부터 사운드가 안 들려요.

해결됨

누구보다 빠르게 배우는 코틀린 (1시간)

안녕하세요. 저만 그러진 않을 것 같은데 이상하네요. 아래 영상을 시청하는데 사운드가 들리지 않습니다. 섹션 5. 흐름을 제어하는 조건문 9. 조건문 핵심 개념 혹시나 해서 이후 영상들도 모두 시청해봤는데 모두 사운드가 들리지 않네요.

  • kotlin
  • 객체지향
  • intellij-idea
iamready 댓글 1 좋아요 0 조회수 92

오타 제보도 되나요?

미해결

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

강의 자료 42페이지에 "날짜와 시간" 포매팅으로 되어있는데 날짜만 포매팅이 아닌가 합니다

  • java
  • 객체지향
권선 댓글 2 좋아요 0 조회수 142

네임스페이스 스코프 내에서 정의된 변수, 함수들이 위치하는 곳 질문

해결됨

C개발자를 위한 최소한의 C++

안녕하세요! 질 좋은 강의에 감사인사부터 드립니다! 해당 강의에서 네임스페이스 내부에 정의되는 변수, 함수들이 비록 특정(강의 속에서는 Test 라는) 네임스페이스에 소속되어 있기는 하지만 전역 변수 및 전역 함수로 간주된다고 하셨는데요! 그러면 디폴트로 제공되는 네임스페이스(ex. std) 또는 사용자가 새롭게 정의하는 네임스페이스 영역 내에서 정의되는 변수, 함수들은 스택과 힙 메모리 중 힙 메모리 영역에 저장되는 걸까요!?

  • c++
  • microsoft-windows
  • 객체지향
  • 디자인-패턴
edu 댓글 1 좋아요 0 조회수 89

강의내용 질문있습니다.

해결됨

3일 만에 끝내는 백엔드 면접 핵심 압축 공략집 [네카라쿠배당토]

13:27초에 5단계로 나누어서 문제 - 선택지 - 결정 - 구현 - 결과를 이력서에 적으라고하셨는데, 저의 이력서 같은 경우는 아래와 같이 적어두었습니다. 프로젝트 개요 - 담당업무 - 성과 이런식으로 적는건 별로일까요??

  • spring
  • 객체지향
  • dbms/rdbms
  • cache
  • index
댓글 2 좋아요 1 조회수 132

Future4-이유 질문

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. Future를 거치는 SumTaskMainV2에서 future2.get()이 future1.get() 실행 후 task1의 call() 완료를 기다리지 않고 바로 실행되는 것을 콘솔 로그로 확인 가능했는데요. 그렇다면 Future를 거치지 않고 결과를 반환한다 가정할 때, task2가 task1 완료를 기다린 후 수행된다고 나와있는데, "Future는 한 스레드 작업의 future1.get() 실행 후, 다른 스레드의 작업 future2.get()은 future1의 call() 완료까지 기다리지 않는 기능이 있다" 이렇게 이해해도 될까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
sjahn 댓글 1 좋아요 0 조회수 106

한글을 너무 많이 쓰시는것 같아요ㅠ

해결됨

2. C++ 프로그래밍 기초 스파르타 클래스

한글이 너무 과도하게 많이 사용되는것 같아요 강사님...ㅠ 처음에는 한글로 묘사해서 이해에 도움이 되는 부분도 있지만, 어떤 부분은 너무 헷갈리는 부분도 발생하는것 같아요..

  • c++
  • 함수형-프로그래밍
  • 객체지향
  • 알고리즘
  • visual-studio
댓글 2 좋아요 0 조회수 130

네트워크 프로그램 자원종료 Socket 정리 시 closed 사용 문의

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 네트워크 프로그램 자원종료 관련 이해가 안되는 부분이 있어서 문의드립니다. [SessionManagerV6] public synchronized void closeAll() { for (SessionV6 session : sessions) { session.close(); } sessions.clear(); } [SessionV6] // 세션 종료시, 서버 종료시 동시에 호출될 수 있다. public synchronized void close() { System.out.println("closed : " + closed); System.out.println(Thread.currentThread().getName()); if (closed) { return; } closeAll(socket, input, output); // shutdown closed = true; log("연결 종료: " + socket); } 서버에서 ShutdownHook이 발생했을 때 2개의 Client에 Socket이 연결되어 있었다고하면 첫번째 Clinet의 Socket이 정리되고 난 후 2번째 Clinet의 Socket이 정리되는 시점에서는 closed 변수가 true이기 때문에 정리가 안되고 return되는거 아닌가요? 제가 잘 못 이해하고 있는걸까요? 추가적으로 로그를 찍어서 상태값을 확인해 봤는데 이해가 잘 되지 않아서 문의드립니다. 아래는 로그 정보입니다. 17:34:32.806 [ shutdown] shutdownHook 실행 closed : false shutdown 17:34:32.806 [ shutdown] 연결 종료: Socket[addr=/127.0.0.1,port=58474,localport=12345] closed : false shutdown 17:34:32.806 [ shutdown] 연결 종료: Socket[addr=/127.0.0.1,port=58480,localport=12345] 17:34:32.807 [ Thread-2] java.net.SocketException: Socket closed closed : true Thread-2 17:34:32.807 [ Thread-3] java.net.SocketException: Socket closed closed : true Thread-3 17:34:32.807 [ main] 서버 소켓 종료: java.net.SocketException: Socket closed 종료 코드 130 (interrupted by signal 2:SIGINT)(으)로 완료된 프로세스

  • java
  • 네트워크
  • 객체지향
yeon 댓글 2 좋아요 0 조회수 168

Gradle로 바꿔도 오류가 똑같이 발생하네요 ㅠㅠ

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 관련 내용이 많아서 질문 검색으로 3~4가지 방식으로 시도해봤는데 gradle만 바꾸는 방식에서 실패했습니다. @Primary 사용, CoreApplicationTests에 따로 classes = AutoConfig.class 옵션넣기 요땐 성공하더라고요 유료 intellij 사용하고 있고 자바 21 사용하고 있습니다. 17로 바꿔봐도 별 상관이 없더라고요 java.lang.IllegalStateException: Failed to load ApplicationContext for [MergedContextConfiguration@65b97f47 testClass = hello.core.CoreApplicationTests, locations = [], classes = [hello.core.CoreApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OnFailureConditionReportContextCustomizerFactory Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\Users\hyukj\Downloads\core\core\build\classes\java\main\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type ' hello.core.discount .DiscountPolicy' available: expected single matching bean but found 2: rateDiscountPolicy,DiscountPolicy Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type ' hello.core.discount .DiscountPolicy' available: expected single matching bean but found 2: rateDiscountPolicy,DiscountPolicy

  • spring
  • 객체지향
박혁진 댓글 2 좋아요 0 조회수 158

소스코드 다운받을 수 있나요?

해결됨

초심자를 위한 친절한 Java 한바퀴

완강했습니다! 좋은 강의 감사합니다. 소스코드 혹시 깃헙 등에서 제공이 가능한지 궁금합니다.

  • java
  • 객체지향
  • backend
YoungJ 댓글 2 좋아요 1 조회수 141

FileInputStream의 transferTo 사용 시 Buffer 문의

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] FileInputStream의 transferTo를 사용할 경우 buffer는 어떻게 설정되는 건가요? 웹 검색을 해보니 개발자가 직접 버퍼를 설정할 필요가 없다고 하는데 기본적인 버퍼의 크기가 정해져 있는건지? 만약 정해져 있다면 어떤 기준을 따라가는지 궁금합니다. 파일처리 시 자바의 메모리를 사용해야하고 이 부분을 잘 처리하지 못할 경우 OOM으로 이어지는 경우가 많아서 정확히 이해하고 싶어서 문의드립니다.

  • java
  • 네트워크
  • 객체지향
yeon 댓글 1 좋아요 0 조회수 112

"중복 등록과 충돌" 강의에서 강사님과 다른 에러가 발생합니다.

미해결

스프링 핵심 원리 - 기본편

spring.main.allow-bean-definition-overriding=true 07:05~ 부분에서 위 코드를 작성하면 스프링 부트 애플리케이션을 에러가 발생하지 않는 모습을 보여주셨는데요. 20:53:29.311 [main] DEBUG o.s.b.d.LoggingFailureAnalysisReporter --Application failed to start due to an exception org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'drj9812.spring.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:192) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1739) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1651) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:912) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1382) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1221) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196) at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1218) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1184) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1121) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:983) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:620) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:765) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:454) at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1374) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) at drj9812.spring.Application.main(Application.java:10) 20:53:29.311 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter -- *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in drj9812.spring.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined by method 'memberRepository' in class path resource [drj9812/spring/AutoAppConfig.class] - memberRepository: defined by method 'memberRepository' in class path resource [drj9812/spring/AppConfig.class] This may be due to missing parameter name information Action: Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed Ensure that your compiler is configured to use the '-parameters' flag. You may need to update both your build tool settings as well as your IDE. (See https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-6.1-Release-Notes#parameter-name-retention) 저의 경우엔 위와 같은 에러가 발생합니다. 강사님과 다르게 저는 에러가 발생한 이유가 무엇인가요? 로그 내용을 보아 AutoAppConfig 과 AppConfig 이 충돌이 난 것 같은데, 이미 AutoAppConfig 에서 excludeFilters 로 AppConfig 은 스캔하지 않도록 설정했으니 에러가 발생하지 않아야 되는 거 아닌가요?

  • spring
  • 객체지향
drj9812 댓글 3 좋아요 0 조회수 128

인기 태그

인프런 TOP Writers

주간 인기글