본문 바로가기

전체 글241

[Block Chain] 그라운드X 클레이튼 강의 정리 3 21. 웹 프로그래밍 1 ~ 2 (javascript) 자바스크립트는 웹 페이지를 동적으로 제어하기 위해서 고안된 언어이다. SPA 개념이 적용되어 페이지를 바꾸지 않고 현재 페이지 내에서 수정하는 패러다임 web2.0과 함께 활용도가 많아졌다. 22. 응용 사례 비즈니스, 정산, 교환의 매개체, 자산의 역할 23. 공급망 관리 현대 사회에서는 공급망 관리가 필수적, 재료를 어디서 가져올지, 어디에서 가공할지 등등 월마트 Food Trust chain 이런 정보들을 블록체인으로 기록하고 검증. 24. 해외 송금/정산 중앙화된 시스템을 거쳐 갈 수 밖에 없음. 수수료, 즉시성 떨어짐 은행권에서 블록체인을 적용하여 처리 25. 지역 화폐 기업이 시스템적으로 돈을 아낄 수 있다면? 이걸하면 얼마를 아끼고? 보.. 2023. 11. 4.
[Block Chain] 그라운드X 클레이튼 강의 정리 2 10. 트랜잭션 External Account: 사용자가 사용하는 어카운트 Contract Account: 스마트 컨트랙트를 표현하는 어카운트 실제 상태를 만들고, 실질적으로 처리를 하는 것은 External Account 트랜잭션의 목적은 '블록체인 상태의 변경' 보내는 사람과 받는 사람이 지정되어 있음. 트랜잭션을 검증하고 블록에 넣기까지 연산비용이 필요하다. (GAS) 클레이튼은 가스비를 적어낼 수 없음. 사용자끼리 경쟁X 11. 트랜잭션과 서명 트랜잭션은 서명과 함께 한다. 센더에게 필요한 가스비가 있는지 파악. (balance) 12. 블록체인별 트랜잭션 클레이튼 트랜잭션 논스: 어카운트가 몇 번째 트랜잭션을 보내는지 from: sender to: 받는 사람 value: 몇 개의 토큰을 전송 t.. 2023. 11. 4.
[Block Chain] 그라운드X 클레이튼 강의 정리 1 1. 블록체인의 정의와 구성, 해시 함수 블록체인: 정보를 블록이라고 하는 단위로 저장하여 저장된 블록들을 체인 형태로 묶은 저장 기술 해시함수: 임의의 길이의 데이터를 고정된 데이터로 매핑하는 함수 하나의 데이터는 하나의 해시값만 존재. 길이는 동일 16진수 문자를 32개를 저장하여 해시를 표현 => sha256 2. 블록체인의 구조, 주요 용어 블록은 이전 블록의 해시 포인터를 가진다. 뒤의 블록이 앞 블록의 해시 포인터를 가진다. 헤더는 블록을 설명하는 정보와 이전 블록의 해시를 포함한다. 블록 높이(뎁스), 블록 생성 주기 생성주기에 따라 나의 트랜잭션이 처리될지 안 될지가 결정된다. 적어도 N초가 걸린다. 이런 느낌. 3. 블록체인 네트워크 p2p 네트워크이다. 모든 노드가 같은 데이터를 가지고.. 2023. 11. 4.
[Android] 테스트 기기 설정 안드로이드 설정(Android 12 버전의 A42를 기준으로 작성) 1. 필요 없는 앱들 정리 2. 개발자 모드 활성화 - 화면 켜짐 상태 유지(충전시) - 애니메이션 배율 0.5배 - USB 디버깅 활성화 3. 잠금화면 설정 제거(테스트폰에서 잠금화면 필요 없음) 4. 화면 자동 꺼짐 시간 5분 개인적으로 설정하는 부분 1. WIFI 2. 절전모드 3. 블루투스, NFC, GPS 같은 기능 풀기 4. 편안하게 보기(화면 온도) 설정 5. 배경화면, 테마 설정(나는 초록색 중심으로) ADB 설정 방법(Android Debug Bridge) adb devices adb tcpip 5555 (usb 연결된 상태에서) 연결 빼고 adb connect ip_address:5555 adb devices로 다시 확.. 2023. 10. 31.
[Block Chain] 블록체인 관련 용어 정리 3 1. 블록(block) 예를 들어, 비트코인의 경우 10분간 진행된 약 2,000건의 거래내역을 하나의 블록으로 묶어서 관리한다. 라이트코인의 경우 약 2분 30초 동안 진행된 거래내역을 하나의 블록으로 만들어 관리한다. 하나의 블록을 다음 블록과 이어주기 위해 해시를 이용하여 체인 구조를 만들 수 있다. 이처럼 다수의 트랜잭션을 블록으로 묶은 후 시간 순서에 따라 체인으로 엮은 것을 블록체인(blockchain)이라고 한다. 가장 많고 가장 빨리 작업을 한 사람이 블록에 기록하고 블록을 생성할 수 있는 투표권을 더 많이 갖는다고 할 수 있다. 이것이 작업증명이라는 것인데 여기에서 작업이란 수학 문제를 푸는 것을 말한다. 기 때문이다. 블록이 권위체인에 깊숙이 들어가 있을수록 다음과 같은 사실이 성립된다.. 2023. 10. 31.
[Block Chain] 블록체인 관련 용어 정리 2 1. 토큰과 코인, 그리고 메인넷 독자적인 생태계가 있는지 여부에 따라 토큰/코인이 분리된다. 메인넷이란 기존 사용 플랫폼(이더리움, 퀸텀, 네오 등)에서 나와 독립적으로 생태계를 구성하는 것을 말한다. 메인넷은 독립적인 플랫폼으로서 암호화폐 거래소, 개인 지갑 거래간 트랜잭션(처리)을 비롯해 생태계를 구성하고 암호화폐 지갑을 생성하는 것 자체 프로토콜(protocol)인 메인넷을 보유하고 있다면 '코인'(이더리움, 퀸텀, 리플, 네오 등), 다른 플랫폼에서 파생되어 만들어진 것을 토큰(이오스, 트론, 비체인 등)이라고 한다. http://wiki.hash.kr/index.php/%EB%A9%94%EC%9D%B8%EB%84%B7 2. 작업증명과 지분증명의 차이 블록체인이라는 네트워크(Network)가 유.. 2023. 10. 31.
[Block Chain] 블록체인 관련 용어 정리 1 1. 블록체인 탈중화된 앱으로 DB에 데이터를 저장하는 것이 아닌 블록체인 네트워크에 데이터를 저장한다. 보안성이 뛰어나며 특정 기관의 간섭을 받기 어렵다. 거버넌스라는 투표 시스템이 있다. 암호화폐를 보유한 사람들의 투표로 결정할 수 있다. 비용이 높다. 코드 수정이 어렵다. 느리다. 현재는 게임 위주로 Dapp이 활용되나 나중에는 더 많은 영역으로 확장될 예정이다. IOT나 AI등의 기술과의 연계도 기대할 수 있을 것. 전통적인 어플리케이션의 형태와 다르다. 2. Web3.0 1.0이 PC로 접속, 2.0이 모바일, 3.0은 개인에게 최적화된 환경을 제공하는 개념이다. 3. IPFS(InterPlanetary File System, 분산형 파일 시스템) 데이터를 수많은 노드에 호스팅하고 백업할 수 있.. 2023. 10. 31.
블록체인 기반 포트폴리오 계획 이번에 개발할 프로젝트는 블록체인 기술을 이용한 dapp이다. 팀노바 수강생들의 작품을 보면서 나는 어떤 방향으로 만드는 것이 좋을지 고민했다. 주로 웹기반으로 만드는 경우와 모바일로 만드는 경우가 있는데, 나는 모바일로 골랐다. 나는 블록체인 익스플로어나 월렛을 굳이 만들고 싶지 않다. NFT로 할 수 있는 컨텐츠에 힘을 주는 것이 더 마음에 들어서 그렇게 할 생각이다. 팀노바 수강생들을 보면 블록체인을 fork해서 메인넷을 만든 것도 있는데, 나는 클레이톤 기반으로 작업을 해볼 생각이다. 1. 작업할 내역 회원가입/로그인, 게시판 NFT 민팅, 게임 or 메타버스 환경 거래내역 조회 + (필요시) AR 2. 사용할 기술 스택 블록체인: Klaytn, Solidity 백엔드: node.js expres.. 2023. 10. 30.
[Flutter] FCM 기능 추가 Flutter 환경에서의 Firebases는 상대적으로 쉽게 설정이 가능하다. FlutterFire CLI에서 기본적인 설정을 다 해주기 때문이다. 따로 패키지명 가지고 Firebase Console에 등록할 필요도 없다. (프로젝트는 추가해야 한다) 1. FlutterFire 설정 npm을 이용하여 설치하고 firebase 로그인, cli 활성화 과정을 거친다. dart pub global activate flutterfire_cli flutterfire configure - 안 되면 에러메시지 보고 환경변수 추가 여기까지 하면 lib 파일쪽에 firebase_options 파일이 추가되고, android, ios 쪽에 google-service 파일도 자동으로 추가 된다. 참고: https://fir.. 2023. 10. 23.
[Android, iOS] 스토어 배포 정리 이미지 준비물 1. 그래픽 이미지(1024 * 500), 광고 목적 2. 휴대전화 이미지 2장(1080 * 1920), 최소 기준이 이렇고 테블릿 사진도 추가 가능하다. 3. iPhone 이미지 (6.7 디스플레이, 6.5 디스플레이, 5.5 디스플레이) 4. iPad 이미지(12.9 디스플레이 6세대, 12.9 디스플레이 2세대) *디자이너분이 있으면 부탁드리고 없으면 적당히 만들어주는 사이트를 이용하자. 5. 앱 아이콘은 1024 사이즈로 받아서 https://www.appicon.co/ 에서 Android, iOS용으로 아이콘을 뽑으면 된다. 1. 앱 아이콘 적용 안드로이드 쪽은 사이즈 별로 만들어진 아이콘을 붙여 넣으면 된다. iOS의 경우 AppIcon.appiconset 파일을 통째로 교체하면.. 2023. 10. 23.
[Flutter, C#] .env 파일 추가 서론) Flutter 개발환경에서 nodejs의 dotenv 같은 환경 설정이 필요했다. dart-define 문법을 활용하여 처리할 수도 있겠지만 그냥 바로 생각나는게 dotenv더라. flutter환경에서 dotenv를 지원하는 패키지가 존재한다. https://pub.dev/packages/flutter_dotenv 프로젝트 파일에 .env 파일을 추가하고 초기화를 진행한다. Future main() async { // To load the .env file contents into dotenv. // NOTE: fileName defaults to .env and can be omitted in this case. // Ensure that the filename corresponds to the.. 2023. 10. 23.
[Android] Splash Screen API 분석 안드로이드 12(API 31, 32)부터 Splash Screen API가 추가되었다. 기존에 Splash Screen을 커스텀해서 사용하던 방식을 개선하고자 공식적으로 지원하는 API이다. 앱의 실행 상황(Cold start)에 맞게 적절한 리소스를 사용하기 위해 API를 제공한다. 앱이 처음 시작되는 경우 Cold start에 해당한다. 앱을 실행시키기 위한 프로세스단 처리부터 시작된다. Warm Start의 경우 액티비티의 onCreate부터 호출이 된다. Hot Start의 경우, 액티비티가 메모리에 존재하여 초기화를 하지 않는다. 메모리가 달라진 경우에 한정되어 다시 만드는 처리를 진행한다. 안드로이드 12부터 스플래시 스크린 API를 공식적으로 제공하여 애니메이션을 주거나, Splash Scr.. 2023. 10. 22.
[iOS] 앱스토어 심사 거절 정리 경험했던 앱스토어 심사 거절 사유를 정리합니다. Guideline 2.1 - Performance - App Completeness 회원가입 기능 중에 카메라 사용하는 부분이 있는데 이 부분에서 앱이 죽는다고 한다. 카메라 사용 정보를 앱 내에 수정하여 재심사 진행. (Android 쪽도 같이 확인하여 수정했다) Guideline 2.3.3 - Performance - Accurate Metadata 스크린샷이 실제 사용하는 앱을 충분히 보여주지 않는다고 합니다. 지원중인 기기에서 사용중인 앱이 정확히 반영되도록 스크린샷을 수정해야 합니다. 애플 가이드에 따르면, 1. 앱의 UI를 반영하지 않는 마케팅, 프로모션 정보는 스크린샷에 적절하지 않습니다. 2. 스크린샷은 앱의 주요 특징과 기능을 반영해야 합니.. 2023. 10. 22.
[Flutter] Missing Push Notification Entitlement 앱 내부에서 푸시 알림 기능을 사용하지 않더라도, 푸시 알림이 허용된 상황을 가정하여 iOS 스위즐링을 처리하고 있는 플러그인이 존재한다. https://github.com/flutter/flutter/issues/9984#issuecomment-1664282440 앱 내에서 사용하지 않더라도, 푸시 알림 설정만 변경해주면 해결할 수 있다. To not receiving this email anymore, you can workaround by enabling publish notification in your App. (You don't have to implement any publish notification features, just simply enable the feature and capab.. 2023. 10. 22.
[메타프루츠] WebRTC 기반 포트폴리오 [작품 이름] 메타프루츠(Metafruits) [작품 바로가기] 웹 사이트: https://metafruits.kro.kr [작품 소개] 메타프루츠는 '메타'와 '프루츠'의 합성어로, 메타버스 환경에서 과일이 되어 채팅이나 다자간 화상회의를 진행할 수 있습니다. [개발 기간] 23.09.27~23.10.17 [주요 기능] 1. 다자간 화상회의 2. 채팅 - 전체 채팅 - 회의방 채팅 3. 캐릭터, 닉네임 변경 4. 장치설정 - 카메라, 마이크 제어 - 장치 선택 - 마이크 테스트 5. 모바일웹(사파리 브라우저) [사용 기술] 언어: javascript, HTML, CSS 서버: node.js(express) 라이브러리: Mediasoup, Phaser, Socket.io, Webpack 프로토콜: HTT.. 2023. 10. 17.
[Portfolio Log] WebRTC 기반 포폴 기록 11 (메타프루츠) 모바일 웹 환경에서 캐릭터를 움직일 수 없어서 조이스틱을 추가했다. https://rexrainbow.github.io/phaser3-rex-notes/docs/site/virtualjoystick/ 또한 getUserMedia가 정상적으로 동작하지 않아서 navigator.getUserMedia = navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; if(navigator.getUserMedia) { naviagtor.mediaDevices... } 이런 형태로 수정했다. iOS 환경에.. 2023. 10. 17.
[Portfolio Log] WebRTC 기반 포폴 기록 10 (메타프루츠) 자잘한 이슈가 왜이리 많이 나오는지. 기어코 주말을 반납하고 말았다. 주말에는 좀 쉬어야 하는데 또 개발만 해버렸구나. 이제 정말 이 프로젝트를 마무리 지으면 좋겠다. 이번에 추가한 작업은 마이크/카메라 상태에 따른 UI 갱신과 트랙 변경 오류이다. replaceTrack을 처리하는 부분에서 약간의 딜레이를 주지 않으면 정상적으로 동작하지 않는 이슈가 있었다. 또한 자신의 트랙을 바꾸는 상황에서 음성 인식 리스너를 날리고 다시 처리해줬다. 스트림을 받는 쪽에서는 바꾼 트랙을 기준으로 음성 인식 처리를 잘하더라. 배경음악을 추가하고, 포탈, 버튼 클릭시 효과음이 나오도록 추가했다. 아마존 프리티어를 활용하여 1GB짜리 램을 가진 EC2에 배포를 해봤다. 생각보다 잘 돌아가더라. Putty 사용법 및 EC2.. 2023. 10. 16.
[Portfolio Log] WebRTC 기반 포폴 기록 9 (메타프루츠) 미디어 수프 멀티 연동 작업을 진행했다. 룸 입장시 영상을 추가하고 퇴장시 영상을 삭제하도록 처리한다. 원래 비디오 트랙만 가져다가 개발하고 있었는데, 나중에 오디오 트랙도 추가하니까 produce 이벤트가 2번 오면서 뷰가 2개씩 생성되는 이슈가 있었다. 중간에 socketId 값을 넘겨서 socket 단위로 뷰를 생성하는 코드를 작성했다. 방 퇴장 시에도 자신이 가진 consumers 정보를 삭제하지 않는 이슈가 있어 수정했다. 앞으로 남은 작업 - 마이크/카메라 상태에 따른 UI 갱신 - 트랙 변경 오류 수정 2023. 10. 14.
[Portfolio Log] WebRTC 기반 포폴 기록 8 (가제: 메타프루츠) 1. 포트폴리오 가제 설정 'meta'와 'fruits'의 합성어인 메타프루츠가 될 것 같다. 2. 웹팩 적용 Mediasoup 설치에서 웹팩이나 browserify를 쓰라는 이야기가 있어서 웹팩을 적용했다. 처음 해보는 거라 서버 파일 실행 안 시키고 클라js 파일로 돌리고 있고... Dom Element 접근 안 되는 이슈가 있기는 했는데 결국 고치긴 했다. (footer에서 index.js 참조) https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event 윈도우의 onload를 사용하는 방법도 있다. 3. 코드 분리 과정 기존 index.js에 모여 있던 Socket 코드, UI 코드를 분리하는 과정을 거쳤다. 이 과정에서 잘 모르고 있던.. 2023. 10. 11.
[Portfolio Log] WebRTC 기반 포폴 기록 7 1. 포탈 동기화 로직 추가 이전에 있었던 장면에서 플레이어를 없애라는 요청을 다른 플레이어에게 보내고 자신은 새로운 정보를 받는다. 그리고 넘어가는 장면에 존재하던 플레이어에게 새로운 유저 정보를 넘겨주면 된다. 기존에 broadcast로 처리하고 있던 부분을 room 개념을 추가하여 작업했다. 2. 이름 변경 및 캐릭터 변경 로그(채팅) 삭제 설계적으로 특이점을 하나 발견했다. 예를 들어 전체 채팅방에 A라는 유저가 캐릭터를 바꿨다는 로그가 계속 뜨는게 맞는건가? 다른 맵에 있는 사람도 그 정보를 받아서 뭔지도 모르는 A라는 유저가 캐릭터를 변경했다는 정보를 받아야 하는가? 다른 사람이 궁금한 정보인가? ㄴㄴ 다른 사람이 알아야 하는 핵심적인 정보인가? ㄴㄴ 다른 맵에 있는 사람이 누군가 캐릭터 설정.. 2023. 10. 8.