전체 글139 as에 대해서 알아보자 as스위프트에서 as 키워드는 주로 타입 캐스팅에 사용됩니다. 3가지 형태로 주로 사용합니다.asas!as? 사용되는 경우는 다음과 같습니다. as1. 업캐스팅자식 클래스나 프로토콜을 부모 클래스나 프로토콜로 변환할 때 사용합니다. 업캐스팅은 항상 안전하기 때문에 강제로 변환해도 됩니다.class Animal {}class Dog: Animal {}let dog = Dog()let animal: Animal = dog as Animal 2. 프로토콜 캐스팅특정 클래스나 구조체가 특정 프로토콜을 준수한다는 것을 명시할 때 사용됩니다.protocol Pet {}class Cat : Pet {}let pet : Pet = Cat() as Pet 3. 리터럴 값을 특정 타입으로 변환할때도 사용됩니다.le.. 2024. 8. 16. DispatchQueue에 대해서 알아보자! DispatchQueue - 스위프트에서 멀티스레드 프로그래밍을 관리하기 위해서 사용하는 기본도구 중 하나- 작업을 비동기적으로 실행하거나 지연시킬 수 있는 queue를 제공합니다. 이 큐를 통해서 스레드 간의 작업을 관리하고 동시성 문제를 해결할 수 있습니다. 디스패치 큐는 크게 2가지 종류로 나뉩니다.Main Queue 메인 스레드에서 작업을 실행하는 큐입니다. 주로 UI 업데이트와 같이 메인 스레드에서 실행되어야하는 작업을 처리합니다. Global Queue시스템에서 제공하는 전역 큐입니다. 여러가지 우선순위(QOS : quality of service)를 갖는 여러가지 큐들이 있습니다. 이 큐들은 백그라운드에서 작업을 처리할 때 주로 사용됩니다. 사용Main Queue메인큐는 주로 UI업데이.. 2024. 8. 16. async-await / try Swift에서의 async / await- async와 await은 스위프트에서 비동기 코드를 동기식으로 작성할 수 있도록 도와줍니다.- 이전엔 비동기 작업을 처리하기 위해서 콜백이나 Completion Handler를 사용해야 했지만, 코드가 복잡해지고 가독성이 떨어집니다. 콜백 지옥..- 반면에, async await을 사용하면 비동기 작업이 마치 동기 작업처럼 보이게 작성할 수 있습니다. - async : 함수나 메서드가 비동기적으로 실행됨을 나타냅니다. 이 키워드를 사용하면 해당 함수가 비동기 함수가 되어, 호출시에 await 키워드를 사용해야 합니다.- await : 비동기 함수나 작업의 결과를 기다립니다. 이 키워드는 async 함수 안에서만 사용될 수 있습니다.// 비동기 함수의 예func .. 2024. 8. 16. absolute를 쓸 때 주의할 점 absolute를 쓸 일이 종종 생긴다.absolute를 쓰기위해서 알아야 하는 속성들이 몇가지가 있는데, box-sizingposition zindex 정도가 있다. * absolute의 기본특성- absolute로 설정된 요소는 일반적인 문서 흐름에서 제거된다. 즉, 다른 요소들이 이 요소의 위치를 고려하지 않고 배치된다.- absolute로 설정된 요소는 가장 가까운 relative, absolute, fixed, sticky로 설정된 부모 요소를 기준으로 위치가 설정된다. 만약에 그러한 부모 요소가 없다면, body를 기준으로 삼는다. * absolute를 쓸 때- 보통 부모요소에 position 에 relative 속성을 준다. ㄴ relative 속성은 요소를 문서의 흐름에 맞춰서 .. 2024. 8. 4. 최소 api에 jwt bearer 인증 적용하고 Swagger 설정까지 *** 들어가기 전에 이것저것 살펴보기 * 여러 포트에서 동작하게 할 수 있다.app.Urls.Add("http://localhost:3000")app.Urls.Add("http://localhost:4000")app.Run(); * 환경변수에서 포트번호를 읽어와서 설정할 수도 있다.var app = WebApplication.Create(args);var port = Environment.GetEnvironmentVariable("PORT") ?? "3000";app.MapGet("/", () => "Hello world");app.Run($"http://localhost:{port}"); * 로그온 어플리케이션 시작에 메시지를 쓸 수 있다.var app = WebApplication.Create(.. 2024. 8. 1. Asp.net core API - sql server 연동해서 Swagger로 내보내기 먼저 제가 짠거라서 좀 로직이 이상하다 싶거나, 필요없는 동작이 있다면 댓글로 남겨주시면 감사하겠습니다 ( 꾸벅 ) 먼저 Sql Server랑 연결하려면 연결 문자열을 설정해줘야 합니다.필요한게 몇가지가 있는데 다음과 같아요. 서버사용할 데이터베이스유저명비밀번호 그래서 다음을 가지고 연결 문자열을 만들어줍니다..!$"Server={_SERVER_NAME};Initial Catalog={_DATABASE_NAME};User ID={_USER_NAME};Password={_PW};";여기서 Initial Catalog는 처음에 지정할 데이터베이스입니다. 만약에 지정 안해주시면 사전에 정해진 default Database로 연결되니까 조심하세요. 우리 최소한 몇번은 사용할 거니까 데이터베이스 관련한 로직은 .. 2024. 7. 31. 트럼프 "미국, 암호화폐의 수도가 될 것 ... 반드시 완수할 것이다." 현지시간 27일, 테네시주 내슈빌에서 개최된 '비트코인 2024 컨퍼런스'에서 미국 대선 주자 도널드 트럼프가 연설을 시작했다. 그는 "미국은 지구의 암호화폐 수도이자 세계의 비트코인 초강대국이 될 계획을 가지고 있으며, 이를 반드시 완수할 것이다."라며 본인을 "친 암호화폐 대통령"이라고 칭했다.바이든 현 미국 대통령이 SEC 수장인 게리 겐슬러를 앞세워 반 암호화폐 정책을 펼쳐온 것과 비교하면, 트럼프는 반대의 행보를 보인 것이다. 한편, 미국 민주당 대선 주자 카말라 해리스도 가상화폐 업계와의 관계 개선을 위해 노력하고 있으며, 업계와 가까운 인사들과 접촉하고 있다. 트론(TRX)의 창립자 저스틴 선은 지난 14일(현지시간) 자신의 X(구 트위터)를 통해 트럼프의 회복을 기원하며 암호화폐 산업에 트.. 2024. 7. 29. 프로퍼티 초기화 중에 다른 인스턴스 멤버를 직접 참조할 수 없습니다. 간단히 테스트 하려고 코드를 가운데 3줄 집어넣었어요. 이 코드는 동작할까요...?!import SwiftUIstruct ProfileEditor: View { @Binding var profile : Profile var dateRange : ClosedRange{ let min = Calendar.current.date(byAdding: .year, value: -1, to: profile.goalDate)! let max = Calendar.current.date(byAdding: .year, value: 1, to: profile.goalDate)! return min...max } var today = Date() var seven.. 2024. 7. 26. CloseRange - ClosedRange는 가장 기본적인 범위 타입이다. - 원래는 이 타입이름 ( CloseRange )를 그대로 쓰지 않고 범위 오퍼베이터 ( ..., .. * 1 ... 10 : 1이상 10이하* 1.. 위의 표현식은 실제로 다음과 같은 ClosedRange 라는 타입으로 생성된다. * ( 1...10 ).lowerBound // 1* ( 1...10 ).upperBound // 10* ( 1...10).count // 10* (1...10).isEmpty // false 예를 들어서 다음과 같이var testRange : ClosedRange = 1...10// 이렇게 범위 비교를 할 수도(1...10).contains(8) // true1...10 ~= 8 // true// 위 두 코드는 같은.. 2024. 7. 26. 부모뷰에서 자식뷰로 상태를 바인딩해서 전달할 때 : $ 보면 ProfileEditor라는 자식 뷰가 있다. 여기서는 부모에게 Profile 자료형의 어떤 바인딩 상태를 받을 건데, 이걸 어떻게 주냐struct ProfileEditor: View { @EnvironmentObject var displayMode : DarkMode @State private var counter = 0 // 부모뷰로부터 profile을 전달받음 @Binding var profile : Profile .. . . . . .} 자식이 @Binding 된 속성을 요구하고 있기 때문에 이 ProfileEditor라는 자식 뷰의 부모뷰인 ProfileHost는 해당 뷰가 가지고 있는 Profile 자료형의 @Binding 을.. 2024. 7. 26. 이전 1 ··· 9 10 11 12 13 14 다음