[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 번외편: AWS로 시작하는 서버 운영
ec2인스턴스를 그냥 만들어서 연결하면 잘 연결되는데 내가 만든 vpc,subnet을 사용하여 연결하면 다음 이유 중 하나로 인해 원격 데스크톱을 원격 컴퓨터에 연결할 수 없습니다. 1)서버에 대한 원격 액세스를 사용할 수 없음 2)원격 컴퓨터가 꺼져 있음 3)네트워크에서 원격 컴퓨터를 사용할 수 없음 원격 컴퓨터가 켜져 있으며 네트워크에 연결되어 있는지 여부 및 원격 엑세스가 지원되는지 확인하십시오. 라는 메시지가 뜹니다. 인스턴스는 실행 중 상태입니다. vpc ipv4 CIDR 주소가 10.0.0.0/24 로 되어있는데 상관있을까요? 10.0.0.0/16 으로 해도 되지 않습니다. SUBNET 주소도 10.0.0.0/24 로 되어있습니다. 인터넷 게이트웨이가 생성되어 있지 않은거 같은데 별도로 생성해 주어야 될까요? 게이트웨이를 추가해서 vpc를 연결해줘도 안되는거 같습니다. EC2 인스턴스 생성과정이 강의버전하고 달라서 따라하기가 좀 힘든거 같습니다.
안녕하세요 호돌맨님! JWT 관련 강의에서 ArgumentResolver를 활용해 토큰 검증을 하고 사용자 정보를 추출해 반환하셨는데, 만약 프로젝트를 진행할 때 로그인을 해야 모든 URL에 접근할 수 있다고 한다면 아래 코드처럼 인터셉터에서 토큰 검증을 하고 ArgumentResolver에선 별다른 검증 없이 subject만 추출해서 반환해도 문제가 없을까요? 혹시 제가 접근 자체를 잘못하고 있다면 알려주시면 감사하겠습니다 @Slf4j @RequiredArgsConstructor public class LoginCheckInterceptor implements HandlerInterceptor { private final JwtService jwtService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { String requestURI = request.getRequestURI(); log.info("인증 체크 인터셉터 실행 {}", requestURI); String accessToken = request.getHeader("Authorization"); jwtService.validateAccessToken(accessToken); try { jwtService.getSubject(accessToken); } catch (JwtException e) { throw new Unauthorized(); } return true; } } @RequiredArgsConstructor public class JwtArgumentResolver implements HandlerMethodArgumentResolver { private final JwtService jwtService; @Override public boolean supportsParameter(MethodParameter parameter) { boolean hasLoginAnnotation = parameter.hasParameterAnnotation(Login.class); boolean hasLoginType = LoginUser.class.isAssignableFrom(parameter.getParameterType()); return hasLoginAnnotation && hasLoginType; } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { String accessToken = webRequest.getHeader("Authorization"); Long userId = jwtService.getSubject(accessToken); log.info("userId = {}", userId); return new LoginUser(userId); } }
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세요. 문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요. 안녕하세요! 강의 보면서 저만의 프로젝트를 열심히 만들어보고 있습니다. 다름이 아니라 호돌맨님 프로젝트와 비슷하게 프로젝트 폴더 아래 front와 src (Springboot)가 따로 있는 상황이어서 인터넷을 찾아보며 vue build 결과물 (dist 폴더)를 src/main/resources/static/ 에 넣고 배포하는 식으로 진행해보았습니다. 위 처럼 했을 때는 5173 => 8080 이 서로 통신하는게 아닌게 되버린 것인지 Vue에서 작성했던 코드들이 정상적으로 작동하지 않아 문제를 겪고있습니다. 그 외에도 다른 글들을 참고하면서 build를 해보면 build 과정에서 오류가 발생하는 상황입니다. 제대로 동작하게 배포를 하고 싶은데, vue 부분을 따로 배포하는 것 말고는 방법이 없을까요? 좀 오랫동안 삽질하게 되어 질문드립니다... 방향이나 참고할만한 내용이 있을까요...? git - https://github.com/ppusda/NyangMunity
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 현재 7강. 유저 생성 API 개발 의 9분 듣고있습니다. 국비 프로젝트에서 dto에 직접 저장을 했던 경험이 있습니다. 선생님께서는 dto에 패키지의 UserCreateRequest에 저장하지 않고 domain패키지에 User라는 객체를 따로 만들어서 저장하시더라구요. 그렇게 하는 이유를 알려주실 수 있을까요?
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 이거 뜨시면 https://jaynamm.tistory.com/entry/Mac-ERROR-2002-HY000-Cant-connect-to-local-MySQL-server-through-socket-tmpmysqlsock-2 여기 참고해보세용~
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
저도 설치할 때 아래와 같은 문제가 발생 했었는데요 Error: Problem: conflicting requests - nothing provides libcrypto.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libssl.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libcrypto.so .10( libcrypto.so .10)(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 ...... 아마존 리눅스 2023을 쓸 때는 el9 버전 레포지토리를 사용해주어야 한다고 합니다! [ wget dev.mysql.com/get/mysql80-commuity-release-e17-5.noarch.rpm rpm -ivh mysql-community-release-e17.5.noarch.rpm ] 이렇게 작성하던 부분을 [ sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm sudo dnf install mysql-community-server ] 이렇게 작성하시면 잘 설치 돼요! 출처: https://dev.classmethod.jp/articles/ec2-mysql-install-confilicting-requests-error-kr/
ecs에서 https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-fargate.html 문서 참조해서 image를 띄우려고 합니다. 그런데 아래와 같은 에러가 발생합니다. 이에 대한 원인 혹시 알 수 있을까요? CannotPullContainerError: Error response from daemon: Get " https://public.ecr.aws/v2/ ": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
ecs에서 https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-fargate.html 문서 참조해서 image를 띄우려고 합니다. 그런데 아래와 같은 에러가 발생합니다. 이에 대한 원인 혹시 알 수 있을까요? CannotPullContainerError: Error response from daemon: Get " https://public.ecr.aws/v2/ ": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
안녕하세요 한번에 aws 강의 두개를 신청했다가 업무일정때문에 바빠서 이제야 듣기 시작했는데요 ^^.. solution architect 강의는 저번에 연장신청을 했지만 다듣기전에 이 강의도 기간이 만료될거 같아서 연장 부탁드립니다.. 열심히 듣겠습니다..! 꼭 완강하고 수강평 작성토록 하겠습니다!
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요, 강사님. 컨트롤러 코드 관련 질문입니다. 작성한 코드는 컨트롤러의 메소드 반환 타입을 void로 해서 아무것도 반환하지 않는데요, 만약 postmapping 관련 메소드 작성 시, 작성한 게시글의 id값을 반환해주는 코드와 큰 차이가 있을까요? 그리고 찾아보던 중, ResponseEntity를 사용해서 반환해주는 메소드를 보았는데, 메소드의 반환 타입에 따라 기능에 큰 차이가 있는지, 아니면 API 명세의 차이만 있고 기능에는 크게 차이가 없는지 궁금합니다!
안녕하십니까 호돌맨님 교육 강의를 듣고있는 학생입니다. 다름이 아니라 도저히 구글링을 해봐도 해결책을 찾지 못해서 질문 남깁니다. PostEditor Service -> edit method PostEntity Error Spring REST Docs1 - 기본설정 챕터에서 30분 정도에 호돌맨님이 Gradle 에 build 버튼을 누르시는데 거기서 querydsl compile 과 관련된 에러가 납니다. 내용을 보면 PostEditor 에서 PostEditorBuilder 심볼을 찾지 못한다고 에러가 발생하는데 Q파일 생성 문제인거 같은데 구글링을 해봐도 문제해결을 하지 못하였습니다. 호돌맨님이 작성하신 코드랑 제가 다르게 작성한 코드 부분는 그냥 PostEditor 자체에서 static 으로callEditor 를 호출해서 PostEdit 파라미터로 받아서 값을 셋팅하고 Post 엔티티에 넘겨주는 방식으로 수정해 봤습니다. git url : https://github.com/ilikeamoney/inflearn-hodolman