Elasticbeantalk로 생성된 리소스들 중에서 배포 파일등은 S3bucket에 등록되는데 이것은 버킷 정책에서 삭제가 안되도록 설정되어 있다.
FullAccess인데도 안된다.
Console 에서 S3로 들어간 다음
목록에서 버켓을 클릭하명 상세 내용이 나온다
[객체 | 속성 | 권한 | 지표 | 관리 | 액세스 지점 ] 탭들이 있는데 권한 탭을 보면 버킷정책으로 Json으로 정의된 내용이 나오는데 제일 밑에 Delete 어쩌구에 Effect:Deny로 있다. "편집"버튼을 누른다음 Deny를 Allow로 바꾸거나 아예 지운다음 "변경사항저장" 한다.
우선. Jetbrains 라이센스는 우리나라의 단군넷에서도 구매가 가능하다.(단군넷 회원가입 필요) 하지만 결국에는 jetbrains 홈페이지에도 따로 가입을 해야한다... (참고로 10개정도 되어야 할인이 된다고 ...)
단군넷으로 결제를 하게되면 메일로 인증관련 메일이 온다. 링크를 타고 들어가서 가입하면 해당 계정이 마스터가 된다.
Jetbrains에서 가입하고 결제를 하면 해당 계정이 마스터가 된다.
결제가 완료되면 로그인했을 때 구매한 라이센스 정보를 보여준다. 구매한 게 "All Products Pack"에 4개를 구매 했다면 아래와 같이 나타난다.
"Active subscriptions"를 클릭하면 상세 목록이 나온다.
중간에 초대링크가 있으며 목록에는 LicensesID, Assigned여부, 만료일, 제품링크, 팀ID, Assign링크가 나타난다. 제품링크를 통해 가능한 제품을 바로 다운받을 수 있다.(어차피 인증은 나중이므로 여기에서 다운받지 않고 홈페이지의 다운로드 링크를 받아도 된다)
사용자를 할당하려면 오른쪽 끝의 Assign을 클릭한다.
링크를 보낼 Email주소와 이름을 입력하고 "Assign"버튼을 누르면 초대메일이 간다. 각 라이센스 ID별로 assing 하면 된다.
아래와 같이 메일에 파란색으로 "complete JetBrans Account registration" 링크가 있다. 클릭하여 완료하고 해당 메일계정으로 JetBrains에 가입이 안되어 있으면 가입해야 한다.
가입이 완료되면 제품을 다운로드 받은 뒤, 인증에서 jb account(email / password) 로 activate하면 된다.
// login function const frm = new FormData() frm.append('userid', this.userid) // model로 연결되어 있으므로 this.userid frm.append('password', this.password) // model로 연결되어 있으므로 this.password this.$axios.post(`login/proc`, frm)
수신하는 back-end 의 경로가 http://localhost:8000/login/proc
proxy에 /login 설정이 되어 있으므로 proxy에서 "/":"localhost:8000" 으로 하면 proxy로 바로 redirect 되므로 경로가 있어야 함.
하지만 proxy로 하는경우 경로 구별을 위해 /api/ 라는 경로를 주어 분리하는 용도로 사용해 봐야겠음.
src/store/index.js 에서 state 안에 video dataset(videos)을 선언해둔다.
Home.vue 에서 videos 를 사용하는데 style 관련해서 sass 를 사용하므로 두개의 모듈을 추가로 설치한다 npm i sass-loader 로 최신버전을 깔았더니... Syntax Error: TypeError: this.getOptions is not a function 에러가 나네... 쩝. 이런경우 npm uninstall sass-loader 로 삭제하고 10버전을 설치한다. vue랑 sass-loader 버전이 호환되지 않는 경우가 있다고 하네...
npm install --save sass-loader@10 npm i node-sass
src/views/Home.vue 를 수정한다. video dataset 이 목록으로 나오는 것을 확인할 수 있다.
이제 목록을 클릭하면 상세로 들어가자. 보통은 VideoWatchList -> VideoWatchDetail 과 같이 목록에서 상세로 가는데 Home 화면에 목록이 나오므로 VideoWatch화면을 상세로 사용하자. 그러기 위해서는 목록에서 값을 상세로 넘겨줘야하는데...
일단 화면의 링크를 클릭해봤는데 video watch화면이 나오네?? 흠...
src/route/index.js path에 id를 받을 수 있게 :id 를 추가하고, params: true 로
url에 id가 넘어올 것이므로 VideoWatch.vue 에서 id를 이용해 store의 state 안에 있는 videos 에서 id로 값을 가져오게 한다.
computed에서 video라는 function을 정의하고 this.$store.state 로 state값에 접근하여 videos를 찾는다. 이때 this.$route.params.id 를 Number()로 감싸서 숫자로 바꾸어 주는데 이유는 videos 에 id 가 숫자로 되어있기 때문이다.
Number()로 감싸지 않으면 숫자와 문자를 비교하게 되어 return되는 값이 없다. id를 '1' 과 같이 문자로 처리하면 Number()로 감싸줄 필요 없다.
결과는 this.$route.params.id 를 넘겨서 state.videos 에서 id에 해당하는 값을 가져왔다.
참고1. console.log(this.$store.state.videos) 를 찍었을 때 data가 Proxy 아래로 나타나게 되는데 이것은 상관하지 않아도 된다. 똑같이 array며 표현만 저렇게 된 것임.
참고2 store/index.js 에 videos 를 선언한 것은 vuex 3.x 형 표현이다. vuex 4.x 로 하면 형태가 조금 다른데 3.x 대 형태도 문제없이 동작한다.