학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] paging2에서 Deprecated된 fetchResults를 통해 전체 값 리밋값 옵셋 값 결과 개수 값을 다 구하는데 이제는 어떤식으로 해야되나요? 그냥 getTotal의 경우 count 를 통해 얻어올 수 있는데 나머지 값들은 어떻게 처리해야되나요?
예를들어 id값이 20~30인 member를 가져올때 영속성 컨테스트안의 1차캐시에는 값들이 어떻게 저장이 되나요? 일단 강의에서는 em.persist 와 em.find 인 경우 1차 캐시에 값을 저장한다고 해서 위와 같이 jpql을 사용했을때 일단 영속성 컨테스트에 값이 저장되는지 확인해보았습니다. 영속성 컨테스트에 값이 저장되었다면 commit시 1.flush 발생 2.스냅샷과 비교해서 변경감지. 3.변경이있었다면(setter) 쓰기 지연 SQL 저장소에 UPDATE쿼리 생성 및 저장 4.쓰기 지연 SQL 저장소에 있는 모든 쿼리를 실행. 5.커밋(실제DB반영) 위 과정이 일어나서 NAME 값이 changeMember로 변경되어야하는데 확인해보니 실제로 값이 변경되는걸 확인할 수 있었습니다. update 쿼리도 2번일어나는데 그럼 위의 예시에서 executeQuery로 jpql 실행 시 1차 캐시에 값이 @id Entity 20 member(20,memberA) 30 member(30,memberB) 이렇게 저장되는 거 같은데 맞나요??(리스트로 가져오면 , 하나씩 풀어서 저장) 그리고 commit시 위에 제가 생각한 과정대로 이해한게 맞을까요?
위 스샷처럼 id만 undefined로 넘어옵니다.. https://api.hnpwa.com/v0/user/titaniumtown.json 해당 주소로 요청을 보내면 제대로 id까지 나오는데.. 이유를 도저히 모르겠습니다... 해당 위치에서 console을 찍었을 때 이미 id는 undefined로 받은 상태입니다
Vue.js 가 1. 해당 컴포넌트 name 설정 예시) export default { name: 'BoardComponent', data() { return { newBoardItems: [], } }, mounted() { this.fetchData(); }, methods: { fetchData() { axios.get('/api/board') .then(response => { console.log(response.data); this.newBoardItems = response.data; }) .catch(error => { console.error('Error fetching data:', error); }); }, } } </script> 컴포넌트에서 name: 이렇게 지정함 2. router 에서 컴포넌트 지정 예시) { path: '/classboarddetail/:ClassID', name: 'classboarddetail', component: ClassBoardDetailComponent, props: true }, 3. 컨트롤러 만들기 (터미널) Vue CLI 설치: Vue CLI를 사용하려면 먼저 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령어를 실행합니다. bash Copy code npm install -g @vue/cli 프로젝트 생성: Vue CLI가 설치되었으면, 새로운 Vue.js 프로젝트를 생성합니다. bash Copy code vue create my-vue-project 위 명령어에서 my-vue-project는 프로젝트 디렉토리의 이름으로 변경할 수 있습니다. 프로젝트 생성 과정: vue create 명령어를 실행하면 몇 가지 설정 옵션을 선택할 수 있습니다. 프로젝트 생성에 필요한 기본 설정을 선택하거나, 사용자 정의 설정을 할 수 있습니다. 프로젝트로 이동: 생성된 프로젝트 디렉토리로 이동합니다. bash Copy code cd my-vue-project 프로젝트 실행: 프로젝트 디렉토리로 이동한 후, 다음 명령어로 개발 서버를 실행할 수 있습니다. bash Copy code npm run serve 4. 쿼리문 작성 -> 해당값을 $data에 담아서 log::debug($data);로 확인 take(숫자)로 제한걸기 class BoardController extends Controller { public function getBoardMainData() { $data = Board::orderBy('created_at', 'desc') ->take(50) ->get(); Log::debug($data); return response()->json($data); } } 5. api.php 에서 경로 지정(router에서 해당 url 정한것 안에서 실행시킨다는것을 작성) (컨트롤러에서는 값을 받아옴 json 형태) import ClassBoardDetailComponent from '../components/ClassBoardDetailComponent.vue'; { path: '/classboarddetail/:ClassID', name: 'classboarddetail', component: ClassBoardDetailComponent, props: true }, 6. axios 처리 component 에서 methods 생성 후 axios 처리 ('/api/board') 컨트롤러에서 쿼리 실행 .then 안에 console.log로 확인 -> mounted()실행 시키겠는 경로 설정 (호출, 리로드 하면서 안에 담김) export default { name: 'BoardComponent', data() { return { newBoardItems: [], } }, mounted() { this.fetchData(); }, methods: { fetchData() { axios.get('/api/board') .then(response => { console.log(response.data); this.newBoardItems = response.data; }) .catch(error => { console.error('Error fetching data:', error); }); }, } } 7. Component 에서 for 문 돌리는 item 에 Boardercontents item 을 넣어줌 {{ }} 예시) <dd class="comment_count"> <i>추천수 {{ item.BoardRecommended }}</i> <span>{{item.Boardgoodcount}}</span> 크롬 콘솔에서 더미데이터 이름 확인 후 기입 집에가서 터미널 하나 더 열어서 npm run watch 1. >npm run watch 2. >php serve artisan 이런 흐름이 맞나용
외래키 사용을 지양하라는 내용이 있어서 링크된 글을 읽어봤는데 궁금증이 있습니다. 외래키를 지양한다면 PK 값을 다른 테이블에 넣으면서 그 값으로 조인을 사용하는건가요? 외래키를 지양했을 때 성능상의 이점은 알겠는데 결국 데이터 정합성 부분에서 문제가 발생합니다. RDB에서 데이터 정합성이 깨지면 사용하는 의미가 없다고 하는데 이부분에선 어떻게 생각하시나요? 외래키를 안쓸경우 JPA에서 ManyToOne같은 메소드도 사용하지 않는건가요? 그리고 해당 주장에 대해 반박하는 아래의 링크도 있는데 이 의견은 어떠신가요? https://gdsc-university-of-seoul.github.io/foreign-key/
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
안녕하세요 추가적으로 궁금한점이 있어서 질문드립니다. ch08파일에 01번 버전이 2가지가 있는데요. 01_dalle_exp 파일의경우 처음에는 에러가 났다가 에러잡고 사용하니까 정상출력이되는데.. 01_dalle_exp_NewVersion 파일의 경우 client = openai.OpenAI(api_key = API_KEY) AttributeError: module 'openai' has no attribute 'OpenAI' 라고 나오는데.. 같은 key값을 활용해도 뉴버전은 저렇게 나옵니다. 이유가 무엇인지 궁금하네요.
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
안녕하세요 어제 Ch07번은 해결했는데요.... Ch08의 인스타그램의 경우 봇으로 판단하는지 차단시키는데 해결방안이 무엇인지 궁금합니다. 코드는 사용예제 코드랑 같고 02~03 파일 둘다 차단관련 내용이 나옵니다. 오류 내용입니다. ProxyAddressIsBlocked : Instagram has blocked your IP address, use a quality proxy provider (not free, not shared) Traceback: File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\03_instabot_ app.py ", line 136, in <module> main() File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\03_instabot_ app.py ", line 132, in main uploadinstagram(st.session_state["description"]) File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\03_instabot_ app.py ", line 24, in uploadinstagram cl.login(st.session_state["instagram_ID"], st.session_state["instagram_Password"]) File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\ auth.py ", line 441, in login logged = self.private_request("accounts/login/", data, login=True) File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\ private.py ", line 542, in private_request raise e File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\ private.py ", line 527, in private_request self._send_private_request(endpoint, **kwargs) File "C:\Users\sosgx\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch08\ch08_env\lib\site-packages\instagrapi\mixins\ private.py ", line 447, in _send_private_request raise ProxyAddressIsBlocked(**last_json)
안녕하세요~! 질문이 있어 이렇게 남깁니다. 다른 답글을 보니 다양한 설정 방법이 있다라는 말씀을 남겨주셨는데 제가 다운 받은 springboot 에는 application.properties 가 따로 있는데 이것과 병행해서 사용해도 문제가 없는 건가요? 아니면 환경설정을 하나로만 유지해야 되는건가요?
안녕하세요 선생님 😀 강의 잘 보고 있습니다. 저는 count 변수를 두고 값을 저장하고 i값을 변경하여 사용하였는데 이렇게 작성해도 되는지 궁금하여 질문을 올리게 되었습니다. 또 아래와 같이 for문 안에 있는 i 값을 변경해도 괜찮은지도 궁금합니다! function solution(k: number, arr: number[]): number { let sum: number = 0; let count: number = 0; let max: number = 0; for (let i = 0; i < arr.length; i++) { if (count < k) { sum += arr[i]; count++; } else { if (max < sum) { max = sum; } i = i - count; count = 0; sum = 0; } } return max; } 감사합니다
관련 답변 읽어보았으나 여전히 이해가 안되서 질문드립니다. 어디서 BASH_REMATCH 변수가 나오는건지 모르겠습니다. $LANG =~ $locale이 되면 자동으로 BASH_REMATCH가 생성되는건지 어쩐건지 설명 없이 바로 그냥 저 변수에 2번째 요소와 1번째 요소를 호출하는게 이해가 안됩니다. 그리고 =~도 무슨 말씀인지 모르겠습니다. 대체로 명령어 실행했을 때 현상 만을 설명해주시고 원리 설명이 없어서 이해가 너무 어렵습니다. 참고할만한 정규표현식 관련 사이트 같은게 있으면 추천 좀 부탁드립니다.
안녕하세요 강사님! 아래 서보모터 관련 질문을 썼던 학생입니다:) 같은 문제로 여러 번 질문드려 죄송합니다ㅠㅠ 강사님께서 말씀 주신대로 pwm 파형을 오실로스코프로 찍어봤는데 동작펄스폭 내에서 제대로 출력되고 있었습니다. 혹시 몰라 버튼을 누를때마다 펄스폭이 바뀌는 프로그램을 넣어서 실험해봤을 때도 펄스가 제대로 출력되고 있었습니다. 서보모터에 들어가는 전원 5v도 제대로 들어가는 것도 확인했는데, 서보모터가 동작하지 않습니다ㅠㅠ 근데 해당 서보모터를 아두이노 예제 프로그램으로 돌려보면 문제없이 돌아갑니다. 무엇이 문제인지 예상되는 원인이 있을까요?? 저는 아무리 생각해봐도 뭐가 문제인지 모르겠습니다ㅠㅠ 모터에 전원과 pwm만 제대로 인가되면 동작하는 것이 아닌가요? 사용하는 서보모터는 영상과 같은 sg90입니다!