위 사진은 Layout 버튼을 누르는 강좌 화면 캡쳐 입니다. 아래 사진은 제 PC에 있는 Flipper 화면인데, 체크하려다가 Layout 에 - 휴지통 모양 눌렀더니 사라졌습니다. 어디 설정하는 메뉴나 위치가 있나 열심히 찾아봐도 안나오는데... 해당 메뉴 다시 나타나도록 키려면 어디 설정을 건드려야하나요...?
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
강사 님께서는 객체를 인스턴스화 하실 때, 생성자를 사용하거나, 정적 팩토리 메서드를 사용하는 방식 2가지를 이용하셨는데 혹시 코틀린에서 builder 패턴을 사용하는건 어떻게 생각하시나요?? defalut 파라미터를 이용하고 naming을 통해 builder패턴 처럼 사용할 수 는 있겠지만 java에서 builder패턴을 통해 객체를 만들었던 것에 비하면 불편하다는 생각이듭니다. 조언 해주시면 감사하겠습니다.
안녕하세요, 강의를 보고 공부를하다 궁금한 점이 생겨 질문드립니다. 제가 예측한 강의 내용으로는, "경쟁 상태 예시(재고 수량)에 대하여 레디스 를 활용한다." 라고 예측 했습니다. 이에 대하여, "레디스는 싱글 스레드 기반이니깐, 락킹 없이 해당 작업이 가능할 것" 이라고 추측하였는데요, 그러나 제가 생각지 못한 레디스 lock 과 관련된 내용을 접하게 되어 신기하면서도 또 궁금한 부분이 생겨 질문드립니다. 레디스 락 전략이 사용되는 이유와 예시를 조금더 들어볼 수 있을까요? 혹은 이와 관련하여 추가적으로 공부해볼 수 있는 자료를추천해주시면 감사하겠습니다.
안녕하세요, 잘 배우고 있습니다. 위젯기능이 좀 궁금한데요. 검색해보면 IOS/Android 의 각각 네이티브를 건드려서 만드는것 같던데 React Native단에서 두 시스템의 위젯을 공통으로 만들어주는 기능은 없나요? 제가 잘 못찾아서 그런건지 어렵네요. 감사합니다!
플리퍼를 공식 사이트에서 윈도우 버전으로 다운 받고 실행하는데 다음과 같은 에러가 뜹니다 이 에러를 해결하고자 터미널을 키고 배쉬와 파워쉘에서 sudo kill $(lsof -t -i :52342) 이 코드를 쳐봤는데 이런 식으로 나옵니다... 혹시나 해서 컴퓨터를 모두 종료하고 다시 시작해서 다른거 실행 안하고 플리퍼부터 실행했는데도 똑같은 문제가 발생하네요 이 문제에 대해 아이디어를 주실 수 있나요??? ㅠㅠㅠ
갱신된 강의자료에도 나와 있듯이, fetchResult, fetchCount 등의 메소드는 deprecated 예정입니다. 또한 해당 메소드는 Page 타입을 반환하기 때문에 Page 타입을 직접적으로 조작해야 한다는 제약이 있습니다. 이걸 잘 쓰면 되는데, Page 의 시작번호 등 제약도 있어서 저는 회사에서 Page 를 따로 만들어서 사용하거든요. 그래서 search 메소드와 count 메소드는 항상 분리하고 있습니다. 2. 그런 점에서 count 만 최적화하는 로직만 베껴서 만든 최적화 메소드입니다. 실제로 count 구문을 실행하기 위한 메소드입니다. 필요에 따라서 public 으로 만들어도 될 것 같네요. // count 실행 메소드 private Long countByCond(MemberSearchCond cond) { return query .select(member.countDistinct()) .from(member) .where( usernameEq(cond.getUsername()), teamNameEq(cond.getTeamName()), ageGoe(cond.getAgeGoe()), ageLoe(cond.getAgeLoe()) ) .fetchOne(); } 최적화 로직을 베낀 메소드입니다. 스프링 데이터 JPA 는 아래 코드와 같이 page, size 값이 null 이 아니고, 적절한 범위에 있는지를 판단하여 isPaged 라는 분기를 만듭니다. 참고로 코드를 분석하면서 내린 뇌피셜이니 혹시 틀리다면 말씀해주세요. page 가 0 이 아니라 1 부터 시작하는 건 제 취향입니다. 회사에서 그렇게 쓰고 있거든요. 필요에 따라 0 부터 시작하도록 바꾸는 건 어렵지 않을 것 같습니다. public Long countByCondOptimization(List<?> content, MemberSearchCond cond, Long page, Long size) { boolean isPaged = page != null && size != null && page > 0 && size > 0; long offset = isPaged ? (page - 1) * size : 0L; long contentSize = content.size(); if (!isPaged || offset == 0) { if (!isPaged || size > contentSize) { return contentSize; } return this.countByCond(cond); } if (contentSize != 0 && size > contentSize) { return offset + contentSize; } return this.countByCond(cond); } 이렇게 하여 count 쿼리를 리스트 조회 쿼리와 분리하여 재사용성을 높이면서, 성능도 최적화할 수 있습니다. 감사합니다.
강의에서는 Query DSL 4.x 버전이어서 제네릭 없는 예제 코드인 것 같은데, 제가 올리는 버전은 5.0 버전이어서 차이가 있음을 감안해주세요. 정렬 조건을 하나만 추가하는 코드입니다. 정렬 조건을 여러 개 추가하려면 반복문을 돌면서 JPAQuery 를 동적으로 확장해나가면 됩니다. // 페이징하는 메소드에서 사용 private Expression<? extends Comparable<?>> specifyMemberProperty(String prop) { prop = prop == null ? "" : prop.toLowerCase(); if (prop.equals("username")) { return member.username; } if (prop.equals("age")) { return member.age; } return member.id; } // 페이징하는 메소드 // ... .orderBy(new OrderSpecifier<>("desc".equalsIgnoreCase(dir) ? Order.DESC : Order.ASC, specifyMemberProperty(prop))) .fetch(); -- 저는 일단 이렇게 만들어봤는데, 다른 분께서 더 나은 코드, 더 빠른 코드가 있다면 저한테도 알려주세요. 감사합니다.
@ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); 안녕하세요. 위 코드에서 부모 쪽에 다대일 매핑 한 이유를 알고 싶습니다. 아니면 DB 테이블 안에서 부모 셀프 외래 키를 만들어서 조회할 때 이 외래 키를 참조하여 자식 카테고리들까지 같이 조회하게 만들었기 때문에 테이블에서 다는 parent_id니까 jpa에도 parent에 다를 준 건 가 싶기도 해서요 필드 명에 부모 자식이 있어서 부모는 하나고 자식은 여러 개인데 부모 쪽에 다로 돼있어서 헷갈리네요..
$ npx react-native@latest init AwesomeProject 커맨드를 실행했을때, ✔ Downloading template ✔ Copying template ✔ Processing template ✖ Installing Ruby Gems error Fetching gem metadata from https://rubygems.org/........ Resolving dependencies... Fetching rexml 3.2.6 Installing rexml 3.2.6 Fetching CFPropertyList 3.0.6 Installing CFPropertyList 3.0.6 Fetching concurrent-ruby 1.2.2 Installing concurrent-ruby 1.2.2 Fetching i18n 1.14.1 Installing i18n 1.14.1 Fetching minitest 5.20.0 Installing minitest 5.20.0 Fetching tzinfo 2.0.6 Installing tzinfo 2.0.6 Fetching zeitwerk 2.6.12 Installing zeitwerk 2.6.12 Fetching activesupport 6.1.7.6 Installing activesupport 6.1.7.6 Fetching public_suffix 4.0.7 Installing public_suffix 4.0.7 Fetching addressable 2.8.5 Installing addressable 2.8.5 Fetching httpclient 2.8.3 Installing httpclient 2.8.3 Fetching json 2.6.3 Installing json 2.6.3 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/jt/study/react-native/FirstProject3/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20230930-36317-qqfojl.rb extconf.rb creating Makefile current directory: /Users/jt/study/react-native/FirstProject3/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator make "DESTDIR=" clean current directory: /Users/jt/study/react-native/FirstProject3/vendor/bundle/ruby/2.6.0/gems/json-2.6.3/ext/json/ext/generator make "DESTDIR=" compiling generator.c In file included from generator.c:1: In file included from ./../fbuffer/fbuffer.h:5: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby.h:33: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/ruby.h:24:10: fatal error: 'ruby/config.h' file not found #include "ruby/config.h" ^~~~~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/ruby.h:24:10: note: did not find header 'config.h' in framework 'ruby' (loaded from '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks') 1 error generated. make: *** [generator.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/jt/study/react-native/FirstProject3/vendor/bundle/ruby/2.6.0/gems/json-2.6.3 for inspection. Results logged to /Users/jt/study/react-native/FirstProject3/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/json-2.6.3/gem_make.out An error occurred while installing json (2.6.3), and Bundler cannot continue. Make sure that `gem install json -v '2.6.3' --source 'https://rubygems.org/'` succeeds before bundling. In Gemfile: cocoapods was resolved to 1.13.0, which depends on cocoapods-core was resolved to 1.13.0, which depends on algoliasearch was resolved to 1.27.5, which depends on json ✖ Installing Ruby Gems error Looks like your iOS environment is not properly set. Please go to https://reactnative.dev/docs/environment-setup?os=macos&platform=android and follow the React Native CLI QuickStart guide for macOS and iOS. info Run CLI with --verbose flag for more details. MacOS-Android 공식문서( https://reactnative.dev/docs/environment-setup?os=macos&platform=android) 차례대로 실행햇구요. java version "11.0.16" 2022-07-19 LTS 으로 설치되어 있구요. Cocoapods랑 ruby랑 설치해보면서 이것저것 해보려했는데 잘안되네요.
현재까지 배운 내용(섹션 0- 리액트 네비게이션까지 수강 ) 으로는 환경 설정 부분의 차이 때문에 github를 이용한 협업을 할 경우(프로젝트 폴더를 pull받을 때 특히), 상당히 충돌할 것으로 예상되는데 해결할 방법이 있을까요? 학습을 모두 마치고 여쭤보려고도 했지만, 처음부터 협업이 어려울 수도 있다는 생각이 들어서 다 듣기 전에 여쭈어 보는 점은 죄송합니다.
react-native run-android info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag. (node:18259) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency (Use node --trace-warnings ... to show where the warning was created) Jetifier found 866 file(s) to forward-jetify. Using 12 workers... info Starting JS server... info Launching emulator... info Successfully launched emulator. info Installing the app... FAILURE: Build failed with an exception. * What went wrong: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper > Exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache [in thread "Daemon worker"] * 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 255ms error Failed to install the app. Make sure you have the Android development environment set up: https://facebook.github.io/react-native/docs/getting-started.html#android-development-environment. Run CLI with --verbose flag for more details. Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081 FAILURE: Build failed with an exception. * What went wrong: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper > Exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache [in thread "Daemon worker"] * 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 255ms at checkExecSyncError (node:child_process:885:11) at execFileSync (node:child_process:921:15) at runOnAllDevices (/Users/heejinroh/Desktop/희진/react-native/my_first_app/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:94:39) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Command.handleAction (/Users/heejinroh/Desktop/희진/react-native/my_first_app/node_modules/@react-native-community/cli/build/index.js:182:9)
강의 잘 듣고 있습니다. 질문사항이 두개 있습니다. 1. 4강의 [문제점] 영상에서 쿠폰생성 10000개 요청으로 인해 mysql이 1분에 100개의 insert가 가능하다고 가정할 시 '주문생성/회원가입요청이 타임아웃 또는 10분뒤에 실행' 된다고 하셨는데요. 예제로 사용하신 Kafka 사용 예제에서는 Consumer 프로젝트도 어차피 API프로젝트와 같은 DB 를 바라보고 있으므로, 어차피 Kafka를 사용하여도 '주문생성/회원가입요청이 타임아웃 또는 10분뒤에 실행'되지 않나요? 왜 여쭤보냐면, 강의 내에서 Kafka 미사용시 주문생성/회원가입요청의 타임아웃 및 10분뒤 실행에 대한 해결책을 Kafka로 사용하셔서 문의드립니다. 2. 5강의 [Consumer 사용하기] 영상을 보면 API 프로젝트 Consumer 프로젝트가 별개로 존재합니다. 그러므로 API프로젝트의 테스트 케이스가 종료되어도 Consumer 프로젝트는 이미 Kafka로 100개의 데이터가 스트림으로 들어오는 상태이므로, 테스트케이스가 종료 되어도(즉, API프로젝트가 종료되어도) Cunsumer 프로젝트는 종료가 되지 않은 상태 이므로 100개의 쿠폰이 DB에 생성 이 되어야 하는게 아닌지요? 왜 여쭤보냐면, 강의 내에서는 API프로젝트가 종료되면 Consumer 프로젝트도 작업이 멈추는 현상이 있어서 문의드립니다.
안녕하세요. 현재 mac m1 pro 환경에서 개발을 진행하고 있는 수강생입니다. .env 파일 설정과 관련하여 이해되지 않는 오류가 발생하고 있어 질문드립니다. 문제사항은 아래와 같습니다. .env 파일에 있던 몇 가지 변수를 변경한 뒤, ios / android metro 서버를 통해 시뮬레이터를 재시작했습니다. 그러나 Config의 내용을 console.log로 찍어보았을 때, ios 시뮬레이터에서 발생하는 로그에는 초기에 설정했던 .env의 내용이 그대로 찍혀 나오고 있습니다. Android Studio에서 BuildConfig.java 파일에는 변경한 이후의 내용이 정상적으로 나오는데, IOS에서만 이런 상황이 발생하는 게 의아합니다. 1. IOS에서 다른 기기로 시뮬레이터를 돌려보고, 2. 기기 전체를 재부팅해도 같은 현상이 반복되는데 혹시 IOS에서만 발생하는 .env 관련해서 주의할 사항이 추가로 있을지 궁금합니다!
안녕하세요 강의를 따라 진행하던 중 질문이 있어 문의드립니다. 현재 웹소켓 관련한 로그를 찍어보기 위해 localhost:8081 주소로 접속해보면 Another debugger is already connected 위 메시지가 발생해 메트로 서버 로그를 확인해보니 아래와 같은 에러가 발생하고 있습니다. Error: Unable to resolve module ./debugger-ui/debuggerWorker.aca173c4 from /Users/chanha/Desktop/pandpie/FoodDeliveryApp/.: None of these files exist: * debugger-ui/debuggerWorker.aca173c4(.native|.native.js|.js|.native.jsx|.jsx|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx) * debugger-ui/debuggerWorker.aca173c4/index(.native|.native.js|.js|.native.jsx|.jsx|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx) at ModuleResolver.resolveDependency (/Users/chanha/Desktop/pandpie/FoodDeliveryApp/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:114:15) at DependencyGraph.resolveDependency (/Users/chanha/Desktop/pandpie/FoodDeliveryApp/node_modules/metro/src/node-haste/DependencyGraph.js:277:43) at /Users/chanha/Desktop/pandpie/FoodDeliveryApp/node_modules/metro/src/lib/transformHelpers.js:169:21 at Server._resolveRelativePath (/Users/chanha/Desktop/pandpie/FoodDeliveryApp/node_modules/metro/src/Server.js:1045:12) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Server._explodedSourceMapForBundleOptions (/Users/chanha/Desktop/pandpie/FoodDeliveryApp/node_modules/metro/src/Server.js:993:35) at async Promise.all (index 1) at async Server._symbolicate (/Users/chanha/Desktop/pandpie/FoodDeliveryApp/node_modules/metro/src/Server.js:945:26) at async Server._processRequest (/Users/chanha/Desktop/pandpie/FoodDeliveryApp/node_modules/metro/src/Server.js:418:7) 이를 위해 제가 진행해본 사항은 아래와 같습니다. 1. https://velog.io/@dody_/Another-debugger-is-already-connected 위 글을 참조해 react-native 프로젝트를 재시작 해보았습니다. 2. npm install --save @react-native-community/cli-debugger-ui 명령어로 debugger-ui 패키지를 재설치해보았습니다. node_modules/ 패키지를 지우고 다시 npm i를 통해 전체 패키지를 재설치해보았습니다. 메시지를 읽어보면 모듈 자체의 설치 이슈일 것으로 예상되는데 혹시 제가 놓친 부분이 있을까요?? 제 개발환경은 m1 pro 를 사용하고 있습니다.
인터페이스는 일단 객체를 못만든다고 알고 있어요 근데 익명이너클래스를 이용해서 만드는 방법이 있던데 interface A{ abstract void abc(); } 이거를 A a = new A(){ public void abc(){.....} }; 이렇게 할 수 있던데 익명이너클래스에 인터페이스를 상속해서 abstract메서드를 오버라이딩 했기때문에 가능하다는 건 알겠는데 그러면 객체는 익명이너클래스의 객체 아닌가요...? 익명객체가 인터페이스A를 상속받았기때문에 다형적인 표현으로 A a 이렇게 표현이 가능한건가요? 저런 표현이 가능한가요? 참조변수 a는 인터페이스A 타입인 객체를 가리킨다는 뜻 아닌가요..? 근데 인터페이스는 객체를 못만든다고 배웠는데.. ㅠㅠㅠ 정말 이 부분이 이해가 안 갑니다 ㅠㅠㅠ 왜 객체를 인터페이스 타입으로 지칭하는지 ㅠㅠ
안녕하세요 강의 잘 듣고 있습니다! SecurityConfig에서 커스텀 필터 등록 시 @Bean 형식으로 필터객체를 생성하여 등록하면 ApplicationFilterChain에 등록되는게 맞는걸까요? Bean 만 선언한다면 ApplicationFilterChain 에 등록되고 addFilter(customFilter) 를 추가해주면 ApplicationFilterChain 리스트에도 등록되고 SecurityFilterChain 에도 등록이 됩니다. 문제는 제가 만든 커스텀 필터는, 특정 URL 에서는 동작 안하게끔 구현하고 싶은데 @Bean으로 등록했기 때문에 ApplicationFilterChain에 등록되어 어떤 요청이 들어오든 동작하는 게 문제입니다. @Bean 방식이 아닌 addFilter(New CustomFilter()) 로 하면 SecurityFilterChain에만 등록되긴 하는데 CustomFilter 는 스프링 컨테이너에 등록이 안되기 때문에 다른 Resource 객체들을 주입받지 못하는 상황입니다. 결론은 ApplicationFilterChain에는 추가 안하고 SecurityFilterChain에만 커스텀 필터를 추가하고 싶은데 New 방식 말고는 없는 것인지가 궁금합니다!
안녕하세요 김영한님! 강의 아주 잘 듣고있습니다!! 현재 김영한님 첫번째 강의를 다 듣고 저 혼자 만들어보고 싶은게 생겨서 만드는중인데요 현재 제가 군대에 있어서 사지방에서 코딩을 하느라 인텔리제이를 사용하지 못하고 깃허브에서 제공하는 codespaces와 gitpod을 사용하여 vscode 환경에서 코딩하는 중입니다. 근데 jpa의 JpaRepository나 lombok 혹은org.springframework.boot.autoconfigure.SpringBootApplication 이런 패키지들이 계속 does not exist라고 뜹니다. 김영한님꺼 따라할때는 잘 됐는데 이제 제가 혼자서 만들고 싶은거 만드려니 확실하지도 않고 실행도 잘 안돼서 패키지를 못읽는건지도 잘 모르겠습니다. 현재 build.gradle에 의존성도 다 넣어있고 vscode의 패키지 설치에도 java extention pack, lombok, spring extention pack또 다 깔았습니다. 당연 재설치도 해보았구요! 구글링을 지금 며칠째 하고있는데 도저히 안되서 여기에 질문 올려봅니다... springboot version : 3.1.3 jdk version : 17
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 최초로 jdbc:h2:~/test로 연결을 실행 한 뒤 ~/ test.mv .db 파일 생성을 확인하였습니다. 그러고 영한님께서 말씀해주신 대로 jdbc:h2:tcp://l ocalhost/~/test 로 연결했더니 다음과 같은 오류가 발생하네요.. 해결방안 답변해주시면 감사하겠습니다. 참고로 h2 버전은 강의와 같은 버전을 사용하였습니다. +) 추가로 삭제 후 동일버전, 하위버전으로 재설치도 해보았는데 여전히 같은 오류가 발생합니다.
안녕하세요. 현재 JPA강의를 통해 회사내 프로젝트중인 직장인 입니다. 실무 중에 강의의 복합키 매핑과는 조금 다른 내용이 있어 며칠을 고민하다 문의 드립니다. 각각 복합키를 가진 두 개의 테이블 이 있습니다. 두 테이블은 code라는 공통 컬럼이있고 다대일관계로 매핑 을 구성하려고 합니다. @EmbeddedId관계 를 이용해 구성하려고 합니다. code 컬럼만 매핑시키는 방법을 찾지 못해 문의 남겨드립니다. 현재 문제의 테이블입니다.(회사프로젝트 테이블이라 자세히 올려드리는 못하는 점 양해 부탁드립니다.) Company Table은 code, biznumber 두 개의 pk로 구성돼 있습니다. Contract Table 역시 code, module 두 개의 pk로 구성돼 있습니다. 저는 두 테이블에서 code라는 컬럼만 갖고 다대일 매핑 을 구현하고 싶습니다. 즉 복합키를 각각 가진 두 개의 테이블에서 각각 하나의 컬럼만을 이용해 다대일 매핑을 구현하고 싶습니다. 제가 에러 내용과 과정을 올리고싶은데 회사코드라 올리면 문제가 생길까 싶어 이렇게 말로 표현드려 죄송합니다.