본문 바로가기

전체 글20

[Dart] function, Positional parameter, Named parameter dart 에서 함수는 하나의 객체이다. 그래서 함수는 변수에 저장이 가능하며, 다른 함수에 매개변수로 전달 및 함수의 반환값으로 전달 받을 수 있다. FunctionString sayHello(String name){ return 'hello $name';} 위 함수는 name 이라는 String 타입의 변수를 받아서 String 타입의 값을 리턴한다.리턴값과 매개변수의 타입을 생략 할 수 도 있다. 하지만 코드 가시성을 높이기 위해 타입을 명시하는 것을 추천한다.sayHello(name){ return 'hello $name';}  만약 함수내 표현식이 한줄로 표시 된다면 arrow function 형태로 축약 가능하다.String sayHello(String name) => 'hello $name';.. 2024. 9. 13.
[Dart] dart 에서 쓰이는 variables dart 에서 변수를 선언하는 키워드는 var 를 사용한다.var 는 특별한 타입이 없다. 다만 var 로 선언된 변수에 할당되는 변수의 타입으로해당 변수의 타입을 유추한다.var name = 'John'; // name 은 String 타입으로 선언된다. 만약 변수의 타입을 선언과 동시에 설정하고 싶다면 var 대신 해당 타입을 키워드로 사용한다.String name = 'John'; Dart 의 기본 타입은 아래와 같다.String name = 'John';int age = 20;double height = 175.5;bool isMale = true; 당연한 이야기지만 한번 설정된 타입에 다른 타입의 값을 할당할 수 없다.만약 타입이 가변적일 때는 Object 키워드를 사용한다.String name.. 2024. 9. 11.
실리콘밸리에선 어떻게 일하나요? 어떻게 일하는 게 효율적인가요? 업무의 효율은 곧 돈과 연결이 되기 때문에 많은 회사가 고민하는 부분일 것이다. 실리콘밸리는 전 세계에서 가장 높은 업무의 효율성이 나오는 곳이기에 그들의 업무 방식은 항상 관심을 받고 있다. 파격적인 근무 조건과 엄청난 베넷핏, 전 세계를 리딩하는 아이디어와 서비스는 어떻게 만들어질까? 메타에서 수석 디자이너로 근무한 작가는 안식년을 맞아 찾은 한국에서 많은 스타트업 관련자들을 만나면서 실리콘 밸리의 기업 문화에 대해 가장 많은 질문을 받았다고 한다. 보수적인 기업 문화가 많은 한국에서도 이러한 파격적인 기업 문화에 관심을 가진다는 것은 그만큼 우리 산업 구조도 서비스 중심의 고 부과 산업으로 바뀌고 있다는 반증일 것이다. 하지만 그 관심 속에서 혁신적인 기업 문화를 제.. 2024. 1. 11.
Server-Driven UI 은 무엇인가? 개념 해당 글은 Server-Driven UI에 대해 아래 블로그 링크 글을 번역한 내용입니다. https://medium.com/@dfs.techblog/server-driven-ui-concept-db07d7946e94 요약 이 아티클은 앱 개발에 보다 효율적이고 유연한 Server-Driven UI (SDUI) 방식에 대해 설명한다. SDUI는 서버가 앱의 UI를 담당하며, 이는 서버 사이드의 변화를 클라이언트가 즉시 반영한다. 이 방법은 클라이언트가 UI의 변화 및 이벤트 기능을 즉시 반영뿐만 아니라, 실시간 UI 적용 및 높은 유저 개인화 경험을 제공한다. SDUI는 별도의 앱 반영 없이 앱의 변화 및 인터페이스 변경을 적용할 수 있다. 하지만 SDUI 가 모든 설루션의 정답은 아니고 각 애플리케이션.. 2023. 12. 11.
[Swift] property wrapper 정의 및 사용법 예시 propert wrapper는 Swift5.1에 추가된 개념으로 이름에서 말하든 property를 감싸서 새로운 property를 만드는 것을 말한다. 그냥 이렇게만 들어보면 개념이 잘 안 잡히지만 Swift 를 사용하는 개발자라면 한 번씩 사용해 본 경험이 있을 것이다. @State @Published @Binding 위와 같이 property 앞에 추가되는 것이 property wrapper이다. 그럼 사용법 및 예시를 자세히 알아보자 사용법 우선 property wrapper를 사용하기 위해서는 local stored property 만 가능하다. global property, computed property 에는 사용할 수 없다는 것을 명심하고 바로 예시를 보자 @propertyWrapper st.. 2023. 11. 24.
[Swift] class 와 struct 의 차이 Swfit에서 가장 헷갈리는 내용 중에 하나가 class와 struct에 차이이다. 둘은 언뜻 보면 비슷하게 사용되며 큰 차이점이 없는 것처럼 보인다. 하지만 차이점을 모르고 잘못 사용하다 보면 큰 문제가 발생할 수 도 있다. 그 차이를 한번 알아보자 공통점 우선 차이점을 알기전에 공통점부터 알아보자. 둘 모두 Swift에서 사용되는 데이터를 유용하게 표현하기 위해 저장하고 처리하기 위해 사용자가 타입을 정의해서 만들어 주는 데이터 타입이다. 그렇기에 데이터를 잘 다룰 수 있도록 다양한 기능이 제공된다. 데이터를 저장할 수 있는 프로퍼티를 만들 수 있다. 메소드를 만들어서 특정 작업을 수행할 수 있다. initializer를 가질 수 있어 초기값을 설정할 수 있다 Extention을 이용해서 기존 타입에.. 2023. 11. 15.
[Android] Context 는 무엇이고 우리는 왜 사용하는가? 안드로이드 개발자라면 Context라는 건 많이 들어보았을 것이다. 하지만 정확히 Context 가 무엇인지는 잘 알지 못한다. Context가 무엇이고 어떨 떄 사용하는지 한번 알아보자 Context 란? 안드로이드에서 사용되는 Context 는 어디에서 온 것일까? Context는 안드로이드의 메인 프레임워크인 Android.jar 에 존재한다. 그럼 안드로이드 프레임워크는 무엇인가? 안드로이드 프레임워크는 안드로이드에서 동작하는 메인 애플리케이션이며 개발자가 만드는 애플리케이션은 그 메인 애플리케이션에서 동작하는 하나의 이벤트 핸들러이다. 미니 애플리케이션 (개발자가 만든 앱) 을 다운로드할 수 있는 메뉴를 가진 슈퍼 애플리케이션 (안드로이드 프레임워크) 이 있다고 생각하면 쉽게 이해된다. 안드로이.. 2023. 11. 1.
[Kotlin] extension 함수의 이해 코틀린에서 extension 함수는 기존에 존재하는 클래스의 변형 없이 새로운 함수를 추가할 수 있도록 해준다. 이 것은 기존에 정의되어 있지 않더라도 정의되어 있는 것처럼 사용 할 수 있도록 하여 좀 더 코틀린을 유연하게 사용할 수 있도록 도와준다. 예를 들어 우리가 컨트롤 할 수 없는 3rd party library의 클래스에 필요한 메서드를 추가할 수 있다. 장점 클래스 소스파일의 수정 없이 함수를 추가할 수 있다. 소스 코드가 없는 경우 매우 유용하게 사용될 수 있다. 관련된 함수를 하나의 클래스나 오브젝트로 그룹핑 할 수 있어 가독성 있고 이해하기 쉬운 코드를 작성할 수 있게 해 준다. 코드의 중복을 줄여서 유지보수에 유용하다. 단점 많은 장점에도 불구하고 extension 도 몇 가지 단점이 .. 2023. 10. 31.
iOS에서 Chrome 웹뷰 디버깅 하기 웹 개발을 할 때 브라우저에서 제공하는 개발자 모드로 디버깅을 할 수 있다. 하지만 모바일 환경에서 개발되는 웹 또는 하이브리드 웹 앱의 경우 개발자 모드로 디버깅하기는 쉽지 않다. 안드로이드의 경우 Google Inspector (chrome://inspect)를 통해 모바일 환경에서 개발되는 내용을 PC에서 비교적 쉽게 디버깅할 수 있지만 iOS의 경우 WKWebView에서 원격 Web inspector 디버깅을 지원하지 않아 Google inspector를 사용할 수 없었다. 하지만 iOS 16.4+ 이후에 WKWebView 에서 지원을 하면서 Chrome 버전이 115 이상이면 Mac의 Safari 브라우저를 통해 디버깅이 가능해졌다. iOS 16.4+ Chrome for iOS 115+ 아이폰내.. 2023. 10. 24.
[Kotlin] Channel, ReceiveChannel, Pipeline Kotlin Channel 은 둘 이상의 코루틴 간의 동시성 통신을 가능하게 하는 강력한 구조입니다. Channel 은 서로를 간섭하지 않고 데이터를 공유하고 함께 작업할 수 있도록 합니다. Kotlin의 Channel에 대해서 알아보고 사용하는 팁과 예시를 알아보고 Channel을 이용하여 Pipeline을 어떻게 효율적으로 사용하는지 알아보겠습니다. Channel 은 무엇인가? Channel 은 한 코루틴에서 다른 코루틴으로 데이터가 흐를 수 있도록 파이프라인을 연결합니다. 본질적으로 코루틴의 메세지를 보내고 받을 수 있는 버퍼 또는 큐 입니다. 한 코루틴은 Channel에 데이터를 전송할 수 있고, 다른 코루틴 Channel을 통해 해당 데이터를 검색하고 받을 수 있습니다. 이는 코루틴을 위한 pu.. 2023. 10. 20.
반응형