전체 글(120)
-
docker push : authorization failed
Dockerfile을 사용해 새로운 이미지를 생성하고 Dockerhub Repository에 이미지를 Push 하려니 아래와 같은 에러가 발생했습니다. D:\Workspace\Postgres\Dockerfile>docker push xxxxx/postgres:15.3 969a431fe6ee: Waiting e7787c9e6548: Waiting f03b40093957: Waiting 5ea6efaf51f6: Waiting 5d48fbe991ff: Waiting 15b4be0dc097: Waiting 9d72f84fb861: Waiting 14cf26be478a: Waiting 75073e0a005c: Waiting 5d52569da92e: Waiting 078b0dfe0eaf: Waiting 9d674c..
2023.06.08 -
Windows 11 원격 시 한/영 전환
Windows11로 업그레이드 하고 나서 부터 원격으로 붙으면 한/영 키가 정상적으로 동작하지 않습니다. 해결책 설정 -> 시간 및 언어 -> 언어 및 지역 -> 언어 옵션 -> 키보드 옵션 시간 및 언어 언어 및 지역 언어 옵션 키보드 옵션 이전 IME 사용
2023.06.08 -
Rust fmt 모듈
Rust에서 문자를 출력하기 위해서는 print!이나 println!을 사용합니다. 끝에 !(느낌표)가 붙는 것은 Rust 매크로 아래 글을 참고하시면 됩니다. 2023.03.11 - [Language/Rust] - Rust 매크로 [Rust 매크로 매크로란? Rust에서는 매크로를 지원합니다. 매크로는 메타 프로그래밍이라고 하는데, 내가 만든 Rust 코드가 새로운 Rust 코드를 만드는 것을 매크로라고 합니다. 대표적으로 우리가 많이 사용하 jandari91.tistory.com](https://jandari91.tistory.com/12) 화면에 출력하기 위해 println!()을 많이 사용하는데, 출력하기 위한 여러 포맷에 대해 알아봅시다. std::fmt std::fmt 모듈은 포맷 출력을 제어..
2023.06.07 -
.NET AOP DynamicProxy
최근 ASP.NET으로 백엔드를 개발 중입니다. Transaction 관리 부분을 어떻게 하면 좀 더 쉽게 만들 수 있을까 고민하던 중 DynamicProxy를 알게 되어 정리하려 합니다. 현재 상황 지금 만들고 있는 백엔드는 계층형 아키텍처를 사용 중이며, EF Core를 사용하면, 쉽게 트랜젝션이 관리 된다고 하던데 저희는 Oracle과 Dapper를 사용하기 때문에 트랜젝션을 Business 계층에서 관리하려 합니다. public class UserService : IUserService { private IUserRepo userRepo; private ICircleRepo circleRepo; public UserService(IUserRepo userRepo, ICircleRepo circle..
2023.06.05 -
StringBuilder vs String Join
회사에서 StringBuilder가 쓰여진 부분을 List로 모은 다음, 마지막 Join을 통해 성능 개선을 했다고 발표 한 자료가 있었습니다. 하지만 제가 알기로는 StringBuilder가 가장 빠르다고 알고 있는데, List와 Join을 통해 성능 개선을 했다고 해서 궁금해서 Benchmark를 돌려보기로 하였습니다. 집에서 사용하는 OS가 리눅스라 VS Code와 dotnet CLI를 통해 예제를 실행하도록 하겠습니다. Spec. CPU : Intel Core i5-4690 .NET Version : .NET 7.0.3 OS : Linuxmin 21 BenchmarkDotnet Version : v.0.13.5 프로젝트 준비 프로젝트 생성 먼저 아래와 같이 프로젝트를 생성합니다. $ mkdir S..
2023.06.04 -
Rust에서 RabbitMQ 사용하기 (WorkQueue)
오늘은 Rust에서 RabbitMQ를 사용하는 방법에 대해 알아봅니다. RabbitMQ는 너무 유명한 MessageQueue이므로 따로 설명하지는 않겠습니다. RabbitMQ에서 가장 기본이 되는 것이 Work Queue입니다. 위와 같이 P는 Producer 즉 메시지를 Queue에 넣는 프로그램이며, C는 Consumer로 메시지를 받아 특정 작업을 하는 프로그램 입니다. 1개의 Queue에 여러 Producer와 여러 Consumer가 붙어서 사용 할 수 있습니다. Producer 먼저 메시지를 Queue에 넣는 방법에 대해 알아보겠습니다. Rust에서는 amiquip라는 Crate를 사용하면 됩니다. $ cargo new producer $ code producer Cargo를 통해 프로젝트를 생..
2023.06.03