처음에 .env파일을 깃허브에 올리시길래 띠용했지만 곧바로 수정하시는군요. 지금은 연습 중이라서 올라가도 크게 문제가 없을 것 같고, 또한, 강사님께서 .env가 깃허브에 올라갔을 때 어떻게 대처하는지 알려주시기 때문에 연습 용도로도 좋아보입니다. .env파일을 올리는게 찜찜하신 분들은 인스턴스 환경변수 분리까지 보신 뒤에 하시는게 좋을 것 같고, 나는 .env가 노출 된 상황을 한 번 연습해보고 싶다. 하시는 분들은 차례대로 진행하는 것도 좋을 것 같습니다!
안녕하세요 강사님! 서칭중에 이전에 서버비용관련해서 질문한 글을 발견했어요. 윈도우서버 기준으로 동접 50명내외면 서버비용이 하루 5000~10000원정도 들거라고 답변하신 걸 봤습니다. 그런데 PC게임이 아니라 모바일게임인 경우도 동접 50명내외면 그정도 서버비용이 들까요?! 나중에 출시까지 생각해야하다보니 서버비용에 관한 생각이 스멀스멀 들어서 질문 남기게 되었습니다 !
typescript 기초 강의에서 nest를 처음 실행했는데 실행 시 너무 오래 걸립니다..(약 20~30분 정도) windows os에서 실행 햇는데 이유가 있을까요? 현재 컴퓨터 사양은 Memory 32G 에 RAM 16 Core 입니다. 매번 이렇게 시간이 걸리면 현실적으로 test가 불가능해서 방법을 구하고자 합니다. +추가 yarn으로 실행해봐도 비슷하네요.. Windows OS에서 WSL 통해서 Ubuntu 환경에서 실행하고 있습니다.
비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
외부 api 에서 ajax를 통해 데이터를 받아오고, 받아온 데이터를 카피해서 mysql 에 삽입하고자 합니다. 일정시간마다 반복하는 것은 setInterval 을 활용하면 되는것까지는 구글링을 통해 알아냈는데 본 강의에서는 데이터 생성을 postman 을 사용해 수동으로 데이터를 입력하고 전송하셔서 코드 상으로는 어떻게 구현해야 할지 궁금해서 여쭤봅니다! 1줄요약! postman을 통해 했던 데이터 삽입을 코드로 하는 방법이 궁금합니다!
Auth와 Resource App 시작 시 아래 사진과 같은 에러가 발생합니다. 강의와 노션에 있는 코드를 그대로 작성했다고 생각하여 패키지 버전 문제로 추정됩니다. 현재 제가 사용중인 패키지입니다. 강의 중 사용중인 패키지 버전을 공유받고 싶습니다. 해당 오류에 대한 구글링에 실패해서 추가적으로 혹시 알고계신 레퍼런스 있으시면 알려주시면 감사드리겠습니다.
안녕하세요. 강의중에 액세스토큰을 변수로 req.header에 저장하면 아래와 같이 3가지 문제점이 있다는 것을 구글링을 통해서 확인했습니다. 1.보안: 액세스토큰을 req.header에 변수로서의 토큰은 공격자에 의해 가로채기에 취약합니다. 2.확장성: 애플리케이션에 많은 수의 요청이 있는 경우 req.header 의 변수는 크기가 커지고 성능 문제가 발생할 수 있습니다. 3.지속성: req.header 에 액세스 토큰을 저장하는 것은 영구적이지 않습니다. 사용자가 페이지를 새로 고치거나 브라우저를 닫으면 액세스 토큰이 손실됩니다. 이로 인해 사용자가 보호된 리소스 에 액세스하기 위해 다시 로그인해야 할 수 있습니다. 질문1) 3번 지속성문제의 경우, 브라우저를 새로고침하게 되면, 액세스 토큰이 사라지게 되니 오히려 보안이 좋다고 생각해야 할까요? accessToken이 수업에서는 10분으 로 만료기간을 설정했는데, restoreAccessToken API가 있기 때문에 acessToken을 req.header에 변수로 저장해도 문제가 되지 않을까요? 질문2) 액세스토큰 만료시간을 10분 ~30분 으로 짧게 잡으신 이유가 1번 문제점 보안의 이유라고 생각하면 될까요? 질문3) 선생님, 좋은 강의 해주셔서 진심으로 감사합니다. 저는 선생님의 백엔드와 프론트 강의를 수강후 실제 웹 서비스를 런칭하기위해서 수업을 듣고 있습니다. 현재는 백엔드 강의를 수강중입니다. 실제 웹 서비스런칭시 accessToken을 req.header에 변수로서 저장하고, refreshToken은 쿠키에 저장하는 게 올바른 방법인가요? refreshToken을 수업에서 가르쳐주신 대로 secure : true, httponly: true와 같이 배포환경으로 바꿔서 배포하게 된다면 보안상 안전할까요? 질문4) 구글링을 해보니, 리프레시 토큰을 Redis에 저장하고, 액세스토큰은 쿠키에 저장하는 방법도 있는 것을 확인했습니다. 액세스토큰의 만료기간을 10분으로 잡고, 리프레시토큰의 만료기간을 2주로 잡을 경우, restoreRefreshToken API 때문에 Redis DB에 자주 접속하게 되어서 DB 사용료가 많이 청구 되지는 않을까요? 서버를 stateless 상태로 웹 서비스를 런칭하기 위해서는 액세스토큰과 리프레시 토큰을 어떻게 저장해야 할까요? 가장 안전한 방법이라고 할 수 있을까요? 감사합니다.
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
안녕하세요. JPA 로 Post 를 등록하고 User 의 List<Post> posts 컬렉션 정보를 조회할때 질문드립니다. post 등록시 User 의 List<Post> posts 컬렉션에 따로 post 를 넣지 않았는데 조회할 경우에 post 정보가 나오게되는 이유가 궁금합니다.... post가 User 컬렉션에 자동적으로 저장되는 것인가요?
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
안녕하세요. User 테이블에 데이터를 삽입하다 검증 애노테이션이 적용이 안되서 질문드립니다. 동일한 질문이 있어서 Javax.validation 의존성 삭제하고 springboot.starter validation 을 적용했지만 계속 검증이 안되는 상황입니다. @Size(min=2, max=4) private String name; 이름 필드에 제한을 두었는데 max 테스트는 에러를 내보내지만 min 을 테스트했을때 한글자 문자를 넣었을 때 왜 에러가 발생되지 않는지 궁금합니다..
비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
로그인이나 회원가입 후 메인페이지 헤더 부분에 비회원과 회원 구분하는 바가 나오지 않습니다. header.js코드는 그대로 복붙하고 url 에서 포트만 3001 -> 3000 으로 바꿨습니다 back end의 indexRoute에서 아래 app.get("/jwt", jwtMiddleware, index.readJwt); 코드도 잘 추가하였는데 문제가 어떤건지 모르겠습니다 ㅠㅠ
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
안녕하세요 springboot 3에서는 swagger 2를 이용할 수 없더라구요. ( 추가로 강의자료에서 제공해주신 springfox3 버전을 이용해도 index.html에 접속이 되질 않아 springdoc으로 진행하는 상황입니다.) 그래서 springdoc, swagger3를 사용하여 http://localhost:8088/swagger-ui/index.html로 들어가 실습을 진행하고 있습니다. 강의자료를 참고하여 springfox형식을 springdoc에 맞춰 작성하여 info, contact,license 까지 확인할 수 있었습니다. 그런데 produce,consume 부분을 구현하지 못했는데 springdoc에서는 produce,consume이 없어진건가요? 아니면 다른 방법이 있을까요? 강의자료는 springfox 기준이라서 아직 produce, consume 부분을 해결하지 못한 상태입니다. package com.example.restfulwebservice.config; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.mvc.condition.ProducesRequestCondition; import java.util.Arrays; import java.util.HashSet; import java.util.Set; @Configuration public class SwaggerConfig { private static final Contact CONTACT = new Contact().name("Kenneth Lee") .url("http://www.joneculsting.co.kr") .email("edowon@joneconsluting.co.kr"); private static final License LICENSE= new License().name("Apache 2.0") .url("http://www.apache.org/licenses/LICENSE-2.0"); private static final Info INFO = new Info().title("Awesome API Title") .contact(CONTACT) .description("Awesome API Documentation") .version("1.0") .license(LICENSE) .termsOfService("urn:tos"); private static final Set<String> DEFAULT_PRODUCES_AND_CONSUMES = new HashSet<>(Arrays.asList("application/json", "application/xml")); @Bean public OpenAPI springShopOpenAPI() { return new OpenAPI().info(INFO).; } }
선생님 안녕하세요! 최신 버전의 VS2022 .NET7.0 환경에서도 실습이 잘 되어서 너무 기분이 좋습니다. c# 문법인지 잘 모르겠지만... 이해가 안 가는 것이 있어 질문 올립니다. ' Hello MVC #1 ' 강의 14:29에서 다음과 같이 작성하셨습니다. public string Message { get; set; } 하지만, { get; set; } 을 하지 않고 아래와 같이 작성 public string Message; 하면 앞으로 모든 실습에서 Message가 null이 됩니다. 디버그에서 특별한 에러도 나타나지 않습니다. 강의 내용대로 프로퍼티를 붙이면 간단히 해결할 수 있지만 이 차이가 무엇인지 자세히 알고 싶습니다. 프로퍼티를 사용한 경우 프로퍼티 없이 선언만 한 경우