묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
데이터 정합성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.회원은 저장되지만, 회원 이력 로그는 롤백된다. 따라서 데이터 정합성에 문제가 발생할 수 있다(트랜잭션 전파 활용2 - 커밋, 롤백 강의 中) 라고 하셨는데 지금 이 강의에서도 결국엔 회원은 저장되고 회원 이력 로그는 롤백되니까 데이터 정합성이 해결된게 아닌가요..?
-
미해결반응형 웹사이트 포트폴리오(App Official Landing Website)
질문있습니다
사진과 같이 award-list 가 한화면에 한그룹씩 3개의 슬라이드를 구현하려고 하는데요 슬릭슬라이더 를 입력하니까 구조감이 깨져버립니다.어떤게 문제인지 봐주시면 감사하겠습니다.<!--section : award --> <section class="award"> <div class="award-inner"> <h3 class="title">AWARDS</h3> <div class="award-cont"> <ul class="award-list"> <li class="list-item"> <p class="award-tit"> 2018 경상북도 건축문화상 최우수상<br> 2019 한국건축문화대상 우수상 </p> <span class="award-txt"> 다산면 행정복합타운 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2019 한국문화공간상<br> 2018 김해건축대상 대상 </p> <span class="award-txt"> 김해 서부문화센터 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2016 청주시 아름다운 건축상 은상 </p> <span class="award-txt"> 한국전력공사 충북본부 사옥 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2017 한국문화공간상<br> 2016 한국건축문화대상 우수상<br> 2016 경상북도 건축문화상 대상 </p> <span class="award-txt"> 고령군 문화체육복지관 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2015 한국건축문화대상 우수상 </p> <span class="award-txt"> 서울대학교 치의학대학원 첨단교육연구복합단지 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2012 서울시 건축상 우수상 </p> <span class="award-txt"> 올림픽홀 복합문화공간 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> </ul> <ul class="award-list"> <li class="list-item"> <p class="award-tit"> 2011 경주시 건축상 금상 </p> <span class="award-txt"> 월성스포츠센터 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2011 제주건축문화대상 본상 </p> <span class="award-txt"> 한전 제주지사 사옥 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2013 경주시 건축상 금상 </p> <span class="award-txt"> 한국원자력환경공단 환경친화단지 방문객센터 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2018 경상북도 건축문화상 최우수상<br> 2019 한국건축문화대상 우수상 </p> <span class="award-txt"> 서울대학교 의과대학 의생명과학관 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2007 부산다운 건축상 우수디자인 건축물부분 동상<br> 2007 이원 환경 건축,조경대상 환경건축대상 </p> <span class="award-txt"> 신고리 원자력 지역협력시설 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> <li class="list-item"> <p class="award-tit"> 2004 한국건축문화대상 우수상 </p> <span class="award-txt"> 서울대학교 이공계 멀티미디어 강의동 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> </ul> <ul class="award-list"> <li class="list-item"> <p class="award-tit"> 2007 경상남도 건축대상 은상<br> 2005 대한민국 토목, 건축대상 최우수상 </p> <span class="award-txt"> 김해 문화의 전당 </span> <a href="#none"> <span class="read-more-btn"> <em>read more</em> </span> </a> </li> </ul> </div> </div> </section> /*css*/ /*section - award*/ .award-inner { margin: auto; padding: 130px 0 0; } .award-cont { width: 1300px; padding: 50px; margin: 0 auto; justify-content: center; } .award-cont ul { width: 1200px; height: 565px; margin: auto; border: 1px solid red; } .award-cont li { float: left; width: 33.3333%; height: 30vh; border: 1px solid blue; } /* Slick Slider : award */ $(document).ready(function(){ $('.award-list').slick({ dots: false, infinite: true, speed: 300, slidesToShow: 1, adaptiveHeight: true }); });
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
7강 Static inner class 사용 이유
7강에서 @GetMapping("hello-api") @ResponseBody public Hello HelloApi(@RequestParam("name") String name){ Hello hello = new Hello(); hello.setName(name); return hello; } static class Hello{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }코드 중 궁금한 사항이 있어 문의드립니다.static inner class를 쓰는 이유 알 수 있을까요??그냥 innerclass와 접근 범위가 다르다는 것밖에 이해가 어려워서 조금만 더 잘 알고 싶습니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
route.path관련 질문
<template> <div> <h2>About Vue</h2> <p>{{ $route.path }}</p> </div> </template> <script setup> import { useRoute } from 'vue-router'; const route = useRoute; console.log('route.path', route.path); </script> <style></style> 똑같이 따라해봤는데 console창에 undifined가 뜨네요 원인이 있을까요??
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
선생님 강의연장 질문드립니다.
안녕하세요 김정선 선생님 수업 잘 듣고 있습니다.다름이 아니라 제가 해외 장기출장으로 국내에온지 얼마 안되었습니다.아래 두 강의는 3월17일에 만료되고 몰아서 보기 힘들것같은데 단기간이라도 연장이 가능하다면 부탁드릴게요.항상 감사드립니다.1)SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법2)SQL Server 컨설턴트가 알려주는, 쿼리 능력 레벨업(고급 T-SQL 쿼리)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ArraySegment<byte>
public ArraySegment<byte> ReadSegment { get { return null; } } public ArraySegment<byte> WriteSegment { get { return null; } } 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태오류 CS0037 'ArraySegment<byte>'은(는) null을 허용하지 않는 값 형식이므로 null을 이 형식으로 변환할 수 없습니다. ServerCore 저는 null을 넣을때 오류가 뜨는데 무슨 이유일까요?
-
해결됨따라하며 배우는 리액트 A-Z[19버전 반영]
Lists.js에서 List컴포넌트로 프롭스 보내줄때,
<List key={data.id} id={data.id} title={data.title} completed={data.completed} todoData={todoData} setTodoData={setTodoData} provided={provided} snapshot={snapshot} />List에 프롭스 key를 넘겨주었는데왜 List.js에서는 key를 받지 않은 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
logging
로깅에서 이거 자체가 안 나오는데 무엇 때문일까요? 전 이렇게만 나옵니다ㅜㅜyml 복붙했는데도 안됩니다ㅜ
-
미해결언리얼 엔진4 입문 (C++ 기반)
빌드 속도 관련 문의
안녕하세요 루키님.여쭤보고 싶은 문제가 있어서 질문 남깁니다.현재 제 언리얼 엔진상에서의 컴파일 ,VS상 빌드 속도가 너무 오래걸리는 문제점이 있어서 문의드려요..기본 빌드 시간이 2분이상 걸리거나 길면 5분 넘게 걸리는 현상이 있어서 구글링 후에 Incredi build agent 다운도 받아서 빌드하고 있는데도 강의 도중 나오는 빌드 속도를 따라 갈 수가 없네요 ㅠㅠ 어떠한 방법으로 빌드 속도를 향상 시킬 수 있을까요..컴퓨터 성능 문제인걸까요?
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
pymysql db data입력시 부터 진행이...
안녕하세요검색도 많이 해보고 지우고 깔고 3일간 별거 다해봤지만 해결이 안되 도움 요청드립니다 ㅠ선생님 flask강의 듣다 db에서 막혀서 이 강의 듣고 잇는데 같은곳에서 또 부딛혔어요 ㅠ 제가 뭘 잘못하고 있을까요...==test code==import pymysqlimport pymysql db = pymysql.connect(host='localhost', port=3306, user='root', passwd='funcoding', db= 'ecommerce', charset= 'utf8') # ecommerce = db.cursor() db ==error ===raise errorclass(errno, errval) pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")비번 수정방법 등등 알아보다가 다시 깔고 mysql설정시 비번 funcoding 으로 바꿔서 다시 깔았는데도 똑같습니다 ㅠ iterm 에서 해본거➜ ~ cd /usr/local/mysql ➜ mysql cd bin ➜ bin ls ibd2sdi mysql_upgrade innochecksum mysqladmin libprotobuf-lite.3.19.4.dylib mysqlbinlog libprotobuf.3.19.4.dylib mysqlcheck lz4_decompress mysqld my_print_defaults mysqld-debug myisam_ftdump mysqld_multi myisamchk mysqld_safe myisamlog mysqldump myisampack mysqldumpslow mysql mysqlimport mysql_config mysqlpump mysql_config_editor mysqlshow mysql_migrate_keyring mysqlslap mysql_secure_installation perror mysql_ssl_rsa_setup zlib_decompress mysql_tzinfo_to_sql ➜ bin ./mysql ERROR 1045 (28000): Access denied for user 'hyun'@'localhost' (using password: NO) ➜ bin ./mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 도와주세요 ㅠ
-
미해결
Unit Testing 을 위해서 Repository를 Mock했는데 먹지를 않습니다.
안녕하세요.Unit Testing 을 처음 해보는데 일단 Service의 로직을 먼저 테스트하기 위해 Repository를 Mock해서 Service 내에 @InsertMocks 어노테이션을 걸어서 when 조건을 삽입했습니다.이후 Service 내에서 findById(1L)을 실행하면 when문에서 걸어준대로 User 객체를 반환해야 한다고 생각했으나, 계속 Optional이 비어있다고 나오네요.그래서 Service로 들어간것이 아니라 직접 Test 내에서 Repository를 불러본 결과 Mock가 문제없이 잘 되고 있었습니다. 제가 Configuration 한 것에 문제가 있는지 고견 부탁드립니다.UserServiceTest import com.politicia.coreservice.domain.User; import com.politicia.coreservice.dto.request.UserRequestDto; import com.politicia.coreservice.dto.response.UserResponseDto; import com.politicia.coreservice.repository.UserRepository; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import java.util.ArrayList; import java.util.List; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class UserServiceTest { @InjectMocks UserServiceImpl userService; @Mock private UserRepository userRepository; @BeforeEach public void setUp() { MockitoAnnotations.initMocks(this); } @Test void testSignUp() { //given UserRequestDto newUser = UserRequestDto.builder() .name("newUser") .profilePic("https://profile.pic") .nationality("korea") .build(); User expectedUser = User.builder() .id(1L) .name("newUser") .nationality("korea") .profilePic("https://profile.pic") .build(); UserResponseDto expectedUserDto = UserResponseDto.builder() .id(1L) .name("newUser") .nationality("korea") .profilePic("https://profile.pic") .createdAt(expectedUser.getCreatedAt()) .updatedAt(expectedUser.getUpdatedAt()) .build(); when(userRepository.save(any(User.class))).thenReturn(expectedUser); //when UserResponseDto actualUser = userService.createUser(newUser); // Verify assertEquals(expectedUserDto, actualUser); } @Test void testGetUser() { //given User user = User.builder() .id(1L) .name("user") .nationality("korea") .profilePic("profilePic") .build(); List<User> userList = new ArrayList<>(); userList.add(user); when(userRepository.findById(any(Long.class))).thenReturn(Optional.of(user)); UserResponseDto expectedUserDto = UserResponseDto.builder() .id(1L) .name("user") .nationality("korea") .profilePic("profilePic") .createdAt(user.getCreatedAt()) .updatedAt(user.getUpdatedAt()) .build(); //when UserResponseDto actualUserDto = userService.getUser(1L); //then Assertions.assertEquals(actualUserDto, expectedUserDto); } } UserServiceImplpackage com.politicia.coreservice.service; import com.politicia.coreservice.domain.User; import com.politicia.coreservice.dto.request.UserRequestDto; import com.politicia.coreservice.dto.response.UserResponseDto; import com.politicia.coreservice.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service @RequiredArgsConstructor public class UserServiceImpl implements UserService { private final UserRepository userRepository; @Override public UserResponseDto createUser(UserRequestDto userRequestDto) { User user = userRequestDto.toEntity(); User newUser = userRepository.save(user); return UserResponseDto.builder() .id(newUser.getId()) .name(newUser.getName()) .nationality(newUser.getNationality()) .profilePic(newUser.getProfilePic()) .createdAt(newUser.getCreatedAt()) .updatedAt(newUser.getUpdatedAt()) .build(); } @Override public UserResponseDto getUser(Long userId) { User foundUser = userRepository.findById(userId).get(); return UserResponseDto.builder() .id(foundUser.getId()) .name(foundUser.getName()) .nationality(foundUser.getNationality()) .profilePic(foundUser.getProfilePic()) .createdAt(foundUser.getCreatedAt()) .updatedAt(foundUser.getUpdatedAt()) .build(); } }에러문구
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
delete[] 할때 소멸자 실행 순서
delete[]를 통해 다수의 클래스를 지울 때 실행되는 소멸자의 실행순서는 고정인가요?제 컴퓨터 환경에서의 한 간단한 실험에서는 생성순서의 역순으로 소멸자가 실행었습니다만 다른 상황에서도 그러한 방식이 유지될것이라는 확신을 얻을수는 없었습니다.delete의 내부동작방식이 cpu에 따라, 컴파일러에 따라 상이하게 동작할 여지가 있나요? 다시 말해 delete는 자기결정적인가요?
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
배우기 시작하면서 드는 궁금증
안녕하세요, 이제 막 강의를 신청하고 2시간 가량 들었습니다.초반 두시간 정도는 실습 환경 구축 위주의 내용인데요, 이후 수업에서 배우는 내용에 대해 두 가지 궁금증이 생겨 질문드리게 되었습니다.1. 한정된 분량의 강의 특성상 대체로 많이 사용되는 mysql, mssql, oracle 이 셋 db를 대상으로 수업을 진행하시는 것 같습니다. 혹시 mongo, dynamodb처럼 nosql을 사용하는 웹 어플리케이션의 경우 injection 수행 시 쿼리 문법만 바뀌는건지, 아니면 injection 방법 자체가 바뀌는건지 궁금합니다.2. 현재 초급 수준이라 그런지 게시판을 injection 대상으로 삼아서 실습하는 걸로 예상이 되는데요, 게시판이 없고 회원가입/로그인 창 정도만 있는 웹 어플리케이션도 많은 것으로 알고있습니다. 저는 part1, part2 모두를 수강할 예정인데 게시판이 존재하지않고 회원가입/로그인 폼 정도만 있는 웹 어플리케이션에 대해서도 다양한 공격기법을 배울 수 있게되나요~?감사합니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
select ~ for update 락
안녕하세요 좋은 강의 항상 감사합니다.해당 강의에서 조회 락을 위해서 세션1에서 select ~ for update 을 사용하잖아요? 해당 쿼리를 사용해서 lock을 얻은 상태인데요.그런데 조회 중에 세션1(세션2 말고) 에서 바로 update 문을 날리게 된다면 바로 수정이 이루어지는데, 위 쿼리를 통해서 lock을 얻은 것은 update문을 날리게 되면 자동으로 반납이 됨과 동시에 update 문이 실행이 되는 것인가요? 감사합니다.
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
댓글 ListView BaseAdapter position 버그 질문
한사람이 게시글을 작성하면 그 아래 여러사람이 댓글을달고 댓글을 쓴 본인만 댓글을 삭제할수 있도록 구현하려고 합니다. 문제는 한 게시글에 여러사람이 댓글을 달았을때 listView의 getView 메서드의 position이 해당 인덱스의 위치를 잘못된 값을 나타냅니다.Log로 찍어봤을때 해당 댓글들의 키 배열들은 정상적으로 있으나 두 댓글다 position을 찍어봤을때 0을 찍고 있습니다.(제 생각대로는 첫번째 댓글을 찍으면 0, 두번째 댓글을 찍으면 1이 로그에 찍힘) 왜 리스트뷰가 해당 position이 제대로 찍히지 않는 이유가 궁금합니다! 해당 코드입니다.게시글 내부 댓글부분 코드var commentlist = ArrayList<CommentModel>() var commentKeyList = ArrayList<String>() var commentLV = binding.commentLV var lvAdpater = CommentAdapter(commentlist , commentKeyList , key ) commentLV.adapter = lvAdpater val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { commentlist.clear() commentKeyList.clear() for(dataModel in dataSnapshot.children){ val item = dataModel.getValue(CommentModel::class.java) if (item != null) { commentlist.add(item) commentKeyList.add(dataModel.key.toString()) } } lvAdpater.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)class CommentAdapter(var list : ArrayList<CommentModel> , var keyList : ArrayList<String>, var key : String): BaseAdapter() { var applicantID : String = "" override fun getCount(): Int { return list.size } override fun getItem(p0: Int): Any { return list[p0] } override fun getItemId(p0: Int): Long { return p0.toLong() } override fun getView(position: Int, p1: View?, p2: ViewGroup?): View { var view = p1 if(p1 == null){ view = LayoutInflater.from(p2?.context).inflate(R.layout.comment_item, p2, false) } val applicant = view?.findViewById<TextView>(R.id.applicant) val content = view?.findViewById<TextView>(R.id.contentArea) val time = view?.findViewById<TextView>(R.id.timeArea) applicant?.text = list[position].applicant applicantID = list[position].applicantID content?.text = list[position].comment time?.text = list[position].time var removeBtn = view!!.findViewById<ImageView>(R.id.removeBtn) // var inviteBtn = view!!.findViewById<Button>(R.id.inviteBtn) if(FBAuth.getUid().equals(applicantID)){ removeBtn.isVisible = true removeBtn.setOnClickListener { var commentKey = keyList[position] Log.e("key",keyList.toString()) Log.e("key", position.toString()) var dlg = AlertDialog.Builder(view.context) dlg.setTitle("댓글을 삭제하겠습니까?") dlg.setPositiveButton("확인", DialogInterface.OnClickListener { dialogInterface, i -> FBRef.commentRef.child(key).child(commentKey).removeValue() }) dlg.setNegativeButton("취소",null) dlg.show() } } return view!! } }
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
10-2/3 강의 따라 할때, P게인을 50으로 설정하면, 쓰로틀을 건들면 리셋됩니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 10-2, 10-3 강의 따라 할때, P게인을 50으로 설정하면, 아밍상태에서 아주 조금만 쓰로틀을 건들면 리셋됩니다.(*ST-Link를 빼고 해도 마찬가지 입니다) P게인을 20으로 설정하고 쓰로틀링하면 잘 작동됩니다. 혹시 어느 부분을 검토해 보아야 할지 문의 드립니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
SET LOCK_TIMEOUT 10000;
안녕하세요 좋은 강의 항상 감사합니다. 해당 강의에서 2번째 세션에서만 SET LOCK_TIMEOUT 10000; 을 실행하는데, 락 타임아웃은 세션마다 다르게 설정을 할 수가 있는 것인가요?실습에서 SET LOCK_TIMEOUT 10000; 명령어만 세션1로 옮겨서 (순서, query 다 그대로 세션1, 세션2 각각 다 수행) 실행하니 같은 에러가 발생하는데요. 그렇다면 세션마다 설정하는 것이 아니라 더 큰 개념인 DB에 설정하는 것이라고 볼 수 있는, h2 시간이 정확하지 않아 단정짓기가 좀 어렵네요. 답변 미리 감사드립니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 연관관계 referenceColumnName 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)안녕하세요. 다름이 아니라 @JoinColumn 에서는 name 속성으로 외래키 컬럼의 컬럼명을 지정하고, 생략된 referenceColumName 속성을 통해 해당 외래키가 대상 테이블의 어떤 컬럼과 연결되는지 정하는 것으로 알고 있습니다.@OneToMany @JoinColumn(name = "TEAM_ID") private List<Member> members = new ArrayList<>();그런데 일대다 연관관계에서 다음과 같이 일 쪽에서 joinColumn을 넣어줄 경우 referenceColumnName 속성은 디폴트 값으로 어떤 컬럼과 연결되는지 궁금합니다. 영한 선생님의 답변글에서는 디폴트 값으로 해당 필드의 타입을 확인하고 해당 타입의 pk컬럼과 연결시켜준다고 봤는데 위 경우는 List가 나와서 어떻게 되는지 궁금합니다.
-
해결됨그림으로 쉽게 배우는 운영체제
교재는 어디서 다운 받을 수 있나요?
교재는 어디서 다운 받을 수 있나요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
initState 에서 provider.read 를 해서 초기 데이타를 가져오고 싶은데 가능 한지요?
안녕하세요.중급 강의 잘 듣고 많은 도움이 되었습니다.한가지 질문이 있는데요. view의 initState 에서 provider read 를 통해 데이타를 가져와 state 에 넣어주고,View 의 widget tree 내에서 watch 해서 쓰고 싶습니다.아래처럼 provider.read 를 쓸 수는 없을까요? 꼭 onClick 같은 이벤트 내에서만 쓸 수 있는 것인가요? @overridevoid initState() {// TODO: implement initStatesuper.initState();ref.read(floorNoProvider.notifier).getData();} 그럴 경우 아래와 같은 에러가 발생하는데요.Tried to modify a provider while the widget tree was building. 방법이 없을까요?