본문 바로가기

분류 전체보기83

뷰 컨트롤러 간에 데이터를 전달하는 방법 UIkit을 사용할 때 뷰 컨트롤러 간에 데이터를 전달하는 방법은 여러가지가 있다. 1. 세그 segue를 이용한 데이터 전달스토리 보드를 사용하여 뷰 컨트롤러 간에 세그를 설정한 경우에 prepare(for: sender:) 메서드를 override 해서 데이터를 전달할 수 있다.// 데이터를 보내는 쪽의 뷰 컨트롤러class SendingViewController : UIViewController{ var dataToSend : String = "Hello, this is data" override func prepare( for segue : UIStoryboardSegue, sender : Any? ){ if segue.identifier = "showSecondViewCont.. 2024. 8. 19.
클로저에 대해서 알아보자 클로저- 익명함수 또는 내장함수라고 불립니다.- 코드에서 일급 객체로 사용할 수 있는 기능블록입니다.- 클로저는 코드에서 다른 함수로 전달되거나, 변수에 저장되거나, 나중에 호출될 수 있습니다.- 함수와 매우 유사하지만 정확히 함수는 아닙니다.  클로저는 크게 3가지 형태로 사용됩니다. 1. 전역함수 _ 이름이 있으며, 특정 컨텍스트에 속하지 않습니다. 2. 중첩함수_ 이름이 있으며, 다른 함수 내부에 정의됩니다. 3. 클로저 표현식_ 이름이 없으며, 간결한 문법으로 작성할 수 있습니다. 일반적으로 이 형태를 클로저라고 부릅니다.  클로저의 기본문법클로저는 입력 파라미터, 반환타입, 그리고 실행할 코드 블록으로 구성됩니다.{ (parameters) -> returnType in // 실행할 코드} 예시l.. 2024. 8. 16.
self에 대해서 알아보자 self는 swift에서 객체 내부에서 현재 인스턴스를 참조하기 위해서 사용되는 키워드입니다. self를 사용하는 경우는 다음과 같습니다. 1. 인스턴스 프로퍼티와 메서드 접근self는 클래스, 구조체, 또는 열거형의 인스턴스 내에서 그 인스턴스의 프로퍼티나 메서드를 참조할 때 사용됩니다.일반적으로 프로퍼티 이름과 메서드 이름이 고유하기 때문에 self를 생략할 수 있지만, 이름이 충돌할 경우에는 self를 사용해야 합니다.struct Person { var name: String func greet() { print("Hello, my name is \(self.name).") }}let person = Person(name: "Alice")person.greet().. 2024. 8. 16.
struct 그리고 class struct와 class의 비교1. 값 타입 vs 참조타입struct는 값 타입입니다.struct로 정의된 인스턴스를 다른 변수나 상수에 할당하거나 함수의 인자로 전달할 때, 복사본이 생성됩니다.즉, struct 인스턴스는 독립적인 복사본으로 존재하게 되며, 원본과 복사본은 서로 독립적입니다.struct MyStruct { var value: Int}var a = MyStruct(value: 10)var b = a // a의 복사본이 b에 할당됩니다.b.value = 20 // b의 value만 변경되며, a의 value는 변경되지 않습니다.print(a.value) // 10print(b.value) // 20 class는 참조타입입니다.class로 정의된 인스턴스를 다른 변수나 상수에 할.. 2024. 8. 16.
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.