Visual Studio Code로 Workspace 생성하는 방법Visual Studio Code는 다양한 개발 프로젝트를 효율적으로 관리할 수 있는 강력한 도구입니다. 여러 프로젝트를 한곳에서 작업하려면 워크스페이스를 생성하여 활용하는 것이 좋습니다. 워크스페이스를 만드는 방법이 어려우시다면, 아래 단계를 참고해보세요 1. 프로젝트 폴더 선택하기▼ 먼저, 작업하고자 하는 프로젝트의 폴더를 준비합니다. 여러 프로젝트를 함께 관리하고 싶다면 관련된 모든 폴더를 하나의 워크스페이스에 추가할 수 있습니다. 직접 원하는 폴더를 열어 해당 작업트리를 열어도 상관 없지만 다음과 같이 "작업 영역에 폴더 추가" 메뉴를 통해서 프로젝트를 열 수도 있습니다. File -> Add Folder to Workspace ..
▼ 맥 homebrew 를 이용한 설치 ▼ Ubuntu 리눅스 에서 apt 를 이용한 설치 ▼ devices 명령으로 설치 확인
Amazon Linux 2023에서 MySQL 설치시, 다음 과정이 필요합니다. ▼ 1. RPM 파일 다운로드 ▼ 2. GPG 퍼블릭 키 설정 ▼ 3. 퍼블릭키 import - 모든 시스템 패키지를 최신 버전으로 업데이트하라는 명령- 자동으로 업데이트를 진행하고, 중간에 확인을 요구하지 않음 ▼ 4. MySQL 설치 mysql-client 설치 mysql-server 설치
API 호출을 통해 JSON 데이터를 파싱 하는 과정에서 플러터에서 한글 깨짐 문제가 생겼습니다. Chat GPT 코드를 그대로 사용했는데 발생한 에러라서 뭔가 GPT 가 코드를 잘못 만들었을 것이라고 생각해서 인터넷에 검색해보니 많은 사람들이 해당 케이스의 상황을 겪고 있더군요.▼ 한글이 깨질 경우 다음과 같이 utf8 디코딩이 필요하고 response.body가 아닌 response.bodyBytes 로 값을 변경해서 쓰면 됩니다. ▼ 실제 예제 코드입니다.
Tuist 로 개발을 하려면 몇가지 설정을 해야 하는데 실제 개발 폰으로 앱을 빌드하려면 Team Id 를 설정해야 합니다. 하지만 매번 generate 할 때마다 Team ID 가 None 으로 변경되면 Tuist 를 꼭 써야 하나 하는 의문이 생깁니다. 이를 수정하기 위해서는. Tuist 의 Project.swift 파일을 수정해야 합니다. Project의 프로퍼티 순서는 다음과 같습니다. 그중에 settings 속성을 변경해야 합니다.PropertiesnameorganizationNameclassPrefixoptionspackagestargetsschemessettingsfileHeaderTemplateadditionalFilesresourceSynthesizerscontainsExternalDep..
brew로 swiftlist 설치▼ CocoaPods을 사용해서 설치 할게 아니라면 brew를 실행해서 swiftlint를 설치한다.brew install swiftlint .swiftlint.yml 파일 생성▼ Xcode에서 Empty 파일을 생성하고 파일명을 .swiftlint.yml 으로 지정한다. 파일 숨김 처리를 함으로 Xcode에서 경고창이 ㄸ는데 Use "." 로 선택하고 창을 닫는다.다음은 프로젝트 룰에서 제거할 목록이다.disabled_rules: - colon - comma - control_statement - identifier_name - shorthand_operator - empty_count - line_length - type_name - force_cast..
안녕하세요. 오늘은 옵시디언의 홈페이지(Homepage) 테마에 대해서 알아보겠습니다. 홈페이지 플러그인은 특별한 노트 즉 자주 사용하는 노트를 앱이 실행된 후에 바로 노출하는 플러그인입니다. 노트가 될 수도 있고 Canvas, 워크스페이스 가 될 수도 있는데 아무래도 다양한 정보를 포함할 수 있는 Canvas를 사용하는 것이 여러 이점이 있을 걸로 생각됩니다. 저는 단축키 ⌘ + ⌥ + H 를 이용해서 홈페이지 열 수 있도록 설정해 놓았습니다. ▼ 저는 이렇게 홈페이지를 만들어서 자주 사용하는 노트들을 정리하고 특히나 마지막으로 수정된 리스트를 dataview를 이용해 노출하고 있습니다. ▼ 해당 플러그인을 설치하고 제일 먼저 설정해줄 것은 홈페이지의 위치입니다. 캔버스나 노트를 설정할 수..
커밋 메시지가 없는 커밋을 만들어야 할 경우도 있을 수 있습니다. 하지만 이를 허용하기 위해서는 --allow-empty 옵션을 포함해야 합니다. 이는 메시지 없이 커밋을 생성하는 옵션과 파일의 내용이 변경되지 않은 상태에서 커밋을 생성하는 옵션 두가지가 있습니다. ▼ 이 옵션은 커밋 메시지가 비어 있는 커밋을 허용합니다.git commit --allow-empty-message -m ''▼ 이 옵션은 내용의 변경이 없는 빈 커밋을 허용합니다.git commit --allow-empty -m "This is an empty commit"
SwiftUI 에서 많이 사용되는 @State는 보통 내부에서 사용하기 떄문에 초기값을 할당하고 작업하는 경우가 많습니다. 하지만 외부에서 주입해서 사용할 경우 일반 문자열을 대입하면 에러가 발생합니다. 스위프트UI 에서 @State 값을 동적으로 할당하는 방법을 알아보겠습니다. 다음 코드를 작성해서 초기값을 설정하려면 다음과 같은 에러가 발생합니다. struct PasscodeView: View { @State private var passcode: String init(code: String) { self.passcode = code }}Error: Cannot assign value of type 'String' to type 'State' "String 문자열을 State 타입에 할당 ..
#Preview Xcode에서 CoreData, SwiftData를 Preview에서 보기 위해서는 @Query로 조회한 데이터를 사용할 수 없습니다. 이럴 때는 직접 데이터를 만들어서 테스트하는 방법이 있습니다. 우선 ModelConfiguration 객체를 인 메모리 only 행태로 생성합니다. 그리고 테스트 객체를 만들기 위해 ModelConfiguration 를 통해 ModelContainer를 만듭니다. 마지막으로 만들 때 사용할 모델을 추가해 줍니다. 그리고 이제 Preview에서 사용할 새로운 테스트 객체를 생성합니다. Container를 만들 config 객체는 isStoredInMemoryOnly를 true로 설정합니다. #Preview(traits: .sizeThatFitsLayout)..
Obsidian 이미지 링크 옵시디언을 사용하면 다른 노트앱에 비해서 이미지를 사용하는 빈도가 크지는 않습니다. 아무래도 이미지 내장 시 git에 저장할 내용이 많아지기 때문이죠. 마크다운으로 이미지를 추가하는 경우 다음과 같은 태그를 사용해서 이미지를 링크합니다. 로컬 이미지 ![[이미지 주소]] 웹 이미지  Obisidian 이미지 사이즈 조정 이미지 사이즈를 변경하려면 파이프( | ) 기호를 이용해 사이즈를 지정합니다. 보통 맥에서 스크린 샷을 찍어서 옵시디언에 넣으면 사이즈가 너무 커서 문제가 되는데 다음 태그를 이용해서 이미지를 줄일 수 있습니다. ![[이미지 주소|100]] 마찬가지로 웹 이미지의 경우 이미지 이름을 넣는 곳에 파이프 기호를 추가해줍니다. ![|100](이미..
iOS 개발시 UIPasteboard 클래스를 이용해서 클립보드에 저장된 데이터를 읽고 쓰는 것이 허용됩니다. UIPasteboard 클래스의 general 속성을 이용해서 pasteboard 객체를 가져와 string 속성에 저장할 수 있습니다. SwiftUI 에서도 동일하게 사용할 수 있습니다. 다음 예제는 문자열을 클립보드에 저장하는 기능을 합니다. let p = UIPasteboard.general p.string = "OK" 반대로 값을 가져와 사용해야 하는 경우 다음과 같이 처리합니다. if let str = p.string { // str 은 클립보드의 데이터 } 다만 iOS 14 이전에는 사용자 동의 없이 클립보드 데이터를 액세스 할 수 있었습니다. 하지만 보안상 문제가 되어 사용자의 동의..