이전에 체인코드에서의 MVC패턴에 대해서 공부하고 앞으로의 프로젝트에서 적용하려고 정리했습니다.
그리고 실제로 프로젝트 투입 후 이렇게 저렇게 구조를 정리해본 결과를 한번 더 정리하려 합니다.
완성도는 올라간것 같지만 아직 손봐야될 부분이 생길수도 있다고 생각합니다.
폴더 구조
기존 프로젝트 구조
1 | \GOPROJECT\SRC\MVC |
이전에 체인코드에서의 MVC패턴에 대해서 공부하고 앞으로의 프로젝트에서 적용하려고 정리했습니다.
그리고 실제로 프로젝트 투입 후 이렇게 저렇게 구조를 정리해본 결과를 한번 더 정리하려 합니다.
완성도는 올라간것 같지만 아직 손봐야될 부분이 생길수도 있다고 생각합니다.
1 | \GOPROJECT\SRC\MVC |
이 포스트는 “[React] 혼자 만들어본 채팅 웹 앱”의 클라이언트 부분 설명입니다.
관련 글을 보고싶은 분은 글 최하단의 태그 Toy project
링크를 눌러 확인해보세요!
설명에 앞서 프론트를 전문으로 하는 개발자가 아니기 때문에 어색한 부분이 있을 수 있습니다.
특히 디자인 부분은.. 더이상의 설명은 생략하겠습니다 ㅜㅜ
서버와는 다르게 클라이언트는 코드가 긴편이다.
이 포스트는 “[React] 혼자 만들어본 채팅 웹 앱”의 서버 부분 설명입니다.
관련 글을 보고싶은 분은 글 최하단의 태그 Toy project
링크를 눌러 확인해보세요!
소켓의 개념이 조금 어려울 수 있으나 막상 코드는 몇줄 되지 않는다.
개인적으로 만들고있던 사이트도 어느정도 안정화가 되어가고..
뭔가 새로운것을 공부하고 만들어야겠다는 생각이 문득 들었다.
그리고 아는것과 모르는것, 하고싶은 것과 하기싫은 것을 분류해보고…
소켓은 10여년 전 처음 자바를 배울때를 제외하고는 실무에서 전혀 접할 기회가 없었다.
당시에는 간단한 1:1 채팅 앱을 학습했는데, 기억도 잘 나지 않고 당시에 나에게는 너무 어려웠다.
소켓을 이용해 다시 채팅 앱을 만들어 보면 되겠다.
프론트 개발자가 아니라 항상 처음부터 UI를 작성할때 어려움을 많이 느낌 복사 붙여넣기는 잘함
flexbox의 속성들을 간단히 정리
토이 프로젝트 개발중 새로운 MySQL을 설치하고 백엔드 서버에서 접속하려고 할때 아래와 같은 에러 발생
1 | \node_modules\mysql\lib\protocol\Parser.js:437 |
내 개발 환경은 백엔드는 현재 로컬에서 작업중이고 MySQL은 AWS 서버에 올려둔 상태로 AWS에서는 외부 접속의 개념이 됨
아이디는 root에 비밀번호가 11111111을 예로 아래와 같은 쿼리를 실행하여 해결
1 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '11111111'; |
하이퍼레저 프로젝트 개발시 체인코드 개발자는 테스트용 네트워크가 필요
네트워크가 빨리 구성되면 좋지만 마냥 기다릴 수 없고 개발이 병행으로 진행되는 경우가 많아
네트워크 구성 전 까지 사용할 기본 네트워크를 만들었음
이벤트 스케줄을 사용할때 시간을 지정해서 사용
예를들면 하루 한번 0시에 어떤 작업을 실행
그런데 이 실행 시각이 언제를 기준으로 하는지 확인 하기 위해서 MySQL의 시간을 먼저 확인
1 | SELECT NOW(); |
한국의 시간과 9시간이 차이가 나는것을 확인할 수 있었음
그리고 내가 설정할 이벤트 스케줄의 시간을 MySQL 시간을 기준으로 1분뒤에 실행하도록 설정하고 확인한 결과는
이벤트 스케줄은 MySQL의 시간을 기준으로 실행된다.
관리를 편하게 하기 위해 MySQL의 시간을 한국 시간으로 변경
1 | set time_zone='Asia/Seoul'; |
그리고 실제 해당 시각에 정상 실행되는 것을 확인 할 수 있었음
DB의 두 컬럼의 값이 바뀌어 들어가는 실수가 발생했을때 아래와 같이 두 컬럼의 값을 바꿀 수 있음
1 | UPDATE |
이때 주의해야 할 점이 A = (@temp:=A)
에서 콜론이 들어간다는것
만약 콜론을 빼고 UPDATE를 실행한다면 B 컬럼에 NULL이 들어가니 신중히 실행해야함
가장 좋은 방법은 테스트용 DB에서 실행한 결과를 확인하고 운영 DB에 적용하는것이 좋다
토이 프로젝트를 만드는 중에 프로시져를 사용해야 할 일이 생김
프로시져에 대해서 공부하고 테스트 서버에서 프로시져 생성 명령어를 실행하는데 아래와 같은 에러 발생
1 | Access denied for user 'root'@'%' to database 'information_schema' |
거의 반나절을 구글링과 스택오버플로우를 찾아봤는데도 해답을 찾을 수 없었음
대부분 권한 문제 때문이라고 하는데 이미 필요한 권한은 다 가지고있었음
그리고 며칠 지나 다시 문제를 풀어보려고 열었는데 에러 문구에 database 'information_schema'
부분이 자꾸 거슬렸음
그래서 이 부분에 초점을 두고 database를 내가 원하는 데이터베이스로 설정 후 프로시져를 생성하니 성공
1 | use my_database |
너무 허무하다.. 😪