묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue.js 시작하기 - Age of Vue.js
이벤트 전달에 관하여
$ emit을 이용하여 하위 컴포넌트에서 상위 컴포넌트로 이벤트를 전달할 수 있다고 말씀해주셨습니다. 그렇다면 반대로 전달될 수는 없는건가요? 상위 컴포넌트에서는 하위 컴포넌트로 이벤트를 전달하여 함수를 실행하도록 유도할 수는 없는건가요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
deprecated 워닝
실제 프로젝트 작업할 때는 deprecated 나는 라이브러리 관리는 어떻게 하나요?
-
미해결하울의 안드로이드 인스타그램 클론 만들기
상세화면 챕터 후 로그인 시 튕깁니다. 누구든 부탁드립니다. 도와주세요.
storage에 업로드하는 강의까지 아무 오류없이 로그인도 잘되고 잘됐습니다. 근데 이번 강의를 모두 작성한 후 로그인시 화면이 튕깁니다. 코드에 오류는 전혀 없고 3일동안 프로젝트랑 파이어베이스랑 전부 다 5번 지우고 다시 똑같이 따라써서 한글자도 하나의 설정도 틀린 것이 없습니다. 또한 하울님의 github 코드를 복붙해도 완전히 똑같은 오류가 납니다. Migrate to AndroidX , clean, rebuild, restart 백번했습니다. MainActivity.kt에 Oncreate에서 상세화면 페이지를 부르는 이 코드를 지우면 로그인을 해도 화면이 튕기지 않습니다. bottom_navigation.selectedItemId = R.id.action_home Run 창에 E/AndroidRuntime: FATAL EXCEPTION: grpc-default-executor-0 Process: com.example.jbstagram_try1, PID: 30258 java.lang.AssertionError at io.grpc.internal.DnsNameResolver.getResourceResolver(DnsNameResolver.java:536) at io.grpc.internal.DnsNameResolver.access$500(DnsNameResolver.java:60) at io.grpc.internal.DnsNameResolver$1.run(DnsNameResolver.java:211) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764) 이 오류가 뜨면서 로그인시 메인화면이 뜨자마자 튕기며 제 DetailViewFragment.kt의 코드는 이렇습니다. package com.example.jbstagram_try1.navigationimport android.os.Bundleimport android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport androidx.fragment.app.Fragmentimport androidx.recyclerview.widget.LinearLayoutManagerimport androidx.recyclerview.widget.RecyclerViewimport com.bumptech.glide.Glideimport com.example.jbstagram_try1.Rimport com.example.jbstagram_try1.navigation.model.ContentDTOimport com.google.firebase.firestore.FirebaseFirestoreimport kotlinx.android.synthetic.main.item_detail.view.*import kotlinx.android.synthetic.main.fragment_detail.view.*//class DetailViewFragment : Fragment(){ var firestore : FirebaseFirestore? = null override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { var view = LayoutInflater.from(activity).inflate(R.layout.fragment_detail,container,false) firestore = FirebaseFirestore.getInstance() view.detailviewfragment_recyclerview.adapter = DetailViewRecyclerViewAdapter() view.detailviewfragment_recyclerview.layoutManager = LinearLayoutManager(activity) return view } inner class DetailViewRecyclerViewAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>(){ var contentDTOs : ArrayList<ContentDTO> = arrayListOf() var contentUidList : ArrayList<String> = arrayListOf() init { firestore?.collection("images")?.orderBy("timestamp")?.addSnapshotListener { querySnapshot, firebaseFirestoreException -> contentDTOs.clear() contentUidList.clear() for (snapshot in querySnapshot!!.documents){ var item = snapshot.toObject(ContentDTO::class.java) contentDTOs.add(item!!) contentUidList.add(snapshot.id) } notifyDataSetChanged() } } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { var view = LayoutInflater.from(parent.context).inflate(R.layout.item_detail,parent,false) return CustomViewHolder(view) } inner class CustomViewHolder(view: View) : RecyclerView.ViewHolder(view) { } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { var viewholder = (holder as CustomViewHolder).itemView viewholder.detailviewitem_profile_textview.text = contentDTOs!![position].userId Glide.with(holder.itemView.context).load(contentDTOs!![position].imageUrl).into(viewholder.detailviewitem_imageview_content) viewholder.detailviewitem_explain_textview.text = contentDTOs!![position].explain viewholder.detailviewitem_favoritecounter_textview.text = "Likes" + contentDTOs!![position].favoriteCount Glide.with(holder.itemView.context).load(contentDTOs!![position].imageUrl).into(viewholder.detailviewitem_profile_image) } override fun getItemCount(): Int { return contentDTOs.size } }} 이건 MainActivity.kt 코드입니다. package com.example.jbstagram_try1import android.content.Intentimport android.content.pm.PackageManagerimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.view.MenuItemimport androidx.core.app.ActivityCompatimport androidx.core.content.ContextCompatimport com.example.jbstagram_try1.navigation.*import com.example.jbstagram_try1.Rimport com.example.jbstagram_try1.navigation.*import com.google.android.material.bottomnavigation.BottomNavigationViewimport kotlinx.android.synthetic.main.activity_main.*import java.util.jar.Manifestclass MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemSelectedListener { override fun onNavigationItemSelected(p0: MenuItem): Boolean { when (p0.itemId) { R.id.action_home -> { var detailViewFragment = DetailViewFragment() supportFragmentManager.beginTransaction() .replace(R.id.main_content, detailViewFragment).commit() return true } R.id.action_search -> { var gridFragment = GridFragment() supportFragmentManager.beginTransaction().replace(R.id.main_content, gridFragment) .commit() return true } R.id.action_add_photo -> { if (ContextCompat.checkSelfPermission( this, android.Manifest.permission.READ_EXTERNAL_STORAGE ) == PackageManager.PERMISSION_GRANTED ) { startActivity(Intent(this, AddPhotoActivity::class.java)) } return true } R.id.action_favorite_alarm -> { var alarmFragment = AlarmFragment() supportFragmentManager.beginTransaction().replace(R.id.main_content, alarmFragment) .commit() return true } R.id.action_account -> { var userFragment = UserFragment() supportFragmentManager.beginTransaction().replace(R.id.main_content, userFragment) .commit() return true } } return false } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) bottom_navigation.setOnNavigationItemSelectedListener(this) ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE), 1) bottom_navigation.selectedItemId = R.id.action_home }}
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
안녕하세요. 저의 앞으로의 로드맵에대해 질문이있습니다.
좋은 양질의 강의를 제공해주셔서 정말 너무 감사합니다. 로드맵을 다시 수정하고있는데, 많은 도움이 되고있습니다. 저는 '자바와파이썬활용 빅데이터 개발자과정' 국비지원학원을 다니고있는데요. 강의에서 말씀해주신데로 너무 진도가 빨라서.. 다 흡수를 못하고 그냥 넘어가는 느낌이에요. 아시다피시 자바,jsp&servlet,html, ajax json, js 그리고 스프링 rest api 등 (자바와 jsp&servlet 말고는 정말 다시 다 공부해야될 것같습니다.) 저는 하루에 시간을 학원 9시간 뺀다고하면 적어도 5시간정도는 따로 복습을 한다던가 하고있는데요. 그냥 훑고 지나가는 느낌이고 안채워지는느낌이라서요... 현재 과정이 팀프로젝트 포함 2달쫌 넘게 남았거든요. 그래서 지금부터라도 알려주신 깃허브 포트폴리오 관리와 , 코딩테스트를 준비해서 취업전까지 꾸준히 하고, (여기서 중요) 원래계획은 국비과정이 끝나고, 2-3 달 정도 더 투자해서 배웠던거 정리도 할겸 개인프로젝트2-3개 만들어보면서 혼자 공부하고싶은데요. (취업했는데도 회사가 원하는 기능 구현에 너무 못하거나 민폐가될까봐 혹은 취업을 못할까봐 하는마음이 커서요. ) 예를들어 면접을 볼 때 학원끝나고 2-3달동안 뭐하셨어요? 하면.. 위에처럼 말하면 괜찮을까요? 아니면 , 그냥 바로 준비가 다 될수 없다는걸 아니까. 바로 취업 준비하는게 더 좋을까요? (저는 우선은 2-3달정도는 혼자 공부하고싶은 마음이 더 큽니다.) 혹시 이부분에 대해서는 어떻게 생각하시는지 조언을 구하고싶습니다. 머릿속이 복잡해서 너무 구구절절 늘어놓았네요. 바쁘실텐데 읽어주셔서 정말 감사합니다.
-
미해결Vue.js 시작하기 - Age of Vue.js
왜 hello world가 안나오는건가요?
(사진)
-
미해결Redux vs MobX (둘 다 배우자!)
함수형 액션 만드는거 질문이요 !
원래 액션 보통, export function updateCartInfo(cartInfo) { return { type: UPDATE_CART_INFO, payload: cartInfo } } 이런식으로 만들어서 쓰다가, 액션에서 axios사용하면서, 자연스럽게 async와 await를 붙여서 사용했었거든요, export async function loginUser(dataToSubmit) { const request = await axios.post('/api/user/login', dataToSubmit) .then(res => res.data ); return { type: LOGIN_USER, payload: request } } 그런데 이 수업을 듣고 의문이 생긴게 만약 제가 async와 await를 사용하지 않았었다면 함수형으로 만들었어야 비동기 처리가 되는건가요? 아니면 지금도 async와 await는 사용하고 있지만 내부적으로는 제대로 디스패치가 안되고 있는 걸까요? 설정은 const createStoreWithMiddleware = applyMiddleware( promiseMiddleware, ReduxThunk )(createStore); ReactDOM.render( <Provider store = {createStoreWithMiddleware(Reducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() )} > <BrowserRouter> <App /> </BrowserRouter> </Provider>, document.getElementById('root') ); 이렇게 해서 사용하고 있습니다. 저도 지금 머릿속이 막 헷갈려서 질문 내용을 잘 정리했는지 모르겠는데 ... 그러니까.. 1. 객체로 만들어 보낼땐 아무 문제 없음 ok 2. 그런데 액션안에서 axios를 쓰면서 비동기 고민을 하게 됨 3.ReduxThunk는 함수형을 비동기 처리해주는 미들웨어인데 나는 여태까지 객체를 리턴하고 있었음 4.그런데 나름 async와 await는 붙여서 사용함, 그러니 문제 없는 것인가???????? 5.만약 async와 await가 없었다면 함수형으로 만들었어야 문제없이 잘 데이터들이 들어가는것인가???? 질문이 두서없지만 답변 부탁드립니다...ㅜ_ㅜ
-
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
강사님과 다르게 풀어봤는데 이 코드로 풀 수 있는 방법이 있을까요?
삭제된 글입니다
-
미해결시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
2-1강 vagrantfile 오타 & 설치 안 되는 부분 확인 부탁드립니다.
vagrantfile에서 cent1: dailog -> dialog로 수정 필요cent2: ip주소 10.18.1.92로 수정 필요.ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ cent1의 vagrantfile 실행시 nginx가 설치가 안되서 sudo dnf -y install stress sudo dnf -y install nginx // 이 부분 한줄 추가했습니다.cent2의 마리아디비 설치가 안 되서 #sudo dnf -y install MariaDB-server MariaDB-client MariaDB-backup --disablerepo=AppStream sudo dnf -y install mariadb-server --disablerepo=AppStream sudo dnf -y install mariadb-client --disablerepo=AppStream sudo dnf -y install mariadb-backup --disablerepo=AppStream이렇게 변경해 설치했습니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
제로초님
제가 제로초님 강의 들으면서 개인 포트폴리오(블로그형태)를 같이 진행하고있는데요 제로초님 다음달에 slack 클론코딩 강좌를 진행하신다고 들었습니다. slack 클론 코딩강좌에서는 백단을 nest typeorm mysql 쓰신다고하셔서 저도 개인 포폴의 백단은 그 강좌로 공부해서 nest typeorm으로 하려고 하는데요 앞단은 이 노드버드 강좌에 나온것처럼 react next redux styled-component antd로 되어있습니다. 백단을 노드버드 강좌와 다르게 express sequelize로 하지 않아도 크게 무리나 문제가 없을까요? 이번 강좌에서 redux로 데이터 관리할 때 sequelize 때문에 initialState에 대소문자를 구별한다고 하셔서 질문드립니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
int ch[10] 과 char a[101]
ch[10] 은 왜 int 이고 a[101]은 char 인가요 char a[101]은 한칸한칸에 숫자 넣으니 char 인건 이해가 가는데 int ch[10] 을 char ch[10] 해도 돌아가긴 돌아가는데 제가 너무 이상한거를 파고들며 공부하는건가요..?
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
for 문을 이용한 구구단 작성 문의 - 흐름이 이해가 가지 않습니다.
Chapter 4-2에서 for 문을 이용한 구구단 작성하는 법 이 아래 처럼 나왔습니다. . for i in range (2, 10): for j in range (1, 10): print('{:4d}'.format(i*j), end = '') print() . 그런데 마지막 줄 print() 이 있고 없고가 차이가 큽니다.. 처음 세 줄만 돌리면 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 . . . print() 추가 하면 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 이렇게 나옵니다.. 왜 저렇게 되는지 알 수 있을까요...? . . 질문 하나더 print()을 들여쓰기 해서 for i in range (2, 10): for j in range (1, 10): print('{:4d}'.format(i*j), end = '') print() 이렇게 해서 돌리면 결과가 이렇게 나옵니다. . 2 4 6 8 10 12 14 16 왜 이렇게 되는지 잘 와닿지가 않습니다.. 설명 부탁드려도 될까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Game 클래스내에서 null관련 궁금합니다
Game 클래스 내에서 player와 monster를 끌고 왔을때 private Player player = null; 이라고 하셨었는데 제가 공부를 제대로 못해서 그런건지 ㅠ 정확하게 어떠한 이유에서 null 로 player의 모든 데이터가 Game 클래스로 넘어가는지 확실하게 이해가 되지않았습니다
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
api 요청 상태
pipe와 같은 함수 합성으로 프로그램을 짤때, api 요청중, 실패(에러) 핸들링은 대략적으로 어떤 식으로 하는지 궁금합니다. (로딩중 ui 표시 등)
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
eslint 에러가 발생하지 않는 이유에 대해서 여쭤봅니다.
<template> <div id="app"> Hello </div> </template> <script> export default { methods: { fetchData() { console.log('HI') console.log('G') } } } </script> <style> #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style> App running at: - Local: http://localhost:8080/ - Network: http://192.168.1.104:8080/ Note that the development build is not optimized. To create a production build, run npm run build. WAIT Compiling... 1:15:50 PM 98% after emitting CopyPlugin DONE Compiled successfully in 117ms 1:15:50 PM App running at: - Local: http://localhost:8080/ - Network: http://192.168.1.104:8080/ 캡틴선생님 안녕하세요. 타입스크립트 학생입니다. 영상 5:12 초 에러가 발생하지 않습니다.ㅠㅠ 왜일까요...?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
이동 동기화들을 보면서 생각한게 있는데요.
만약에 애니메이션 이나 따로 동기화 하는 부분이라면 애니메이션 동기화를 예를들면, 파라미터 데이터를 하나씩 보내는거 보다는 한 캐릭터에 모든 파라미터 데이터를 모았다가 한번에 서버로 보내는게 최고에 방법인가요?
-
미해결포토샵 기본기 하루 5분, 3주 만에 끝내기
아이패드
아이패드로는 어떤어플 깔아야하나요
-
미해결코어 자바스크립트
안녕하세요. 질문드립니다.
안녕하세요. 강사님. 좋은 퀄리티의 강의 제공해주심에 정말 감사드립니다. 강의 들으면서 정리한 제 공부노트를 블로그와 깃허브에 게시하고 싶은데 그렇게 해도 될까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
15분 근처부터 Session을 매개변수로 받는 부분
class PacketHandler { public static void PlayerInfoReqHandler(PacketSession session, IPacket packet) { PlayerInfoReq p = packet as PlayerInfoReq; Console.WriteLine($"PlayerInfoReq : {p.playerId} : {p.name}"); foreach (PlayerInfoReq.Skill skill in p.skills) Console.WriteLine($"Skill({skill.id})({skill.level})({skill.duration})"); } } 위 함수에서 Session을 받아오지만 직접 사용은 하지 않는 이유가 뭔가요? 그냥 공통 인터페이스를 만들어놓은건가요? 그리고 굳이 IPacket으로 받아와서 PlayerInfoReq로 캐스팅하는 부분이 잘 이해가 안가는데 캐스팅 해주는 이유를 알고싶습니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Controller와 @RestController 차이 질문
안녕하세요, @Controller와 @RestController 차이가 궁금해서 질문을 남깁니다. 구글에 찾아보니 @Controller의 경우, View를 반환하기 위한 Controller 개발 시 사용하고, @RestController의 경우, Data(Json format)를 반환하기 위해 사용한다고 하는데요 이번 강의에서 강사님께서 사용하신 예제에는 timeleaf를 통해 서버사이드에서 view를 렌더링하기 때문에 view를 반환하기 위해 @Controller를 사용한 것이 맞을까요?(UI.MODEL 이용) 만약 vue.js를 통해 프론트개발을 한다거나 단순히 data를 반환해야하는 api개발 시에는 @Restcontroller(혹은 @Controller + @ResponseBody 사용)를 사용해 json형식의 data를 반환해 개발해야는 것이 맞는지 궁금합니다.
-
풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
안녕하세요
삭제된 글입니다