전체 글

코딩 블로그 입니다.
운영체제/Linux

하드링크와 심볼릭 링크 비교

현재 디렉토리에서 파일명에 bash가 있는 파일들의 목록을 원본파일로 사용하겠습니다. 하드링크 하드링크는 ln src dest명령어로 만들 수 있습니다. source를 원본으로해서 hard라는 하드링크를 생성했습니다. source과 hard는 같은 내용을 출력하고 있습니다. source의 내용을 수정했을 때 hard의 내용도 수정이 되어있는 것을 확인할 수 있습니다. hard를 수정했을 때에도 source의 내용이 변경되게 됩니다. 파일의 권한을 수정했을 때에도 똑같이 수정됩니다. source를 제거했을 때에도 hard는 내용을 가지고 있습니다. 심볼릭링크 심볼릭링크는 ln -s src dest명령어로 만들 수 있습니다. source를 원본으로해서 soft라는 심볼릭링크를 생성했습니다. source과 s..

프로그래밍

JSON Response에 $id가 포함되는 문제

API Controller의 반환형식을 보면 익명객체를 사용하여 `Token`과 `UserDetail`속성을 반환하고 있다. 하지만 API의 요청결과를 보면 `$id`라는 속성이 자동으로 추가되어있다. 여기서 `ReferenceHandler.Preserve` 옵션이 원인이다. 순환참조를 방지하기 위해 사용했던 옵션이 다른 문제를 일으킨 것이다. 순환참조만을 무시하기 위해선 `ReferenceHandler.IgnoreCycles`옵션을 사용하면 된다.

ETC

EF Core DataAnnotations, DataTypeAttribute

EF Core의 DataAnnotations를 사용할 때 모델에서 특성을 지정할 수 있다. EmailAddressAttribute를 지정하는 방식과 DataTypeAttribute의 파라미터로 DataType을 결정하는 방식의 차이점이 궁금했는데 EmailAddressAttribute는 자주 사용되기 편하게 DataTypeAttribute에서 따로 뽑아놓은듯하다. 실제로 코드를 보면 DataTypeAttribute를 사용하는 방식과 똑같다. 그냥 자주사용되는 만큼 편하게 사용하라고 특성을 따로 만들어서 뽑아놓은거같다.

ETC

Visual Studio 오류 : Windows에서 파일 시스템 유형 exFAT의 AppX경로에 배포할 수 없습니다.

오류가 발생한 이유: 프로젝트의 저장경로로 이용하던 SD카드의 파일시스템이 exFAT를 사용중이었음. visual studio 2022에서 MAUI 프로젝트는 exFAT 파일 시스템에서의 빌드와 배포를 지원하지 않는다고 함. 오류 해결법 : SD카드의 파일포맷을 NTFS로 변경.

디자인패턴

우리가 디자인 패턴을 사용해야 하는 이유

패턴은 일정한 형태나 양식 또는 유형이 반복되는 것을 말합니다. 소프트웨어 공학에서의 패턴은 일반적으로 발생하는 문제를 해결하기 위해 표준화된 솔루션을 제공하는 소프트웨어 디자인 기법으로 개발자가 시간을 절약하고 효율성을 높일 수 있도록 도와줍니다. 반대로 디자인 패턴을 사용하지 않고 소프트웨어를 개발하게된다면 다음과 같은 문제가 발생합니다. 디자인 패턴을 사용하지 않았을 때 발생할 수 있는 문제들 코드의 재사용성이 낮아진다. 디자인 패턴은 일반적인 문제를 해결하는 데 사용할 수 있는 일반적인 해결책을 제공하므로, 코드의 재사용성을 높일 수 있습니다. 반면 디자인 패턴을 사용하지 않고 개발을 진행하면, 비슷한 문제에 대해 매번 새로운 코드를 작성해야 하므로 코드의 재사용성이 낮아집니다. 코드의 가독성이 ..

ETC

Google Play Book의 DRM 해제하기

저는 책을 읽을 때 필기하는 것을 좋아합니다. 필기를 하지 않고 책을 읽으면 책의 내용이 잘 기억나지 않을 뿐더러 "내가 책을 읽었다." 라는 게 별로 느껴지지 않기 때문입니다. 또한 책을 더럽히는 것을 매우 싫어합니다.. 그래서 보통 공책에 책 페이지와 영감을 받은 문구, 내 생각을 따로 필기해둡니다. 하지만 책은 무거워서 들고다니기가 불편하기 때문에 전자책을 생각해 볼 수 있습니다. 전자책은 언제 어디에서나 내가 구매한 책이라면 읽을 수 있습니다. 하지만 특정 플랫폼에 종속되고, 플랫폼에서 제공하는 전자책리더의 성능에 영향을 많이 받습니다. 대부분의 전자책 리더들은 펜을 이용한 필기 기능을 지원하지 않습니다. 그래서 저는 전자책을 PDF로 변환하고 필기가 가능한 리더에서 전자책을 보고 싶었지만 주로 ..

프로그래밍

정규표현식(Regular Expression)이란 무엇일까?

정규표현식은 정규식이라고도 불리며 영어로는 Regurlar Expression 혹은 Regex라고 합니다. 정규표현식을 사용하면 문자열에서 특정 패턴을 찾아낼 수 있기 때문에 컴파일러, IDE 같은 고급 문서 편집기, 혹은 사용자가 입력한 이메일, 전화번호등의 유효성을 검증하기 위해 사용됩니다. 정규표현식은 패턴과 플래그를 가지며 아래와 같은 구조로 작성됩니다. / 패턴 / 플래그 / (?:Mon|Tues|Wednes)day / g Monday // true Tuesday // true Wednesday // true Thursday // false Friday // false패턴 패턴은 문자열에서 메타문자를 조합해 검색기준을 정의합니다. 문자 클래스 필요한 규칙에 따라 문자 집합을 정의할 수 있고, 만..

알고리즘

합계 알고리즘 알아보기 (Linq, Extension Method)

합계알고리즘이란 주어진 입력을 모두 더해 합한 값을 출력하는 알고리즘 입니다. 예를들어 한 학급에서 80점 이상의 점수를 받은 학생들의 총점을 알고싶다면 for문과 if문을 사용할 수 있습니다. public class SumAlgorithm { int[] scores = {100, 80, 75, 43, 95, 82, 80, 79 }; int sum = 0; // 합계 알고리즘 for(int i = 0; i = 80) sum += scores[i]; } Console.WriteLine($"{scores.Length}명의 학생들 중 80점 이상을 받은 학생의 총점은 {sum}점 입니다."); } 위의 코드에서는 scores라는 배열안에서 8..

프로그래밍/SCSS

SCSS | 모듈화와 상속

모든 스타일들을 하나의 SCSS파일안에 담을 필요는 없습니다. 연관되어 있는 스타일들을 여러 SCSS파일로 분할하여 사용할 수 있습니다. 분리할 스타일들을 별도의 SCSS파일로 만들고, @import키워드를 사용하여 스타일을 불러올 수 있습니다. SCSS파일끼리는 확장자를 붙이거나 생략할 수 있습니다. /* variables.scss */ $item-bg: #fff; $item-mg: 10px; /* style.scss */ @import "variables"; .item { background-color: $item-bg; margin: $item-mg; } @minxin을 사용하면 SCSS파일 자체를 분할 하는것이 아닌 스타일을 함수처럼 만들어 재사용할 수 있습니다. @include로 선언된 @min..

프로그래밍/SCSS

SCSS | 변수와 산술 연산자

앞의 포스트에서 잠깐 보았던 변수에 대해 설명하겠습니다. 변수는 SCSS에만 있는 기능이 아니라 CSS에도 변수가 있고, 아래의 코드와 같이 선언 및 사용할 수 있습니다. CSS에서는 :root 또는 특정선택자 내에서만 변수를 생성하고 사용할 수 있습니다. :root { --main-bg-color: #fff; } div { background-color: var(--main-bg-color); } SCSS에서의 변수는 $기호를 사용하여 변수를 만들 수 있습니다. 다른 프로그래밍 언어들과 마찬가지로 변수명은 숫자로 시작할 수 없고, -, _외에는 특수기호를 사용할 수가 없습니다. SCSS에서는 다음과 같이 변수를 선언하고 사용할 수 있습니다. 변수에는 모든 속성들의 값이 들어갈 수 있습니다. 변수는 자신..

MAJG
MAJG's Blog