선생님 강의를 전부 완강하고 개인적으로 작은 프로젝트를 하는중입니다. ㅎ Vue+SpringBoot(API서버) 로 하는중인데, 화면이 하나 둘 늘어나다 보니깐 유지해야할 정보들이 필요해지더라구요. 예를 들면 예약을 하는데, 예약화면이 1단계 2단계 3단계로 나누어져 있다고 하면 그 전 단계의 화면의 정보를 다음 단계까지 유지하게 하려고 한다면 쿠키에 넣어놓고 빼고 넣어놓고 뺴고 하는게 맞는건가요?
최근에 영한님 강의를 다시 한번 보고 있습니다. 지연로딩에서 궁금한 부분이 하나 생겼는데요. Team 과 Member 로 양방향 연관관계를 설명해 주실 때, 위 코드에서 Member 의 select 절이 지연로딩으로 수행되고 안되고의 기준은 1차캐쉬에 값이 있고 없고라고 말씀해 주셨는데요. 그 1차 캐쉬의 기준이 조금 궁금해졌습니다. em.persist 로 Team 을 저장했을 때도 Team 에 대한 1차 캐쉬는 존재할테고, em.clear 이후 em.findTeam 을 했을 때도 1차 캐쉬에는 값이 생성된 시점일텐데요.. 그런데 전자에서는 getMember 의 지연로딩이 발생하지 않고 후자에서만 지연로딩이 발생하는 메커니즘이 좀 궁금해졌습니다. 제가 너무 어렵게 생각하는 걸까요? ㅎㅎ
FetchType.LAZY 로 아래와 같이 entity 를 정의하고 아래 JPA 리파지토리를 이용하여 데이타를 가져와서 client(브라우져)에서 받아보면 LAZY 된 child Entity 리스트(quizzList ) 에도 null 이 아니라 리스트로 데이타가 들어가 있습니다. 로그를 보면 N+1 쿼리로 가져와서 보여줍니다. curl -X GET "http://localhost:8080/internal/v1/quest/list2?type=quiz" -H "accept: */*" kotlin SpringBoot 를 사용중인데요.. Jackson data binding 시에 quizzList 속성을 호출해서 그렇게 되는 것인지 궁금합니다. 저는 모든 Entity 조인 컬럼을 LAZY 로 해놔도 N+1 쿼리가 돌면서 전체 결과가 리틴되네요.. lneQuestReposptory.findAllByType (type: String , pageable: Pageable) @Entity ( name = "LneQuests" ) @Table ( name = "korbit.lne_quests" ) @Cacheable @JsonInclude ( JsonInclude .Include. NON_NULL ) class LneQuest ( var type : String , var title : String , var description : String? , @OneToMany ( fetch = FetchType. LAZY , mappedBy = "quest" /* , cascade = [CascadeType.ALL] */ ) var quizzList : MutableList<LneQuizz> = mutableListOf () )
저 스스로 클론하다보니 reset.css를 사용했는데 선생님께서는 default.css를 사용하셨더라구요. 구글링해보니 reset.css나 noramalize같은 건 많이 나오던데 혹시 직접 만들어 놓으신건지 /실무에서는 필요에 따라 아무거나 써도 상관없는지가 궁금합니다.
ReadLock() 작성 중에 조건이 아무도 WriteLock을 획득하고 있지 않으면 ReadCount를 1 늘린다 라서 if ( (_flag & WRITE_MASK) == 0 ) 이 코드는 이해하겠는데 Interlocked를 사용하면서 이 부분이 사라지고 int expected = (_flag & READ_MASK); if (Interlocked.CompareExchange(ref _flag, expected + 1, expected) == expected) return; 이렇게 작성이 되었는데요. 이러면 WriteLock 체크를 무시하는 것이 아닌가요? 코드로만 보면 WriteLock 영역은 모두 0으로 날려버리는 것이니 WriteLock이 있던 없던 그냥 Read 하겠다라고 이해되어서요.
@Valid나 자체적으로 Vaildator는 Erorrs를 EntityModel로 만들어서 응답하지만 spring.jackson.deserialization.fail-on-unknown-properties=true 에 대한 badrequest에는 어떻게 적용해야 할지 잘 모르겠습니다. 400에러와 null값만 오는데 이것도 EntityModel로 응답할 방법이 있을까요??
교수님께서 2차원 배열도 결국 1차원 배열과 같은 구조로 작동한다고 하셔서 아래와 같은 코드를 작성해봤는데 int main() { int arr[2][3] = { {1,2,3}, {4,5,6} }; printf("%d\n", arr[1][1]); printf("%d\n", *(arr + 4)); return 0; } 첫번째 printf 에서는 예상한 값과 동일하게 5가 나왔는데, 두번째 printf 에서 *(arr+4) = arr[4] = arr[1][1] 일줄 알았는데 전혀 다른 값이 나와서 당황스럽습니다. 제가 지금 까지 강의를 잘 못이해한건 아닐까 라는 생각도 듭니다. 왜 이런 결과가 나온 걸까요?
ReaderWriterLock 강의 10분 47초 쯤 나오는 Reward 예시에 대해 질문이 있습니다. Reward 예시에서 GetRewardById(int id) 를 설명하시면서, 운영 툴로 보상을 지급해야 할 때, lock이 필요하다 라고 말씀하셨었는데 애초에 MMORPG를 잘 안해서 와닿지 않는 것 같아요. 장기적으로 본다면 게임내의 캐릭터가 가지고 있는 아이템들은 DB로 관리될 것이라 생각되는데, 왜 Lock이 필요한 것인지 이해가 잘 되지 않아요. 메모리 배리어 파트의 Store, Load 와 관련된 것 이라면 DB와 무관하게 실시간으로 캐릭터에게 지급이 된다라고 이해한다면 맞는것 같은데 이렇게 생각하는게 맞는건가요?
안녕하세요. 제로초님 다름이 아니라 새로고침을하면 me.post.length가 없다고 에러가뜨는데 이거는 로그인 성공시 저희 me에 데이터가 들어가는건데 새로고침을하면 LOG_iNS_SUCCESS는 날라가고 useEffect로 user의 정보만 불러오는 그 user의 정보에 아직 post, 팔로잉, 팔로워 데이터가 없어서 에러나는거 맞나요??
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
이번 강의 도전 과제가 주민번호 뒷자리를 * 로 바꿔서 가려보기 였는데 하기와 같이 변경하면 쥬피터 노트북으로 출력은 가능 합니다. import openpyxl work_book = openpyxl.load_workbook('data_kr.xlsx') work_sheet = work_book.active for each_row in work_sheet.rows: print(re.sub('-[0-9]{7}', '-*******', each_row[1].value)) work_book.close() 저는 이왕 바꾼 데이터니깐 그걸 다시 원래 Excel에서 넣어서 수정을 하고 싶은데 잘 안되네요 import openpyxl work_book = openpyxl.load_workbook('data_kr.xlsx') work_sheet = work_book.active for each_row in work_sheet.rows: newdata =[re.sub('-[0-9]{7}', '-*******', each_row[1].value)] work_sheet.append(newdata) work_book.save('new.xlsx') work_book.close() 이렇게 하면 이렇게까지만 되는데 원래 자리에 넣고 싶거든요... 그리고 append를 하면 적어도 A열에 덮어 질줄 알았는데 왜 완전히 다른 행에 써지는지도 모르겠습니다.
[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
안녕하세요. 잔재미코딩 선생님 선생님 강의 잘 듣고 있습니다 제가 기존에 신청한 강좌는 기간이 평생이 아니라 1년이에요 계속 듣고 싶은데 기간만료가 다가옵니다 다음 두 개 강좌가 기간만료가 얼마 남지 않았는데 평생으로 연장해 주실 수 있는지 문의합니다 좋은 강의 감사드립니다 돌배차 드림 1) 파이썬 입문과 크롤링 기초 부트캠프 (파이썬과 데이터 수집 기본) 2) NoSQL DB (몽고DB/mongodb) 기본부터 파이썬/데이터분석 활용까지! 제가 선생님 다른 강좌도 수강신청 했습니다. 사이트가 바뀌어서 크롤링 제한이 되길래 크롤링 강좌도 신청을 했구요. 이번 신규강좌도 신청을 했어요. IT분야는 계속 바뀌므로 평생수강 기간보다는 1년으로 설정하셨다는 글은 강좌 개설하실 때 보았었답니다. 계속해서 강의를 보고 싶습니다. 좋은 강좌 감사드립니다
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
안녕하세요. 잔재미코딩 선생님 선생님 강의 잘 듣고 있습니다 제가 기존에 신청한 강좌는 기간이 평생이 아니라 1년이에요 계속 듣고 싶은데 기간만료가 다가옵니다 다음 두 개 강좌가 기간만료가 얼마 남지 않았는데 평생으로 연장해 주실 수 있는지 문의합니다 좋은 강의 감사드립니다 돌배차 드림 1) 파이썬 입문과 크롤링 기초 부트캠프 (파이썬과 데이터 수집 기본) 3) NoSQL DB (몽고DB/mongodb) 기본부터 파이썬/데이터분석 활용까지!
영한님 안녕하세요. 오랜만에 문의글을 하나 남기고 갑니다. 영한님 강의를 수강한 이후, 조영호님의 오브젝트 라는 책을 요즘 좀 읽어보고 있는데요. (책은 아마 영한님도 잘 아시겠죠..) 책에서 인터페이스와 추상클래스를 활용한 유연한 설계를 강조하는 내용을 보다가 문득 궁금해진 부분이 있습니다. 추상클래스와 상속에 대해서는 JPA 적용에 대한 내용을 영한님께서 설명해 주신 부분이 있는데 인터페이스는 없었던 거 같더라고요.. 아래 캡쳐처럼 Entity 로 설정하고자 하는 클래스 내에 속성으로 인터페이스가 있을 경우, JPA 를 적용하기 위해서는 어떠한 처리가 필요할까요? (노란색 DiscountPolicy 가 인터페이스)
먼저, 강의 내용 범위에 벗어난 질문이 아닌가 하여 죄송합니다. npm run build 하여 톰캣에 베포하고 라우터의 이름을 호출하면 HTTP 상태 404 – 찾을 수 없음 타입 상태 보고 메시지 요청된 리소스 [/main]은(는) 가용하지 않습니다. 설명 Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. Apache Tomcat/8.5.56 오류가 나옵니다. npm run serve 실행시는 화면을 잘 찾습니다. export default new VueRouter ({ mode: ' history ' , routes: [ { path: ' / ' , redirect: ' /login ' , }, { path: ' /login ' , component : () => import ( ' @/views/LoginPage.vue ' ), }, { path: ' /signup ' , component : () => import ( ' @/views/SignupPage.vue ' ), beforeEnter: requireAuth (), }, { path: ' /main ' , component : () => import ( ' @/views/MainPage.vue ' ), beforeEnter: requireAuth (), }, 첫화면(로그인화면 http://121.134.61.139:8080 )은 잘 찾 지만 라우터관련 설정이 필요한 듯한데. 구글링을 해도 해결이 어렵습니다. http://121.134.61.139:8080/main 부탁드려도 될지요.