유튜브 결제 거래내역
https://pay.google.com/gp/w/u/0/home/activity
- 기타
- · 2024. 1. 22.
https://github.com/VSCodeVim/Vim/issues/3588#issuecomment-1139373669
go 가 1.22 버전이 추가 됐다. 가장 반길 부분은 loop에서 변수 캡쳐부분이다. go를 처음 배울때 가장 의아 하면서도 이해가 잘안됐던 부분이지만 생각보다 인지를 하고 사용해야한다는 강박에 goroutine을 사용할때 방법을 생각 해야했었다. 쉽게 말하자면 for i := 0; i < 10; i++ { go func() { fmt.Println(i) }() } 위와 같은 프로그램을 실행 시킨다면 다른 언어에서는 순서는 보장하지 않지만 0,1,2,3,4,5,6,7,8,9 가 출력될 것이고 go에서도 그렇게 될거 같지만 그렇지 않다. 가장 나중의 i의 값이 캡쳐가 돼서 10이 10번 출력된다. 이를 해결 하기 위한 방법은 i := i 이런식으로 재할당을 해주거나. go func(i int) { }(i..
https://pay.google.com/gp/w/u/0/home/activity
WSUS를 초기 운영하다 보면 8024401c 와 같은 에러가 발생하게 된다. 클라이언트 윈도우 업데이트 8024401c 는 timeout이 발생했다는 오류메세지와 함께 WS error http://server:8530/clientwebservice/client.asmx timeout 에러가 발생하는 경우가 생긴다. WSUS의 로그에는 시스템의 드라이버드를 로드를 하는데 로드를 하는 풀의 용량이 넘어 갔을때 무한으로 해당 드라이버들을 로드를 한다. 나는 WSUS 의 pool을 8GB로 세팅을 하였기에 위와 같은 문제점이 발생했다. 위의 IIS의 wsus pool의 용량을 16GB 로 올렸고 해당 드라이버들이 로드가 된 후에 정상적으로 작동 하였다. Windows Server 2022 버전 기준으로 드라이..
WSUS를 설정하여 사용하다 보면 내부 데이터베이스의 메로리 사용량이 올라간다. SSMS가 있어야 하고 SSMS로 데이터베이스에 접속한다. 접속 방법은 아래 링크 에 들어가서 확인 할 수 있다. 2024.01.13 - [OS/Windows] - WSUS (Windows ServerUpdate Service) 재설치 WSUS (Windows ServerUpdate Service) 재설치 WSUS를 세팅중 재 설치를 할 경우의 프로세스를 공유하고자 한다. 환경 : Windows Server 2022 (Windows Server 2012부터 적용 가능) Role 를 제거한다. PowerShell 로 실행한다 (관리자 권한) Remove-WindowsFeature -Name U rsync.co.kr 쿼리를 생성..
WSUS를 세팅중 재 설치를 할 경우의 프로세스를 공유하고자 한다. 환경 : Windows Server 2022 (Windows Server 2012부터 적용 가능) Role 를 제거한다. PowerShell 로 실행한다 (관리자 권한) Remove-WindowsFeature -Name UpdateServices,UpdateServices-DB,UpdateServices-RSAT,UpdateServices-API,UpdateServices-UI -IncludeManagementTools SUSDB.mdf and SUSDB_log.ldf의 경로를 확인한다 (C:\Windows\WID\Data) 3의 경로를 확인 후 절대 위 파일을 삭제 하지 않는다. SSMS 로 np:\\.\pipe\MICROSOFT##W..
일단 dnf install -y ethtool 으로 ethtool 을 설정하고. vi /etc/NetworkManager/dispatcher.d/21-eth0-speed 스크립트를 생성후 아래와 같이 작성해 주고 #!/bin/bash IFACE=$1 STATE=$2 if [[ "$IFACE" == "eth0" && "$STATE" == "up" ]]; then # Disable auto-negotiation ethtool -s $IFACE autoneg off # Set speed to 100baseT/Full ethtool -s $IFACE speed 100 duplex full fi 저장하고 chmod +x /etc/NetworkManager/dispatcher.d/21-eth0-speed 실행 권한..
이전에 설명했던 라우팅 테이블의 설정을 바꿔봤다. 이전글을 확인 하려면 아래 링크를 확인해 보면된다. 2023.11.09 - [OS/RockyOS] - RockyOS 9 여러 인터페이스에 아이피 할당 192.168.0.0/24 대역의 eth0 인터페이스와 , 192.168.1.0/24 대역의 eth1 인터페이스 설정은 기존에선 default 라우팅 테이블이 2개여서 192.168.0.0/24 대역, 192.168.1.0/24 대역이 아닌 나가는 다른 대역에 대해선 eth0 아니면 eth1 을 타고 나갔다. 이번엔 라우팅 테이블을 수정하여 192.168.0.0/24 대역만 eth0 으로 나가고 나머지 대역은 eth1 대역만 나가게 하는 스크립트다. #!/bin/bash INTERFACE=$1 STATUS=..
RockyOS9 은 조금 변경 사항이 있다. 기존 /etc/sysconfig/network-scripts/ 에서 네트워크 설정을 변경 할 수 있었는데. 이제는 /etc/NetworkManager/system-connections 에 저장이 된다. nmcli connection migrate 을 사용 하거나 nmcli connection migrate 을 사용하여 migration 할 수 있다. 자세한 내용은 다음과 같다. 더보기 NetworkManager stores new network profiles in keyfile format in the /etc/NetworkManager/system-connections/ directory. Previously, NetworkManager stored net..
Go 에서 http 요청을 하거나 내부 프로세스에서 요청을 할때 실패할 경우 다시 재시도 하는 패키지를 찾았다. 패키지는 github.com/avast/retry-go/v4 을 사용했고 가장 많은 star 를 보유하고 있는것 같다. 사용 방법은 다음과 같다. func TestRetryStrategy(t *testing.T) { retryOptions := []retry.Option{ retry.Attempts(uint(3)), // 재시도 3번 retry.LastErrorOnly(true), // 여러 에러중 가장 마지막 에러를 출력 retry.RetryIf(func(err error) bool { // 에러의 종류에 따라 중단할지 시작할지 결정 return true }), } count := 0 str..
Golang을 사용하다보면 임시 구조체를 사용하면 생각보다 유연하고 편하게 작업 할 수 있다. 함수 내에 스택에 할당됨으로 함수내에서만 사용가능하다. 일반적으로 사용하는 구조체와의 차이점이라고 할 수 있다. type Test struct{ TestId string } func Tt(){ t := &Test{} } 일반적으로는 위와같은 방법으로 구조체를 생성하고 사용하지만 다음과 같이 사용하면 구조체를 임시로 사용가능하다. func Tt(){ var Test struct{ TestId String } t := &Test{} } 위와 같이 함수내에 구조체를 정의 하여 사용할 수 있고, 슬라이스로도 사용이 가능하다. 활용방안은 데이터베이스를 사용할때 ORM 은 각 테이블에 관한 정보는 제대로 가져오나 (gro..
사실상 gRPC를 사용한다면 필드이름이랑 json으로 변환할때 큰 신경을 안써도 된다. 적어도 내가 하는 프로젝트에선 하지만 gRPC를 HTTP 통신을 하고싶다면 요청은 큰 문제가 없지만 응답을 받을때 우리가 예상한 키 값으로 넘어 오지 않는다. 가령 message Test{ string first_name = 1; ==> JSON firstName string last_name = 2; ==> JSON lastName } 위와 같이 _ 가 camelCase형식으로 바뀌디 때문에 예상한 응답이 아닐 경우가 있다. 이럴때는 gRPC gateway 의 ServeMux에 옵션을 추가해주면 해결된다. gwMux := runtime.NewServeMux( runtime.WithMarshalerOption(runt..
gRPC 는 통신을 할때 protobuf 를 사용하는데 gRPC를 사용하기전 tcp 통신으로 protobuf를 파이썬에서 만 사용해봤었다. 이번 프로젝트에서 gRPC를 사용하게 되면서 gRPC Gateway 통신에도 oneof 를 사용해 보려고 한다. 아직 protobuf 자체를 Go에서 사용해 본것이 아니고 gRPC에서만 테스트한 예제이다. message Test{ int64 admin_id = 1; int64 user_id = 2; } 만약 위와같은 필드를 사용하는데 둘중 하나의 필드만 사용한다면 oneof 키워드를 사용할 수 있다. message Test{ oneof id_oneof{ int64 admin_id = 1; int64 user_id = 2; } } 그렇다면 Go에서 위와 같은 oneof..
텐서플로 라이트를 활용한 안드로이드 딥러닝 책이다. 안드로이드에서 딥러닝을 활용하는 방법을 소개하는 책인데, 처음부터 말하자면 아쉬움이 많이 남는 책이다. 이 책은 딥러닝에서 대표적인 텐서플로를 활용하여 안드로이드 앱을 제작 하는 방법을 소개하는데 책의 내용이 텐서플로보다는 안드로이드 앱 제작에 대한 내용이 상당히 많다. 물론 초심자가 보기에는 당연, 안드로이드 개발자가 아니고 딥러닝 개발자 라면 안드로이드 플랫폼에 대해 어색할 수도있다. 그도 그럴 것이 딥러닝은 대게 파이썬으로 구현하여 사용하기에, Kotlin, Java와 같은 언어의 플랫폼에서 활용 하는 것과는 다르기 때문이다. 그렇다고 해서 모델을 자바로 개발하는 것은 아니기에, 어떻게 해서 텐서플로가 안드로이드 플랫폼에서 돌아가고, 어떻게해서 딥..
크로스플랫폼의 대표 주자라고 할수있는 리액트 네이티브 초심자를 위한 책인데 사실 react를 조금 알고 있으면 보기 편하다. 당연히 해당 플랫폼에서 제공하는 환경에서 개발하는 것이 가장 좋지만, 시간 적인 여유, 앱의 특성에 따라 크로스플랫폼으로 개발을 한다면 상당한 프로젝트의 시간을 줄일 수 있다. 책에서도 말하지만 해당 플랫폼에서 최신의 기술을 적용하기에는 리엑트 네이티브 자체에서 제공하는데 시간이 걸리는 단점이 있다. 하지만 이것이 모든 단점이라고 할수는 없듯이 최신기술을 적용한다고 하여 무조건적인 이점을 얻는 것도 아니고 한번의 개발로 Andorid, IOS 에 앱을 배포 할수 있다는 큰 메리트를 생각한다면 최신의 기술의 지원에 대한 부재는 충분히 커버 할 수 있다고 생각된다. 초심자를 위한 책이..