묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨시작하는 PM/PO들에게 알려주고 싶은, 프로덕트의 모든 것
신입으로 PM 직무
안녕하세요. 인프런 워밍업 클럽 3기 수강생입니다.저는 1년 조금 넘게 게임 기획 직무로 근무하고 있습니다. ( 캐릭터 대사 작성, 퀘스트 만들기, 전투맵 만들기, 3D 리소스 기획하고 아트팀과 소통해서 제작하기 등등.. 업무를 하고 있어요. )최근 게임보다 조금 더 생활의 편리함과 솔루션을 제공하는 IT 서비스 산업으로 가고싶다..! 라는 생각이 들었고 그 중 프로덕트 매니저 직무에 관심이 생겼습니다. 학교에서 모바일 프로젝트, 공모전 등을 나가보았고 현재 게임 만들어 본 경험을 녹여 신입 포트폴리오를 제작하려고 한다면 어떤 카테고리나 문항으로 어필하면 눈길이 가는지 궁금합니다
-
미해결오픈 소스 도구를 활용한 웹 해킹 및 스노트 분석(침해대응)
Marketplace에 beta portScanner가 없습니다.
zap 2.16버전을 다운받았는데 marketpalce에 portscanner, Active scanner rules(alpha) 가 없습니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
근접 콤보 공격을 만들고 싶습니다.
근접 콤보 공격을 만들고 싶은데 어떤식으로 구성하면 좋을까요?스킬을 각각 만들어서 연결하는 방법으로 구성하고 있는데 막혀서 질문드립니다. 스킬을 만들고 어떤 식으로 연결을 해야될까요? 감이 안잡혀서 여쭤봅니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
count 쿼리 질문있습니다
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 구조를 보면 마지막 페이지로 갈 수록 모든 페이지 목록을 불러오는거 같은데 제가 이해한게 맞나요? pageLimitCalculator를 보면 page=4, pageSize=10, movablePage=3일때 pageLimitCalculaotr를 계산하면 61인데 현재 4페이지에 있다면 2번째 그룹인데 2번째 그룹의 데이터 목록들만 불러오는게 아니라 1번째 그룹데이터까지 포함해서 총 60개를 불러오는게 맞는거죠? 그렇다면 pageLimitCalculator 공식에서 (((page - 1) / movablePageCount) + 1) pageSize movablePageCount + 1; 마지막에 1을 더해주는데 왜 해주는 건가요?다음 페이지에 데이터가 있나 없나를 확인하기 위해 1을 더하는건줄 알았는데 제가 생각한대로 마지막페이지로 갈수록 모든 데이터를 불러오는 구조라면 굳이 마지막에 1을 더할 필요가 있나 싶어서요궁금합니다!
-
해결됨대세는 쿠버네티스 (초급~중급편)
섹션 10 deprecated
강사님 안녕하세요.섹션10에 제목으로 deprecated 라는 단어가 붙었는데 해당 섹션의 하위 강의들은 듣지 말아야하는 것인지 궁금합니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 혹시 가능할까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 좋은 강좌 감사합니다업무에바빠 시험응시를 미루고있습니다혹시 연장해주시면 감사하겠습니다.
-
미해결홍정모의 따라하며 배우는 C++
수업 예제 중
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업 예제 중에int x=5;double d=123.0; int *ptr_x=&x;double *ptr_d=&d; cout << ptr_x << endl;cout << *ptr_x << endl; cout << ptr_d << endl;cout << *ptr_d << endl;의 결과가주소5주소123으로 나왔는데 왜 x와 d의 주소가 같은가요?int x 의 주소가 004FF7F8이면 그 다음 선언한 변수 double d는 004FF7FC가 되어야하지 않나요??*ptr_d를 프린트 했을 때 소수점도 나와야하지 않나요? 0이면 소수점은 아예 생략되나요?
-
미해결쉽게 설명하는 AWS 기초 강의
엔드포인트에 라우팅 테이블 연결
800명이 넘는 AWS 강의실 오픈채팅방에 오시면 더 좋은 답변을 실시간으로 받아보실 수 있습니다.질문내용은 상세하고 자세하게 부탁드립니다.예시 : "Amazon EC2의 t2.micro 타입으로 Amazon Linux 2023타입으로 퍼브릭 서브넷에 프로비전 했습니다. 키페어와 같이 프로비전해서 SSH로 접속하고 싶은데 접속 요청시 Timeout이 발생합니다. 어디를 확인하면 될까요?" 강의 24분경 엔드포인트 생성하는 부분에서 이전부터 같은 방식으로 진행했는데 엔드포인트를 생성할 vpc 를 선택한 이후 라우팅 테이블이 나타나지 않습니다.라우팅 테이블에 들어가 잘 생성되어있는것도 확인했고 서브넷과 연결되어있는것도 확인했는데 추가로 확인해야할 부분이 어디일까요?
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
자문자답) 수강 시작 전에 아나콘다 버전을 강의와 맞추면 즐강
안녕하세요 선생님.선생님의 강의 덕분에 많은 것들을 배웁니다. 감사합니다. 많은 사람들이 강의 수강에 앞서 프로그램 환경설정에서 공통된 질문이 많은데, 선생님께서 계속 같은 질문에 답변을 반복하시는 모습에.. 다음 분들을 위해 가이드로 공유하고자 합니다. 참고로 버전이 업그레이드되면 API는 수시로 바뀝니다. 사용 방식이 조금씩 바뀌거나, 아예 달라지기도 합니다. 부디 해당 강의와 같은 버전으로 진행하시길 강력히 권장합니다. 현시점 아나콘다 공식 홈페이지의 다운로드 링크는 최신 버전만 다운로드할 수 있게 웹 브라우저를 보여줍니다. 따라서 아나콘다 공식 아카이브로 접근하여 원하는 버전을 다운로드합니다.아나콘다 아카이브 저장소 접근(link)아나콘다 아카이브에 접근하면 원하는 버전의 아나콘다를 다운로드 받을 수 있습니다. 여기서 주의해야 할 사항은 Python 3.9 기반의 아나콘다를 다운로드 받으셔야 합니다. 2022년도 아나콘다 쓰세요. 2023년도 아나콘다부터는 Python 3.10이더군요. Python 3.9을 기반으로 하는 2022년 아나콘다 다운로드2022년도 5월과 10월 버전이 있는데, 이 둘의 차이는 아나콘다 release 노트에서 확인할 수 있습니다. 참고로 많은 분들이 남기신 scikit-learn 버전도 2022.05 아나콘다부터 1.0.2가 기본 버전입니다. 2022년도 아나콘다로 진행하시면 lightgbm이고 뭐고 다 강의와 동일하게 진행하실 수 있습니다.아나콘다 버전만 잘 설치하시면, 나머지는 강의 따라가면 됩니다. 즐강하십쇼.p.s. 이미 아나콘다 최신 버전을 설치해 버리셨다면.. 다시 설치하시길 바랍니다. 윈도우 기준, C:\Users\{user}\anaconda3 경로에 Uninstall-Anaconda3.exe라는 파일을 실행시켜 지울 수 있습니다....
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
data.ai
안녕하세요??data.ai에서 앱의 아이디어를 얻는다고 하셨는데 국가가 여러개 있는데 그중에 메인으로 보는 국가가 있으신걸까요?
-
미해결3DS MAX 입문강좌 (입문부터 자동차 예제까지)
3ds max 2025 user interface
2025버전에서는 user interface에 마우스만 있고 키보드가 없는데 설정을 어떻게 해야할까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
snowflake 알고리즘 - synchronized 활용한 동시성 제어
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강사님 안녕하세요다름이아니라 snowflake 알고리즘에서 의문점이 생겨서 질문 드립니다. 질문1) snowflake 알고리즘에서 synchronized를 활용하여 동시성 제어를 하는데,만약 각 도메인 모듈마다 멀티 서버를 구상한다면 동시성 제어가 가능한가요? 질문2) 만약 안된다면, redis 와 같은 외부 미들웨어를 통해서 동시성제어를 하는 방식으로 해당 알고리즘을 수정해야 될까요?
-
미해결김영한의 실전 자바 - 중급 1편
Object clone 메서드는 protected인데 호출이 불가능한 이유가 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Object의 clone 메서드를 찾아보니 protected 로 접근 제어자가 설정되어 있는데 모든 클래스는 Object 클래스의 하위 클래스이니 clone 메서드를 사용 가능한것으로 이해했습니다. 그런데 실제로 clone 메서드를 실행하면clone() has protected access in java.lang.Object에러가 발생하는데 어떤 차이가 있어서 접근 불가능한 지 궁금합니다!
-
미해결포토샵 마스터 클래스 (만들면서 배우는 포토샵 입문)
선생님 펜으로 누끼따기가 너무 어려워요
13강의 2분30초쯤 펜으로 누끼를 따시는걸 보고 따라하고있는데 왜 저는 아랫부분에 곡선을 그리고 나면 곡선 이후에 직선이 아닌 한바퀴 감긴 곡선이 나올까요 ㅜㅜ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Gradle-groovy/Kotlin
스프링 프로젝트 생성시에 강의에서는 Gradle로 만들어라고 했는데 Gradle-groovy랑 Kotlin으로 나눠져 있더라고요.둘의 차이가 무엇인가요??
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
[오타 제보] 7. 네트워크 - 프로그램1.pdf
[오타 정보]대상 강의록: 7. 네트워크 - 프로그램1.pdf대상 위치: p.40 하단 (실행 결과 박스의 바로 다음 문장)오타 내용 변경 전: try-with-resources는 단순하게 close()를 자동 호출해준다는 정도의 기능한 제공하는 것이 아니다.변경 후: try-with-resources는 단순하게 close()를 자동 호출해준다는 정도의 기능만 제공하는 것이 아니다.
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
FreeLook 카메라 Zone 설정관련
저는 유니티6를 0.38f1 버전을 사용하고 있는데요카메라에서 Dead Zone, Soft Zone 등이 안보여서 찾아보니 FreeLook 카메라 인스펙터 창에서 Status Live 부분을 클릭해주시고아래 Rig 관리하는 부분에 Aim 이라는 탭을 여시면 선생님이 화면에서 보시던 Zone 설정하는 부분이 보이게 됩니다.
-
미해결
좋아요 수 구현부 질문 드립니다.
좋아요 수에 대해서 구현을 할 때 @Version이 붙을 경우 계속 해서 에러가 발생을 합니다.@Version을 이용을 할 시에 좋아요 수 JPA를 이용해서 저장을 하는 Method가 있는 부분에@Lock(LockMode.OPTIMISTIC)을 붙여주면 에러가 발생을 하지 않습니다. 혹시 에러가 나는게 당연한 건지 아니면 잘못 되어서 에러가 나는지 궁금하고 해당 에러를 해결 하는 방법 중 다른 것이 있는지 궁금합니다. 발생하는 에러의 경우 아래와 같이 발생을 합니다. org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [kr.co.won.like.entity.ArticleLikeCountEntity#1111] at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:426) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.event.internal.DefaultMergeEventListener.merge(DefaultMergeEventListener.java:214) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.event.internal.DefaultMergeEventListener.doMerge(DefaultMergeEventListener.java:152) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:136) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:89) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:854) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:840) ~[hibernate-core-6.6.5.Final.jar:6.6.5.Final] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:320) ~[spring-orm-6.2.2.jar:6.2.2] at jdk.proxy2/jdk.proxy2.$Proxy114.merge(Unknown Source) ~[na:na] at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:630) ~[spring-data-jpa-3.4.2.jar:3.4.2] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:277) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:515) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:284) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:752) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:174) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:149) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:69) ~[spring-data-commons-3.4.2.jar:3.4.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380) ~[spring-tx-6.2.2.jar:6.2.2] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.2.2.jar:6.2.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138) ~[spring-tx-6.2.2.jar:6.2.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:165) ~[spring-data-jpa-3.4.2.jar:3.4.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) ~[spring-aop-6.2.2.jar:6.2.2] at jdk.proxy2/jdk.proxy2.$Proxy121.save(Unknown Source) ~[na:na] at kr.co.won.like.service.ArticleLikeService.likePessimisticLock(ArticleLikeService.java:80) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380) ~[spring-tx-6.2.2.jar:6.2.2] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.2.2.jar:6.2.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.2.jar:6.2.2] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:727) ~[spring-aop-6.2.2.jar:6.2.2] at kr.co.won.like.service.ArticleLikeService$$SpringCGLIB$$0.likePessimisticLock(<generated>) ~[main/:na] at kr.co.won.like.controller.ArticleLikeController.likePessimisticLockUsingArticleLikeUser(ArticleLikeController.java:39) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:257) ~[spring-web-6.2.2.jar:6.2.2] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190) ~[spring-web-6.2.2.jar:6.2.2] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.2.2.jar:6.2.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986) ~[spring-webmvc-6.2.2.jar:6.2.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891) ~[spring-webmvc-6.2.2.jar:6.2.2] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.2.2.jar:6.2.2] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088) ~[spring-webmvc-6.2.2.jar:6.2.2] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978) ~[spring-webmvc-6.2.2.jar:6.2.2] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.2.2.jar:6.2.2] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.2.2.jar:6.2.2]
-
미해결쉽게 설명하는 AWS 기초 강의
bastion server
베스쳔 서버에서 private 인스턴스 접근할 때 키페어를 복사해서 하는 방식으로 하셨는데 이 경우에도 iam role을 사용하는게 나을까요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
순서 정리해봤는데 이게 맞는건가요?
알려주신 내용에 덧붙여서 챗지피티한테도 물어보고 정리해봤습니다1. 호스트 파일에서 DNS 주소 찾기2. 없으면 OS & 브라우저의 DNS 캐시 확인3. 없으면 로컬 DNS 서버(예: ISP DNS) 요청4. 없으면 상위 DNS 서버 요청 (Root DNS까지 재귀적으로 요청)5. IP 주소 획득 후 라우팅 수행6. IP 주소 획득 후 TCP/IP 연결 (3-Way Handshake)7. 리다이렉트 수행 (필요한 경우)8. 브라우저 캐시 확인 (304 응답 처리)9. 프록시 서버 캐싱 확인 (CDN, 로컬 네트워크 캐시)10. 컨텐츠 다운로드 (HTML, CSS, JS, 이미지 등)11. 브라우저 렌더링 후 사용자에게 웹사이트 표시근데 알려주신 강의에는 브라우저 캐싱과 공유 캐싱이 DNS캐시보다 먼저 수행된다고 하니까 어떤게 맞는건지 모르겠네요