/users
/posts
/slides
/apps
/books
mysetting
/users
/posts
/slides
/apps
/books
3:10 5/30
velog.io
3:10
velog.io
jujube0
https://velog.io/@jujube0
개발블로그
저작도구: velog
최종 피드 수집: 2025-03-29 06:17
전체 (53)
4d
Custom Codable Macro #2 구현하기
매크로 구현을 시작하기 전에
매크로는 SwiftSyntax 라이브러리를 이용해 작성된다.
스위프트 컴파일러는 소스코드를 AST로 변환하여 처리를 하는데, SwiftSyntax는 이 AST에 직접 접근해서 조작하는 걸 도와주는 A
0
0
0
읽기모드
8d
Custom Codable Macro #1 세팅
시작하기
최소 Xcode15, Swift5.9 가 필요하다.
Xcode에서 패키지 생성을 클릭
Testing은 XCTest, 이름은 CodableMacro로 추가해줬다.
생성되는 기본 프로젝트는 아래와 같다.
Package.sw
0
0
0
읽기모드
8d
Custom Codable Macro #0 Macro란
Macro란
컴파일러에게 코드 블록을 추가(expand)하도록 명령하는 방법 - 기존 코드의 삭제나 변경은 안된다!
반복적인 코드 작성을 대신하게 하거나, 컴파일 타임에 확인하고 싶은 부분을 체크해서 에러를 내게 할 수도 있다.
0
0
0
읽기모드
11d
Swift Testing
References
https://github.com/swiftlang/swift-testing
Introduction
Swift6~
매크로를 사용하여 더 간편하게 테스트를 작성하는 방법
@Test("Continents menti
0
0
0
읽기모드
11d
dynamicMemberLookup 이용해서 간단하게 nested property 이용하기
Introduction
다국어 작업을 위해 아래와 같은 형식으로 다국어 값들을 내려받기로 되었다.
{
"id":10000,
"localization": {
"title":{
"k
0
0
0
읽기모드
2M
SwiftUI로 인스타그램 탐색창 구현하기 with custom layout
인스타그램 탐색창
이렇게 생긴 인스타그램 탐색창을 SwiftUI로! 만들어보려고 한다.
분석
(1x1인 정사각형 네 개) + (1x2인 직사각형 하나) 로, 총 다섯개의 아이템으로 구성된 레이아웃이 반복된다.
같은 레이아웃이 반
0
0
0
읽기모드
2y
SwiftUI로 핀터레스트 화면 구현하기
UI
기본 구조
ScrollView {
HStack {
LazyVStack { ... }
LazyVStack { ... }
}
}
Managing user interface state
뷰 내에서 view model을 s
0
0
0
읽기모드
2y
SwiftUI로 네이버웹툰 상단 배너 만들기
네이버 웹툰의 상단 배너
무한 스크롤
상단 이미지는 스크롤되지 않으면서 하단의 타이틀만 스크롤됨
자동 스크롤
drag gesture
겉보기에는 스크롤이 되는 것처럼 보이지만 scroll은 disable 시키고 drag gestur
0
0
2
읽기모드
2y
4. Combine: Publisher와 Subscriber (2)
Custom Publisher
Publisher 프로토콜을 직접 구현하는 대신 Combine 프레임워크가 제공하는 타입들을 이용하면 간편하게 Custom Publisher를 구현할 수 있다.
1. Subject
Subject 는
0
0
0
읽기모드
2y
3. Combine: Publisher와 Subscriber
Publisher와 Subscriber
Publisher는 시간에 따라 변화하는 값들을 전송해주는 프로토콜이다. 값을 하나만 전달해줄 수도 있고, 여러개 전달해줄 수도 있다. 하나도 전달하지 않을 수도 있다.
Publisher는
0
0
0
읽기모드
2y
2. Combine이란?
Combine이란?
combine은 asynchronous event를 처리하는 방법이다. (asynchrony는 앱의 main flow와 무관하게 진행되는 이벤트를 이야기한다.) 직접 thread를 조작하지는 않지만, 네트워크
0
0
0
읽기모드
2y
1. Grand Central Dispatch
concurrency는 여러 작업들이 동시에 일어나는 것을 이야기한다. asynchronous function은 concurrency를 구현하기 위한 방법 중 하나이다. 오래 걸리는 작업들을 함수에 넣어두고, 함수를 호출하면 함수
0
0
0
읽기모드
2y
safe decoding of enum
Problem
Codable synthesis for Swift enums
Optional&Decodable 로 정의된 enum을 decoding할 때, case로 정의되지 않은 String이 들어있는 경우 에러가 나게 된다.
0
0
0
읽기모드
3y
query parameter로 JSON object 또는 배열 받기
원래 query parameter와 path parameter는 기본적으로 key-value 형태로 이루어져있다. 주로 value로 이용되는 것은 number, string 등 기본 타입이다.
그렇다면, 기본 타입 이외에 다른 타
0
0
0
읽기모드
3y
Typeorm으로 Many-to-Many with custom property 구현하기
시작하기
typeorm에서 Relation을 표현하는 방법은 기본적으로 굉장히 간단하다. @OneToMany, @ManyToMany 등 데코레이터를 이용하면 Relation이 생성되고 @JoinTable() 데코레이터를 이용하여
0
0
0
읽기모드
3y
NestJS
nestjs 공식문서를 참고하였다.
기본적으로 어떤 요소들이 존재하는지 확인하기 위함이다.
예시 소스 코드는 https://github.com/jujube0/nest-study 에서 확인 가능하다.
Overview
Control
0
0
0
읽기모드
3y
NestJS로 REST API 만들기
nest 공식 강의를 참고하였으며,
소스코드는 https://github.com/jujube0/nest-study 에서 확인 가능하다.
시작하기
새로운 프로젝트 만들기 : nest new {project-name}
모듈 생성하기
0
0
4
읽기모드
3y
2021 카카오 채용연계형 인턴십
미로 탈출
추가 테스트 케이스
제가 만든 추가 테스트 케이스를 공유합니다.
전체 코드
from collections import deque
import heapq as hq
def solution(n, start, end, roa
0
0
7
읽기모드
3y
Typescript : functions
함수를 정의하는 방법
Function type expression
함수를 정의하는 가장 간단한 방법
화살표 함수와 유사하다.
첫번째 greeter 함수는 string type의 a라는 하나의 parameter를 가지면서 retu
0
0
1
읽기모드
3y
Typescript : Narrowing
Typescript document의 Narrowing 파트를 참고하였다.
위의 코드에서 padding 이라는 변수에 주목하자. padding은 number 또는 string 값을 갖는 유니언 타입으로 선언되었는데, 실제 함수 내
0
0
3
읽기모드
About
Badge
Contact
Activity
Terms of service
Privacy Policy