괴발개발 성장기
728x90
반응형

2023/07 11

[마무리] 비동기 프로그래밍 구조

회사는 로그를 따로 SNS를 통하여 DB로 저장한다. 그래서 그부분을 따로 추가 하지 않았다. 그리고 알림톡을 계속 시도하다가 실패하면 DB로 저장한다 (500번대에러) 저장된 DB를 5분 단위로 불러와서 있으면 다시 메시지를 보낸다. 이때 고루틴을 사용한다. go sqsConsumer.Consume(megCh) go service.LoopGetError(xormDb, errCh) 메시지는 메시지대로 돌고 DB는 DB대로 도는 구조로 만들었다. 현재 회사에서는 알림톡 서비스를 마무리했다. 내 깃에서는 전체적으로 구조를 잡았다. 비즈니스 모델에 따라 변경해서 만들면 될 것 같다. 끝!

[Amazon SQS] MissingRegion: could not find region configuration 에러 메시지

# 에러 로컬에서는 발생하지 않았다. aws에 올리고 나서 아래와 같은 에러 메시지가 발생했다. MissingRegion: could not find region configuration 지역을 설정하지 않았다고 한다. # 해결 과정 처음에 sess := session.Must(session.NewSessionWithOptions( session.Options{ SharedConfigState: session.SharedConfigEnable, })) 이 부분에 설정해야 한다는 것을 파악했다. 그래서 session.Options{} 이 부분을 속으로 들어가봤다. aws configure에 지역을 쳤던 기억이 있어서 session.Options{}안에 있는 Config aws.Config 안으로 들어가봤다..

[Golang] interface{} => struct 변환하기

# 배경 배열안에 map이 여러개 있다. map안에는 값이 여러개 있다. 배열안에 있는 map의 타입은 interface{} 이다. donationInfo 안에는 []interface{} 타입으로 값이 있다. donationInfo := dataHTML.Content["donationInfo"].([]interface{}) map[donationDate:20220328 donationId:279939 totalAmount:3076 totalQuantity:2] map[donationDate:20220316 donationId:279936 totalAmount:54834 totalQuantity:4] map[donationDate:20220316 donationId:279935 totalAmount:483..

Study/Go 언어 2023.07.22

[Git] 로컬 폴더와 git 연결하기

# 배경 강의를 듣는데 zip으로 다운 받아서 내 레파지토리에 올리라고 했다. 음... 보통 fork를 하는데 나에게 새로운 방식이다. # 하는 방법 1) 레파지토리 하나를 만들었다. 2) 로컬에 폴더 하나를 만들었다. - 나는 zip 파일을 해제했다. 3) 내가 만든 폴더(로컬)로 이동 한다. cd 폴더명 4) 만든 레파지토리에 Code 버튼을 누른다. 5) HTTPS 값을 복사한다. 6) .git 파일이 필요하다 git init 7) 내가 원하는 레파지토리랑 연결을 한다. git remote add [명칭] [복사한 https 주소] 8) 확인을 한다 git remote -v 그럼 명칭으로 만든 정보가 뜬다. 그리고 나서 git add . git commit -m "메시지" git push [명칭] ..

Study/GIT 2023.07.19

[Golang] 슬랙(Slack)으로 메시지 보내기

# 배경 우리 팀은 두레이라는 툴을 사용한다. 대부분은 슬랙을 많이 이용하는 것 같다. 그래서 에러 메시지를 슬랙으로 보내는 걸 공부해봤다. # 셋팅 2023.07.06 - [사이드 프로젝트/Amazon SQS] - [slack] 슬랙(slack)으로 에러 메시지를 받기 위해서 slack에서 설정하기 [slack] 슬랙(slack)으로 에러 메시지를 받기 위해서 slack에서 설정하기 1) https://api.slack.com/ 접속하기 Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 2) 오른쪽 상단 pink1016.tistory.com 우선 슬랙에서 설정을 해야한다. # 토큰 값 설정..

Study/Go 언어 2023.07.14

[mac os] 자바 설치

# 배경 강의를 듣기 위해서 자바를 설치했다. go로 했으면 좋았는데... 이미 결제하고 한 강정도 들었는데 go로 하는 강의 나왔다. 아쉽다 ㅠㅠㅠ # 설치방법 $ brew install cask $ brew tap AdoptOpenJDK/openjdk $ brew install --cask adoptopenjdk11 $ java -version 끝! openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9) OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode) 결국 자바를 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

[slack] 슬랙(slack)으로 에러 메시지를 받기 위해서 slack에서 설정하기

1) https://api.slack.com/ 접속하기 Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 2) 오른쪽 상단에 "Your apps" 클릭한다 3) "Create an App" 버튼을 클릭한다 4) "From scratch" 클릭한다 5) App Name : 앱 이름을 정해서 쓴다. Pick a workspace to develop your app in 에는 알림받고 싶은 workspace를 등록한다 (예시는 회사 채널) 그리고 "Create App" 버튼 클릭을 한다. 6) Basic Information 이 페이지에서 밑으로 내리면 Display information에서 설정..

[MySQL] update 할 때 나오는 에러 메시지

MySQL Workbench에서 업데이트 할 때 조건이 없으면 데이트를 보호하기 위해서 에러가 난다. # 에러 메시지 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect # 해결방법 1) Update 문 전에 아래 코드를 실행한다. set sql_safe_updates=0; update members set name ='지니'; 2) update문에 조건을 넣는다 update members set name ='지니' where ..

Study/Mysql 2023.07.05

[MySQL] 테이블 복제하는 방법

# 배경 로컬에서 DB를 재설계하기 위해서 원본을 복제해놨다. # 문법 CREATE TABLE IF NOT EXISTS 복사 테이블 SELECT * FROM 원본 테이블; # 예시 CREATE TABLE IF NOT EXISTS banners_copy SELECT * FROM banners; 전체 복제가 되었다. 그래서 컬럼 변경을 해서 테스트를 해봤다. 만약에 상태를 위해서 복제를 해 놓은 것이다. # 추가 내용 (2023.08.10) id 컬럼에 Primary key, Auto Increment 설정들이 사라졌다. 복제할 때 속성들은 복사가 안되고 구조와 데이터들만 복사가 된다는 사실을 알게 되었다.

Study/Mysql 2023.07.04

[Golang] 원하는 문자열 찾기

# 배경 기부금 영수증 관련한 API 중에서 속도가 느린게 몇 개 있었다. 속도 개선을 시킨 후 속도를 체크하고 싶었다. 그래서 내가 원하는 API 주소만 따로 내 프로젝트에 글을 남기고 싶었다. (4초 이상인 API만 글이 자동으로 남겨진다.) 내가 원하는 API 주소가 있는 찾기 위해서 원하는 문자열을 찾는 법을 알고 싶었다. # 문법 bool := strings.Contains(문자열, 찾고싶은문자열) 결과 값는 true, false가 두개 나온다. # 예시 strings.Contains("genie", "en") // true strings.Contains("genie", "ne") // false # 실제 사용한 경우 if strings.Contains(req.RequestURI, "donors..

Study/Go 언어 2023.07.03
728x90
반응형