- 현재 뮤직카우와 같은 분할 투자 플랫폼은 실제 소유권이 아닌 수익청구권이 주어지기 때문에 논란이 많은 것으로 알고 있는데, selly에서의 조각투자는 소유권을 분배하는 것인가요?
- selly에서는 NFT를 조각으로 분할하기 위하여 해당 NFT의 소유권을 금고 역할을 하는 컨트랙트로 이전시키고, 분할 개수만큼의 토큰을 발행합니다. 해당 토큰의 소유권은 온전히 유저의 것이 되기 때문에 본인의 지분을 증명할 수 있을 것 같습니다.
1. 서비스
- 시연 중 인증 유저를 말씀해 주셨는데, 인증 유저의 기준이 뭔가요?
- 자신이 민팅한 NFT가 1이더 이상 거래됐을 때 인증 유저의 요건이 충족됩니다.
2. Front
최적화
- 트리 쉐이킹 (Tree Shaking)
- 앱에서 사용되지 않는 코드가 번들에 포함될 수 있다. 이를 번들 과정에서 제거 하는 작업
- 앱의 실행 속도를 향상 시킬 수 있다.
- 코드 분할 (Code Spliting)
- 앱의 사이즈가 커지면 번들 사이즈가 커진다. 이를 페이지 별로 분할 하는 작업
- 페이지에 필요한 코드만 불러와 앱의 초기 로딩에 들어가는 비용을 줄여준다.
- 이미지 cdn
- 실제로 이미지를 불러오는 영역의 크기보다 불러오는 api이미지가 더 클 수 있다.
- 이 원본 이미지를 이미지 cdn 서버에 필요한 사이즈와 타입으로 저장하여 이미지를 최적화 한다.
- 랜더링 되는 사이즈와 api 이미지 사이즈가 같아져서 성능이 향상된다.
3. Back
- MSA를 하는데 왜 Spring Cloud를 선택하였나요?
- Spring Boot를 기술 스택으로 사용하기 때문에 저희가 접하기 쉬울 거 같은 Spring Cloud를 선택하게 되었고 배민, 11번가, 카카오 계열사 등 몇몇의 기업들도 사용하는 기술로 보아 충분히 활용하기에 좋은 기술 스택이라고 생각되어서 선택하게 되었습니다.
- 백엔드에서 어떻게 블록체인과 통신을 하셨나요?
- Web3j를 이용해서 Nodejs에서 서비스를 블록체인과 통신하는 서비스를 구현하였습니다.
- 먼저 프론트에 요청을 Nodejs에서 받고 nodejs에서 만든 트랜젝션을 프론트에게 응답해줌과 동시에 nodejs는 spring에 데이터를 저장할수 잇는 API 요청을 보내주고 Spring에서는 트랜젝션에 성공에 대한 이벤트를 듣고 나오는 데이터를 얻어야 되기 때문에 다시 Nodejs에게 이벤트를 듣는 API 요청을 하게되고 그 값을 Spring쪽에서 받게 되면 그 값을 저장하게 됩니다. 이렇게 하나의 블록체인 로직이 끝나게 됩니다.
- 모놀리식 보다 MSA가 가지는 강점은 어떤거라고 생각하시나요 ?
- 모놀리식보단 세팅하는데 어려움을 가지지만 서비스를 분할해서 하기 때문에 새로운 서비스를 추가하는 것에 대해서 부담이 적고 각 서비스를 확장, 축소하는 것도 하나의 서비스만 하면 되기 때문에 유연한 확장성을 가지는 것 같습니다.
- 또한, 개별 마이크로 서비스에 변경 사항을 적용하고 배포할 수 있고 조정된 릴리스를 기다릴 필요 없이 이러한 변경 사항을 배포할 수 있으므로 더 빨리 기능을 출시할 수 있는게 강점이라고 생각합니다.
- 통신상 데이터 유실에 대해 생각하신 방법이 있으신가요 ?
- 블록체인내에서 데이터가 다 저장되어잇으니까 유실 될경우에는 블록체인에 있는 데이터를 가져와 활용할 수 있을것 같습니다.