전체 글 481

(Rust) 참조와 역참조 정리 (*, &)

(Rust) 참조와 역참조 정리 (*, &)&는 참조를 만들고 *는 참조가 가리키는 place expression에 접근하며, 실제 copy, move, borrowing은 그 표현식을 사용하는 문맥에서 결정.목차&와 *&self*와 소유권 move 구분하기Box 구현참조를 직접 매칭하는 match ergonomics참조와 포인터 종류 비교표현을 선택하는 기준&와 *다음 코드에서 reference는 number를 공유 참조로 빌림.let number = 5;let reference = &number;assert_eq!(*reference, 5);&number의 타입은 &i32. *reference는 참조가 가리키는 i32 위치에 접근하는 역참조 표현식.참고로 우리가 C언어 배울때 포인터처럼 생각하면 이해..

Rust 2026.09.09

(Rust) 에러 전파 연산자 정리

(Rust) 에러 전파 연산자 정리Rust의 ?는 성공 값은 꺼내고 실패 값은 현재 함수의 반환값으로 바꾸어 호출자에게 전달하는 연산자. write!와 ?의 흐름 차이write!(formatter, ", ")?; write!의 반환 타입은 출력 대상의 write_fmt가 정함. 위 코드처럼 fmt::Formatter에 쓰면 fmt::Result, std::io::Write 구현에 쓰면 보통 io::Result를 반환함.Ok(())이면 다음 코드로 진행함Err(error)이면 현재 함수를 끝내고 에러를 호출자에게 반환함 match로 작성해보기Result에 사용한 ?는 단순화하면 아래 흐름으로 볼 수 있음.match write!(formatter, ", ") { Ok(()) => {} Err(er..

Rust 2026.09.09

(Rust) use와 match 정리

(Rust) use와 match 정리 Rust 예제에서 use와 match는 함께 자주 나오지만 사용하는 역할이 다름.use는 경로에 있는 이름을 현재 범위로 가져오고, match는 값과 패턴을 대조해 실행할 코드를 고름.목차usecrate::`*` 표현식matchuse로 match arm 간결하기 표현하는 방법이름 충돌과 전체 경로use다음 열거형의 두 변형은 Status::Poor, Status::Rich라는 경로를 가짐.enum Status { Poor, Rich,}let status = Status::Poor; use로 두 변형을 현재 범위에 가져오면 짧은 이름을 쓸 수 있음. enum Status { Poor, Rich,}use Status::{ Poor, Rich };le..

Rust 2026.09.09

(Rust) Display와 Debug 출력 형식 비교

(Rust) Display와 Debug 출력 형식 비교 Rust의 println!에서 {}와 {:?}는 같은 값을 서로 다른 목적으로 출력하는데 사용println!("{value}"); // Displayprintln!("{value:?}"); // Debug {}는 Display{:?}는 Debugtrait 구현을 사용하고 간단하게 출력하는 형태에 차이가 존재함. 서로 다른 역할과 구현 방식Display는 사용자에게 노출할 출력 형식을 정의.구조체의 필드 이름을 그대로 보여 주기보다 타입을 대표하는 문자열을 직접 정하는 방식.사용자 정의 타입은 Display를 자동으로 파생할 수 없어서, fmt 메서드 안에서 `write!`로 출력 형식을 구현해야 함.Display를 구현하면 {}뿐 아니라 to_s..

Rust 2026.09.08

Meet the new MetricKit (WWDC26)

Meet the new MetricKit (WWDC26) 목차OverviewMetricsDiagnosticsContext Overview 앱 성능 최적화는 데이터 수집부터 시작해서 분석하여 문제를 파악하는 일련의 과정으로 이루어짐 각 문제에 대해 근본 원인을 찾기 위해 분류하고, 수정은 다시 처음 단계로 돌아가 결과를 모니터링 함.MetricKit은 해당 워크플로우에서 수집 단계를 담당함. MetricKit 프레임워크는 Metrics과 Diagnostic 2가지 유형의 데이터를 제공. Metrics는 성능이 전반적으로 개선되고 있는지 파악Diagnostic는 어떤 경로가 성능 문제를 일으키는지 알려줌. 실행시간, 행, 애니메이션 메트릭은 앱이 얼마나 반응적이고 부드럽게 느껴지는지를 알려주며, 느린 실..

Apple/WWDC 2026.08.22

Safe loading API for RawSpan (SE-0525)

Safe loading API for RawSpan (SE-0525) (링크) https://github.com/swiftlang/swift-evolution/blob/main/proposals/0525-rawspan-safe-loading-api.md swift-evolution/proposals/0525-rawspan-safe-loading-api.md at main · swiftlang/swift-evolutionThis maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolutiongithub.com Swift 6.4에서 구현되었고 리뷰에서..

SwiftUI로 고급 그래픽 효과 구성하기 (Compose advanced graphics effects with SwiftUI) - WWDC26

SwiftUI로 고급 그래픽 효과 구성하기 (Compose advanced graphics effects with SwiftUI) - WWDC26레이어 셰이더로 그리고, 타임라인으로 애니메이션 효과를 적용하며, 정렬 가이드로 뷰를 고정하는 방법 및 SwiftUI로 레이아웃 및 그래픽 API를 창의적으로 구성하고 풍부한 경험을 만드는 방법에 대해서 알아볼 예정. SwiftUI는 고급 효과를 기본 요소를 사용하여 구현하며 Apple도 SwiftUI로 자체 앱에 동일한 고급 효과를 구현함 파이프라인에 따라서 modifier를 배치하여 고급 애니메이션을 구현 SwiftUI에서의 Shader Effect에 대해서 이해해보자아이콘은 Vector로 시작해서 GPU가 픽셀로 Rasterization하여 이 시점에서..

Apple/WWDC 2026.07.10

Express req.query와 query parser

Express req.query와 query parserExpress에서 query string이 req.query로 어떻게 들어오는지 정리.특히 같은 query key를 여러 번 보냈을 때 왜 배열로 바뀌는지 헷갈려서 정리.이 글은 Express 5의 기본 query parser인 simple 기준으로 하며, Express 4는 기본값이 extended였으므로 버전에 따라 parser가 다를 수 있음.예제 요청아래처럼 같은 key인 tags를 여러 번 보낸다고 가정.GET /example/info/b?tags=node&tags=express&tags=javascript Express에서 req.query를 찍으면 아래처럼 보임.[Object: null prototype] { tags: ["node",..

백엔드 2026.07.07

Express app.param vs app.get

Express app.param vs app.getExpress에서 app.get과 app.param에 대해서 간단하게 정리둘 다 라우팅 과정에서 나오고, 둘 다 userId 같은 값을 다룰 수 있어서 처음에는 비슷해 보임.간단히 보면 아래처럼 구분. app.get(path, handler)-> GET 요청을 실제로 처리하는 라우트 핸들러app.param(name, handler)-> 특정 path parameter가 있는 라우트 앞에서 먼저 실행되는 전처리 함수 여기서 말하는 app.get은 app.get("port")처럼 앱 설정값을 읽는 메서드가 아님.HTTP GET 라우트를 등록하는 app.get(path, handler) 기준으로 정리.기준구분역할app.get요청을 받아 응답을 보냄app.par..

백엔드 2026.07.07

SwiftUI로 지연 스택과 스크롤 자세히 살펴보기 (Dive into lazy stacks and scrolling with SwiftUI) - WWDC26

SwiftUI로 지연 스택과 스크롤 자세히 살펴보기 (Dive into lazy stacks and scrolling with SwiftUI) - WWDC26 SwiftUI에서 lazy stacks 내부 동작 방식에 대한 이해.하위 뷰를 지연 로드하며, 콘텐츠를 prefetch하고 부드러운 스크롤 경험에 대해서 SwiftUI가 어떻게 처리하는지와 성능 최적화 및 상태 관리, 정밀한 스크롤을 위한 팁에 대해서 설명. LazyVStack은 보이지 않는 뷰를 평가하거나 렌더링하지 않음.View가 보여지면 적절히 LazyVStack에 추가하고 View가 사라지면 LazyVStack에서 제거함. LazyVStack은 모든 뷰를 로드하지 않기 때문에 화면 밖의 subviews에 대한 높이는 추정값(Estimated..

Apple/WWDC 2026.07.06