% 연산을 할 때, negative 값이 있는 경우 언어마다 결과가 다르다는 것을 발견했습니다,, # Swift 보통 다른 언어에서는 %를 modulo operator 라고 부르는데, Swift 에서는 remainder operator 라고 부릅니다. Swift 에서 음수에 대한 동작은 엄밀히 말하면 modulo 연산보다 나머지 연산에 가까워서 remainder operator 라고 부른다고 하네요. (참고: Swift Docs) a % b 일 때, % operator 는 아래의 식으로 나머지를 계산합니다. a = (b x some multiplier) + remainder 1) 9 % 4 9 = (4 x 2) + 1 이므로 결과는 1 2) -9 % 4 -9 = (4 x -2) + -1 이므로 결과는 -..
Swift Docs > The Basics > Assertions and Preconditions 에 있는 내용을 토대로 한 글입니다! # Assertions 과 preconditions 용도 Assertions 와 preconditions 은 런타임에 체크됩니다. futher code 를 실행시키기 전에 essential condition 을 만족시켰는 지 검증하는 용도로 사용할 수 있습니다. assertion 또는 precondition 의 조건이 true 면 코드는 계속 실행되고false 면 현재 프로그램 상태가 invalid 하다고 판단되어서 코드 실행이 멈추고 앱이 종료됩니다. Assertion은 개발 중에 실수나 잘못된 가정을 찾는 데 도움이 되고preconditions는 produ..
# Strong Subview Reference Type 1 class ViewController: UIViewController { private let someView: SomeView = SomeView() override func viewDidLoad() { super.viewDidLoad() self.setupSomeView() } private func setupSomeView() { self.view.addSubview(someView) self.someView.snp.makeConstraints { maker in maker.width.height.equalTo(50) maker.center.equalToSuperview() } } } Type 2 class ViewController: U..
[Roblox] Intro to World Building (1) 에서 이어집니다. [2] Adding Light Sources # 목표 이 코스에서는 램프를 만들기 위해 - 복잡한 부품 (oil lamp) 만들기 - 불 효과 주기 - 방을 밝히기 위해 light source 사용하기 를 배울 것 입니다! # Creating the Complex Part 이렇게 생긴 램프를 만들어봅시다! 우선 Sphere 를 추가하고 Base 라고 이름을 지어줍니다. Material을 cobblestone, Color 를 다크그레이로 선택해줍니다. Base에서 Subtract 할 두개의 Block (Collisions Off 해줘야함) 을 추가해줍니다. Negate & Union 해준 후, unioned part 를 L..
Roblox Studio 는 다양한 World를 구축하여 Templates 으로 제공해주고 있습니다. 이 템플릿을 보고 어떤식으로 Object 와 World 를 구축하는 지, 그룹핑은 어떻게 하는 지 등을 살펴볼 수 있지만 처음부터 만들어보는게 더 이해가 잘되겠죠 ?.? 그럴 때, Intro to World Building 튜토리얼 을 따라해보면 좋습니다. 4가지 코스가 있습니다. [1] Creating a Building 이 코스에서는 판테온을 만들어봅니다! # setup 1. Flat Terrain template 을 선택해줍니다. 2. Scale Character 모델 파일을 다운받아서 Workspace에 추가해줍니다. - Explore 창에서 Workspace 에 우클릭하여 “Insert from..
이 글은 제가 몰랐거나 자주 까먹는 단축키들만 모을 예정으로 더 많은 단축키를 보고 싶다면 이 글을 추천합니다~ [1] 중복커서 (Option + Drag) Fast Campus > 슈퍼앱 강의를 듣다가 알게 된 것인데, Option 누르고 드래그를 하면 커서를 중복으로 만들 수 있다. 아래 예제 (출처: 강의에서 나오는 예제) 처럼 여러 프로퍼티에 public 을 붙일 때 유용하게 사용 가능하다!! (그동안 하나씩 해줬는데 ㅠㅠㅠ 감동) [2] MiniMap 토글 (Control + Shift + Command + M) 코드 라인 수가 많은 파일을 볼 때 유용한 미니맵. Xcode 의 저부분을 눌러서 토글할 수 있지만 단축키로 편하게 할 수 도 있다. 코드를 작성하거나 라인 수가 적은 코드를 볼 경우,..
Self vs self - what's the difference? 에 대해서는 대충 알고 있었지만, 예전에 iOS Test-Driven Development by Tutorials (raywenderlich) 를 보다가 샘플코드 중, 이런 식으로 되어있는 것을 보고 좀 헷갈려서 Self Type 문서를 봐야지~~ 했는데 이제야 봅니다,,, https://docs.swift.org/swift-book/ReferenceManual/Types.html#grammar_self-type Types — The Swift Programming Language (Swift 5.5) Types In Swift, there are two kinds of types: named types and compound types..
Explorer window 에서 Asset 을 선택하고 마우스 오른쪽 클릭하면 나오는 메뉴 중, Save To File 과 Save to Roblox 가 있습니다. [1] Save to File Roblox Model Files (확장자 rbxm) 으로 저장되는 옵션입니다. # TODO 'rbxm converter' 라고 구글링해보면 좀 나오는데 Unity 또는 iOS ARKit 등에서 로블록스 모델을 쓸 수 있게 컨버팅 가능한 지 살펴보기! [2] Save to Roblox Developer Marketplace 에 Asset을 publish 하는 옵션입니다. (참고: 문서) Asset Configuration에 정보를 입력해주고 Submit 하면 바로 마켓플레이스에 올라가게 됩니다. https://..
[Roblox] Modeling (2) - Texture, Decal 에서 이어집니다. [3] Sculpting Terrain terrain tools (지형 도구)를 사용하여 바다, 산, 강, 협곡과 같은 사실적인 풍경을 만들 수 있습니다. 이 코스에서, 바다 한가운데에 작은 섬을 만들어볼 것 입니다. # Ocean 만들기 Home 탭의 Editor 를 누르면 Terrain Editor 가 나옵니다. 여기서 Edit 탭의 Sea Level Tool을 선택하고 Size 를 2000, 100, 2000 으로 해준 후 Create 버튼을 누릅니다. 파도가 출렁이는 바다가 만들어졌습니다. 게임 플레이를 해보면 바다 소리도 납니다. 그리고 방향키를 누르면 캐릭터가 걷지 않고 알아서 수영하도록 바뀐 모습을 볼 수..
[Roblox] Modeling (1) - Solid Modeling 에서 이어집니다. [2] Applying Surface Images Parts 는 surface(지표면) 들을 가지고 있으며 Texture 또는 Decal 를 사용해서 선택한 surface에 이미지를 적용할 수 있습니다. Texture 와 Decal 중 무엇을 사용할 지는 아래를 참고하면 됩니다. # Texture 또는 Decal 추가하기 Explore 창에서 + 를 눌러서 Texture 또는 Decal 을 선택합니다. 그러면 아래처럼 면을 선택할 수 있게 되는데, 원하는 면을 선택해줍니다. 그럼 선택한 면으로 Face가 설정되고 원한다면 바꿀 수도 있습니다. # 이미지 적용하기 로블록스에 업로드한 이미지를 Texture에 설정해주면 ..
- Total
- Today
- Yesterday
- Flutter 로딩
- drf custom error
- Flutter Spacer
- 구글 Geocoding API
- ribs
- Flutter getter setter
- Django Firebase Cloud Messaging
- 장고 URL querystring
- Watch App for iOS App vs Watch App
- Sketch 누끼
- 장고 Custom Management Command
- Dart Factory
- PencilKit
- Django Heroku Scheduler
- flutter build mode
- DRF APIException
- flutter 앱 출시
- SerializerMethodField
- 플러터 얼럿
- cocoapod
- flutter dynamic link
- flutter deep link
- METAL
- 플러터 싱글톤
- github actions
- Python Type Hint
- Flutter Clipboard
- Flutter Text Gradient
- Django FCM
- ipad multitasking
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |