묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-E 반례 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/39c15e9338ad4585955d4d9f7453c741 나름의 방법대로 구현해봤는데, 반례를 찾기 어려워 질문드립니다. 좋은 강의 감사드립니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
insert 시에 오류가 발생합니다.
안녕하세요. 강의를 듣고 변형해서 개발해 보고 있습니다. drifrt를 통한 insert 시에 오류가 발생합니다. [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Bad state: GetIt: Object/factory with type LocalDataBase is not registered inside GetIt. 어떤 오류인지 검색을 해도 나오지가 않네요. 문제가 뭐인지 확인 좀 부탁드립니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Hibernate5Module 관련 질문
Hibernate5Module 애가 빈으로 등록되어 있기 때문에아래 코드에서 프록시 객체인 상태를 getUsername()로 프록시 초기화 시켜 바로 api로 반환 가능한건가요? List<Order> all = orderRepository.findAllByCriteria(new OrderSearch()); for (Order order : all) { order.getMember().getUsername(); } return all; }
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. package hello.core; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; @Configuration @ComponentScan( basePackages = "hello.core", excludeFilters = @ ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)) public class AutoAppConfig { }package hello.core; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class CoreApplication { public static void main(String[] args) { SpringApplication.run(CoreApplication.class, args); } }package hello.core; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { @Bean //MemoryMemberRespository 객체로 초기화된 MemberServiceImpl 객체 반환 public MemberService memberService() { System.out.println("call AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { System.out.println("call AppConfig.orderService"); return new OrderServiceImpl ( memberRepository(), discountPolicy() ); } @Bean public MemberRepository memberRepository() { System.out.println("call AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy() { return new RateDiscountPolicy(); } } ㅇCoreApplicaton 클래스(@SpringBootApplicaton)을 실행하면, @SpringBootApplicaton 에 @ComponentScan이포함되어 있기 때문에 CoreApplication 의 패키지 하위를전부 scan 합니다.그 과정에서 AppConfig 와 AutoAppConfig 를 만날텐데@ ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)) AutoAppConfig에 @Configuration 은 스캔하지 말라고 되어있습니다. Q1. 그러면 AppConfig 는 스캔 되지 않고 빈으로 생성되지 않는 건가요?Q2. AutoAppConfig도 @Configuration이 등록되어있는데그렇다면 AutoAppConfig도 빈으로 생성되지 않는건가요?Q3. @Configuration public class AppConfig { @Bean //MemoryMemberRespository 객체로 초기화된 MemberServiceImpl 객체 반환 public MemberService memberService() { System.out.println("call AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { System.out.println("call AppConfig.orderService"); return new OrderServiceImpl ( memberRepository(), discountPolicy() ); } @Bean public MemberRepository memberRepository() { System.out.println("call AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy() { return new RateDiscountPolicy(); } }AppConfig 를 컴포넌트 스캔 대상에서 제외해버리면 AppConfig의 수동 빈 등록 내용도 전부 무시되어 얘네들이빈으로 생성되지 않는건가요? Q4.CoreApplicaotn 에도 @Configuration 이,AutoAppConfig에도 @Configuration이 설정되어있는데이 경우 충돌이 일어나지는 않나요? Q5.만약 Q4에서 충돌이 일어나지 않는다면, 두개의 Configuraiton 내용이 둘다 프로젝트에 적용되는 건가요?
-
미해결대세는 쿠버네티스 (초급~중급편)
curl -O 해당 함수에서 인증서에 대한 파기 여부를 검사하지 못했습니다.
며칠 전에 같은 질문으로 했었는데 답변이 varantfile 내용을 올려달라고 하셨는데, 강사님이 올려주신 URL 로 접근하면 다운받아지는 파일 내용을 복사해서 올리겠습니다. NodeCnt = 2Vagrant.configure("2") do |config| # config.vbguest.installer_options = { allow_kernel_upgrade: true } config.vm.box = "centos/7" config.vm.provider :virtualbox do |vb| vb.memory = 3072 vb.cpus = 4 end config.vm.provision :shell, privileged: true, inline: $install_common_tools config.vm.define "k8s-master" do |master| master.vm.hostname = "k8s-master" master.vm.network "private_network", ip: "192.168.56.30" master.vm.provision :shell, privileged: true, inline: $provision_master_node end (1..NodeCnt).each do |i| config.vm.define "k8s-node#{i}" do |node| node.vm.hostname = "k8s-node#{i}" node.vm.network "private_network", ip: "192.168.56.#{i + 30}" end endend$install_common_tools = <<-SHELL# ssh password 접속 활성화sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_configsed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config;systemctl restart sshd.service# 방화벽 해제systemctl stop firewalld && systemctl disable firewalldsystemctl stop NetworkManager && systemctl disable NetworkManager# Swap 비활성화swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab# br_netfilter 모듈 로드cat <<EOF | tee /etc/modules-load.d/k8s.confbr_netfilterEOF# Iptables 커널 옵션 활성화cat <<EOF > /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system# permissive 모드로 SELinux 설정(효과적으로 비활성화)setenforce 0sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 쿠버네티스 YUM Repository 설정cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=0gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgexclude=kubelet kubeadm kubectlEOF# Centos Updateyum -y update# Hosts 등록cat << EOF >> /etc/hosts192.168.56.30 k8s-master192.168.56.31 k8s-node1192.168.56.32 k8s-node2EOF# 도커 설치yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum install -y containerd.io-1.4.9-3.1.el7 docker-ce-3:20.10.8-3.el7.x86_64 docker-ce-cli-1:20.10.8-3.el7.x86_64mkdir /etc/dockercat > /etc/docker/daemon.json <<EOF{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ]}EOFmkdir -p /etc/systemd/system/docker.service.d# 도커 재시작systemctl daemon-reloadsystemctl enable --now docker# 쿠버네티스 설치yum install -y kubelet-1.22.0-0.x86_64 kubeadm-1.22.0-0.x86_64 kubectl-1.22.0-0.x86_64 --disableexcludes=kubernetessystemctl enable --now kubeletSHELL$provision_master_node = <<-SHELL# 쿠버네티스 초기화 명령 실행kubeadm init --apiserver-advertise-address 192.168.56.30 --pod-network-cidr=20.96.0.0/12kubeadm token create --print-join-command > ~/join.sh# 환경변수 설정mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config# Kubectl 자동완성 기능 설치yum install bash-completion -ysource <(kubectl completion bash)echo "source <(kubectl completion bash)" >> ~/.bashrc# Calico 설치kubectl create -f https://raw.githubusercontent.com/kubetm/kubetm.github.io/master/yamls/k8s-install/calico.yamlkubectl create -f https://raw.githubusercontent.com/kubetm/kubetm.github.io/master/yamls/k8s-install/calico-custom.yamlcurl https://docs.projectcalico.org/manifests/calico.yaml -Okubectl apply -f calico.yaml# Dashboard 설치kubectl apply -f https://kubetm.github.io/yamls/k8s-install/dashboard-2.3.0.yamlnohup kubectl proxy --port=8001 --address=192.168.56.30 --accept-hosts='^*$' >/dev/null 2>&1 &SHELL 공부를 시작하고 싶은데 설치에서 계속 막혀서 진도를 못 나가고 있습니다..
-
미해결반응형 웹사이트 포트폴리오(Architecture Agency)
브라켓 자동 줄바꿈
자동으로 위로 줄이 올라가는데 어떻게 해결해야 하나요?..
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
삼항연산자를 이용해서 풀어 보았습니다
삼항 연산자를 이용하여 가장 큰 수 를 구하고, 전체 수를 더한값을 뺀 후 나머지 2개의 숫자의 합을 구해서 비교하여 "YES"와"NON"를 구해 보았습니다.<!-- 삼각형 판별하기 --> <html> <head> <meta charset="UTF-8" /> <title>출력결과</title> </head> <body> <script> function solution(a, b, c) { let answer; const longLine = a > b ? (a > c ? a : c) : b > c ? b : c; const totalLine = a + b + c; const remainder = totalLine - longLine; answer = longLine < remainder ? "YES" : "NO"; return answer; } console.log(solution(7, 5, 2)); </script> </body> </html>
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형변수를 포함한 다중선형회귀 모델에서 독립변수 사용 방식
강의 중 ols함수를 ols('매출액 ~ 광고비 + 유형_A + 유형_C', data=df2).fit() 이런식으로 범주형 변수의 일부 컬럼만 사용해서 회귀모델을 구축할 수 있다고 하셨습니다.그래서 테스트를 해 본 결과 위와 같이 유형_A와 유형_C를 회귀모델의 독립변수로 활용하기 위해서는df = pd.get_dummies(df, drop_first=True)이런식으로 다중공선성 방지를 위한 파라미터를 추가하는게 아니라 위 캡처본에서의 df2와 같이 전체 변수가 포함된 데이터프레임을(유형_A, 유형_B, 유형_C 가 전부 포함된 데이터프레임) 사용해야 하는 것을 알았습니다. 근데, 이렇게 df2와 유형_A, 유형_C를 활용한 회귀모델은 유형_B를 감안한 것이 아니라 그냥 유형_B만 갑자기 누락해버린 회귀모델이 아닐지 문의드립니다. import pandas as pd df = pd.DataFrame({ '매출액' : [300, 320, 250, 360, 315, 328, 310, 335, 326, 280, 290, 300, 315, 328, 310, 335, 300, 400, 500, 600] , '광고비': [70, 75, 30, 80, 72, 77, 70, 82, 70, 80, 68, 90, 72, 77, 70, 82, 40, 20, 75, 80] , '플랫폼': [15, 16, 14, 20, 19, 17, 16, 19, 15, 20, 14, 5, 16, 17, 16, 14, 30, 40, 10, 50] , '투자':[100, 0, 200, 0, 10, 0, 5, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] , '유형':['B','B','C','A','B','B','B','B','B','B' ,'C','B','B','B','B','B','B','A','A','A'] }) df = pd.get_dummies(df, drop_first=True) from statsmodels.formula.api import ols model = ols('매출액 ~ 광고비 + 유형_B + 유형_C', data=df).fit() print(model.summary()) 위에서는 엄연히 유형_A도 감안된 것일텐데 이런 상황에서 유형_A를 회귀모델 독립변수로 쓰지 않은 것과는 (매출액 ~ 광고비 + 유형_B + 유형_C) 다른 결인 것 같아서요!
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
PlaneGeometry 브라우저 화면 크기에 맞게 셋팅하는 법
PlaneGeometry 브라우저 화면 크기에 맞게 셋팅하는 법이 있을까요? width, height를 계산해서 넣어야하는데 계산식이 어떻게 되는지 모르겠네요...OrthographicCamera를 사용 중입니다!답변 주시면 감사하겠습니다!
-
해결됨빅데이터 파이프라인 마스터; 성공을 위한 도구와 기술
수강 연장 이벤트 신청합니다.
안녕하세요!강의를 들으면서 데이터와 관련된 기술 스택들을 익히는데 많은 도움을 받고 있습니다.다름이 아니라 수강 연장 이벤트를 신청하려고 하는데,구글 설문 링크가 보이지 않아서 이렇게 커뮤니티에 글을 남깁니다.혹시 이벤트 기간이 종료가 된건지 아니라면 어떻게 신청하면 되는지 궁금합니다. 좋은 강의 만들어주셔서 감사합니다!
-
미해결[게임 프로그래머 도약반] DirectX11 입문
다렉 수업 전에 들어야 할 수업들이 있나요?
안녕하세요제가 미리보기 강의들을 보다가 수업 방식도 마음에 들었고 미리보기 예제 코드를 다운 받기 위해서 그냥 바로 수업 신청을 했습니다. 근데 초반에서 지속적으로 전에 수업에서 다 배웠다고 많은 부분들을 그냥 넘어가셔서 제가 이해가 잘 가지가 않습니다. 혹시 배우지 못했던 부분만을 따로 빼서 저렴하게 강의를 올리실 의향이나 아니면 제가 따로 공부하고 와야 할 부분을 알려주실 수 있을까요? 좀 많이 당황스럽습니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
@ConfigurationProperties 사용 시 질문 드립니다.
제가 아직 초보 개발자라 막연히 setter 사용은 지양하는게 좋다고 배워서 실무에서는 다른지 궁금합니다.setter 를 열어두면 빈으로 등록된 AppConfig 의 불변성을 보장할 수 없게 되는게 아닌가 해서 질문드립니다.https://mangkyu.tistory.com/189위 블로그를 보면 @ConfigurationProperties 를 setter 없이 생성자로 할 수도 있는것 같아서요.혹시 제가 너무 setter 사용을 지양하라는 말에 매몰돼있는건 아닐까 고민도 되네요.
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
웹사이트 헤드에 태그삽입
안녕하세요. '데이트 스트림과 스크립트 설치방법'을 듣고있습니다.강의에서 요즘은 스크립트를 웹사이트 head에 삽입하기보다 태그매니저를 먼저 설치하고 ga4와 연결시키는 편이라고했는데 기존 회사 계정의경우 태그매니저 없이 head에 스크립트가 들어가있는 상황입니다. 이 경우 뒤늦게 구글 태그매니저와 ga4를 연결해도 충돌이라던지 문제가 일어나지는 않을까요 ?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
별점 수정 초기화를 막고 싶습니다.
수정 버튼을 클릭하면 기존 값의 작성자와 내용이 작성되어 있는데 별점도 똑같이 유지 시키고 싶어서 다음과 같이 작성 했습니다.<S.Star onChange={props.setStar} value={props.star !== 0 ? props.star : props.el?.rating ?? 0} />별점을 선택하고 댓글 등록하기 클릭하면 함수를 통해 setStar(0) 초기화도 해주었고수정 아이콘을 클릭했을 때 기존 등록한 별점도 유지되게 했는데 수정하기 버튼을 클릭하면 별점이 0으로 수정이 됩니다.여기서 어느 부분을 건들어야 할지 모르겠어요.
-
미해결
유니티 Linecast 오류..?
제가 유니티로 점프랑 애니메이션을 구현하는데 점프는 ground Layer에서만 되도록 Linecast로 플레이어 위치랑 0.1칸 아래 사이에 ground Layer가 있을 때만 점프가 되도록 했는데.. 다른 프로젝트에서는 잘만 되더니 다른 프로젝트로 이 스크립트 파일을 옮기니까 공중에서도 점프가 되고 점프 애니메이션이 계속 재생됩니다.어떻게 하면 해결될까요.. 코드는 이렇게 작성했습니다. (위쪽은 그냥 글로 썼고 아래쪽은 코드 눌러서 썼으니까 편한거 보시고 답변주십셔) using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerController : MonoBehaviour{ Rigidbody2D rbody; //Rigidbody2D형 변수 float axisH = 0.0f; //입력 public float speed = 3.0f; //이동 속도 public float jump = 9.0f; //점프력 public LayerMask groundLayer; //착지할 수 있는 레이어 bool goJump = false; //점프 개시 플래그 bool onGround = false; //지면에 서 있는 플래그 //애니메이션 처리 Animator animator; //애니메이터 public string stopAnime = "PlayerStop"; public string moveAnime = "PlayerMove"; public string jumpAnime = "PlayerJump"; public string goalAnime = "PlayerGoal"; public string deadAnime = "PlayerOver"; string nowAnime = ""; string oldAnime = "";void Start() { //Rigidbody2D 가져오기 rbody = this.GetComponent<Rigidbody2D>(); //Animator 가져오기 animator = GetComponent<Animator>(); nowAnime = stopAnime; oldAnime = stopAnime; } void Update() { if (Input.GetButtonDown("Jump")) { Jump(); //점프 } } //착지 판정 onGround = Physics2D.Linecast(transform.position, transform.position - (transform.up * 0.1f), groundLayer); if(onGround || axisH != 0) { //지면 위 or 속도가 0 아님 //속도 갱신하기 rbody.velocity = new Vector2(axisH * speed, rbody.velocity.y); } if (onGround && goJump) { //지면 위에서 점프 키 눌림 //점프하기 Debug.Log("점프!"); Vector2 jumpPw = new Vector2(0, jump); //점프를 위한 벡터 생성 rbody.AddForce(jumpPw, ForceMode2D.Impulse); //순간적인 힘 가하기 goJump = false; //점프 플래그 끄기 } if (onGround) { //지면 위 if (axisH == 0) { nowAnime = stopAnime; //정지 } else { nowAnime = moveAnime; //이동 } } else { //공중 nowAnime = jumpAnime; } if (nowAnime != oldAnime) { oldAnime = nowAnime; animator.Play(nowAnime); //애니메이션 재생 } } //점프 public void Jump() { goJump = true; //점프 플래그 켜기 Debug.Log("점프 버튼 눌림!"); } using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerController : MonoBehaviour{ Rigidbody2D rbody; //Rigidbody2D형 변수 float axisH = 0.0f; //입력 public float speed = 3.0f; //이동 속도 public float jump = 9.0f; //점프력 public LayerMask groundLayer; //착지할 수 있는 레이어 bool goJump = false; //점프 개시 플래그 bool onGround = false; //지면에 서 있는 플래그 //애니메이션 처리 Animator animator; //애니메이터 public string stopAnime = "PlayerStop"; public string moveAnime = "PlayerMove"; public string jumpAnime = "PlayerJump"; public string goalAnime = "PlayerGoal"; public string deadAnime = "PlayerOver"; string nowAnime = ""; string oldAnime = "";void Start() { //Rigidbody2D 가져오기 rbody = this.GetComponent<Rigidbody2D>(); //Animator 가져오기 animator = GetComponent<Animator>(); nowAnime = stopAnime; oldAnime = stopAnime; } void Update() { if (Input.GetButtonDown("Jump")) { Jump(); //점프 } } //착지 판정 onGround = Physics2D.Linecast(transform.position, transform.position - (transform.up * 0.1f), groundLayer); if(onGround || axisH != 0) { //지면 위 or 속도가 0 아님 //속도 갱신하기 rbody.velocity = new Vector2(axisH * speed, rbody.velocity.y); } if (onGround && goJump) { //지면 위에서 점프 키 눌림 //점프하기 Debug.Log("점프!"); Vector2 jumpPw = new Vector2(0, jump); //점프를 위한 벡터 생성 rbody.AddForce(jumpPw, ForceMode2D.Impulse); //순간적인 힘 가하기 goJump = false; //점프 플래그 끄기 } if (onGround) { //지면 위 if (axisH == 0) { nowAnime = stopAnime; //정지 } else { nowAnime = moveAnime; //이동 } } else { //공중 nowAnime = jumpAnime; } if (nowAnime != oldAnime) { oldAnime = nowAnime; animator.Play(nowAnime); //애니메이션 재생 } } //점프 public void Jump() { goJump = true; //점프 플래그 켜기 Debug.Log("점프 버튼 눌림!"); }
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
connector의 적정 tasks.max 값은 어떻게 될까요?
s3 sink connector 설정 관련해서 문의드립니다.적절한 tasks.max의 값은 어떻게 될까요?여러 요인이 있겠지만 특히 토픽의 파티션 개수와 관련하여 정해야하는지 문의드립니다.
-
해결됨CloudNet@ - Amazon EKS 기본 강의
ebs csi의 정적 프로비저닝에서도 스토리지 용량 증설이 가능한지요?
안녕하세요. 강사님ebs csi의 정적 프로비저닝에서도 pvc 패치를 통해 스토리지 용량 증설이 가능한지요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Firebase: Please verify the new email before changing email. (auth/operation-not-allowed). 해결 방법
안녕하세요.해당 강의 수강 중 이메일 변경 과정에서 에러가 발생하였고, 많은 분들이 해당 에러를 겪을 것 같아 해결방법 공유드립니다.에러firebase의 정책 변경에 따른 문제인지 이메일 변경시 변경하려는 이메일에 대한 인증이 필요하다는 에러가 나타납니다.해당 에러는 이메일 열거 보호 (무차별 이메일 입력에 대한 대처)로 인해 나타나는 에러이며, 이메일 열거 보호를 해제하여 해결하였습니다.참조: https://github.com/firebase/firebase-ios-sdk/issues/11886 해결방법Firebase 프로젝트 ID 확인https://console.firebase.google.com/Firebase 콘솔 접속 -> 해당 프로젝트 접속 -> 좌측 상단 프로젝트 개요 우측 톱니바퀴 -> 프로젝트 설정화면에 노출되는 Firebase 프로젝트 생성시 작성한 프로젝트 ID를 확인합니다.gCloud shell 접속https://console.cloud.google.com/welcome?cloudshell=true위 링크 접속시 하단에 CloudShell이 노출됩니다.gcloud access token 취득CloudShell 에 아래의 명령어를 입력해 accessToken을 취득합니다.gcloud auth print-access-token --project=PROJECT_ID위 명령어의 PROJECT_ID는 1. Firebase 프로젝트 ID 확인 에서 얻은 프로젝트 ID를 입력합니다.이메일 열거 보호 비활성화CloudShell 에 아래의 명령어를 입력해 이메일 열거 보호를 비활성화 합니다.curl -X PATCH -d "{'email_privacy_config':{'enable_improved_email_privacy':"false"}}" \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' -H 'X-Goog-User-Project: PROJECT_ID' \ "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=email_privacy_config"여기서 PROJECT_ID는 3번과 동일한 프로젝트 ID를, ACCESS_TOKEN은 3번을 통해 취득한 ACCESS_TOKEN을 입력합니다.이제 이메일 변경이 잘됩니다 :)참조: https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection?hl=ko이메일 열거 보호가 서비스중인 프로젝트라면 중요하겠지만 학습을 위한 개발단계인 현재는 비활성화해도 괜찮을 것 같습니다.감사합니다.
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
int i = menuService.doInsert(coffee,kind,price); 이 코드 질문있어요
혹시 변수타입이 왜 int인지 알 수 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
No active profile set
이런식으로 실행이 안되는 모습을 보입니다.세팅에서 이렇게 둘다 IntelliJ로 설정해주고 Download external Annotations 도 켜놨는데 저런 상황이네요 ㅠㅡㅠ 어떻게 해야할지 모르겠습니다...