Blazor WebAssembly 프로젝트에서 브라우저의 언어 설정에 따라 다른 언어를 보여주는 방법을 포스팅하겠습니다.프로젝트는 Blazor WebAssembly 독립실행형 앱이고 .NET 버전은 9.0입니다.다국어 지원을 위한 환경 설정하기Nuget Pakage Manager에서 Microsoft.Extensions.Localization을 설치하고 프로젝트에 추가해줍니다. 프로젝트 전역에서 Localizer를 사용할 수 있도록 _Imports.razor파일에 Microsoft.Extensions.Localization 네임스페이스를 추가해줍니다. @using Microsoft.Extensions.Localization 프로젝트의 .csproj 파일에서 BlazorWebAssemblyLoadAll..
환경Arduino IDE 2.3.2Arduino Nano ATmega328문제 발생 경위아두이노 나노 보드에 Arduino IDE를 사용하여 컴파일된 코드를 업로드했지만 업로드에 실패보드와 포트 설정에는 문제가 없었음검색 방법ChatGPT문제 원인사용중인 보드가 구형 부트로더를 사용하고 있었음.문제 해결Arduino IDE에서 Tools > Processor > ATmega328P (Old Bootloader)를 선택후 다시 업로드
/etc/nginx/ 기본 설정파일들이 저장되는 루트 디렉토리이다. /etc/nginx/nginx.conf 최상위 설정파일로 모든 설정에 대한 진입점이다. 최상위 http블록을 가진다. /etc/nginx/conf.d/ *.conf 파일을 별도로 관리하기 위한 디렉토리이다. nginx.conf파일에서 http블록안에 include된다. 예전에는 conf.d 디렉토리 대신 sites-enabled, sites-available 디렉토리가 사용되었지만 더이상 사용되지 않는다. NGINX 로드밸런싱 upstream: 로드밸런서나 프록시 서버 뒤에 위치한 실제 서버 L7 로드밸런싱 nginx.conf파일에서 http 블록안에서 설정한다. HTTP 부하분산 upstream backend { server app1...
현재 디렉토리에서 파일명에 bash가 있는 파일들의 목록을 원본파일로 사용하겠습니다. 하드링크 하드링크는 ln src dest명령어로 만들 수 있습니다. source를 원본으로해서 hard라는 하드링크를 생성했습니다. source과 hard는 같은 내용을 출력하고 있습니다. source의 내용을 수정했을 때 hard의 내용도 수정이 되어있는 것을 확인할 수 있습니다. hard를 수정했을 때에도 source의 내용이 변경되게 됩니다. 파일의 권한을 수정했을 때에도 똑같이 수정됩니다. source를 제거했을 때에도 hard는 내용을 가지고 있습니다. 심볼릭링크 심볼릭링크는 ln -s src dest명령어로 만들 수 있습니다. source를 원본으로해서 soft라는 심볼릭링크를 생성했습니다. source과 s..
API Controller의 반환형식을 보면 익명객체를 사용하여 `Token`과 `UserDetail`속성을 반환하고 있다. 하지만 API의 요청결과를 보면 `$id`라는 속성이 자동으로 추가되어있다. 여기서 `ReferenceHandler.Preserve` 옵션이 원인이다. 순환참조를 방지하기 위해 사용했던 옵션이 다른 문제를 일으킨 것이다. 순환참조만을 무시하기 위해선 `ReferenceHandler.IgnoreCycles`옵션을 사용하면 된다.
EF Core의 DataAnnotations를 사용할 때 모델에서 특성을 지정할 수 있다. EmailAddressAttribute를 지정하는 방식과 DataTypeAttribute의 파라미터로 DataType을 결정하는 방식의 차이점이 궁금했는데 EmailAddressAttribute는 자주 사용되기 편하게 DataTypeAttribute에서 따로 뽑아놓은듯하다. 실제로 코드를 보면 DataTypeAttribute를 사용하는 방식과 똑같다. 그냥 자주사용되는 만큼 편하게 사용하라고 특성을 따로 만들어서 뽑아놓은거같다.
오류가 발생한 이유: 프로젝트의 저장경로로 이용하던 SD카드의 파일시스템이 exFAT를 사용중이었음. visual studio 2022에서 MAUI 프로젝트는 exFAT 파일 시스템에서의 빌드와 배포를 지원하지 않는다고 함. 오류 해결법 : SD카드의 파일포맷을 NTFS로 변경.
패턴은 일정한 형태나 양식 또는 유형이 반복되는 것을 말합니다. 소프트웨어 공학에서의 패턴은 일반적으로 발생하는 문제를 해결하기 위해 표준화된 솔루션을 제공하는 소프트웨어 디자인 기법으로 개발자가 시간을 절약하고 효율성을 높일 수 있도록 도와줍니다. 반대로 디자인 패턴을 사용하지 않고 소프트웨어를 개발하게된다면 다음과 같은 문제가 발생합니다. 디자인 패턴을 사용하지 않았을 때 발생할 수 있는 문제들 코드의 재사용성이 낮아진다. 디자인 패턴은 일반적인 문제를 해결하는 데 사용할 수 있는 일반적인 해결책을 제공하므로, 코드의 재사용성을 높일 수 있습니다. 반면 디자인 패턴을 사용하지 않고 개발을 진행하면, 비슷한 문제에 대해 매번 새로운 코드를 작성해야 하므로 코드의 재사용성이 낮아집니다. 코드의 가독성이 ..
저는 책을 읽을 때 필기하는 것을 좋아합니다. 필기를 하지 않고 책을 읽으면 책의 내용이 잘 기억나지 않을 뿐더러 "내가 책을 읽었다." 라는 게 별로 느껴지지 않기 때문입니다. 또한 책을 더럽히는 것을 매우 싫어합니다.. 그래서 보통 공책에 책 페이지와 영감을 받은 문구, 내 생각을 따로 필기해둡니다. 하지만 책은 무거워서 들고다니기가 불편하기 때문에 전자책을 생각해 볼 수 있습니다. 전자책은 언제 어디에서나 내가 구매한 책이라면 읽을 수 있습니다. 하지만 특정 플랫폼에 종속되고, 플랫폼에서 제공하는 전자책리더의 성능에 영향을 많이 받습니다. 대부분의 전자책 리더들은 펜을 이용한 필기 기능을 지원하지 않습니다. 그래서 저는 전자책을 PDF로 변환하고 필기가 가능한 리더에서 전자책을 보고 싶었지만 주로 ..