묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
새로운db 만들기
db.sqlite3를 두 번 클릭했는데 console창만 뜨고 db추가하는 창이 안 뜹니다. (+눌러서 db추가 했습니다)그리고 db를 추가하면 왜 테이블이 그대로 복붙되는지 궁금합니다..
-
미해결<M.B.I.T> 테스트 페이지 만들기! with Django
자바스크립트 오류 관련해서 질문합니다.
위에 보시는 것과 같이 실행시키니까 facebookShare.addEventListner는 함수가 아니라고 오류가 발생하는데 분명 강의 내용과 똑같이 쳤는데도 불구하고 이런 오류가 발생했습니다. 혹시 이것만 오류가 있나해서 다른것도 확인해 보니까 밑에 kakaoshare나 copyBtn에서도 같은 오류가 발생하였습니다. 어떻게 해야하나요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
투포인터 22988번 문제에서 continue와 break이 들어가는 이유
N, X = map(int,input().split()) arr = sorted(list(map(int,input().split()))) s = 0 e = N-1 remain = 0 cnt = 0 while s <= e : # s와 e가 교차되면 멈춘다! if arr[e] == X: cnt += 1 e -= 1 continue if s == e : remain += 1 break # 짜투리를 하나 추가한다! if arr[e] + arr[s] >= X/2: cnt +=1 s += 1 e -= 1 else: s += 1 # 수가 커지겠죠! remain += 1 print(cnt + remain//3 )여기에서 while문 안에 첫 번째 if 다음에 continue가 들어가는 이유와두 번째 if 문에서 break을 사용하는 이유를 모르겠습니다. 두 개 다 없어도 가능하다고 생각하는데 테스트 케이스의 경우 continue는 없어도 예제 출력을 출력했고, break은 없으면 예제출력과 결과가 다르네요!!continue와 break이 어떻게 쓰인 것인지 조금 자세히 설명해주실 수 있으실까요
-
미해결따라하면서 배우는 3D Human Pose Estimation과 실전 프로젝트
우분투 설치 관련 자료
안녕하세요.우분투 환경세팅 - 크롬설치 동영상을 보면 준비된 우분투 설치 관련 문서를 보고 우분투를 설치하라고 되어 있는데 우분투 설치 관련 문서를 어디서 받을수 있나요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
Controller에서 BindingResult값을 유지한채로 @ExceptionHandler를 활용한 사용자 정의 예외를 처리하는법이 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Spring data jpa 를 활용하여 지금까지 배운 내용들을 총 합한 프로젝트를 만들어 보고 있는데 한가지 궁금증이 생겨 질문 드립니다. @ExceptionHandler을 사용하여 사용자정의 예외를 만들어 아이디 중복 예외를 처리하고싶은데 예외를 처리하는 과정에서 아이디가 중복일시 Controller의 BindingResult를 활용하여 아이디가 중복이면 View에 아이디가 중복이라는 정보를 표현하고싶어서 프로젝트를 코딩중에 Controller 부분에서 service단에서 throw한 사용자 정의 예외를 처리하려 하는데 try catch로 예외를 처리하는 순간 @ExceptionHandler를 사용하지 못하고 그렇다고 다시 예외를 던지자니 @ExceptionHandler에서 View에 관련된 Binding result의 값이나 ModelAttribute의 값을 보존해지 못하여 처리가 불가합니다. 이럴때 제일 좋은 방법이 무엇인지 알고싶습니다. Controller 코드입니다.@Controller @RequiredArgsConstructor @RequestMapping("/users") public class UserController { private final LoginService loginService; @GetMapping("/add") public String addForm(@ModelAttribute("userDto") UserDto userDto) { return "user/addUserForm"; } @PostMapping("/add") public String save(@Valid @ModelAttribute UserDto userDto, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return "user/addUserForm"; } // if (loginService.signUpIdExists(userDto.getLoginId()) == false){ // bindingResult.reject("loginIdExists", "동일한 아이디가 존재합니다."); // return "user/addUserForm"; // } try { loginService.signUp(userDto); return "redirect:/"; } catch (UserIdExistsException e) { bindingResult.reject("loginIdExists", "동일한 아이디가 존재합니다."); return "user/addUserForm"; } } } Service 코드입니다.@Slf4j @Service @RequiredArgsConstructor public class LoginService { private final UserRepository userRepository; public User login(String loginId, String password) { return userRepository.findByLoginId(loginId).filter(m -> m.getPassword().equals(password)) .orElse(null); } public void signUp(UserDto userDto) { // if(signUpIdExists(userDto.getLoginId()) == false){ // throw new UserIdExistsException("이미 존재하는 아이디입니다."); // } try { Address address = new Address(userDto.getAddressDto().getZipcode(), userDto.getAddressDto().getStreetAdr(), userDto.getAddressDto().getDetailAdr()); User regisUser = new User(userDto.getLoginId(), userDto.getLoginName(), userDto.getPassword(), address); userRepository.save(regisUser); } catch (DataIntegrityViolationException e) { throw new UserIdExistsException("이미 존재하는 아이디입니다."); } } private boolean signUpIdExists(String loginId) { return userRepository.findByLoginId(loginId).isEmpty(); } } @ControllerAdvice 코드입니다.@Slf4j @ControllerAdvice public class ExceptionAdvice { @ExceptionHandler(UserIdExistsException.class) public ModelAndView userIdExHandler(UserIdExistsException e) { log.error("[userIdExistsException] ex", e); return new ModelAndView(); } } UserIdExistsException 코드입니다.public class UserIdExistsException extends RuntimeException{ public UserIdExistsException() { } public UserIdExistsException(String message) { super(message); } } 위 코드는 동작은 확인했지만 사실상 try catch 로 예외를 잡아버려서 @ExceptionHandler가 동작하지 않는 상태입니다. Entity의 아이디값에 unique 옵션을 걸어두어 아이디 중복이 일어날시 DataIntegrityViolationException에러가 일어납니다.추가로 궁금한것예외가 사실상 repository에서 터지는데 인터페이스에는 try catch가 권장되지 않는것으로 알고 통상 Service에서 에러를 처리하는것으로 알아 이렇게 코딩하였는데 이게 올바른건지 모르겠습니다. 예외를 발생시키는 지점을 repository로 옮기는것이 맞나요? Spring data jpa 는 알아서 Spring에 종속된 에러를 출력하는것으로 알고있는데 DataIntegrityViolationException에 속한 예외 두가지를 다른방법으로 처리하고싶으면 ErrorCode를 분석해 If문 으로 사용자 정의 예외를 만들어서 처리해야하나요? bindingresult를 사용하기 위해 어쩔수없이 예외를 throw하였더니 controller까지 예외가 전파되서 코드가 지저분해졌습니다. 이렇게 View에 특정한 값을 보내주어야할때 Controller에 예외를 throw 하지 않고 해결할수있는 좋은 방법이 있나요? 질문이 길고 지저분해서 죄송합니다. 나름 열심히 알아보고 코딩해보아도 잘 모르겠어서 질문남깁니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
스프링 컨테이너가 관리하는 빈
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 이해하고 있는것이 맞는지 봐주실 수 있을까요?스프링 컨테이너가 관리하는 빈이어야 @PostConstruct, @PreDestroy 메서드가 호출될 수 있다. 따라서 프로토타입 빈처럼 초기화 이후에 스프링 컨테이너가 관리하지 않는 빈은 @PreDestroy가 호출되지 않는다.
-
미해결[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
BroadcastReceiver가 안됩니다ㅠㅠ
BootReceiver의 용도가 전원을 껏다가 켜도 상단바에 알림이 뜨게끔 하는 용도라고 알고있는데 적용이 되지 않습니다 ㅠㅠ 로그는 저렇게 뜨네요 ㅠㅠ 개복치님 코드로도 실행이 안되는데 제 에뮬과 실기기가 이상한걸까요 ㅠㅠㅠㅠ???? <uses-permission android:name="android.permission.RECEIV<receiver android:name=".receiver.BootReceiver" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver>E_BOOT_COMPLETED"/>class BootReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { Timber.d("onReceive") Timber.d(intent?.action) if(intent?.action.equals("android.intent.action.BOOT_COMPLETED")){ val foreground = Intent(context, PriceForgroundService::class.java) foreground.action = "START" if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ context?.startForegroundService(foreground) }else{ context?.startService(foreground) } } } }
-
미해결
퀀트 투자를 위한 파이썬 트레이딩룸 만들기 part2 강좌는 어디에 있나요? ㅜㅜ
part1 끝나가는데 part2가 안보이네요
-
해결됨DevOps의 정석 - DevOps의 시작부터 끝까지 모두 짚어 드립니다!
java 기반의 정적 코드 분석 파트를 보면서 궁금한 점 발생
안녕하세요. 강의를 수강하면서 생각이 들었던게 있습니다. python기반의 정적 코드 분석 관련해서 궁금증이 생겼습니다. 제가 알기론 python 기반으로 정적 분석 관련 라이브러리가 존재한다고는 알고있긴한데, visual studio 환경에서 보여주신 내용과 비슷한게 있을까요? 없다면 할 수 있는 방법이 있는지 또한 궁금합니다.
-
미해결스프링 시큐리티 OAuth2
진도에 관해서 질문있습니다
먼저 저번에 스프링 시큐리티 1편 강의를 듣고 전체적인 인증흐름 등 소개가 만족스러워서 이번에 oauth2 도 샀습니다. 단도직입적으로 얘기하면(OAuth2의 인증흐름+RESTAPI 식으로 OAuth2)를 어떤 식으로 코드를 짜는지 보고 싶습니다. 이에 대해 도움이 되는 강의 chapter를 먼저 수강하고 싶습니다. 학기 중이라 44시간을 듣기 좀 부담스럽기도 하고 한번 oauth2의 인증흐름+restAPI 식 oauth2를 먼저 구현하고 난 후에 다시 강의를 들을때 꼼꼼히 들을 예정입니다그래서 질문은1)(OAuth2의 인증흐름+RESTAPI 식으로 OAuth2)에 관련된 chapter를 소개해 주실수 있을까요??(예를 들면 MAC 등 이런 것은 제외하고요..)2)이거 쓰다가 궁금해지는게 소셜로그인-Form Login 을 수강하면 RESTAPI 식으로 바꾸는 것은 별차이가 없을까요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
DRF로 로깅 시스템을 만들어보려고 하는데 authentication을 어떤 식으로 하는 게 좋을까요?
선생님 안녕하세요. 좋은 강의 해주셔서 항상 감사합니다. 다름이 아니라 DRF를 이용해서 간단한 로깅 시스템을 만들어보려고 하는데 authentication을 어떤 식으로 하는 게 좋을지 고민되어서 질문드립니다. 연구 프로젝트에서 유저 인터랙션을 보는 목적으로 하는 거라 프론트엔드에서 특정 html element를 클릭하면 별도의 로깅 서버로 간단하게 인터랙션과 관련된 정보, user id, timestamp, 클릭한 element 정보 등을 보내게 하려고 하는데요. 로그를 받아서 저장만 하는 서버이니 굉장히 단순한 형태가 될 것 같기는 한데, 그렇다고 인증절차를 아무 것도 안 하고 그냥 놔두자니 뭔가 좀 불안하기도 해서 어떻게 해야할지 고민입니다. 사용자가 사용하게 될 웹앱과는 아예 다른 클라우드 서버에서 돌아가게 할 예정이어서 internal url을 쓰게 할 수는 없을 것 같고 어쨌든 외부로 url을 열어두기는 해야할 것 같은데 이런 경우 인증 절차나 보안 관련된 부분은 어떤 식으로 설계하는 게 좋을까요? 감사합니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
완전탐색 1090번 시간초과
예제 문제는 잘 풀리는데 백준에 제출하니까 시간초과가 뜹니다강의 자료랑 큰 차이는 없어 보이는데 어느 부분을 고쳐야 시간 안에 계산 가능할까요?#include <iostream> #include <cstdlib> using namespace std; int main(int argc, char **argv) { int n; int minX, minY, maxX, maxY; cin >> n; int arr[n][2]; for(int i=0; i<n; i++){ cin >> arr[i][0] >> arr[i][1]; } minX = arr[0][0]; maxX = arr[0][0]; minY = arr[0][1]; maxY = arr[0][1]; for(int i=1; i<n; i++){ if(arr[i][0]>maxX){ maxX = arr[i][0]; } else if(arr[i][0]<minX){ minX = arr[i][0]; } if(arr[i][1]>maxY){ maxY = arr[i][1]; } else if(arr[i][1]<minY){ minY = arr[i][1]; } } int arr_answer[n]; int arr_dis[n]; for(int i=minY; i<=maxY; i++){ for(int j=minX; j<= maxX; j++){ for(int l=0; l<n; l++){ int subY= 0, subX=0; subY = i-arr[l][1]; subX = j-arr[l][0]; arr_dis[l] = abs(subX) + abs(subY); } int sum = 0; for(int k=0; k<n; k++){ sum+=arr_dis[k]; if(i==minY && j ==minX){ arr_answer[k] =sum; } else if(sum < arr_answer[k]){ arr_answer[k] = sum; } } } } for(int i=0; i<n; i++){ cout << arr_answer[i] << " "; } return 0; }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
쿠키 저장이 되지 않습니다.
res.set("Set-Cookie", cookie.serialize("token", token, { httpOnly: true, maxAge: 60 * 60 * 24 * 7, path: "/", }))프론트에 credentials을 true로 하고 cors 부분에도 credentials를 true로 했지만 application/cookie에 저장이 되지 않습니다. header에 response로 토큰은 잘 들어오는데 뭐가 문제일까요?
-
미해결내 가치를 높이는 노션 이력서 만들기
콘텐츠 제작에 대한 성과는 어떤 식으로 표현해야 할까요?
경력 사항을 작성할 때 정확한 수치는 공개하지 않는 것이 좋다고 하셨는데, 혹시 영상을 제작했던 이력이 있을 경우 '최고 조회수 7천회' 혹은 '30편 영상 제작' 등의 단어 사용도 지양해야 할까요? 콘텐츠를 제작하고 그것의 성과를 측정하는 방법이 성과 개선 보다는 눈에 보이는 수치가 가장 효과적인 것 같아서 강의를 보다보니 이를 어떻게 표현해야 할지 고민입니다!
-
미해결홍정모의 따라하며 배우는 C++
2차원 배열 구성
const int num_rows{3}, num_columns{5}; int array[num_rows][num_columns] = { {1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15} };이렇게 행렬의 열과 행을 const로 상수 처리를 해버리면 컴파일에러가 발생하지 않는데 이"const"라는 키워드를 빼버리면 열과 행의 수가 변함으로 인해 메모리 공간을 할당을 못해서 컴파일 에러가 발생하는 건가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
리액트 깃허프
리액트 작업을 컴퓨터 이동하면서 하고싶은데 usb론 너무오래걸려서 깃헙으로 하고싶은데 깃헙에 빌드해서 올리면 다시 받을때 어떻게 받아서 작업해야할까요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
기능이 버튼눌러서는 잘 작동안하는데 url검색하면 빠르게 동작
aws 로 서비스 배포하였는데 버튼눌러서 controller에 접근하는 url이 바뀔떄마다 엄청 느려서 기능접속이 잘안되네요 swap설정은 되어있는데 혹시 이유알수 있을까요 ??url을 직접쳐서 검색하는건 빨라요간단히 controller에서 template으로 정보 맞교환하는건데 이유 알수 있을까요? <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Hello</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" href="../css/main.css"/> </head> <body> <div class="cd-switch"> <div class="switchUp"> <h1> <p th:text="${userName}+'님의 선택은 !? '"><br></p> </h1> <p th:text="' 원하는 걸 골라봐요 왼쪽? 오른쪽? 결과는 반영됩니다! '" style=" width: 1000px;"></p> <h2 > <p th:text="${question}" style=" width: 1000px;"></p> </h2> <html> <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> <body> <div class="w3-light-grey"> <div class="w3-green" th:style="'height:24px;width: ' + ${LeftPercent} + '%'">LEFT</div> </div><br> <div class="w3-light-grey"> <div class="w3-red" th:style="'height:24px;width: ' + ${RightPercent} + '%'">RIGHT</div> </div><br> <div class="w3-container"> <div class="w3-bar"> <form action="http://13.124.171.10:8081/leftQuestion" method="get"> <button class="w3-button w3-left w3-light-grey" type="submit" >« LEFT!</button> </form> <form action="http://13.124.171.10:8081/rightQuestion" method="get"> <button class="w3-button w3-right w3-green">RIGHT! »</button> </form> </div> </div> </body> </html> </div> </div> </body> </html> 이런식으로 url을 직접넣어서 ec2컴퓨터에 연결하는건 안되는 건가요??
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
Mutex Lock도 결국 동기화 문제를 해결하지 못하지 않을까요?
우선 질 좋은 강의를 무료로 볼 수 있게 해주셔서 감사합니다. CPU 하나, 쓰레드 1, 2, 3 세 개가 있다고 가정해봅시다. 쓰레드 1의 release 함수에서 lock이 false가 되는 순간 2, 3에서 load lock 지시어가 연달아 두 번 실행된다면 모두 while 문을 빠져나오고 두 쓰레드가 동시에 임계 구역에 들어갈 수 있지 않을까요?
-
미해결Node.js에 TypeScript 적용하기(feat. NodeBird)
throw new Error(&#x60;${this.name}.hasMany called with something that&#x27;s not a subclass of Sequelize.Model&#x60;); 에러 질문
테이블 생성 마이그레이션 db에 생성 완료 확인하였습니다.(유저 - 주소, 1대 다 관계db.User.hasMany(db.Address)db.Address.belongsto(db.User))하였으나이후 서버를 실행하니 다음과 같은 에러가 발생합니다.throw new Error(`${this.name}.hasMany called with something that's not a subclass of Sequelize.Model`);^Error: User.hasMany called with something that's not a subclass of Sequelize.Modelat Function.hasMany (E:\gmleh\workspace\react-shoppingmall\back\node_modules\sequelize\lib\associations\mixin.js:18:13)at associate (E:\gmleh\workspace\react-shoppingmall\back\models\user.ts:59:17)at Object.<anonymous> (E:\gmleh\workspace\react-shoppingmall\back\models\index.js:41:22)at Module._compile (node:internal/modules/cjs/loader:1126:14)at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)at Module.load (node:internal/modules/cjs/loader:1004:32)at Function.Module._load (node:internal/modules/cjs/loader:839:12)at Module.require (node:internal/modules/cjs/loader:1028:19)at require (node:internal/modules/cjs/helpers:102:18)at Object.<anonymous> (E:\gmleh\workspace\react-shoppingmall\back\app.ts:2:1) addresses 테이블 마이그레이션 -유저모델-주소 모델 - 테이블 생성 확인 -
-
미해결배달앱 클론코딩 [with React Native]
Creating a new application 에서 오류가 납니다.
$ 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랑 설치해보면서 이것저것 해보려했는데 잘안되네요.