묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
이전 강의부터 궁금했던것 질문입니다.
뒤로가면 나오겠지 하고 계속넘어갔는데 나오지 않아서 추가 질문합니다. 설계와 구현에 나뉘어 인터페이스 / 구현체인 클래스로 나누고 실제 클라이언트 코드에서 코드 수정 없이 AppConfig파일만 바꾸면 코드의 교체를 할 수 있도록 예제가 구성이 되었는데요. 예를들어서 자동차 라는 인터페이스가 있고 전기차 , 석유차 라는 클래스가 있다고 했을 경우 스프링 코드를 사용하지 않고 자바로 했을때 자동차 car = new 석유차(); -> 자동차 car = new 전기차(); 이렇게 하면 코드가 바뀌게 되잖아요? 근데 타입이 자식클래스가 아닌 부모 인터페이스 일 경우 자동차 (부모) 인터페이스에 공통으로 있는 기능을 사용 할 수 있지만 전기차(자식) 클래스에만 있는 기능은 "car"를 통해 사용하지 못하는 것 아닌가요? 그럼에도 불구하고 자료형을 부모타입으로 하는 이유가 궁금합니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.35)
컨테이너와 가상머신의 트래픽 분산 관련 질문드립니다
안녕하세요 질문이있어서 글 남깁니다. 컨테이너 기반으로 서버 구축시에 쿠버네티스를 통하여 스케일 아웃이되어 트래픽 분산을 할 수 있으며 사용 리소스에 따라 컨테이너를 오케스트레이션하여 비용을 절감시킨다고 알고 있습니다. 그러나 생각보니 실질적으로 가상머신 내부의 컨테이너 기술을 사용하는거고 가상머신 자체를 스케일다운을 하지 않는 이상은 컨테이너 영역에서의 오케스트레이션으로 비용절감이 의미가 있을지 궁금합니다. (컨테이너 기반 서버의 수는 리소스에 따라 감소하나 실제 윗단 가상OS의 스케일 다운은 자동적으로 처리가 안되기 때문입니다.) 이에 관련하여 왜 컨테이너를 사용시 비용이 절감되는지 자세한 이유를 설명듣고 싶습니다. 감사합니다.
-
미해결모던 자바스크립트(ES6+) 기본
window 오브젝트에서의 함수표현식 호출
안녕하세요. const test = function () { console.log('test 입니다.') } 함수표현식으로 된 코드가 있습니다. window 오브젝트를 사용하여 접근을 하고 싶습니다. 개발자도구로 Scope에서 Script 에 적용되어 있는거 까진 확인했습니다. window 오브젝트를 통해 함수표현식 코드를 실행하려고 한 이유는 팝업창(자식창)에서 부모창에서 선언된 함수를 호출하려 합니다. ex) window.opener.test(); 만약 window 오브젝트에서 Script Scope를 접근할 수 없다면 팝업창(자식창)에서 부모창의 함수를 호출하는 방법을 알고 싶습니다.
-
해결됨안드로이드 앱 모의해킹/분석 시작하기 (With.IDA/JEB/Frida)
android_server 실행 오류 문의
안녕하세요. 강의 수강중에 arm 관련 환경 문제로 강사님 강의에서는 x86 이 아닌 arm 으로 so 파일 디버깅이 잘 되시는거같은데... 저는 android_server 실행이 잘 안되서 문의 드립니다. IDA 로 so 파일디버깅 하고자 하는데, 오류가 발생하여 실습 진행이 안되고 있습니다. 저의 실제 안드로이드 기기의 abi 는 armeabi-v7a 입니다. [ro.product.cpu.abi2]: [armeabi] [ro.product.cpu.abi]: [armeabi-v7a] 실제 기기에서 anroid_server 실행 시 아래와 같은 오류가 발생 합니다. shell@android:/ $ /data/local/tmp/android_server /data/local/tmp/android_server reloc_library[1307]: 14581 cannot locate '__open_2'... CANNOT LINK EXECUTABLE 255|shell@android:/ $ /data/local/tmp/android_server64 /data/local/tmp/android_server64 /system/bin/sh: /data/local/tmp/android_server64: not executable: magic 7F45 1|shell@android:/ $ /data/local/tmp/armlinux_server /data/local/tmp/armlinux_server /system/bin/sh: /data/local/tmp/armlinux_server: No such file or directory 에뮬레이터는 보통 x86 이기때문에 arm 으로 디버깅하기위한 방법을 찾고있습니다. 실제 기기에서 android_server 동작 방법 또는 에뮬레이터에서의 armeabi-v7a 설정 이 되면 될거같은데.... 제가 할 수 있는 조치사항 문의 드립니다.
-
미해결프리다(Frida)를 이용한 안드로이드 앱 모의해킹
프리다 실행 오류
삭제된 글입니다
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
temp 변수가 생성된 이유가 무엇인가요?
함수의 시그니처에서 반환값이 ObjectInfo인 것을 보고 컴파일러가 미리 값을 받아오기 위해 마련한 메모리 공간이라고 이해해도 되는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Controller DTO리턴 질문
안녕하세요. 영한님의 강좌에서는 컨트롤러에서 DTO를 리턴하는 방식을 사용하고 있더라구요. 그런데 인터넷을 찾아보니 ResponseEntity로 한번 감싸서 리턴하는 방식도 종종 사용하는 것 같습니다. (ResponseEntity를 사용하면 응답코드, 헤더등과 함께 좀 더 세밀하게 리턴값을 조절할 수 있기 때문인 것 같네요) 실무에서는 DTO를 그대로 반환하는 방식과 ResponseEntity로 감싸서 반환하는 방식 중 어떤 방식을 사용하나요? 감사합니다 :)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
API Versioning 관련 질문
안녕하세요. 추후 확장성을 위해 api versioning을 진행하려고 합니다. ``` /api/v1/ - MemberController - PostController ``` 위처럼 v1폴더 내부에 총 2가지의 컨트롤러가 있다고 가정을 할게요. 그리고 URL을 /api/v1/members|posts 로 맞추고 싶습니다. <질문> 1. 모든 URL에 /api라는 prefix를 붙이고 싶습니다. 따라서 application.yml에 server: servlet: context-path: /api 로 설정해두었는데 실무에서 사용하는 방법일까요? 2. 각 컨트롤러에 @RequestMapping(value = "/v1/members|posts") 로 설정해두었는데 버저닝을 이렇게 진행하는게 실무에서 사용하는 방법일까요? 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO 분리 관련 질문
안녕하세요. DTO 분리에 관한 질문입니다. MemberController에 대한 Request/Response DTO들을 만든다고 가정하겠습니다. 1. CreateMemberRequest, CreateMemberResponse, GetMemberRequest, GetMemberResponse를 각각의 클래스 파일로 분리해서 만드는 방법 2. MemberDto라는 클래스를 만들고 내부에 inner class로 CreateMemberRequest, CreateMemberResponse, GetMemberRequest, GetMemberResponse를 만드는 방법 이렇게 2가지를 생각하고 있는데요. 처음에는 1번으로 진행하려고 했지만 DTO하나를 클래스 파일 하나로 빼려다보니 나중에는 파일이 너무나도 많아질 것 같아 걱정이 됩니다. 그래서 2번처럼 inner class로 만들면 파일의 개수를 줄일 수 있을 것 같아서 고민중인데요. https://velog.io/@ausg/Spring-Boot%EC%97%90%EC%84%9C-%EA%B9%94%EB%81%94%ED%95%98%EA%B2%8C-DTO-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0 인터넷을 찾아보니 위 글 처럼 inner class로 활용하는 방법을 소개하는 글이 있더라구요. 궁금한점은, 실무에서는 DTO마다 별도의 클래스 파일로 분리하여 관리하는 방법과 inner class로 분리하는 방법 중 어떤 방법을 더 많이 사용하나요? 감사합니다 :)
-
미해결Zapier로 노코드 업무자동화, 게으르지만 일 잘하고픈 분들을 위한 최고의 방법
구글슬라이드로 작성하신 강의안도 공유 받을 수 있을까요?
/
-
미해결Zapier로 노코드 업무자동화, 게으르지만 일 잘하고픈 분들을 위한 최고의 방법
강의안 관련
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
useReducer와 redux-saga를 같이 사용하는 상황에 대한 질문입니다.
제로초님 안녕하세요. 그간 제로초님 강의를 들으면서 배운 것을 바탕으로 프로젝트를 진행 중인데요. 확실히 강의를 들으면서 배운 것이 많아서 예전에비해서 훨씬 익숙하게 프로젝트를 진행하고 있습니다. 그런데 하나 막히는 부분이 있어서 여쭤보려고 하는데요. 비동기처리가 필요한 부분이거나 여기저기서 참고하는 global state는 redux-saga로 처리를 하고, 컴포넌트들 중에 관리할 state가 좀 많고 복잡하지만 컴포넌트에서 한정해서 사용되는 것들은 useReducer를 사용해서 관리를 해보려는 생각으로 코드를 작성하고 있는데요. redux-saga의 경우 작성해야할 코드의 양이 많은 편이니 local state는 이런 식으로 분리를 하면 코드 양도 줄어들고 관리하기도 편해지지 않을까 하는 생각이었습니다. 혹시 현업에서도 이런 식으로 처리를 하는 편인가요? 그런데 문제는 이 컴포넌트가 직접 global state를 바꾸지는 않지만, global state에서 데이터를 가져와야 하는데요. useSelector hook으로 가져오려고 시도했더니 hook은 function component 안에서만 사용할 수 있어서 안된다고 하더라고요. 그래서 우선은 액션을 하나 만들어서 해당 컴포넌트의 useEffect 안에서 global 데이터를 가져와서 컴포넌트의 state로 설정해주게끔 하기는 했는데요. 괜찮은 방법인가요? 아니면 좀 더 괜찮은 방법이 있을까요? 좋은 강의와 또 매번 빠른 답변 감사합니다.
-
미해결프로젝트로 배우는 Vue.js 3
여기서 에러가 발생했네요. timeout is not defined no-undef
잘 따라왔고, 강의 내용대로 타이핑 했는데, 여기서 에러가 발생했습니다. error in ./src/store/index.js Module Error (from ./node_modules/eslint-loader/index.js): D:\work\vue3-project\src\store\index.js 33:13 error 'timeout' is not defined no-undef ✖ 1 problem (1 error, 0 warnings) 소스 첨부했으니, 좀 봐주세요. 선생님 https://gitlab.com/ramiaros/vue3-project.git
-
미해결웹 게임을 만들며 배우는 React에 TypeScript 적용하기
useReducer 사용시 dispatch 함수에 generic으로 action 타입을 넘겨줄 때 에러가 발생합니다.
제로초님 안녕하세요. TicTacToe 코드에서 질문이 있습니다. const TicTacToe = () => { const [state, dispatch] = useReducer<Reducer<ReducerState, ReducerActions>>(reducer, initialState); ... if (win) { dispatch<SetWinnerAction>({ type: SET_WINNER, winner: turn }); dispatch({ type: RESET_GAME}); } ... } 위의 코드에서 SET_WINNER action을 dispatch 하는 부분에서처럼 dispatch에 generic으로 SetWinnerAction 인터페이스를 줘서 표기를 확실히하고 싶은데, 저렇게 하면 SetWinnerAction 부분에서 타입에러가 나면서 "Expected 0 arguments, but got 1" 이라는 메시지가 뜹니다. 현재 웹스톰 사용 중인데, type definition을 따라가보면 useReducer가 function useReducer<R extends ReducerWithoutAction<any>, I>( reducer: R, initializerArg: I, initializer: (arg: I) => ReducerStateWithoutAction<R>): [ReducerStateWithoutAction<R>, DispatchWithoutAction]; 여기에 매칭이 되더라고요. vscode로 보면 function useReducer<R extends Reducer<any, any>>( reducer: R, initialState: ReducerState<R>, initializer?: undefined ): [ReducerState<R>, Dispatch<ReducerAction<R>>]; 여기에 매칭이 되기는 하는데 어쨌든 IDE에나 컴파일해봤을 때나 같은 에러가 뜹니다. 이건 어떤 식으로 해결할 수 있을까요? 감사합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
lock과 send에 관해서
안녕하세요, 이전 질문 글에 비슷한 내용의 질문이 있었는데 조금 다른 부분이 궁금해서 질문글을 올립니다. 1. Send를 할 때 lock을 건다. (현재 _pendingList가 비어있으면, RegisterSend() 호출하고 이게 끝나야 lock이 풀리게된다. ) 2. RegisterSend에서는 SendAsync를 호출하는데 true라면, 1에서 잡은 lock은 바로 풀릴것이다. 그런데 만약 false가 되면 3으로 넘어간다. 3. OnSendCompleted 에서 lock을 걸려고 한다. 👉 이 때 2번에서 SendAsync가 false가 되어 3으로 넘어온 경우라면, 1에서 잡은 lock이 아직 안풀렸을 것 같은 데 잡을 수 있나? 3번의 질문 내용이 궁금합니다. (1번에서 lock을 잡은 상태로 2번을 호출했고, 2에서 SendAsync의 return 값이 false가 되어 3으로 넘어올 때가 궁금합니다.) 제가 비동기 프로그래밍이 익숙하지 않다보니 이해가 부족해서 이런 질문을 올리게 되었습니다.😁 (제가 아직 뒷쪽 강의를 다 듣지 않았는데, 뒤 쪽에 혹시 이런 설명이 나올까요..?) 감사합니다(__) public void Send(byte[] sendBuff) { lock(_lock) { _sendQueue.Enqueue(sendBuff); if (_pendingList.Count == 0) // 대기중인게 하나도 없으니 해라. RegisterSend(); } } void RegisterSend() { // _pendingList가 비어있을 때만 여기로 들어온다. //_pendingList.Clear(); //_sendArgs.SetBuffer(buff, 0, buff.Length); while(_sendQueue.Count > 0) { byte[] buff = _sendQueue.Dequeue(); _pendingList.Add(new ArraySegment<byte>(buff, 0, buff.Length)); } _sendArgs.BufferList = _pendingList; bool pending = _socket.SendAsync(_sendArgs); if (pending == false) { OnSendCompleted(null, _sendArgs); } } void OnSendCompleted(object sender, SocketAsyncEventArgs args) { // 예약한 pendingList 완료됨 lock(_lock) { if (args.BytesTransferred > 0 && args.SocketError == SocketError.Success) { try { _sendArgs.BufferList = null; _pendingList.Clear(); if(_sendQueue.Count > 0) // 보내는동안 누가 또 Queue에 쌓았다. { RegisterSend(); } } catch (Exception e) { Console.WriteLine($"OnSendCompleted Fail {e}"); } } else { Disconnect(); } } }
-
미해결우디의 포토샵 강좌
Lasso tool 동시에 스페이스바
선생님 저는 스페이스바를 클릭하니 사진 전체가 움직입니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DEVICE매크로 관련 질문있습니다.
#define DEVICE에서 GetDevice가 _device를 가져오는것인데 왜 두 번 가져오는건지 이해가 잘 가지 않습니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
android emulator 문제
android VDC에서 가상장치 만들고 실행하려하면 Haxm을 요구합니다만.. Haxm의 경우에 생각보다 설치하는게 복잡합니다. bios 설정도 변경해야 하는거 같고.. 다른 방법은 없는지 궁금하네요.
-
미해결프론트엔드 개발자를 위한 웹팩
1개 이상의 엔트리를 적용했을때
안녕하세요^^ entry강의에서 entry에 1개 이상을 적어줄수 있다고 하셨는데, 이 경우에는 output 설정을 어떻게 해야 할까요? ------------------------------------------------- entry: { login: './src/LoginView.js', main: './src/MainView.js' } ------------------------------------------------ output: { filename: 'bundle.js' } ------------------------------------------------ [name].bundle.js [id[.bundle.js 이런식으로 output에 옵션을 주면 자동으로 두개이상의 entry를 처리해주는 방식인가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO의 위치에 관하여
Version 4 까지의 최적화를 하면서 Dto의 위치가 repository 까지 갔는데 DTO의 위치는 상황에 맞게 자유롭게 두는게 괜찮을까요?