[Chaincode] 체인코드에서의 MVC...? (2)

이전에 체인코드에서의 MVC패턴에 대해서 공부하고 앞으로의 프로젝트에서 적용하려고 정리했습니다.

그리고 실제로 프로젝트 투입 후 이렇게 저렇게 구조를 정리해본 결과를 한번 더 정리하려 합니다.

완성도는 올라간것 같지만 아직 손봐야될 부분이 생길수도 있다고 생각합니다.


폴더 구조

기존 프로젝트 구조

1
2
3
4
5
\GOPROJECT\SRC\MVC
├─controller
├─dao
├─dto
└─service

[React] 혼자 만들어본 채팅 웹 앱(클라이언트 부분)

이 포스트는 “[React] 혼자 만들어본 채팅 웹 앱”의 클라이언트 부분 설명입니다.

관련 글을 보고싶은 분은 글 최하단의 태그 Toy project 링크를 눌러 확인해보세요!

설명에 앞서 프론트를 전문으로 하는 개발자가 아니기 때문에 어색한 부분이 있을 수 있습니다.

특히 디자인 부분은.. 더이상의 설명은 생략하겠습니다 ㅜㅜ


서버와는 다르게 클라이언트는 코드가 긴편이다.

[React] 혼자 만들어본 채팅 웹 앱

개인적으로 만들고있던 사이트도 어느정도 안정화가 되어가고..

이제 뭘하지?

뭔가 새로운것을 공부하고 만들어야겠다는 생각이 문득 들었다.

그리고 아는것과 모르는것, 하고싶은 것과 하기싫은 것을 분류해보고…

소켓을 이용한 무언가를 해보고싶어.

소켓은 10여년 전 처음 자바를 배울때를 제외하고는 실무에서 전혀 접할 기회가 없었다.

당시에는 간단한 1:1 채팅 앱을 학습했는데, 기억도 잘 나지 않고 당시에 나에게는 너무 어려웠다.

소켓을 이용해 다시 채팅 앱을 만들어 보면 되겠다.

[CSS] Flexbox 정리

CSS

프론트 개발자가 아니라 항상 처음부터 UI를 작성할때 어려움을 많이 느낌 복사 붙여넣기는 잘함

flexbox의 속성들을 간단히 정리

TIL

[MySQL] Error: ER_NOT_SUPPORTED_AUTH_MODE 에러 해결

토이 프로젝트 개발중 새로운 MySQL을 설치하고 백엔드 서버에서 접속하려고 할때 아래와 같은 에러 발생

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
\node_modules\mysql\lib\protocol\Parser.js:437
throw err; // Rethrow non-MySQL errors
^

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError
at Handshake.ErrorPacket
at Protocol._parsePacket
at Parser._parsePacket
at Parser.write
at Protocol.write
at Socket.<anonymous>
at Socket.<anonymous>
at Socket.emit
at addChunk
--------------------
at Protocol._enqueue
at Protocol.handshake
at Connection.connect
at Object.<anonymous>
at Module._compile
at Object.Module._extensions..js
at Module.load
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
}

내 개발 환경은 백엔드는 현재 로컬에서 작업중이고 MySQL은 AWS 서버에 올려둔 상태로 AWS에서는 외부 접속의 개념이 됨

아이디는 root에 비밀번호가 11111111을 예로 아래와 같은 쿼리를 실행하여 해결

1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '11111111';

[Chaincode] 체인코드 개발자용 Hyperledger fabric 테스트 네트워크

하이퍼레저 프로젝트 개발시 체인코드 개발자는 테스트용 네트워크가 필요

네트워크가 빨리 구성되면 좋지만 마냥 기다릴 수 없고 개발이 병행으로 진행되는 경우가 많아

네트워크 구성 전 까지 사용할 기본 네트워크를 만들었음

[MySQL] 이벤트 스케줄 사용시 주의사항

이벤트 스케줄을 사용할때 시간을 지정해서 사용

예를들면 하루 한번 0시에 어떤 작업을 실행

그런데 이 실행 시각이 언제를 기준으로 하는지 확인 하기 위해서 MySQL의 시간을 먼저 확인

1
SELECT NOW();

한국의 시간과 9시간이 차이가 나는것을 확인할 수 있었음

그리고 내가 설정할 이벤트 스케줄의 시간을 MySQL 시간을 기준으로 1분뒤에 실행하도록 설정하고 확인한 결과는

이벤트 스케줄은 MySQL의 시간을 기준으로 실행된다.

관리를 편하게 하기 위해 MySQL의 시간을 한국 시간으로 변경

1
set time_zone='Asia/Seoul';

그리고 실제 해당 시각에 정상 실행되는 것을 확인 할 수 있었음

[MySQL] 두 컬럼의 값 바꾸기

DB의 두 컬럼의 값이 바뀌어 들어가는 실수가 발생했을때 아래와 같이 두 컬럼의 값을 바꿀 수 있음

1
2
3
4
5
6
UPDATE
[TABLE_NAME]
SET
A = (@temp:=A),
A = B,
B = @temp

이때 주의해야 할 점이 A = (@temp:=A)에서 콜론이 들어간다는것

만약 콜론을 빼고 UPDATE를 실행한다면 B 컬럼에 NULL이 들어가니 신중히 실행해야함

가장 좋은 방법은 테스트용 DB에서 실행한 결과를 확인하고 운영 DB에 적용하는것이 좋다

[MySQL] access denied for user

토이 프로젝트를 만드는 중에 프로시져를 사용해야 할 일이 생김

프로시져에 대해서 공부하고 테스트 서버에서 프로시져 생성 명령어를 실행하는데 아래와 같은 에러 발생

1
Access denied for user 'root'@'%' to database 'information_schema'

거의 반나절을 구글링과 스택오버플로우를 찾아봤는데도 해답을 찾을 수 없었음

대부분 권한 문제 때문이라고 하는데 이미 필요한 권한은 다 가지고있었음

그리고 며칠 지나 다시 문제를 풀어보려고 열었는데 에러 문구에 database 'information_schema' 부분이 자꾸 거슬렸음

그래서 이 부분에 초점을 두고 database를 내가 원하는 데이터베이스로 설정 후 프로시져를 생성하니 성공

1
2
3
use my_database

// procedure 생성

너무 허무하다.. 😪