728x90

✖ Installing Bundler error Your Ruby version is 2.6.10, but your Gemfile specified 2.7.5

ruby version error 해결 

//루비버전관리 프로그램 설치
brew install rbenv

//나는 mac 유저라서 터미널에서 바로 
code . 
//쳐주면 .zshrc파일 들어갈 수 있음. 접근해서 맨밑에 추가함
eval "$(rbenv init -)"

//원하는 버전 설치
rbenv install 2.7.5

//설치완료 확인 (이제는 자동으로 해줘서 안해도 되는 명령어라고 함)
rbenv rehash

//버전 변경 (이것도 자동으로 해주는 거같음 )
rbenv global 2.7.5

//버전확인 
ruby --version

//버전변경했는데도 자꾸 이전 버전이 뜬다면 터미널 껐다가 다시 버전체크해보자. 껐다 다시 킨 다음에야 나는 변경된 걸로 떴음

https://dololgun.github.io/macos/mac-ruby-reinstall/

 

MacOS ruby 버전 관리

mac에서 ruby버전 관리하기

dololgun.github.io

 

근데 ruby가 뭘까?

출처 : https://opentutorials.org/module/2878/16498

객체지향 언어인데 자유도가 있는 언어라고 한다

 

reactnative에서 ruby 쓰는 이유는 

Because iOS uses CocoaPods to handle dependencies which was written in Ruby

ios 가 cocoapods 사용하는데 이게 ruby로 쓰여서.

 

 

 

cocoapods 에러

https://reactnative.dev/docs/next/environment-setup

sudo arch -x86_64 gem install ffi
//이건 프로젝트 폴더 들어가서 cd ios 안에서 했다 pod install 해준 것
arch -x86_64 pod install

 

혹시몰라서 프로젝트 다 삭제하고 

npx react-native init AwesomeTSProject --template react-native-template-typescript

다시 하니 에러 없이 잘 됐다. 

 

 

 

아래글 초기셋팅 참고로 굿

https://zeunny.tistory.com/6

 

[React Native] 공식 문서 보고 Mac OS에서 개발 환경 설정하기

[React Native] 공식 문서 보고 Mac OS에서 개발 환경 설정하기 공식 문서는 아래 링크를 클릭해서 보면 된다. https://reactnative.dev/docs/environment-setup Setting up the development environment · React Native This page will h

zeunny.tistory.com

 

728x90
728x90

핸드폰 개발자 모드로 설정!

usb 컴퓨터와 핸드폰 기기 연결 (c타입-c타입도 됨)

usb 테더링으로 설정

 

만약 다음과 같은 에러시 

 

Task :app:installDebug FAILED
error Failed to install the app. Make sure you have the Android development environment set up:

 

 

cd android

./gradlew clean

 

그리고!!!

 

깔려있는 앱삭제!

 

후 실행 

yarn android

 

 

 

https://velog.io/@rjc1704/React-Native-%EC%97%90%EB%9F%AC-%EB%8C%80%EC%9D%91

 

React Native 에러 로그 (Deprecated Gradle features)

npx react-native run-android 명령어로 앱 실행 시도 할 때 위와 같은 에러가 뜬다면, 아래 2가지 작업만 해주면 된다. 디렉터리 위치를 android 디렉터리 안으로 이동하여 ./gradlew clean 실행 에뮬레이터 또

velog.io

 

728x90
728x90

Unhandled Runtime Error

Error: Objects are not valid as a React child (found: object with keys {findFirstTransaction}). If you meant to render a collection of children, use an array instead.

 

 

 

const check = () =>{

const { loading, error, data } = useQuery(CHECK_WITHDRAW, {
    variables: {
    
    },
  })


return (
<>{data}</>
)



}

data가 객체여서 뜨는 에러!!!

 

JSON.stringfy(data, undefined, 2)

 

하면 잘뜨는거 확인할 수 있음!

 

usequery는 렌더될 때 바로 실행돼서

버튼 할때만 하는 useLazyquery로 수정해야겠다...

둘의 차이는 자꾸 까먹으니까 정리해라 네네~

 

 

https://velog.io/@leehyunho2001/React-Query%EC%97%90%EC%84%9C-%EB%B2%84%ED%8A%BC-%ED%81%B4%EB%A6%AD%EC%8B%9C%EC%97%90-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%9A%94%EC%B2%AD%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-feat.-useQuery

 

728x90
728x90

Can't use Watchman: "Operation not permitted"

 

Can't use Watchman: "Operation not permitted"

Since updating Watchman recently (with Homebrew) I can no longer use it to watch projects. I get { "version": "2022.05.30.00", "error": "std::__1::system_...

stackoverflow.com

watchman shutdown-server

로 해결

 

 

 

에러가 No bundle URL로 빨갛게 떴는데 

 

아래링크처럼

rm ios/build

로 삭제하고 

xcode에서 삭제해도 그대로 에러창 떴다. 

 

metro로 새로 뜨는 창에 

watchman 에러가 떠서 검색해보았다.

watchman 서버를 끄고 다시 실행하니까 잘 켜졌다. 

 

 

 

 

 

https://juzero-space.tistory.com/261

 

[React Native 에러 해결] IOS, No bundle URL present

1. 에러 상황 이유는 모르겠으나 No bundle URL present 에러가 발생했다. 아마 이것저것 만지다보니 나도 모르게 잘못 건드린거같다 ㅠ 2. 해결방법 해결방법이 간단하다. 다행.. 첫번째 방법) ios/build

juzero-space.tistory.com

 

 

728x90
728x90

server.js에서 db확인할게 있어서

 

npm start했는데

  

UnhandledPromiseRejectionWarning: Error: Could not find a production build in the 

이 에러 뜸

 

그래서 

npm run build

했는데 에러

 

 

 

 throw er; // Unhandled 'error' event
      ^

Error: EPERM: operation not permitted, open 경로
Emitted 'error' event on WriteStream instance at:

 

해결: 실행해놓은 npm run dev 취소하고 하니까 됨

이거 하기 전에 build해야되는거임

 

 

 

빌드 잘됨

728x90
728x90

 

이거 따라할 때 생겼던 에러와 해결내용

https://medium.com/pinata/how-to-build-erc-721-nfts-with-ipfs-e76a21d8f914

 

How to Build ERC-721 NFTs with IPFS

Using Open Zeppelin, Truffle, and Pinata

medium.com

 

1. ERC721

오픈제플린 최신버전은 ERC721URIStorage 가 ERC721를 대체한다. 이름 바꿔줘야함.

못가져옴 사용이 안되어서 에러 뜸

,DeclarationError: Undeclared identifier.
  --> project:/contracts/UniqueAsset.sol:29:3:
   |
29 |   _setTokenURI(newItemId, metadata);

 

//기존
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

//ERC721.sol가 없고 이제 ERC721URIStorage.sol이거 씀
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";

 

 

 

근데 나는 여전히 계속 빨간줄 뜨더라고 그래서 

../node_modules/

로 경로 찾아주니까 빨간줄 사라짐

 

2. DeclarationError

사실 무엇보다

변수들을 못찾았는데

 

DeclarationError: Undeclared identifier. Did you mean "hash"?
  --> project:/contracts/UniqueAsset.sol:24:11:
   |
24 |   require(hashes[hash] != 1);
   |           ^^^^^^

,DeclarationError: Undeclared identifier. Did you mean "hash"?
  --> project:/contracts/UniqueAsset.sol:25:3:
   |
25 |   hashes[hash] = 1;
   |   ^^^^^^

그이유는!!!!

 

괄호를 잘못 묶었더라고..ㅋㅋㅋㅋ...

contract 안에 함수 있는건데 

contract랑 함수를 따로 해서 contract에 담아둔 애들이름 못 쓰는 거였다

 

 

 

결과 컴파일 잘된다!

 

3. 경고 Visibility for constructor is ignored.

 

경고 뜨는 건

 

  Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, 
making it "abstract" is sufficient.

(경고: 생성자의 가시성은 무시됩니다. 계약을 배포할 수 없도록 하려면 "추상"으로 만드는 것으로 충분합니다.)
  --> project:/contracts/UniqueAsset.sol:16:4:
   |
16 |    constructor() public ERC721("UniqueAsset", "UNA") {}
   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

 

생성자에 더이상 가시성(public/ external)이 필요하지 않다고 한다.

왜냐면 생성자는 처음에 배포됐을 때만 읽히니까 다음에 또 불려질 일이 없다.

 

public을 지웠더니 경고가 사라졌다.

 

 

 

 

 

추가적으로는

솔리디티 버전을 코드랑 잘 맞춰줘야하는 것. 필요할 때 f1눌러서 버전수정했다.

 

 

 

 

따라한 내용 정리

필요한 것

  • vscode(nodejs, 솔리디티확장자)
  • IPFS 설치
  • Ganache — 이더리움의 로컬 블록체인 — 설치
  • 트러플 설치
  • NodeJS 설치
  • 피나타 API 키

스마트 계약 작성

 

(오픈제플린에서 가져와서 쓸거임)

 

새프로젝트 폴더 만듦

mkdir mySpecialAsset

디랙토리 초기화

npm init -y

 

Truffle을 활용해 스마트 계약 프로젝트 초기화

truffle init

Open Zeppelin 계약에 액세스할거라서 설치

npm install @openzeppelin/contracts

 

contracts 폴더 구조 안에 파일 생성! (솔리디티 버전 맞춰서 하기)

UniqueAsset.sol 

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

import "../node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "../node_modules/@openzeppelin/contracts/utils/Counters.sol";

contract UniqueAsset is ERC721URIStorage{
    //Counters to help us increment the identifiers for the tokens we mint.
    // 카운터 라이브러리(갯수세는역할함)를 쓴다. 이 유형으로
  using Counters for Counters.Counter;
    //변수만듦to keep track of all of the tokens we’ve issued.
  Counters.Counter private _tokenIds;
    //mapping for the IPFS hashes associated with tokens. 
  mapping(string => uint8) hashes;

   constructor() ERC721("UniqueAsset", "UNA") {}


// 특정IPFS해시에 아직 mint안되어있으면 mint하는 함수
// a method to our contract that will allow us to mint an NFT for a specific IPFS hash if not token has been minted yet for that hash
                           //nft수령인//NFT를 생성할 콘텐츠와 관련된 IPFS 해시 //자산에 대한 JSON 메타데이터에 대한 링크를 참조해야 한다
function awardItem(address recipient, string memory hash, string memory metadata) public returns (uint256)
{

  require(hashes[hash] != 1);
  hashes[hash] = 1;
  _tokenIds.increment();
  uint256 newItemId = _tokenIds.current();
  _mint(recipient, newItemId);
  _setTokenURI(newItemId, metadata);
  return newItemId;
}
}

폴더구조 migrations 들어가서 

2_deploy_contract.js

파일 생성

var UniqueAsset = artifacts.require("UniqueAsset");
module.exports = function (deployer) {
  deployer.deploy(UniqueAsset);
};

 

 

다 하면 컴파일

truffle compile

 

만약 오류가 발생하면 Ganache가 실행 중인 포트를 수동으로 설정 (아니면 나처럼 버전, 모듈경로 등의 문제일수도 있음 위에 참조)

truffle-config.js

(가나슈 퀵스타 누르면 뜨는 창에있는거랑 동일하게)

 

 

truffle migrate

이걸로 

 NFT 스마트 계약을 배포

 

 

 

이제 스마트 계약을 처리했으므로 기본 자산을 IPFS로 가져와 관련 NFT를 발행할 때 사용할 수 있는지 확인

 

 

IPFS에 자산 추가

우리는 Pinata를 사용하여 자산을 IPFS에 추가하고 고정된 상태로 유지하도록 할 것입니다.

https://app.pinata.cloud/pinmanager

 

uploadFile.js

업로드할 파일 준비

 

작업을

npm i axios form-data

쉽게 하려면 두 가지 종속성이 필요하다

 

이 스크립트에

const pinataApiKey = "YOURAPIKEY";
const pinataSecretApiKey = "YOURSECRETKEY";
const axios = require("axios");
const fs = require("fs");
const FormData = require("form-data");
const pinFileToIPFS = async () => {
  const url = `https://api.pinata.cloud/pinning/pinFileToIPFS`;=
  let data = new FormData();
  data.append("file", fs.createReadStream("./pathtoyourfile.png"));
  const res = await axios.post(url, data, {
    maxContentLength: "Infinity", 
    headers: {
      "Content-Type": `multipart/form-data; boundary=${data._boundary}`
      pinata_api_key: pinataApiKey, 
      pinata_secret_api_key: pinataSecretApiKey,
    },
  });
  console.log(res.data);
};
pinFileToIPFS();

 

코드 넣기 

Pinata에서 로그인하고 새 키 만들면 뜨는

"YOURAPIKEY"와 비밀키"YOURSECRETKEY"를 넣기 

 

 

node uploadFile.js

성공적으로 됐으면 이렇게 뜸

 

 

 

해당 해시는 자산의 검증 가능한 표현이고 IPFS 네트워크의 자산을 의미한다. 누군가가 자산을 변조하고 변경한 경우 해시가 달라진다. 이 해시는 우리의 스마트 계약을 통해 NFT를 발행할 때 사용해야 하는 것이다. 공개 게이트웨이를 제공하는 모든 IPFS 호스트는 이제 콘텐츠를 표시할 수 있다.. 라고 위 링크 글에 있다.

 

이게 Pinata에 자산을 업로드 하는 거라는데 pinata 내 계정에는 뭔가 달라진게 안보인다.

게이트웨이를 통해서 봐야돼서 그런건가 흠...

 

 

이상

뒤에 json 파일 만드는 것 이전까지 해봤다.

 

 

 

 

 

https://stackoverflow.com/questions/68608281/file-import-callback-not-supported-on-truffle-migrate

 

File import callback not supported on truffle migrate

I have a truffle project with the following contract (elided) that I'm running with truffle migrate: 1 pragma solidity >=0.6.0; 2 3 // implements the ERC721 standard 4 import &qu...

stackoverflow.com

 

 

 

https://forum.openzeppelin.com/t/function-settokenuri-in-erc721-is-gone-with-pragma-0-8-0/5978/21?page=2 

 

Function _setTokenURI() in ERC721 is gone with pragma ^0.8.0

I have the same error, now it’s OK: // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; import "@openzeppelin/contracts/utils/Counters.sol"; contract HarddiskCafe is ERC72

forum.openzeppelin.com

 

728x90
728x90

참고로 나는 이 두 에러가 스벅의 부실한 와이파이 때문이었음.. 

응아니고 mariadb 실행안해서였음요!!  기존에 쓰던 mysql는 초기설정으로 자동실행되게 설정해놓은 거라 마리아디비는 쓸라면 실행해줘야됐음!!!!!! ()

 

ConnectionError [SequelizeConnectionError]: connect ETIMEDOUT 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)   

 

 


+자동실행되는 설정

출처:&nbsp;&nbsp;https://codecoco.tistory.com/category

 


db연결하는 법 

mysql과 같음 이 코드 mysql연결하는거 보고 한거임(시퀄라이즈가 다른 sql데이터베이스들도 호환가능해서)

출처는 책임 | Node.js 교과서 | 조현영 p.315

 

 

 

package.json에 npm start하기 위해 넣기

start 노드몬 앱 넣기

시작할거를 main에 app.js로 

{
  "name": "4th-project-yunminblock",
  "version": "1.0.0",
  "description": "소윤이 보아라",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.2",
    "morgan": "^1.10.0",
    "mysql2": "^2.3.3",
    "nunjucks": "^3.2.3",
    "sequelize": "^6.13.0",
    "sequelize-cli": "^6.3.0",
  },
  "devDependencies": {
    "nodemon": "^2.0.15"
  }
}

 

시퀄라이즈에 필요한 모듈패키지설치

npm i express morgan nunjucks sequelize sequelize-cli mysql2

npm i -D nodemon

 

 

설치 완료 후

 

npx sequelize init

 

하면 

config, models, migrations, seeders폴더가 생성됨

models폴더 안에는 index.js가 있음

 

몇개는 지금 블록체인중이라서 넣은거라 안따라해도 됨

index.js 를 이렇게 수정고우

const Sequelize = require("sequelize");
const env = process.env.NODE_ENV || "development";
const config = require(__dirname + "/../config/config.json")[env];
const db = {};

//기존
const sequelize = new Sequelize(
  config.database,
  config.username,
  config.password,
  config
);

db.sequelize = sequelize;

module.exports = db;

 

이제 시퀄라이즈 통해 express앱과 mysql연결할거임

app.js 파일 만들고 안에 코드 넣기

const express = require("express");
const path = require("path");
const morgan = require("morgan");
const nunjucks = require("nunjucks");

const { sequelize } = require("./models");

const app = express();
app.set("port", process.env.PORT || 3307);
app.set("view engine", "html");
nunjucks.configure("views", {
  express: app,
  watch: true,
});

sequelize
  .sync({ force: false })
  .then(() => {
    console.log("데이터베이스 연결성공");
  })
  .catch((err) => {
    console.log(err);
  });

app.use(morgan("dev"));
app.use(express.static(path.join(__dirname, "public")));
app.use(express.json());

app.use(express.urlencoded({ extended: false }));

app.use((req, res, next) => {
  const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`);
  error.status = 404;
  next(error);
});

app.use((err, req, res, next) => {
  res.locals.message = err.message;
  res.locals.error = process.env.NODE_ENV !== "production" ? err : {};
  res.status(err.status || 500);
  res.render("error");
});

app.listen(app.get("port"), () => {
  console.log(app.get("port"), "번 포트에서 대기중");
});

마리아db포트가 3307로 되어 있어서 이렇게 했는데

사실 상관없는거같긴함 (서버는 계속 헷갈리는데 db서버가 3307포트인건 알겠고 여기서 넣는 포트는 아마 localhost:로 화면에 띄워주는 포트라고 이해함요..네.. )

여기서 3001로 바꿔도 잘됨 config에 port주소가 3307로 잘들어가 있기만 하면 문제없는듯 그거는 마리아db연결용 이건 보여주는포트용으로이해햇음

 

 

이제 중요한거.

config 내용임!!!

 

나는 마리아 디비쓰니까 그 유저네임이랑 그 비번 그 host로 적어줘야 한다

마리아 디비의 port랑

그래서 이렇게 했다

{
  "development": {
    "username": "mariatest",
    "password": "1234",
    "database": "mariadb",
    "host": "localhost",
    "dialect": "mysql",
    "port": "3307"
  },
  "test": {
    "username": "mariatest",
    "password": "1234",
    "database": "database_test",
    "host": "0.0.0.0",
    "dialect": "mysql"
  },
  "production": {
    "username": "mariatest",
    "password": "1234",
    "database": "database_production",
    "host": "0.0.0.0",
    "dialect": "mysql"
  }
}

아마 두세번째 애들은 상관없을듯 혹시나 해서 저렇게 넣어둔거임

 

 

 

이제 npm start하면 끝!!!

 


 

 

사실 위에도 말했지만 나는 연결안된다고 에러떴었음

ConnectionError [SequelizeConnectionError]: connect ETIMEDOUT
    at ConnectionManager.connect

 

암튼 이거 몰라서 mariadb들어가서 확인해보려는데 접근이 안됨

 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

 

 

sudo service mysql restart

이것도 해보고 계속 안되다가 

+아냐 이게 실행이야 이거 하니까 된거임!!

+

 

 

sudo mysql -u root -p

로 하니까 들어가짐

 

들어가서 문제 있나 확인함

 

흠... config랑 비교해봄 

user mariatest 인지 host localhost로 되어있나..

 

npm start했을 때 db없다길래 

npx sequelize db:create

로 생성하고

실행

npm start

 

 

안에도 잘있군

 

얏호

 

 

 

https://velog.io/@pier101/Linux-wsl-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85-%EB%A7%8C%EB%93%A4%EA%B8%B0nginx

 

[Linux] wsl 환경에서 로그인,회원가입 만들기(+nginx)

wsl 환경에서 node.js+react(+nginx)를 활용해 웹페이지를 만들어 보면서 ubuntu 환경에서 서버를 어떻게 구축하는지에 대한 감을 익히고 서버 구성에 대해 알아볼 것이다.📢본 작업은 wsl상에서 서버를

velog.io

 

 

 

 

 

728x90
728x90

https://gdtbgl93.tistory.com/63

 

Git push가 안되는 경우 (fatal: refusing to merge unrelated histories)

로컬 저장소에 있는 프로젝트를 깃허브 사이트를 통해 만든 저장소로 push 하는 경우에 이런 메세지가 뜨는 경우가 있다. 1 2 3 4 5 6 7 8 C:\Users\gitProject>git push origin master To https://github.co..

gdtbgl93.tistory.com

 

 

push 안되길래 

pull먼저 해보려는데 다 안되길래

 

1
git pull origin 브런치명 --allow-unrelated-histories
cs

이거 하니까 되더라 

 


 

깃 데스크탑써서 큰 걱정은 없지만

 

 

 

 

 

이것도 한번 읽어봤다..

origin/branch 랑

branch 뭐가 다른지..

 

흠 대충 이해해서는 

branch는 내 로컬이고 

origin/branch가 깃헙에 넘어가는 거같음요..

 

"여기에서 branch_name은 로컬 분기인 반면, origin/branch_name은 원격 추적 분기입니다. 원점에 있는 해당 분기의 상태를 반영합니다..."

 

하지만 다 이해하진 못했다!

 

https://stackoverflow.com/questions/26125162/difference-between-origin-branch-name-and-branch-name

 

difference between origin/branch_name and branch_name?

for pushing to bitbucket. If I do: git push origin origin/branch_name my commits are not pushed. Total 0 (delta 0), reused 0 (delta 0) If I do git push origin branch_name my commits are pushed:

stackoverflow.com

 

728x90
728x90

우분투 설치하고

계정생성 비번만들어

 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh|bash

(안돼서 다시함 둘중에 아무거나 하면 됨

뒤에 넣은 명령어 curl어쩌구는 됐다..)

 

하고 sudo su 슈퍼모드로

 

에서 다시 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh|bash

 

nvm install node

이거 해서 노드깔아줌

 

잉 nvm 찾을 수 없다고 뜨네

 

 

환경설정을 해줘야하는구나

. ~/.nvm/nvm.sh

 

 

nvm install node

이거 해서 노드깔아줌

 

 

버전확인

node -v

npm -v

 

 

----마리아디비깔기---

 

슈퍼유저로 전환되어있니

sudo su

 

 

레퍼지토리에서 업데이트 패키지가 있는지 체크하고, 설치된 패키지를 업데이트 하기

sudo apt update && sudo apt-get -y upgrade

 

 

mariaDB를 설치

sudo apt-get install -y mariadb-server

 

 mariaDB 접속하기

mysql -u root -p

 

 

에러

나는 기존에 mysql깔려있어서 포트번호가 똑같아서 에러남

 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 

 

 

에러 해결해보기

/etc/mysql/mariadb.conf.d 의  50-server.cnf 파일을 수정한다

 

 

cd /etc/mysql/mariadb.conf.d/

ls -la

vi 50-server.cnf

 

들어가서 

i눌러서 편집모드로 바꾸고

#주석 지우고 포트번호를 3307로 바꿔줌

esc눌러서 편집끝내고 :wq로 저장후 종료를 한다

cat 50-server.cnf로 내용 잘바뀌었나 확인한다

 

 

 

서버구동하기

sudo service mysql restart

 

 

MariaDB 접속하기

mysql -u root -p

 

 

확인하기

show databases;

잘뜸~

 

 

 

 

 

 

https://codecoco.tistory.com/58

 

[리눅스] ubuntu에 MariaDB 설치하기 // ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run

0. SuperUser 로 전환하기 sudo su 1. 레퍼지토리에서 업데이트 패키지가 있는지 체크하고, 설치된 패키지를 업데이트 하기 sudo apt update && sudo apt-get -y upgrade root@DESKTOP-RJ31OF5:/home/ubuntu# sudo..

codecoco.tistory.com

 

728x90
728x90

https://react.vlpt.us/mashup-todolist/01-create-components.html

 

1. 컴포넌트 만들기 · GitBook

1. 컴포넌트 만들기 투두리스트의 기능을 구현하기 전에, 우리 프로젝트에서 필요한 모든 컴포넌트들의 UI 를 미리 만들어보겠습니다. 우선 create-react-app 을 사용하여 새로운 프로젝트를 만들어

react.vlpt.us

이거 보고 투두리스트 만드는 중인데 

 

  Line 4:10:  'MdDone' is defined but never used    no-unused-vars
  Line 4:18:  'MdDelete' is defined but never used  no-unused-vars

 

 

컴포넌트만 생성하고 안에 변수 안넣어서 안뜨는 거였다!ㅎㅎㅎ삽질좋아

이전
넣어주니
잘뜸

아까는 

 

모듈문제인 주 알고 react-icon 다시깔고 그랬네

그거 다시 까니까 styled-component 모듈 찾을 수 없대서 또 다시깔았어..

 

(참고로 투두리스트 시작할때 styled-component모듈 깔아도 안된다길래 뭐지 했는데 

버전 문제였음 5.0.0로 하니까 잘되더라. 이놈의 버전에러)

yarn add styled-components@5.0.0

 

 

모듈깔때 다른 것도 삭제되기도 하나보네 

그것만 삭제하고 다시 깔아야되는데 그냥 해서 그런가..

 

 


 

 

한번에 이렇게 스타일 여러 개 줄 수 있는 거 좋다

 

 


 

컴포넌트를  app.js말고

다른 컴포넌트 안에 넣는 경우도 있는데 만들면서 경로 잘봐야겠다!!

 

얘를 들면 Todolist 에 들어가는 TodoItem 같은 경우

728x90

+ Recent posts