모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
안녕하세요! 업로드 강의 유익하게 잘 보고 있습니다:D 강의 도중에 "5000번 포트로 요청하고 해당 포트가 열려있으면 아웃바운드 정책이 느슨해 대부분의 포트가 열려 있을 것"이라 하셨는데 5000번이 기준이 되는 이유가 무엇인가요? 잘 안쓰는 포트 번호이기 때문에 그렇게 말씀하신걸까요?
안녕하세요 선생님! section 태그에 따로 클라스를 주어서 백그라운드 이미지를 넣고 그 안에 main-container를 만들어서 불투명한 박스를 만들고 나중에 이너 작업을 해서 텍스트가 들어가도록 하셨는데 혹시 section에 클라스를 따로 부여하지 않고 100% 영역으로 잡은 뒤에 div-inner를 바로 넣고 그 안에 다른 div 태그를 만들어서 배경화면, 불투명 박스, 텍스트 를 넣어줘도 문제가 없을까요?? 아래처럼요! <section> <div class="inner"> <div class="main"> <!--백그라운드 이미지--> <div class="main-container"> <!--불투명 박스--> <div class="title-container"> <div class="title"></div> <div class="message"></div> </div> </div> </div> </div> </section>
Cannot access 'androidx.databinding.Observable' which is a supertype of 'com.example.affiliates_android.databinding.ActivityMainBinding'. Check your module classpath for missing or conflicting dependencies 라는 에러가 뜹니다.
Method annotated with @Bean is called directly. Use dependency injection instead. 스프링 버전을 좀더 높여서 쓰고있는것 같은데요. 위와같은 경고메세지가 나옵니다. 에러가 아니여서 실행은 또 잘됩니다. 혹시 위와 같은 메세지가 나오는 이유가 있을까요?
SOA 와 MSA 를 명확하게 구분지을 수 있는 요소가 각각의 서비스에 대한 오토스케일링 (수평확장) 가능 여부 라고 이해해도 될까요? 클라우드 환경에서 수평 확장을 위한 가장 효율적인 시스템유형이 Cloud Native Application 이다 라고 설명 해주셨는데요, 클라우드 환경에서 수직 확장은 효율적이지 못한건가요? (잘 쓰이질 않는건가요?) 강의 내용중에 수평 확장을 해놓고 그 상태에서 수직 확장을 하는 방식으로 적용을 한다. 라는 설명을 해주셨는데, 이 맥락과 연관이 있는지 궁금합니다! 아직 실습을 해보지 않은 상황에서 단순하게 생각해보면, 수직확장은 반영에 시간이 걸린다 라고 설명해주셨는데 그렇다면 수직확장 부터 미리 반영 시켜 놓고 서비스 운영 중에 자동으로 수평 확장이 될 수 있도록 오토스케일링 설정을 해놓아야 하는게 아닌가 라는 생각이 듭니다.
강의가 거의 끝날 무렵에 즈음하여... 계속해서 궁금했던 점이 있는데요. 강의를 듣다보면 주제에 따라 계속 폴더를 새로 생성하는데 그때마다 npx create-react-app ./ 을 해서 라이브러리를 설치하잖아요. 그런데 항상 같은 명령어는 아닌데.. 예를 들어, 1) npx create-react-app 패키지가 있고, nextJS 강의 땐 2) npx create-next-app@latest --typescript Redux Toolkit 강의 땐 3) npx create-react-app ./ --template redux-typescript 였는데요. [질문1] 실무에서는 프로젝트 처음 프로젝트 생성 후에 계속 바꿔줄 것 같진 않은데 만약 프로젝트 폴더가 npx create-react-app으로만 설치 되었다면, typescript를 사용하기 위해선 폴더를 삭제했다가 다시 npx create-next-app@latest --typescript로 생성해야 할까요? [질문2] 그리고 2)과 3)의 차이는 리덕스를 사용하지 않는 typescript와 리덕스를 사용하는 typescript의 차이인가요? 강의 들으면서 npm(모듈 설치)도 더러 나왔지만 npx도 몇 번 나왔던 것 같은데 다시 찾아보니 3개밖에 안보이네요^^; [질문3] @latest의 의미와 중간중간 보이는 --save, --template 이런 의미들이 궁금합니다.
안녕하세요. 기본편부터 정주행하면서 다시 공부하고 있는 뷰린이입니다. 이번 강의를 보면서 vue-router를 사용하게 되는데요. router.push({ name: 'user', params: param }) 위와 같이 push에 params를 넣으면 아래와 같은 워닝메세지가 나오고, vue-router.mjs:35 [Vue Router warn]: Discarded invalid param(s) "email", "name" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details. 이동한 컴포넌트에서 route.params를 꺼내보아도 값이 없더라구요. 좀 더 찾아보니, vue-router 버전에 차이로 인해서 발생하는 것 같은데요..(제가 설치한 버전은 4.1.5입니다.) 버전을 다운그레이드해서 사용해야 할까요? 아니면 latest버전에서 params를 사용하지 않고 다른방법으로 파라미터를 넘겨주는 방법이 있을까요?(Query는 URL 붙기 때문에 지양하고 있습니다..)
@SpringBootApplication public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } //@Bean // Hibernate5Module hibernate5Module() { // Hibernate5Module hibernate5Module = new Hibernate5Module(); // return hibernate5Module; // } } hibernate5Module을 의존성 추가하지 않고 강제초기화를 해보았는데 오류가 나더라구요. 강제 초기화를 했고 sql문은 나갔을텐데 오류가 나는게 의아하더라구요. @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName();//강제 초기화 order.getDelivery().getAddress(); } return all; } 디버깅을 해보았는데 Member와 Delivery의 sql이 나가고 return에서 오류가 나더라구요. order->프록시->영속성컨택스트로 이어지고 강제초기화를 해서 Member와 Delivery는 영속성 컨택스트에 담겼지만 return에서 Order의 Member와 Delivery에는 프록시값이 가리키는 영속성컨택스트가 아닌, 프록시까지만 json으로 변환하기때문에 오류가 난다고 생각하는게 맞는 걸까요? 그리고 그 프록시를 영속성컨택스트로 바꿔서 변환해주는게 hibernate5Module의 역할이라고 보면 될까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 코드팩토리님! 강의 너무 잘 듣고 있습니다! 다름이 아니라 장바구니에 상품을 추가하는 로직에서 궁금한 점이 있는데요... Future<void> addToBasket() { ... await patchBasket(); } Future<void> removeToBasket() { ... await patchBasket(); } 지금은 위와 같이 상품을 추가하고, 삭제할 때마다 서버에 patchBasket 요청을 보내고 있습니다. 하지만 사용자가 상품 선택을 끝내고 장바구니를 다 완성한 후에 patchBasket() 을 요청하는게 더 클라이언트-서버간의 통신횟수를 줄일 수 있지 않을까요?? 아니면 optimistic response를 설명하기에 적절한 예제라고 판단하셔서 저렇게 구현하신건지 궁금합니다!! 그게 아니라면 위와 같은 방식으로 장바구니 변경 시마다 api 요청을 보내는 방식의 이점이나 이유가 궁금합니다! 좋은 강의해주셔서 감사합니다~!