아 그리구 강의에서 나온 다대다 테이블 명칭에서 아래와 같이 데이터베이스 테이블 명칭이 WorkspaceMember 다대다 모델이름은 workspacemembers 라는 소문자로만 이루어진 명칭이고 ChannelMember 는 through 만 사용해서 데이터베이스에서 확인하면 ChannelMembers 로 나오는데요. 이게 테이블 명칭이 ChannelMembers 가 맞는지 아니면 다른 옵션으로 channelmembers 라고 맞추어주어야 하는지도 궁금합니다!! db. User .belongsToMany(db. Channel , { through : "ChannelMembers" }); db. Channel .belongsToMany(db. User , { through : "ChannelMembers" , as : "Members" , }); class WorkspaceMember extends Model { { modelName : "WorkspaceMember" , tableName : "workspacemembers" , charset : "utf8" , collate : "utf8_general_ci" , // 한글 저장 sequelize, } db. User .belongsToMany(db. Workspace , { through : db. WorkspaceMember , as : "Workspaces" , });
안녕하세요. 정말 좋은 강의와 소스코드 공개 정말 감사드립니다. 강의의 내용보다 더 나간 내용이긴 하지만 혹시나 가능하시다면 하여 질문드립니다. user1, user2 가 있을 때 user1 이 user2 를 사용자 차단할 경우 게시글 같은 것이 있을 경우 user1 에게도 user2 의 게시물이 안보여야하고 user2 에게도 user1 의 게시물이 안보여야 하고 DM 의 경우에도 (channelchat 과 같은 단톡은 일단 고려하지 않음) user1 이 user2 를 차단하였으므로 user1 의 사용자가 표시되는 리스트에 user2 가 안보여야하고 user2 의 사용자가 표시되는 리스트에도 user1 이 보이지 않아야하며 DM 도 user1 이 user2 에게 보낼 수 없고 user2 가 user1 에게도 보낼 수 없고 user1 과 user2 의 DM 이 있다손 치면 그것들이 차단을 했으니 상호간에 삭제되어야하고 (paranoid 방식일지라도) 하는 시나리오가 있을 경우 해당 block 이라는 user vs user 의 다대다 관계를 어떻게 구성하는 것이 좋을지 문의드립니다. https://stackoverflow.com/questions/54605069/how-should-i-design-a-user-blocking-system Table User id (pk) | user_name 1 | a 2 | b 3 | c Table Post id (pk) | user_id (fk) 1 | 1 2 | 3 3 | 2 4 | 2 Table Block id (pk) | blocker_id (fk) | blocked_id (fk) 1 | 1 | 2 2 | 2 | 1 select * from User join Block on User.id = Block.blocker_id or User.id = Block.blocked_id select * from Post p where p.user_id = @current _user_id and not exists ( select id from Block where Block.blocker_id = p.user_id or Block.blocked_id = p.user_id) 이런식으로 SQL 을 짜면 된다고 stackoverflow 에서 나와 있는데요 User 의 associate 부분에 이렇게 구성하면 될까요? static associate(db) { db.User.belongsToMany(db.User, {through: "Block"}); }
/* 4 바이트 만큼의 버퍼 생성 */ const buffer = new ArrayBuffer ( 4 ); /* 생성한 버퍼를 이용하여 DataView 생성 */ const view = new DataView ( buffer ); /* setInt16 이면 2 바이트 이므로 총 2 개의 Element 생성 가능 ??? */ /* byteOffset 이 0 부터 시작이면 2 일 때는 [0, 1, 2] 해서 3 번째 Element 에 설정 ??? */ view . setInt16 ( 2 , 100 , true ); console . log ( view . getInt16 ( 2 , true )); console . log ( view . getInt16 ( 2 )); 위에서 setInt16 의 byteOffset에 2가 들어갔는데도 값이 설정되는 이유를 알고싶습니다. setInt8에서는 setInt8 로 하여 byteOffset을 이리저리 설정해 보며 실행해봤지만 거기서 제가 든 의문은 여기서 생성한 ArrayBuffer는 분명 4바이트인데, setInt16이면 하나의 엘리먼트에 2바이트가 할당이 되지 않나요? 엔디언...인디언... 이것 때문에 순서가 설정되는게 바뀌는건지 아직 감이 안잡히네요 ㅠㅠ
lombok 설치하고 import했는데 @ 을 쓰면 outline에 잡히지 않습니다.. 구글링해서 eclipes.init 파일에다가 추가하라는건 다 추가 했어요..이클립스랑 롬복 재설치도 해봤구요.. 왜 안되는건지 모르겠습니다 제발 도와주세요.. 답답합니다.. lombok버전은 1.18.20 입니다
안녕하세요 수원님! 좋은 강의 항상 감사합니다. 시큐리티가 디버깅을 할때 로그등이 생각보다 자세하게 안뜨는거 같아서 여쭤봅니다. org.springframework.security : debug 위의 옵션말고 log등을 통해 쉽게 디버깅을 해볼 수 있는 방법이 더 있을까요???
안녕하세요. 임시반장 문제 푸는 도중 런타임 에러로 채점이 되지 않아서 문의드립니다. 크게 다른거라곤 BufferedReader를 사용하는 것 말고는 없는 거로 예상되고, 이전 문제는 BufferedReader로도 잘 진행이 되었습니다. 확인해주시면 감사드리겠습니다! import java.io.BufferedReader ; import java.io.IOException ; import java.io.InputStreamReader ; public class Main { public void solution ( int n , int [][] arr) { int pick = Integer. MIN_VALUE ; int people = 0 ; for ( int i= 1 ; i<n+ 1 ; i++) { int count = 0 ; for ( int j= 1 ; j< 6 ; j++) { for ( int k= 1 ; k< 6 ; k++) { if (arr[i][k] == arr[j][k]) { count ++ ; break; } } } if (pick < count) { pick = count ; people = i ; } } System. out .print(people) ; } public static void main (String[] args) throws IOException { Main T = new Main() ; BufferedReader br = new BufferedReader( new InputStreamReader(System. in )) ; int num = Integer. parseInt (br.readLine()) ; int [][] arr = new int [num+ 1 ][ 6 ] ; for ( int i= 1 ; i<num+ 1 ; i++) { String[] bf = br.readLine().split( " " ) ; for ( int j= 1 ; j< 6 ; j++) { arr[i][j] = Integer. parseInt (bf[j- 1 ]) ; } } T.solution(num , arr) ; } }
해쉬를 없애기 위해서 다음과 같이 작성하였습니다. var router = new VueRouter({ mode: 'history', // 페이지의 라우팅 정보 routes: [ // 페이지의 개수만큼 객체 개수가 필요하다. { // 페이지의 url path: '/login', // 해당 url 에서 표시될 컴포넌트 component: LoginComponent }, { path: '/main', component: MainComponent } ] }); 그런데 링크가 .../original/path/to/login, .../original/path/to/main 이 되는 것이 아니라 /login, /main 으로 변해버립니다. (앞의 기존 path 가 사라져서 router.html 파일이 아닌 login, main 이라는 존재하지 않는 파일에 접근하게 됩니다.) 따로 서버를 띄운 것은 없고 크롬 브라우저에서 실행하였습니다. 무슨 실수를 한 것일까요? ㅠㅠ
캠코더를 통한 얼굴인식을 하고 있는데 캠코더에 있는 사진과 인코딩해둔 피클파일과 distance를 비교해서 그 거리가 일정거리 이상이면 unknown으로 구분하려는데 이렇게하는 것이 그냥 face_compare메소드를 하는것보다 인식률이 떨어질까요? 일정거리 이하라면 그 일정거리 이하인 데이터중 가장 짧은거리의 사람으로 인식하게 되구요
잘 이해가 되지 않는 부분이 있어 질문드립니다. 해당 파트에서 support로 -4에서 4까지의 범위를 200개로 나누는데 범위와 해당 범위를 몇개로 나눌 것인지는 임의로 정하는 것인지, 그리고 왜 해당 범위를 나누어 줘야 하는 것인지 궁금합니다. 또한 norm.pdf에서 pdf가 정규분포의 확률밀도 값을 구하기 위한 메서드가 맞나요?
Whether Observation Station 12에서 아래 코드를 실행하면 런타임에러가 뜨는데요 ㅠㅠ 코드는 같아보이는데 무슨 문제일까요?? SELECT DISTINCT city FROM Station WHERE city NOT LIKE 'a%' AND NOT LIKE 'e%' AND NOT LIKE 'i%' AND NOT LIKE 'o%' AND NOT LIKE 'u%' AND NOT LIKE '%a' AND NOT LIKE '%e' AND NOT LIKE '%i' AND NOT LIKE '%o' AND NOT LIKE '%u'