Web 3 js 를 이용한 지갑 잔액 확인
공부방/블록체인2023. 4. 21. 16:30Web 3 js 를 이용한 지갑 잔액 확인

1. Infura 회원가입 및 로그인 https://app.infura.io/ 2. 프로젝트 생성 - NETWORK 는 web3 API 선택 - NAME은 자유롭게 3. 본인 테스트 네트워크 선택 후 링크 복사 (소스코드 rpcURL 에 사용예정) 4. 적당한 위치에 프로젝트 디렉터리 생성 후 해당 폴더에서 아래 명령어 입력 npm init npm install web3 5. 해당 프로젝트에 디렉터리에 test.js 파일 하나 생성후 아래 코드 복붙 const Web3 = require("web3"); const url = "여기에 infura 사이트에서 복사한 URL 추가"; const web3 = new Web3(url); const account = "여기에 지갑 주소 입력"; web3.eth.ge..

공부방/Flutter2023. 3. 28. 18:57dart extends, implements, with, mixin, abstract 키워드 정리

flutter로 프로젝트를 만들면서 대부분의 키워드 같은 경우는 잘 사용한다고 생각했는데, mixin과 with는 헷갈리는 부분이 있어서 다시 정리를 해보려 해요. 1. extends extends는 흔히 우리가 다른 언어에서 상속으로 사용하는 키워드예요. dart 언어에서는 다중 상속이 불가능하고, 모든 속성과 메소드들을 상속받기 때문에 특별한 구현 없이 바로 사용이 가능해요. ※ 당연한 이야기 이지만 abstract class를 상속받으면 구현을 해주어야 해요. 하지만 abstract class 도 함수 몸체를 구현해 놓았다면, 따로 구현할 필요는 없어요! class CheesePizza extends Pizza { String name() { return "나는 치즈 피자에요"; } } class ..

Bloc vs Cubit
공부방/Flutter2023. 3. 27. 17:13Bloc vs Cubit

해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. Bloc 과 Cubit 둘중 어떤걸 사용하는게 좋을까요? 블록 공식 문서에 따르면 https://bloclibrary.dev/#/coreconcepts?id=cubit-vs-bloc "무엇을 사용해야 할지 아직 확신이 서지 않는 경우 시작하여 Cubit나중에 필요에 따라 리팩터링하거나 확장할 수 있습니다 Bloc" 라고 설명이 되어 있어요. 요약하면 그냥 필요에 맞게 사용해라 정도가 될듯 해요. 그렇다면 Bloc 과 Cubit은 어떤 차이가 있을까요? 아래 그림을 보면 좀더 쉽게 이해가 될듯 해요. 그림 1 에서 보듯이 Cubit은 Bloc에 포함되어 있어요. 그럼 좀더 자세하게 Cubit에는 없고 Bloc에는 ..

Flutter Bloc 필수적으로 사용하는 위젯
공부방/Flutter2023. 3. 23. 18:33Flutter Bloc 필수적으로 사용하는 위젯

해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. 1. BlocProvider Bloc + Provider , 블럭을 제공하는 위젯 특징 : 지연생성 옵션(lazy) 하위 계층 위젯들에서 접근 가능 Bloc 생성후 메모리 반환의 경우 자동으로 해준다. 2. MultiBlocProvider blocProvider 다중 등록 3. BlocBuilder BlocProvider로 생성된 bloc을 사용할때 쓰는 Widget bloc 옵션을 사용하지 않고 사용시 현 context로 부터 bloc을 찾아 변화 감지를 한다. bloc을 지정하는 케이스의 경우 특별한 케이스에서 사용하라고 권장한다. buildWhen 옵션을 통해 필요한 조건일때만 변화를 줄 수 있다. 4. ..

플러터 상태관리 bloc
공부방/Flutter2023. 3. 23. 11:59플러터 상태관리 bloc

해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. 왜 bloc 을 사용해야 하는가? 1. 뷰 영역과 비즈니스 영역을 쉽게 구분할 수 있다. 2. 테스트 하기 쉽고, 재사용을 가능하게 해준다. 3. 이벤트 트레킹을 통합적으로 관리할 수 있다. 4. 많은 개발자들의 하나의 코드 베이스로 일을 처리 할 수 있다. (이직시에도 이직한 회사가 bloc을 사용하고 있다면 적응이 쉬움!) 5. Github에서 가장 높은 star수 ? 출처 : https://www.inflearn.com/course/%ED%94%8C%EB%9F%AC%ED%84%B0-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC-%EB%B8%94%EB%9D%BD-%EB%A7%88%EC%8A..

값 타입 컬렉션
공부방/JPA2023. 3. 22. 23:40값 타입 컬렉션

값 타입을 하나 이상 저장할 때 사용 @ElementCollection, @CollectionTable 사용 데이터베이스는 컬렉션을 같은 테이블에 저장할 수 없다. 컬렉션을 저장하기 위한 별도의 테이블이 필요함 값 타입 컬렉션의 제약사항 값 타입은 엔티티와 다르게 식별자 개념이 없다. 값은 변경하면 추적이 어렵다. 값 타입 컬렉션에 변경 사항이 발생하면, 주인 엔티티와 연관된 모든 데이터를 삭제하고, 값 타입 컬렉션에 있는 현재 값을 모두 다시 저장한다. 값 타입 컬렉션을 매핑하는 테이블은 모든 컬럼을 묶어서 기본키를 구성해야함 : null입력 x, 중복 저장 x 값 타입 컬렉션 대안 실무에서는 상황에 따라 값 타입 컬렉션 대신에 일대다 관계를 고려 일대다 관계를 위한 엔티티를 만들고, 여기에서 값 타입..

값 타입과 불변 객체
공부방/JPA2023. 3. 21. 23:30값 타입과 불변 객체

값 타입은 복잡한 객체 세상을 조금이라도 닫순화 하려고 만든 개념이다. 따라서 값 타입은 단순하고 안전하게 다룰수 있어야한다. 값 타입 공유 참조 임베티드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험함 부작용 발생 값 타입 복사 값 타입의 실제 인스턴스인 값을 공유하는 것은 위험 대신 값(인스턴스)를 복사해서 사용. 객체 타입의 한계 항상 값을 복사해서 사용하면 공유 참조로 인해 발생하는 부작용을 피할 수 있다. 문제는 임베디드 타입처럼 직접 정의한 값 타입은 자바의 기본 타입이 아니라 객체 타입이다. 자바 기본 타입에 값을 대입하면 값을 복사한다. 객체 타입은 참조 값을 직접 대입하는 것을 막을 방법이 없다. 객체의 공유 참조는 피할 수 없다. 불변 객체 객체 타입을 수정할 수 없게 만들면 부작..

임베디드 타입
공부방/JPA2023. 3. 21. 23:17임베디드 타입

새로운 값 타입을 직접 정의할 수 있음 JPA는 임베디드 타입(embedded type)이라 함 주로 기본 값 타입을 모아서 만들어서 복합 값 타입이라고도 함 int, String과 같은 값 타입 사용법 @Embeddable: 값 타입을 정의하는 곳에 표시 @Embedded: 값 타입을 사용하는 곳에 표시 기본 생성자 필수 장점 재사용 높은 응집도 Period.isWork()처럼 해당 값 타임만 사용하는 의미 있는 메소드를 만들 수 있음 임베디트 타입을 포함한 모든 값 타입은 값 타입을 소유한 엔티티에 생명주기를 의존함 임베디드 타입과 테이블 매핑 임베디드 타입은 엔티티의 값일 뿐이다. 임베디드 타입을 사용하기 전과 후에 매핑하는 테이블은 같다. 객체와 테이블을 아주 세밀하게 매핑하는 것이 가능 잘 설계..

Chat GPT 에 대한 이해
공부방/Chat GPT2023. 3. 16. 18:52Chat GPT 에 대한 이해

Chat GPT 란? Chat GPT는 Generative Pretrained Transformer 의 약자예요. Generative 다음 단어를 예측 Pre-trained 많은 양의 데이터를 사전 훈련 Transformer 신경망에 기반한 인코더- 디코더 Chat GPT는 대화형 모델이고, instruct GPT 와 형제 모델이에요. Chat GPT 의 학습 방식은 아래와 같아요. - RLHF(Reinforcement learning by Human Feedback) SFT(Supervised Fine-Tuning) 사람이 직접 지도 학습 RM(Reword Model) 보상 학습 PPO(Proximal Policy Optimization) Algorithm 강화 학습 알고리즘 - 대화형 에이전트에 최적..

공부방/JPA2023. 3. 10. 22:30프록시

프록시 객체는 처음 사용할 때 한 번만 초기화 프록시 객체를 초기화 할 때, 프록시 객체가 실제 엔티티로 바뀌는 것은 아님, 초기화 되면 프록시 객체를 통해서 실제 엔티티에 접근 가능 프록시 객체는 원본 엔티티를 상속 받음, 따라서 타입 체크시 주의 해야함 (== 비교 실패, 대신 instance of 사용) 영속성 컨텍스트에 찾는 엔티티가 이미 있으면, em.getReference()를 호출해도 실제 엔티티 반환 영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태일 때, 프록시를 초기화 하면 문제 발생 프록시와 즉시로딩 주의 - 가급적 지연 로딩만 사용(특히 실무) - 즉시 로딩을 적용하면 예상하지 못한 SQL이 발생 - 즉시 로딩은 JPQL에서 N+1 문제를 일으킨다. - @ManyToOne, @On..

image