묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
크기에 대해 질문이 있습니다
페이징의 최소단위가 4KB로 알려주셨습니다 그럼 클래스의 변수가 아무리 많다고 해도 1000Byte가 넘기 힘들 것 같습니다 그상태에서 최소 페이징단위인 4094Byte를 계속 할당하는 방식으로 하면 말씀하신대로 존재하지 않는 메모리는 쉽게 잡을 수 있지만 메모리 낭비가 너무 심한 것 같습니다 제가 계산을 잘못한 것인지 아니면 생각하는 방향성이 잘못된것인지 궁금합니다.
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
추가 질문입니다..!!
-제가 작성한 vs code에서 Go live를 누르면 해당 웹페이지의 주소가 http://127.0.0.1:5500/ 이런식으로 뜨는데 휴대폰 브라우저에 입력하면 네트워크 서버에 연결할 수 없다고 뜨는데 왜 그런건가요..?ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1629_곱셈 문제의도 질문
오버플로우 안 발생시키려고 unsigned long long을 선언했고 10의 0승부터 m승까지 하나씩 더해서 나머지 연산자 쓰는 것과 같은 논리로 숫자의 크기에 무관하도록 string 클래스에 의존해서 1씩 추가했습니다. 그렇게 해서 stoi가 있으니 stoull이 있을 거 같아서 사용해보니 긱스포긱스 ide에 써보니 정답이 나오더라고요. 근데 백준에서는 런타임 out of range가 뜨더라고요. 제 코드의 문제를 모르겠습니다. #include <bits/stdc++.h> using namespace std; typedef unsigned long long ull; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ull a; string s =""; while(cin>>a){ s.clear(); while(1){ s.append("1"); if(stoull(s)%a==0) break; } cout << s.size() << endl; } return 0; }
-
해결됨쉬우면서 강력한 유니티(Unity) 에디터 프로그래밍
질문드립니다.
타 Editor 훔쳐오기 강의에서 다른 오브젝트를 클릭했을때 에디터 화면에 이벤트가 일어나야 새로 클릭한 오브젝트가 반영이 되는데 실시간으로 반영을 하려면 어떻게 하면 될까요? Repaint() 함수를 넣었더니 메모리 누수가 일어나는지 메모리 사용량이 하늘을 찌르네요...;
-
미해결PHP 7+ 프로그래밍: 객체지향
Cannot load Xdebug - it was already loaded 에 대한 에러
안녕하세요 선생님 정말 강의 잘 듣고 있는데요 composer를 설치하는데.. 문제가 생겨서 그냥 아주 간단하게 설치를 하면 될거 같았는데 여기서도 xdebug 때문에 설치가 안되는거 같은데.. 조금이라도 힌트를 얻고 가고 싶어서 글을 적게 되었습니다 혹시 이게 무슨 문제인지 조언을 구할수있을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP API 데이터 전송
안녕하세요. 스프링 기본편에서 서버 - 클라이언트 간 데이터 전달을 다음과 같이 정리해 주셨는데요. 클라이언트 -> 서버 1. Request parameter 2. HTML FORM 3. HTTP MESSAGE BODY 서버 -> 클라이언트 1. HTML 정적리소스 2. VIEW 템플릿 3. HTTP MESSAGE BODY 이번 챕터에서 배우는 HTTP API는 위의 6가지랑 비교하면 어디에 해당하는건가요?? 정리하자면, 서버 - 클라이언트 간에 데이터 전송하는 방식을 구체적으로는 알겠는데, HTTP API라는게 어디에 해당하는건지 잘 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
helloController 질문입니다!
안녕하세요! 8:40 부터 강사님께서 파워포인트로 설명을 해주시는데, 이 때, helloController를 먼저 찾는 이유가 스프링이 url이름을 보고 무슨 컨트롤러 패키지 디렉토리를 찾는지 알아서 인식을 하는것 인가요?? 예를 들어, a로직을 수행하는 aController라는 패키지를 만들고 b로직 수행하는 bController 패키지를 만든다음 url을 따라 어떤 패키지를 찾는지 스프링이 결정하는 방식인가요, 아니면 보통 컨트롤러 패키지는 하나로 만드는데, 단순히 저희 예제가 helloController여서 그렇게 표기를 하신건가요? 감사합니다!
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
requirements.txt 파일을 찾을수 없다고 뜹니다!
안녕하세요! 다름이 아니라 제가 강의파일을 다운 받구 압축을 풀었는데 첫 강의부터 다음 사진처럼 파일을 찾을 수 없다고 뜨네요! requirements 파일을 주피터 노트북이 있는 폴더에 같이 넣으라 하셔서 강의자료 폴더에 같이 넣었는데 dir명령어로 안됩니다ㅜㅜ 어떤 폴더에 넣어야 실행이 될까요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
yml 파일이 여러개일경우
docker-compose.yml docker-compose_nginx.yml docker-compose_mysql.yml docker-compose_tomcat.yml 이런식으로 yml파일이 여러개일경우에도 그냥 docker-compose up 하면 다 실행되는건가요? up down을 개별적으로도 할 수 있나여?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build 오류
아래화면 처럼 뜹니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
파일을 못 가져옵니다
안녕하세요. 강좌에 Play함수의 매개변수로 파일경로를 지정하면 읽어와야 하는데 읽지를 못하고 있습니다. 소스코드는 강의에 나온 그대로이고, 확장자도 .wav 붙여서 해봐도 안됩니다.. 혹시나 스크립트 위치 기준으로 불러들이는가 해서 Play 함수와 관련된 스크립트 파일을 Assets에 옮겨서도 실행해봤는데 안됩니다. ㅈ
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build 문제
아래 화면 처럼 뜹니다
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
댓글 삭제 기능 구현 질문
안녕하세요 강의를 열심히 듣고있는 수강생입니다! 다름이 아니라 댓글 불러오기 강의를 수강한 이후 게시판 삭제 기능처럼 댓글도 똑같이 자기가 작성한 댓글을 삭제하도록 구현해보고 있는데 난관에 봉착하여 질문드리게 됐습니다.. binding.deleteIcon.setOnClickListener { itemClickListener.onClick(it, position) } val myUid = FBAuth.getUid() val writerUid = items[position].commentUid if(myUid.equals(writerUid)){ binding.deleteIcon.isVisible = true } else{ } } } interface OnItemClickListener { fun onClick(v: View, position: Int) } // (3) 외부에서 클릭 시 이벤트 설정 fun setItemClickListener(onItemClickListener: OnItemClickListener) { this.itemClickListener = onItemClickListener } // (4) setItemClickListener로 설정한 함수 실행 private lateinit var itemClickListener : OnItemClickListener} 우선 commentrvadpater에서 댓글아이템에 내가 작성한 댓글에 uid가 같으면 삭제 아이콘이 보이게끔 하는걸 뷰홀더에 적용시켰고, 성공했습니다. commentAdapter.setItemClickListener(object: CommentRVAdapter.OnItemClickListener{ override fun onClick(v: View, position: Int) { FBRef.commentRef.child(key).removeValue() Toast.makeText(this@BoardInsideActivity,"댓글 삭제 완료", Toast.LENGTH_SHORT).show() }}) 리사이클러뷰 클릭 이벤트를 boardinsideactivity 즉, 게시판 내부를 구현해주는 액티비티에 구현하여 삭제아이콘을 누르면 댓글이 삭제가 완료되고 토스트메시지까지 띄워졌습니다. 하지만 문제가 생겼습니다.. 위에서 삭제 아이콘을 누르면 게시판 내에 댓글이 모두 삭제됩니다. 리얼타임베이스 시점에서 보면 게시판 key값 내에 파란 부분만 삭제하고 싶은데 빨간부분 모두 삭제됩니다 ..ㅠ commentAdapter.setItemClickListener(object: CommentRVAdapter.OnItemClickListener{ override fun onClick(v: View, position: Int) { FBRef.commentRef.child(key).removeValue() Toast.makeText(this@BoardInsideActivity,"댓글 삭제 완료", Toast.LENGTH_SHORT).show() }}) 아마 이 코드에서 child에 있는 key값을 지워주는게 아닌 다른 값을 지워줘야 되는게 문제인거 같은데 child 안에 무슨 값을 넣어줘야될지 잘 모르겠습니다... class BoardInsideActivity : AppCompatActivity() { private lateinit var binding: ActivityBoardInsideBinding private lateinit var key : String private val TAG = BoardInsideActivity::class.java.simpleName private val CommentDataList = mutableListOf<CommentModel>() private lateinit var commentAdapter:CommentRVAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityBoardInsideBinding.inflate(layoutInflater) setContentView(binding.root) binding.boardSettingIcon.setOnClickListener { showDialog() } key = intent.getStringExtra("key").toString() getBoardData(key) getImageData(key) binding.commentBtn.setOnClickListener { insertComment(key) } getCommentData(key) commentAdapter = CommentRVAdapter(this,CommentDataList) binding.commentRV.adapter = commentAdapter binding.commentRV.layoutManager= LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) binding.commentRV.addItemDecoration(DividerItemDecoration(this, DividerItemDecoration.VERTICAL)) commentAdapter.setItemClickListener(object: CommentRVAdapter.OnItemClickListener{ override fun onClick(v: View, position: Int) { FBRef.commentRef.child(key).removeValue() Toast.makeText(this@BoardInsideActivity,"댓글 삭제 완료", Toast.LENGTH_SHORT).show() } }) } fun getCommentData(key:String){ val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { CommentDataList.clear() for(dataModel in dataSnapshot.children) { Log.d(TAG,dataModel.toString()) dataModel.key val item = dataModel.getValue(CommentModel::class.java) CommentDataList.add(item!!) } commentAdapter.notifyDataSetChanged() } override fun onCancelled(databaseError: DatabaseError) { // Getting Post failed, log a message Log.w(TAG, "loadPost:onCancelled", databaseError.toException()) } } FBRef.commentRef.child(key).addValueEventListener(postListener) } fun insertComment(key :String) { FBRef .commentRef .child(key) .push() .setValue( CommentModel( binding.commentArea.text.toString(), FBAuth.getTime(), FBAuth.getUid() ) ) Toast.makeText(this,"입력 완료", Toast.LENGTH_SHORT).show() binding.commentArea.setText("") } private fun showDialog(){ val mDialogView = LayoutInflater.from(this).inflate(R.layout.custom_dialog, null) val mBuilder = AlertDialog.Builder(this) .setView(mDialogView) .setTitle("게시글 수정/삭제") val alertDialog = mBuilder.show() alertDialog.findViewById<Button>(R.id.editBtn)?.setOnClickListener { val intent = Intent(this, BoardEditActivity::class.java) intent.putExtra("key",key) startActivity(intent) alertDialog.cancel() } alertDialog.findViewById<Button>(R.id.removeBtn)?.setOnClickListener { FBRef.boardRef.child(key).removeValue() Toast.makeText(this,"삭제 완료",Toast.LENGTH_SHORT).show() finish() } } private fun getImageData(key: String){ // Reference to an image file in Cloud Storage val storageReference = Firebase.storage.reference.child(key + ".png") // ImageView in your Activity val imageViewFromFB = binding.getImageArea storageReference.downloadUrl.addOnCompleteListener(OnCompleteListener { task-> if(task.isSuccessful){ Glide.with(this) .load(task.result) .into(imageViewFromFB) } else{ binding.getImageArea.isVisible=false } }) } private fun getBoardData(key: String) { val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { try { val dataModel = dataSnapshot.getValue(BoardModel::class.java) dataModel!!.title?.let { Log.d(TAG, it) } binding.titleArea.text = dataModel!!.title binding.textArea.text = dataModel!!.content binding.timeArea.text = dataModel!!.time binding.uidArea.text = dataModel!!.uid val myUid = FBAuth.getUid() val writerUid = dataModel.uid if(myUid.equals(writerUid)){ binding.boardSettingIcon.isVisible = true } else{ } } catch (e:Exception){ Log.d(TAG,"삭제완료") } } override fun onCancelled(databaseError: DatabaseError) { // Getting Post failed, log a message Log.w(TAG, "loadPost:onCancelled", databaseError.toException()) } } FBRef.boardRef.child(key).addValueEventListener(postListener) }} 이건 전체 코드입니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
실무적인 구성에 대한 질문입니다.
실무적으로 궁금한 게 있습니다. 일반적으로 대부분의 서비스들은 admin을 제공하는데요. react.js 를 이용해 실제 서비스용 frontend를 구현하고 nestjs를 이용해서 api backend를 만들고 두 번째 frontend 로 admin을 만들어서 2개의 프론트엔드(서비스용, 어드민용)를 동일한 backend api를 공유하여 사용하는지. 아니면 1개의 frontend에서 서비스용과 어드민용을 같이 만들고 backend는 1개를 두는지. 같은 backend를 사용할 경우 서비스용에 전체 기능을 가진 api를 사용하는 것은 혹시 위험하지는 않을지. adminbro같은 경우에는 자동화된 툴로 admin을 간편하게 사용할 수는 있지만, 실제 프로젝트에 적용하기에는 문제가 있는 것은 아닌지. 업무효율성을 고려하여 admin역시 만드는 것이 좋아 보이긴 합니다. 즉 정리하면 service용 reactjs, admin용 reactjs, backend 1 이렇게 구성이 될까요? (총3개) 아니면 서비스용 frontend, backend, 관리자용 frontend, backend 이렇게 구성하는 것이 좋을지. (총4개)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
save() 메소드 내에서 result 정의할 때 질문이 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Member result = repository.findById(member.getId()).get(); 이 구문만으로 result 객체와 member 객체가 같아지는 것이 이해가 잘 가질 않습니다. 저 구문에서 result 객체를 생성함과 동시에 result 의 id 를 member 의 id 와 같게하는 것은 이해가 갔습니다. 하지만 그것만으로 result 객체와 member 객체가 isEqualTo 메소드에서 같은 값이 나오는 것이 이해가 가질 않습니다. 혹시 제가 저 구문을 잘 못 이해하고 있는 건가요? 답변 부탁드립니다..!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P번 질문
코드 main 함수 부분 중에 int ans = 0;//조합 3개=3중 for문 for (int i = 0; i < v.size(); i++) { for (int j = 0; j < i; j++) { for (int k = 0; k < j; k++) { a[v[i].first][v[i].second] = a[v[j].first][v[j].second] = a[v[k].first][v[k].second] = 1;//벽 생성// ans = max(ans, solve()); a[v[i].first][v[i].second] = a[v[j].first][v[j].second] = a[v[k].first][v[k].second] = 0;//벽 해제-->초기화// } } } cout << ans; for문에서 i의 범위 설정은 알겠는데, j와 k의 범위 설정이 약간 이해가 가지 않아서 질문드립니다~~
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 레포 권한 요청 드립니다.
깃헙 레포 권한 요청 드립니다. 인프런 아이디 : yg1206.lee@gmail.com(구글연동) 인프런 이메일 : yg1206.lee@gmail.com 깃헙 아이디 : yg1206.lee@gmail.com 깃헙 Username : yoongeon1206
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
다른 개발자와의 네트워킹 하는 법 질문
안녕하세요? 정수님 작년에 개발자를 되기 전에 정수님 강의를 먼저 보고 개발자가 되어야겠다고 결심을 하고 공부를 시작했었는데, 이제 부트캠프에서 프로젝트를 끝나고 다음주부터 스타트업에 인턴으로 나가게 되었습니다. 이렇게 다시 질문을 남기게 된 이유는 다름이 아니라 개발자로써 일하면서 네트워킹, 인맥을 구축하는 법이 궁금해서 입니다. 비록 제가 아직 개발자로 일을 해보지 않아서 잘은 모르겠지만, 제가 이전에 근무하던 다른 업계 등에서 업계 사람들 간의 네트워킹이 중요 했었는데, 개발자도 그러한 네트워킹이 중요하지 않을까라는 생각을 합니다. 그런데 전 비전공자 출신으로 주변에 아는 개발자도 거의 없고 학교 선후배도 없습니다. 그래서 지금 제가 가진 아는 분이라면 부트캠프 출신들의 동기나 그곳의 멘토들 밖에 없습니다. 정수님 같은 경우에는 비전공자 출신 개발자로 어떻게 개발자들간의 네트워킹을 하였고 어떻게 그러한 네트워킹을 유지해나가는 지 궁금해서 이렇게 질문글을 남기게 됩니다. 언제나 친절한 답변을 남겨주셔서 감사합니다. 좋을 하루 보내세요
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한 요청
안녕하세요. 깃헙 권한 요청 드릴게요 - 인프런 아이디 : yg1206.lee@gmail.com (구글연동) - 인프런 이메일 : yg1206.lee@gmail.com - 깃헙 아이디 : yg1206.lee@gmail.com - 깃헙 Username : yoongeon1206
-
미해결대세는 쿠버네티스 (초급~중급편)
NAT 관련 질문
강의에서 Pod D에서 Service IP를 이용해 Pod B에 접근하는 부분입니다. 그림에서 Node2 의 NAT 기능에 의해 Node1에 등록되어 있는 Service-Pod Ip Transration이 일어나는 것을 알 수 있는데요. 이전 강의에서 kube-proxy가 이를 iptables등에 등록을 해주는 과정을 설명해주실 때 1. Service가 새로 생성 2. apiserver가 Endpoint Object 생성을 감지해 Service-Pod IP 매핑을 kube-proxy에 등록 하는 과정이 있었는데 강의 그림으로는 생성된 서비스가 있는 Node의 kube-proxy로만 Service-Pod IP 매핑이 등록되는 것으로 이해했습니다. 만약 이 가정이 옳다면, 맨 위 그림에서 Pod D가 있는 Node2에서 Node1의 Service-Pod IP 매핑정보를 알 수 없을텐데 어떻게 알 수 있었을까요? 2번 과정이 혹시 모든 Worker Node에 전파되는 것일까요? 감사합니다.