전체 글 62

2024년 웹 개발 트렌드: 초보부터 전문가까지, 어떤 프레임워크를 선택할까?

매년 Stack Overflow에서 발표하는 개발자 설문조사 결과는 개발자들이 선호하는 기술 트렌드를 알아볼 수 있는 중요한 자료입니다. 이번 글에서는 코드를 배우는 사람들부터 전문가까지 각 그룹이 어떤 웹 프레임워크와 기술을 선호하는지 살펴보려고 합니다. 1. 코드를 배우는 사람들이 가장 많이 선택한 기술은?2024년, 코드를 배우는 사람들 사이에서 가장 인기 있는 기술은 바로 Node.js입니다.무려 44.2%나 되는 학습자가 이 기술을 선택했습니다. 프론트엔드에서는 React가 강세를 보이며 36.6%의 지지를 받았고요. 확실히 Node.js와 React는 배우기 쉽고, 바로바로 결과를 볼 수 있는 기술이라 초보자들에게 인기 있는 것 같아요. 코딩을 처음 시작할 때는 빠르게 눈에 보이는 성과를 내는..

Dev-기타/Web 2024.09.10

Mixin 사용하기

믹스인(Mixin) 이란?Mixin은 Dart 언어의 기능으로, 클래스의 일부 코드를 다른 클래스에서 재사용할 수 있도록 하는 기능입니다. Mixin은 클래스의 인스턴스를 생성하지 않으며, 다른 클래스에서 Mixin을 사용할 때 기능을 추가할 수 있습니다. 이를 통해 코드 중복을 줄이고, 여러 클래스에 동일한 기능을 제공할 수 있습니다. 또한 다른 클래스에 기능을 추가할 때 중복 코드를 줄이고 모듈화된 구조를 만들 수 있습니다. 믹스인 사용 방법1. 먼저 Mixin을 정의하기 위해서는 mixin 키워드를 사용합니다.mixin WalkMixin { void walk() { print('걷기'); }}2. 다른 클래스에서 Mixin을 사용하려면, with 키워드를 사용하여 추가합니다.class Hu..

Dev-기타/Flutter 2024.09.09

Future와 Stream

FutureFuture는 Dart에서 비동기 작업의 결과를 나타내는 클래스입니다. Future는 작업이 완료되었을 때 결과를 반환하거나 에러를 던집니다. Future를 사용하면 비동기 작업을 쉽게 처리할 수 있습니다.async/awaitasync와 await 키워드는 비동기 작업을 쉽게 처리할 수 있도록 도와줍니다. async 키워드를 사용하면 함수를 비동기 함수로 만들 수 있습니다. 이 함수는 Future를 반환합니다. await 키워드는 Future가 완료될 때까지 기다린 후 결과를 얻을 수 있게 합니다.import 'dart:async';Future fetchData() async { await Future.delayed(Duration(seconds: 3)); return '데이터';}void..

Dev-기타/Flutter 2024.09.09

[SwiftUI] MapKit - 기본

MapKit 설명SwiftUI는 iOS, macOS, watchOS 및 tvOS에서 사용자 인터페이스를 구축하는 데 사용되는 Map 프레임워크입니다. iOS 기준으로 iOS 14버전 이상부터 사용할 수 있습니다.SwiftUI에서 제공하는 Map 뷰를 사용하면 지도를 표시하고, 마커와 같은 추가 요소를 사용하여 위치 정보를 시각화할 수 있습니다. SwiftUI Map 예시 코드import SwiftUIimport MapKitstruct ContentView: View { @State private var region = MKCoordinateRegion( center: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194), ..

Dev-iOS/iOS 2024.09.09

[SwiftUI] 프로퍼티 래퍼 (Property Wrapper)

프로퍼티 래퍼란?프로퍼티 래퍼는 Swift에서 특정한 방식으로 프로퍼티를 동작시키는 구조를 정의하는 기능입니다.SwiftUI에서는 이 프로퍼티 래퍼를 통해 다양한 동작을 캡슐화하고 코드를 깔끔하게 유지하는데 도움이 됩니다. @State, @Binding, @ObservedObject, @EnvironmentObject 등이 대표적인 예입니다. 왜 프로퍼티 래퍼를 사용하는가?프로퍼티 래퍼를 사용하면 복잡한 로직을 래퍼 내부에 숨기고, 코드의 가독성을 향상시키며, 일관된 방식으로 특정 기능을 제공할 수 있습니다. 예를 들어, SwiftUI의 @State 프로퍼티 래퍼를 사용하면, UI의 상태를 안전하게 관리하고 UI가 상태의 변화를 자동으로 반영할 수 있게 만듭니다.struct ContentView: Vie..

Dev-iOS/SwiftUI 2024.09.09

Promise.all의 순서 보장 문제, 어떻게 해결할까?

자바스크립트에서 비동기 작업을 처리할 때, Promise.all을 사용하여 여러 작업을 병렬적으로 실행하는 경우가 많습니다. 그러나, Promise.all은 작업이 완료되는 순서를 보장하지 않습니다. 이 문제를 해결하는 방법을 알아보겠습니다.Promise.all의 순서 보장 문제Promise.all은 여러 비동기 작업을 병렬적으로 실행하고, 모든 작업이 완료되면 결과를 반환합니다. 그러나, 작업이 완료되는 순서는 보장되지 않습니다. 예를 들어, 다음과 같은 코드가 있다고 가정해 보겠습니다. const list = [1, 2, 3, 4];const promises = list.map(async (item) => { await new Promise(resolve => setTimeout(resolve, i..

카테고리 없음 2024.09.09

errorHandler: NO with WCErrorCodeDeliveryFailed 발생 시

Watch - iPhone간에서 데이터를 전송하는데, WCSeesion이 활성화되어 있고, Reachable 상태인데도 아래와 같은 이벤트 로그가 발생하면서 데이터 송, 수신이 되지 않을때가 있다. WCSession _onqueue_notifyOfMessageError:messageID:withErrorHandler:] 0B2139AA-E8FA-4F2D-A368-20D058F45978 errorHandler: NO with WCErrorCodeDeliveryFailed 이런 경우에는 데이터를 전송하는 측에서 WCSession.default.sendMessage(message, replyHandler: nil) { error in print("Error sending message: \(error.l..

Dev-iOS/iOS 2024.09.05

Apple Watch - iPhone 간 데이터 전송 시

1.  Apple Watch -> iPhone으로 데이터 전송 시1-1. Apple Watch 구현WCSession은 init 함수에서 할 필요는 없으나, WCSessionDelegate 함수들은 구현해줘야 한다.임의의 sendMessageToiPhone 함수를 통해서 WCSession을 통해 활성화되고 Reachable이 된다면 데이터를 전송한다.전송하는 데이터 형태는 Dictionary형태로 전송 가능하다.import WatchConnectivityclass WatchSessionManager: NSObject, WCSessionDelegate { override init() { super.init() if WCSession.isSupported() { ..

Dev-iOS/iOS 2024.09.05