묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실습코드를 개인 깃헙에 퍼블릭으로 올려도 되나요..?
공부한 흔적을 남기려고 깃헙에 올리고 있었는데 괜찮은건지 여쭤봤어야 했는데 지금이라도 여쭤봅니다..강의 링크 올리고 하면 괜찮을까요?
-
미해결파이썬(Python) 기초부터 실무까지 part.1
터틀이 안불러와줘요
똑같이 적었는데 안된다고 뜨는데요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
PRG 패턴에 대해서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]PRG 패턴을 통해서 POST 요청에 대해서 응답 시 302 Redirect location을 통해서 브라우저의 마지막 요청을 Get으로 변경함을 통해서 중복 주문을 방지한다고 이해했습니다.Q1. 만일 POST 요청을 응답 받기 전에 여러 번 진행 하는 방법도 있을 것 같은데 이때는 어떻게 처리해야 할까요?Q1-1 서버측에서 해당 처리가 가능할까요?Q1-2 클라이언트 측에서 PRG 처리를 막는 방법의 예시가 무엇이 있을까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
매개변수와 인수
구글에 매개변수와 인수를 검색하면 이렇게 나오는데 영상속에서는 파라미터를 인수라고 하는데 파이썬 에서는 둘의 차이가 별로 없는 것 인가요?
-
미해결만들면서 배우는 리액트 : 기초
cat.map 만들때 질문이요
const cats=[CAT1,CAT2,CAT3]; <ul className="favorites"> {cats.map(cat => <CatItem img={cat} />)} </ul> 여기서 {cats.map(cat => <CatItem img={cat} />)}부분에 cats의 map에서 리턴할 부분이 <CatItem img={cat} /> 이거라는건 알겠는데 갑자기 cat이 왜 나온거에요 cat 이 의미하는 게 뭐예요?
-
미해결[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 메소드에서 같은 값이 나오는 것이 이해가 가질 않습니다. 혹시 제가 저 구문을 잘 못 이해하고 있는 건가요? 답변 부탁드립니다..!!