안녕하세요 선생님 금일 수강신청 및 프로젝트해보면서 오류가 발생하여 질문드립니다. 우선 프로젝트를 clone하고 pnpm install로 의존성을 설치했습니다. 그리고 docker compose -f docker-compose/redis/redis-compose.yml up -d 를 실행하였는데 아래와 같은 결과가 나왔습니다. network ludgi-network declared as external, but could not be found 어떻게 조치하면 될까요~?
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강사님께서는 데이터를 먼저 읽고 없으면 예외를 발생시켰는데, 그렇게 하지 않고 일단 업데이트(혹은 삭제)를 시키고 나서 변경된 row의 개수가 0이면 예외를 발생시키는 방법으로 예외 처리를 해도 괜찮나요? 코드는 아래와 같습니다. if(jdbcTemplate.update(sql, request.getName(), request.getId()) == 0) { throw new IllegalArgumentException(); }}
EC2에 역할을 부여할 때는 리소스에 역할을 연결하는 방식이였다면 사용자에게 역할을 부여할 때는 STS를 이용한 역할에 접근 정책을 만든 후 그 정책을 사용자에게 연결하는 방식이였는데 이건 사용자와 역할을 연결하는게 아닌 역할과 정책을 연결하는 느낌이여서 1. 원래 사용자와 역할 연결 시에는 중간에 정책이 필요한건가요? 2. ec2같은 리소스에는sts관련 정책이 필요없나요?
제가 실수로 robots.txt를 robot.txt로 잘못 올렸고 User-agent: * Disallow:: 내부 파일도 이렇게 잘못 작성했더니 lighthouse에서 잘못되었다고 지적하더라고요. 근데 새로 수정하고 빌드해서 올렸고 AWS s3내부에선 정상적인 파일이 올라간 것으로 확인되는데 아직도 그대로더라고요. 어떻게 최신화가 가능할까요?
위 그림은 제가 구현한 아키텍처입니다. 제 프론트 서버에서 도메인/api 경로로 백엔드로 요청을 보내기 때문에 ALB에 기본 도메인은 프론트서버로 라우팅, 도메인/api 주소는 백엔드 서버로 라우팅되게 하였습니다. 그런데 프라이빗 서브넷은 외부로부터 접근을 못하는 것에 의미가 있는데 도메인이 연결된 로드밸런서에 프라이빗 서브넷을 연결하면 route53에서 로드밸런서 ip주소에 요청을 보내고 로드밸런서는 /api가 붙어 있는 것을 확인하고 백엔드 서버 대상 그룹으로 요청을 보냅니다. 즉 백엔드 서버 자체의 공인ip가 없어도 사용자가 웹 브라우저에 https://grow-farm.com/api/auth/health 라고 적으면 백엔드 서버에 직접 요청을 할 수 있고 응답도 그대로 돌아옵니다 물론 이것은 헬스체크라서 열어둔거고 다른 API는 앱 내부 차원에서 프론트를 통한 요청으로만 접근 할 수 있게 조치는 취해놨지만 인프라 차원에서 서버가 개방되어있으니 이 설계가 베스트 프랙티스가 아닌 것 같다는 생각이 들었습니다. 제가 기존에 했던 방법으로 도메인을 가지고 있는 로드밸런서에서 프라이빗서브넷에 있는 ec2에 /api를 붙여서 경로를 붙이는 것이 자주 쓰이는 방법이고 제가 잘못 생각한 것이라 큰 문제가 없는지 궁금합니다! 만약 1번이 문제가 있는 방법이라면 대안으로 프론트 서버는 10.0.2.2 같은 백엔드 내부 ip주소로 요청을 보내게 코드를 바꾸고 로드밸런서에서 백엔드 서버를 해제하면 사용자들은 브라우저창에 10.0.2.2/api/auth/health 를 검색하더라도 백엔드 서버에 접근할 수 없는 숨겨진 공간이 될 수 있을 것 같은데 혹시 괜찮은 방법인지 궁금합니다. 감사합니다!