묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
expo 관련 질문
npm start를 하면 홈페이지가 열리는게 아니라 terminal 창에 뜹니다 ( expo 버전이 올라가면서 ui를 제공안한다는거 같은데 페이지로 볼려면 expo 다운을 무슨 버전으로 해야하는건가요? )아래 처럼 터미널 창에 나옵니다Starting project at C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobileStarting Metro Bundler▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ ▄▄▄▄▄ ██▀▀▄▄▀██ █ ▄▄▄▄▄ ██ █ █ █▀███ ▀▀ ██ █ █ ██ █▄▄▄█ █▄▄█▀▀█▄█▀█ █▄▄▄█ ██▄▄▄▄▄▄▄█▄█ ▀▄█ █▄█▄▄▄▄▄▄▄██ ▄▀█▀▄▄▄▀ █▄▀ █▀ ▀██ ▄▀▀███▀▀ █▀▄▄▄█▀▄█▀█▀▄▄ ▀ ▄█▄ ██ ▄▄▄█ ▄█ ▄█▄▄█ █ ▄▄██▀ ███ █ █▀▄█▀█▀ ▄█▀ █ █▀▄ ██▄██▄█▄▄█ ▄▀▄▀▄▀█ ▄▄▄ ▄▄██ ▄▄▄▄▄ █ ▄▄▀▄▄█ █▄█ ██▀▄██ █ █ ██▀██▄▄█▄▄▄ ▄ ▄ ██ █▄▄▄█ █▀▀▀ ▄██▀▀▀█▀██▄█ ██▄▄▄▄▄▄▄█▄█▄█▄▄▄▄▄▄█▄▄███▄█› Metro waiting on exp://10.55.6.199:19000› Scan the QR code above with Expo Go (Android) or the Camera app (iOS)› Press a │ open Android› Press w │ open web› Press r │ reload app› Press m │ toggle menu› Press ? │ show all commands 여기서 w를 눌러도 Logs for your project will appear below. Press Ctrl+C to exit.Starting Webpack on port 19006 in development mode.‼ 「wds」: transportMode is an experimental option, meaning its usage could potentially change without warningError: no parsers registered for: "]올인원-"Error: no parsers registered for: "]올인원-" at parse (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\snapdragon\lib\parser.js:473:15) at Parser.parse (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\snapdragon\lib\parser.js:477:24) at Snapdragon.parse (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\snapdragon\index.js:122:28) at Snapdragon.<anonymous> (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\braces\lib\braces.js:40:45) at Braces.parse (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\braces\lib\braces.js:66:26) at Braces.expand (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\braces\lib\braces.js:87:18) at create (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\braces\index.js:142:15) at memoize (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\braces\index.js:298:13) at Function.braces.create (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\braces\index.js:165:10) at Function.braces.expand (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\braces\index.js:81:17) at getDirParts (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\chokidar\index.js:435:31) at FSWatcher._getWatchHelpers (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\chokidar\index.js:442:18) at FSWatcher.NodeFsHandler._addToNodeFs (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\chokidar\lib\nodefs-handler.js:460:17) at FSWatcher.<anonymous> (C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\webpack-dev-server\node_modules\chokidar\index.js:650:12) at C:\Users\양규헌\Desktop\[인프런]올인원-개발클래스[그랩마켓]\grab-market-mobile\node_modules\async-each\index.js:16:7 at Array.forEach (<anonymous>) 이러한 에러가 나옵니다. 어떻게 해결하면 될까요?
-
해결됨[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
startup.bat하면 에러가 발생하는데 해결을 못하겠어요
cmd에서 mysql-5.6.21 폴더까지가서startup.bat 하면nnoDB: Operating system error number 87 in a file operation.[ERROR] InnoDB: File .\ib_logfile0: 'aio read' returned OS error 187. Cannot continue operation에러가 나와서 구글링 해봤는데 해결을 못했어요 ㅜㅜ결국 포맷까지했는데도 해결이 안돼서 질문 드립니다
-
미해결HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌
새로운 모듈 새로운 라이브러리
안녕하세요 좋은강의 잘 수강하고 있습니다.실제 아두이노를 활용한 센서 라이브러리들이 많은데 이러한 센서들을 STM 보드에 활용하고자 한다면 어디에서 라이브러리들을 찾아서 사용해야 될까요? 만약 STM용 라이브러리가 없다면 아두이노용 라이브러리를 활용해서 STM용으로 직접 만들어야 될까요??센서 제조사 별로 활용 예제가 없을수도 있나요??
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
removeItem(todoItem.item) 질문
localStorage.removeItem(todoItem.item);여기서 todoItem.item은 obj객체에서 item만 삭제 한다는 뜻 으로 이해했는데 localStorage.removeItem(todoItem);이렇게 해야 obj객체 전부가 삭제 된다는거니까 이렇게 해야하는거 아닌가요?이건 또 안먹네요... 그리고 v-bind:key="todoItem.item여기서 왜 키를 .item으로 해야 하는지....
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
jwt 질문드립니다.
안녕하십니까 선생님강의 정말 알차고 재밌게 잘 듣고 있습니다. jwt 궁금증이 생겨 질문드려요사용자가 로그인 시response.addHeader("token", token); response.addHeader("userId", userDetails.getUserId());토큰을 발급 받게 되고, 토큰을 받고 나면 로그인한 사용자는 계속 다른 페이지 접근시 토큰을 계속 들고 다른 페이지에 이동되게 되나요? 토큰의 만료 시점은 저희가 정해놓은 시간에 따라서 결정되는건가요??아님 세션처럼 생명주기가 있는건가요??
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
tomcat 실행 관련 질문드립니다.
servlet 처음 프로젝트 생성 중 war 파일로 설정하여 프로젝트를 생성하여실행 하였는데, 그래들 설정에서 Build and run using 과 Run tests using을 그래들이 아닌 인텔리 제이로설정을 바꾼 후 run 을 시킬 경우 실행 후 바로 종료 가 되어 버리는 Process finished with exit code 0에러가 발생합니다.그래들로 설정시 톰캣 실행 후 로컬 포트로 정상 작동 되지만 정지 시킬 경우 해당 에러가 발생 됩니다.오류 해결을 위해 이것 저것 테스트 해보았는데 이전에 들었던 강의에서 jar로 프로젝트를 생성 했을 경우 인텔리 제이로 설정할 경우 오류 없이 잘 실행 되었어서 servlet 프로젝트 생성 시 프로젝트 생성 조건을 war에서 jar로 바꿔 보았더니 오류는 해결 되었습니다. 하지만 jsp 사용을 위해 war로 프로젝트를 생성해야 하는데 war 일 때 발생되는 오류 해결방법 질문 드립니다! 감사합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
혹시 _data안에 T()이게 뭔지 알려주실수 있나요?
T() 템플릿뒤에 붙은 ()이게 어떤 기능을 하나요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
댓글 불러오기 파트 진행 중인데 앱이 다운되네요 ㅠㅠ
댓글 불러오기 부분 하고 있는데2022-09-18 18:50:08.110 7539-7539/com.example.mysololife E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.mysololife, PID: 7539com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.mysololife.comment.CommentModelat com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:436)at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80)at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:203)at com.example.mysololife.board.BoardInsideActivity$getCommentData$postListener$1.onDataChange(BoardInsideActivity.kt:77)at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)at android.os.Handler.handleCallback(Handler.java:942)at android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loopOnce(Looper.java:201)at android.os.Looper.loop(Looper.java:288)at android.app.ActivityThread.main(ActivityThread.java:7898)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 이러한 오류 메시지 뜨면서 앱이 죽습니다 코드는 board inside 부분은 package com.example.mysololife.board import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.widget.Button import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.view.isVisible import androidx.databinding.DataBindingUtil import com.bumptech.glide.Glide import com.example.mysololife.R import com.example.mysololife.comment.CommentLVAdapter import com.example.mysololife.comment.CommentModel import com.example.mysololife.databinding.ActivityBoardInsideBinding import com.example.mysololife.utils.FBAuth import com.example.mysololife.utils.FBRef import com.google.android.gms.tasks.OnCompleteListener import com.google.firebase.database.DataSnapshot import com.google.firebase.database.DatabaseError import com.google.firebase.database.ValueEventListener import com.google.firebase.ktx.Firebase import com.google.firebase.storage.ktx.storage import java.lang.Exception class BoardInsideActivity : AppCompatActivity() { private val commentDataList = mutableListOf<CommentModel>() private lateinit var binding : ActivityBoardInsideBinding private lateinit var key : String private lateinit var commentAdapter : CommentLVAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this,R.layout.activity_board_inside) // val title = intent.getStringExtra("title").toString() // val content = intent.getStringExtra("content").toString() // val time = intent.getStringExtra("time").toString() // binding.titleArea.text = title // binding.textArea.text = content // binding.timeArea.text = time key = intent.getStringExtra("key").toString() getBoardData(key) getImageData(key) binding.boardSetting.setOnClickListener { showDialog() } binding.commentBtn.setOnClickListener { insertComment(key) } getCommentData(key) commentAdapter = CommentLVAdapter(commentDataList) binding.commentLV.adapter = commentAdapter } fun getCommentData(key: String){ val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { commentDataList.clear() for (dataModel in dataSnapshot.children) { 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("TalkFragment", "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() ) ) Toast.makeText(this,"댓글 입력 완료",Toast.LENGTH_LONG).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.findViewById<Button>(R.id.removeBtn)?.setOnClickListener { FBRef.boardRef.child(key).removeValue() Toast.makeText(this,"삭제 완료",Toast.LENGTH_LONG).show() finish() } } private fun getImageData(key:String){ val storageReference = Firebase.storage.reference.child(key) val imageViewFB = binding.getImageArea storageReference.downloadUrl.addOnCompleteListener(OnCompleteListener { task -> if (task.isSuccessful) { Glide.with(this) .load(task.result) .into(imageViewFB) } 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) binding.titleArea.text = dataModel!!.title binding.textArea.text = dataModel!!.content binding.timeArea.text = dataModel!!.time val myUid = FBAuth.getUid() val writeUid = dataModel.uid if (myUid == writeUid){ binding.boardSetting.isVisible = true } else { } } catch (e: Exception){ } } override fun onCancelled(databaseError: DatabaseError) { // Getting Post failed, log a message Log.w("TalkFragment", "loadPost:onCancelled", databaseError.toException()) } } FBRef.boardRef.child(key).addValueEventListener(postListener) } } 이렇게 짰습니다 오류메세지가 가르키는 부분이 for (dataModel in dataSnapshot.children) { 이쪽--> val item = dataModel.getValue(CommentModel::class.java) commentDataList.add(item!!) } commentAdapter.notifyDataSetChanged() }이던데 뭐가 문제일까요? 추가로 commentLVAdapter는 package com.example.mysololife.comment import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter import android.widget.LinearLayout import android.widget.TextView import com.example.mysololife.R import com.example.mysololife.utils.FBAuth class CommentLVAdapter(val commentList : MutableList<CommentModel>) : BaseAdapter () { override fun getCount(): Int { return commentList.size } override fun getItem(p0: Int): Any { return commentList[p0] } override fun getItemId(p0: Int): Long { return p0.toLong() } override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { var view = convertView if (view == null) { view = LayoutInflater.from(parent?.context) .inflate(R.layout.board_list_item, parent, false) } val title = view?.findViewById<TextView>(R.id.titleArea) val time = view?.findViewById<TextView>(R.id.timeArea) title!!.text = commentList[position].commentTitle time!!.text = commentList[position].commentCreatedTime return view!! } }이렇게 모델은 package com.example.mysololife.comment data class CommentModel ( val commentTitle : String = "", val commentCreatedTime : String = "" )이렇게 했습니다
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
dos 명령어
숫자 맞추기 게임 강의에서import osos.system("cls")를 실행해도 터미널이 초기화되지 않습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
윈도우 새계정
윈도우 영문이름으로 새계정만들었는데 cmd실행하면 계속 users에 본래있던 한글계정이 떠요 이거 어떻게바꾸나요??
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
typeOrm connection Error 질문입니다.
위와 같이 Error: Access denied for user 'root'@'localhost' (using password: YES)라는 에러가 발생해서 찾아본 결과입니다.비밀번호 잘못 입력? -> 다시 입력해서 해보았으나 같은 결과https://github.com/ZeroCho/nodejs-book/issues/45 해당 부분을 참고 하였으나 같은 에러가 발생합니다.process.env를 인식 못하나? -> 직접 입력하여도 같은 에러가 발생하였습니다.cmd로 mysql, mysql 워크밴치 들어갈 때 이상 없이 들어갑니다.어떤 해결방법을 더 시도해 볼 수 있을까요? 알려주시면 감사하겠습니다.아래는 app.module 입니다.
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
sync/async fetcher 크롤링 전체가 안됩니다.
안녕하세요.강의 04-1, 04-2 코드를 그대로 실행시키면 전체 소스 크롤링이 안됩니다.따로 설정해줘야하는 코드가 있을까요?환경은 윈도우10, Python 3.9.1 입니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Process finished with exit code 0
안녕하세요 이번 강의를 통해 인텔리제이를 처음 접합니다.View 환경설정 강의를 듣는 중에 run을 하니 어느 순간부터 제목과 같은 문구가 뜨고실행이 바로 종료됩니다.구글링을 해서 어떤 어노테이션도 넣어보고 했지만 해결이 안되어서 여쭤봅니다..
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build파일 생성 + 디버깅 관련 질문
수고많으십니다!강의 정주행을 모두 마쳤는데, 여전히 혼자서 뭘 만드는 능력이 턱없이 부족해서...다시 정주행 하고 있습니다.강의를 단순히 따라하는게 아니라, 처음부터 끝까지 직접 만든다고 생각하고 임하고 있는데 리눅스는 도저히 익숙해지질 않네요 ㅠㅠ강의에서 컴파일 및 실행할 때 ./build를 사용하는데, 이건 이전에 다른 학생분께서 맛비님께 질문한 내용을 보고 build파일을 작성했지만...문제가 있어서 질문드립니다.build파일은 확장자 없이 vi (이름) 으로 작성 후 안에 작성하였고, 원본 build와 비교하여 이상 없는것을 확인하였습니다. 실행할 수 없는 파일이길래 chmod +x를 사용해 build를 초록색 실행파일로 만들었지만/bin/bash: ./build: Permission denied 라는 오류가 나타나는데...어떻게 해야할까요?강의를 보고 따라하면 컴파일 에러가 없으니 문제가 안되었는데, 직접 코드를 짜면 실수하기도 하죠. 코드에 문제가 있을 경우 이를 디버깅 하는 작업을 해보려 하는데, 컴파일 오류메시지도 기존에 사용하던 modelsim과 너무 다르고 시뮬레이션 할때도 매번 vivado를 재실행해야하는 번거로움이 있습니다. 어떻게 해결하면 좋을까요?답변해주시면 감사하겠습니다!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 test 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]회원가입 test를 실행했는데 이런 오류가 발생했습니다.강사님과 똑같이 입력했는데 무엇이 문제일까요??
-
해결됨WPF (.NET Core, C#, 자막제공)
궁금해서 여쭤봅니다
<Label x:Name = "MyLabel"에서 x가 무슨 뜻인가요? xmlns:Name이라고 써도 되나요? 또 x:Content라고 적을 수도 있나요?listView1.Item과 listView.ItemSource는 무슨 차이가 있나요?setter가 뭔가요? html의 div같은 존재입니까? 또 <setter.Value Property="">로 한꺼번에 적어주면 안되나요?Trigger 에러가 나는데요. 제가 Net Core 3.1을 써서 난 에러일까요? 에러 원인을 모르겠어요.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
유닛테스트
안녕하세요 강의에서 유닛테스트를 보고 다른 것들도 혼자 해보려고 하였는데여책 챕터 10에 있는 p462쪽에 middlewares.js 함수를 유닛테스트 해봤는데 이런 경우에는 어떤 식으로 해야할지 모르겠습니다..헤더로 받아오는것은 어떻게 해야할지 모르고요,, 혹시 좀 힌트를 얻을 수 있을까요>?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
content의 세부항목 관계 질문드리겠습니다.
안녕하세요 제로초님 현재 개인프로젝트를 하면서 노드버드 강의를 듣고있습니다.저는 post의 구조를 아래와 같이 구성했습니다.title : 글 제목desc : 글 설명image: 이미지content : 글본문 (ingredient, recipes, tips 3가지로 구성)tags : 태그 이러한 경우에 content를 구성하는 ingredient, recipes, tips를 개별 테이블로 분리하는게 좋을까요?아니면 post라는 테이블에 위의 필드를 모두 포함하는게 좋을까요?DB를 이렇게 배워본적이 없어서 질문드리겠습니다.바쁘시겠지만 답변해주시면 감사하겠습니다.
-
미해결데이터 분석 SQL Fundamentals
조인 실습 코드 글이 깨집니다..
ASCII 유니코드 문자를 사용하지 않는다고 합니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
mysql workbench에서 데이터 수정 질문
안녕하세요 제로초님 강의 정말 잘 듣고있습니다.강의를 들으면서 아래와 같이 contene라는 하나의 컬럼으로 구성된 post.js의 db를 생성했습니다.const DataTypes = require('sequelize'); const { Model } = DataTypes; module.exports = class Post extends Model { static init(sequelize) { return super.init({ content: { type: DataTypes.TEXT, allowNull: false, }, }, { modelName: 'Post', tableName: 'posts', charset: 'utf8mb4', collate: 'utf8mb4_general_ci', sequelize, }); } static associate(db) { db.Post.belongsTo(db.User); db.Post.belongsToMany(db.Hashtag, { through: 'PostHashtag' }); db.Post.hasMany(db.Comment); db.Post.hasMany(db.Image); db.Post.belongsToMany(db.User, { through: 'Like', as: 'Likers' }) } };다음 상황에서 다음과 같은 질문이 있습니다.이후에 content컬럼을 삭제하고 다른 컬럼을 추가하고 싶어서 workbench에서 sql문을 작성해서 삭제했는데 시퀄라이즈의 코드는 그대로 냅둬야하는건가요? 또한 workbench에서 작성하여 변경된 사항이 서버에도 자동으로 반영이 되는건가요? 만약 반영이된다면 마이그레이션으로 db를 수정하는것과 workbench에서 sql문으로 db를 수정하는방법의 차이점은 어떤건가요? 바쁘시겠지만 답변해주시면 정말 감사하겠습니다.