풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
섹션 9-1 강의 4분 47초 docker build --tag myweb -f Dockerfile-ubuntu . 실행 후 docker run -d -p 9999:80 --name mywebserver --rm myweb 해당 명령 실행하면 웹페이지도 뜨지 않고... 컨테이너도 생성되지 않습니다. 프로그램 재 실행 해 봐도 동일한 결과가 나오는데, 어떻게 해결 가능할까요?
뒤에 내용 다 듣고 질문 드리는게 맞을꺼 같긴한데.. 사진상에서 공인 DNS 233.12.42.56에 사용자가 들어가면 -> 내부 아이피에서 로드밸런서가 있고 그 안에 여러개의 마스터 노드과 연결되어 있고 -> 또 다른 (?) gateway라고 이해하였습니다, 단순 gateway가 아닌 로드밸런서도 가능한(?) gateway이고 그 기능이 인글레스이고 인글레스에서 각가의 파드들의 IP를 직접 호출 하는게 맞을까요?
안녕하세요 🙂 5-4- 예제. 애플리케이션 객체 추가하기 강의내용 관련 질문이 있습니다. (DAO) 관련 예제 소스( https://github.com/eternity-oop/object-basic-05-04 ) 내에 보면 service 패키지에는 xxxDAO 인터페이스가 존재하고 persistence 패키지 내에는 xxxDAO 의 구현체 (xxxJbcDAO 클래스)들이 존재하는것을 확인하였는데요 이렇게 service 패키지 및 persistence 패키지 로 분리한것이 의존성을 제거하기 위함이라는 내용을 다른 질문내용으로 확인하였습니다 ( https://www.inflearn.com/community/questions/1355997 ) 관련하여 이렇게 분리함으로써 service 패키지 내의 서비스 클래스는 DAO 의 역할만 확인하도록 하고 이에 대한 내부 구현은 신경안쓰겠다 라는것으로 이해하면 될까요 ? (역할 책임 분리)
모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
안녕하세요. 올려주신 강의를 모두 수강하였습니다. 강의 내용이 저에게 많이 도움이 되어 해당 내용을 개인 블로그에 업로드하고 싶은데 괜찮을지 문의드립니다. 추가적으로 파일 업로드 고급 공격 기법을 정리한 PART 2는 언제 업로드 되는지 확인 부탁드립니다. 답변주시면 감사합니다.
강의 내용에 보면, char szBuffer[8] 통해 8바이트 자동 할당되었는데, \0이 마지막에 붙어 1바이트 초과하여 ndata 스택 메모리를 침범한다는 말씀을 하셨습니다. 그렇다면, 문자열을 N 만큼 입력받고 싶다면 항상 N+1의 메모리 공간을 할당해야할까요? 스택, 힙 두 경우에 모두 해당되는지 궁금합니다.
안녕하세요 강사님 궁금한게 있어서 질문 드립니다. 제가 구현하고 싶은 부분은 리그오브 레전드의 스마트키 기능과 같은 부분입니다. 제가 이해한 것이 맞다면 강의 안에서는 Select로 비동기적 처리를 할 때 추가 입력을 고정된 입력값(마우스 클릭)을 받아서 Select의 비동기적 처리를 구현한것으로 이해했습니다. 만약 제가 롤의 SmartKey 기능과 같은 눌렀다가 키를 뗄때(스킬이 등록된 키마다 받아야할 입력이 달라짐)의 입력으로 비동기적 처리를 구현하고 싶다면 어떤식으로 구현해야 할까요? 제가 고민해본 방법은 다음과 같습니다. Skill에 ReleaseInput()이라는 함수를 만든다. 그리고 TargetSelectionAction에 똑같은 이름의 ReleaseInput() 함수를 만든다. ReleaseInput() 함수는 SkillSlot의 바인딩된 키 값을 기준으로 키를 뗄 때 호출된다. Skill의 RealeseInput()호출되면 Skill -> TargetSearch -> TargetSelectionAction 의 순서로 TargetSelection에 접근하여 TargetSelection의 추가로 만든 releaseInput()함수를 호출한다. TargetSelectionAction에 releaseInputOccur이벤트를 만들고 ReleaseInput()함수로 이 이벤트를 Invoke해준다. "키를 뗌" 액션을 Select의 비동기 방식에서 추가 입력값으로 이용하고 싶다면 releaseInputOccur이벤트에 추가적인 함수를 구독하여 기능을 구현한다. 이런 식으로 생각해봤는데. 제가 아직 이 TargetSearcher 시스템에 이해도가 부족해서, 구현해주신 TargetSearcher 의 흐름을 망치지 않고 추가 기능을 만든 것 인지 아직 헷갈립니다. 그래서 강사님께서 SmartKey방식을 구현하신다면 어떤 방식으로 구현하실지 궁금해서 여쭤봅니다.
(py3) C:\Users\bbsec>pip install frida==12.6.11 Collecting frida==12.6.11 Using cached frida-12.6.11.tar.gz (6.6 kB) Preparing metadata ( setup.py ) ... done Building wheels for collected packages: frida Building wheel for frida ( setup.py ) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [74 lines of output] running bdist_wheel running build running build_py creating build\ lib.win -amd64-cpython-312\frida copying frida\ core.py -> build\ lib.win -amd64-cpython-312\frida copying frida\__init__.py -> build\ lib.win -amd64-cpython-312\frida running build_ext querying pypi for available prebuilds network query failed looking for prebuilt extension in home directory, i.e. C:\Users\bbsec/frida-12.6.11-py3.12-win-amd64.egg no prebuilt extension found in home directory Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 34, in <module> File "C:\Users\bbsec\AppData\Local\Temp\pip-install-a7nfbzkm\frida_1f1fcba5021e4d38ba236f76104d2b97\ setup.py ", line 144, in <module> setup( File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\__init__.py", line 117, in setup return distutils.core.setup(**attrs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ core.py ", line 183, in setup return run_commands(dist) ^^^^^^^^^^^^^^^^^^ File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ core.py ", line 199, in run_commands dist.run _commands() File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ dist.py ", line 954, in run_commands self.run _command(cmd) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\ dist.py ", line 950, in run_command super().run_command(command) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ dist.py ", line 973, in run_command cmd_ obj.run () File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\command\bdist_ wheel.py ", line 398, in run self.run _command("build") File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ cmd.py ", line 316, in run_command self.distribution.run _command(command) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\ dist.py ", line 950, in run_command super().run_command(command) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ dist.py ", line 973, in run_command cmd_ obj.run () File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\command\ build.py ", line 135, in run self.run _command(cmd_name) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ cmd.py ", line 316, in run_command self.distribution.run _command(command) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\ dist.py ", line 950, in run_command super().run_command(command) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\ dist.py ", line 973, in run_command cmd_ obj.run () File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\command\build_ ext.py ", line 98, in run build ext.run (self) File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\command\build_ ext.py ", line 359, in run self.build _extensions() File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\command\build_ ext.py ", line 476, in build_extensions self._build_extensions_serial() File "C:\Users\bbsec\anaconda3\envs\py3\Lib\site-packages\setuptools\_distutils\command\build_ ext.py ", line 502, in build extensions_serial self.build _extension(ext) File "C:\Users\bbsec\AppData\Local\Temp\pip-install-a7nfbzkm\frida_1f1fcba5021e4d38ba236f76104d2b97\ setup.py ", line 130, in build_extension raise network_error File "C:\Users\bbsec\AppData\Local\Temp\pip-install-a7nfbzkm\frida_1f1fcba5021e4d38ba236f76104d2b97\ setup.py ", line 89, in build_extension urls = client.release_urls("frida", frida_version) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bbsec\anaconda3\envs\py3\Lib\xmlrpc\ client.py ", line 1122, in call return self.__send(self.__name, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bbsec\anaconda3\envs\py3\Lib\xmlrpc\ client.py ", line 1461, in __request response = self.__transport.request( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bbsec\AppData\Local\Temp\pip-install-a7nfbzkm\frida_1f1fcba5021e4d38ba236f76104d2b97\ setup.py ", line 56, in request return self.parse_response(fp) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\bbsec\anaconda3\envs\py3\Lib\xmlrpc\ client.py ", line 1351, in parse_response return u.close() ^^^^^^^^^ File "C:\Users\bbsec\anaconda3\envs\py3\Lib\xmlrpc\ client.py ", line 668, in close raise Fault(**self._stack[0]) xmlrpc.client.Fault: <Fault -32500: 'RuntimeError: PyPI no longer supports the XMLRPC package_releases method. Use JSON or Simple API instead. See https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods for more information.'> [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for frida Running setup.py clean for frida Failed to build frida ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (frida) 오류내용입니다. 최신버전 프리다랑 강의에서 사용하는 프리다의 버전차이로 인해 오류가 발생하여 강의에 맞는 프리다 버전을 설치하려고 하는데 오류가 발생합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 설명하신 것과 비슷하게 코드를 작성을 했고 테스트 케이스도 통과를 해서 제출을 했더니 그냥 광탈을 하네요... 일단 강의 보고 제출을 했지만 왜 이 코드가 틀렸는지 모르겠어서 질문드립니다.. 실수를 한건지 그냥 논리 자체가 틀린건지 모르겠네요.. 무식한 질문인 거 알지만 너무 모르겠어서 질문드립니다ㅜㅜ #include <bits/stdc++.h> using namespace std; int N, M, T, ret, x, d, k; int ty, tx; int dy[] = { -1, 0, 1, 0 }; int dx[] = { 0, 1, 0, -1 }; int a[54][54], visited[54][54]; void rotate(int* arr, int n) { int temp[54] = { 0 }; for (int i = 0; i < M; i++) { temp[(i + n) % M] = arr[i]; } memcpy(arr, temp, sizeof(temp)); return; } void rotate_r(int* arr, int n) { int temp[54] = { 0 }; for (int i = 0; i < M; i++) { temp[(i - n + M) % M] = arr[i]; } memcpy(arr, temp, sizeof(temp)); return; } bool bfs(int sy, int sx, int num) { visited[sy][sx] = 1; queue<pair<int, int>> q; q.push({ sy, sx }); bool flag = 0; while (q.size()) { tie(ty, tx) = q.front(); q.pop(); for (int i = 0; i < 4; i++) { int ny = ty + dy[i]; int nx = tx + dx[i]; if (ny < 0 || ny >= N ||visited[ny][nx]) continue; if (nx < 0 || nx >= M) { //인덱스를 이동해야함.. 원형이기 때문에 나가지 않음 // 0 -> 4, 4 -> 0으로 바뀜 if (nx < 0) { nx = M-1; } else if (nx >= M) { nx = 0; } } if (a[ny][nx] != num) continue; visited[ny][nx] = 1; q.push({ ny, nx }); a[ty][tx] = 0; a[ny][nx] = 0; flag = 1; } } return flag; } int main() { cin >> N >> M >> T; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { cin >> a[i][j]; } } while (T--) { cin >> x >> d >> k; if (d == 0) { rotate(a[x - 1], k); while (2 * x <= N) { int temp = x * 2; rotate(a[temp - 1], k); x++; } } else { rotate_r(a[x - 1], k); while (2 * x <= N) { int temp = x * 2; rotate_r(a[temp - 1], k); x++; } } memset(visited, 0, sizeof(visited)); int sum = 0; int cnt = 0; bool flag = 0; bool check = 0; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { sum += a[i][j]; if (a[i][j] != 0) { cnt++; } if (!visited[i][j] && a[i][j] != 0) { flag = bfs(i, j, a[i][j]); //한번이라도 지운다면 } if (flag) { check = 1; } } } if (!check) { for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { double aver = (double)sum / (double)cnt; if (a[i][j] != 0 && (double)a[i][j] > aver) { a[i][j] = a[i][j] - 1; } else if (a[i][j] != 0 && (double)a[i][j] < aver) { a[i][j] = a[i][j] + 1; } } } } //a[0][0]; } //a[0][0]; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { ret += a[i][j]; } } cout << ret; }
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 여기서 처음처럼 20이 출력되도록 초기화?하려면 어떻게 해야 하나요? # 20 = 10 + 10 box = box + box box
(* nodejs 설치를 https://nodejs.org/en/download/ 에 들어가서 Prebuilt Installer 메뉴에서 v22.11.0(LTS)를 설치하였습니다.) 안녕하세요, 수고가 많으십니다. 강의 잘 듣고 공부하다 모르는 부분이 있어 에러사항은 아래에 요약하여 적었습니다. 일단 react 시작하기 강의를 듣고 있던 중 처음 부분에서 vscode 터미널에서 명령어 npm install -g create-react-app 입력 후 아래 에러가 발생하여 어떻게 해야 해결 할 수 있는지 답을 알고 싶어서 글을 쓰게 되었습니다. 1.첫번째로 vscode 실행 후 npm install -g create-react-app 명령어 입력하니 에러 요약: 경로를 확인하라는 문제가 발생하였습니다. 첫번쨰 에러 발생 한 후 vscode를 종료하고 다시 시작하니 또 다시 이번엔 새로운 에러가 발생 하였습니다. 에러 요약: 자세한 내용은 마이크로소프트 링크 주소 참조하라는 메시지 에러가 발생하였습니다. 현재까지 2가지 에러가 순서대로 나타내고 있는데요, 어떻게 하면 해당 사항을 해결 할 수 있을까요? 상세하고 자세한 답변 부탁드립니다. 감사합니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요. 노트북에 기존에 쓰던 안드로이드 스튜디오 설정이 남아있어서 삭제를 하고 다시 설치했는데도 계속 기존 설정대로 나와서 질문드립니다. 제어판에서 삭제한 것은 물론이고, Appdata에서 android 삭제하고 관련 파일들도 전부 삭제했는데 뭐가 남아있는 건지 궁금합니다..