[SnapKit] offset vs inset 정리
·
🖋️ TIL Journal
오늘은 SnapKit의 메서드인 offset과 inset에 대해 정리해봤다. SnapKit이란 간단히 말해, UIKit의 오토 레이아웃을 더 간결하고 직관적으로 작성할 수 있도록 해주는 라이브러리다. iOS 좌표계 기본iOS의 좌표계를 알면 이해하는데 도움이 된다. iOS 좌표계는 왼쪽 상단이 (0,0)이고, x축은 오른쪽으로 증가, y축은 아래쪽으로 증가한다. 따라서 top과 leading 방향은 작을수록 화면의 시작점에 가깝고, bottom과 trailing은 클수록 화면의 바깥으로 향한다. offset이란?offset()은 특정 방향에 대해서 기준점으로부터 얼마나 떨어질지를 지정하는 메서드이다. 기준점이 top이나 leading처럼 뷰의 시작 지점일 경우, offset에 양수(+)를 주면 안쪽으로..
Swift 주석 총 정리!
·
🖋️ TIL Journal
// 한 줄 주석가장 기본적인 주석이다. 코드의 옆이나 위에 간단한 설명을 덧붙일 때 사용한다.let name = "Mori" // 사용자 이름 📌 주로 사용하는 경우간단한 변수, 함수 설명디버깅용 코드 비활성화TODO/FIXME 없이 간단한 작업 메모할 때 사용 /* ... */ 여러 줄 주석여러 줄에 걸친 주석을 작성할 때 사용한다./* 이 함수는 사용자의 이름을 출력합니다. 내부적으로는 print() 함수를 사용합니다.*/func greet() { print("Hello")} 📌 주로 사용하는 경우 긴 설명이 필요할 때코드 블록 전체를 주석 처리하고 싶을 때중첩 주석도 가능 (/* ... /* ... */ ... */)/* ... /* ... */... */ 중첩 주석 사용 예시/* ..
개인과제 Level4 역할 분리 및 구조 개선 회고
·
🖋️ TIL Journal
2주차 개인 과제의 Level4를 구현하는 도중, 복잡해진 구조를 변경해보았다.아직 파일 단위로 구조를 잘 나누지 못해서, 함수 단위로 역할 분리를 하며 정리하려고 노력했다. 작성한 코드더보기//// level4.swift// Week2Assignment//// Created by 서광용 on 6/5/25.//// MARK: - Introducible 프로토콜 정의protocol Introducible { var name: String { get set } func introduce() -> String}struct StandardLevel4 { private static var robot = Robot() private static let cat = Cat() priva..
enumerated()가 제네릭에서 안 된다고..?
·
🖋️ TIL Journal
💡 왜 enumerated()가 제네릭에서는 안될까?이번 주 개인 과제를 구현하고 있는데 방금 전에도 잘 사용하던 enumerated()가 갑자기 동작하지 않았다. 뭐가 문제일까 하고 전에 쓴 코드와 비교하는 도중, Array나 Array 에서는 잘 되던 코드가 제네릭 타입 T로 바꾸자마자 작동하지 않는 것이었다. 🔍 이유는 제네릭 T에는 Sequence 제약이 없기 때문!평소에 그냥 사용만해서 잘 몰랐지만, enumerated()는 모든 타입에서 다 쓸 수 있는건 아니었다. Swift에서는 Sequence 프로토콜을 채택한 타입에서만 사용할 수 있다고 한다. 제네릭 타입 T는 기본적으로 어떤 타입이든 받을 수 있기 때문에, enumerated()를 사용하려면 “T는 Sequence를 따르는 타입..
열거형(Enum)과 compactMap, flatMap
·
🖋️ TIL Journal
열거형(Enum)enum은 관련된 값들을 하나의 그룹으로 묶고, 해당 값들을 case로 정의하여 타입 안전하고 명확한 코드를 작성할 수 있도록 해준다.enum은 값을 표현하는 새로운 데이터 타입으로 정의할 수 있다.타입 안전성을 보장하고, 의도를 명확하게 파악할 수 있다.// 기본enum Season { case spring case summer case autumn case winter}// 기본 접근 방법Season.springSeason.summer// 데이터 타입처럼 저장var season: Season = .springvar summer = Season.summer enum Associated Values (연관 값)연관 값(Associated Value)은 각 case가..
실수로 날린 커밋, reflog로 되살리기
·
🖋️ TIL Journal
너무 졸렸다..이번주 내내 붙잡고 있던 개인 과제를 드디어 마무리했다. 아침 9시부터 밤 11시 넘게 작업해서 Lv6까지 완성했고, 이제는 push만 하면 되는 상태였다. 마지막 커밋도 다 마치고, 습관적으로 git push를 날렸다. 그런데… 응? PR(Pull Request) 버튼이 안 보이네..? 왜..? 알고 보니 같은 브랜치에서 동일한 주소로 보낸 PR이 아직 열려 있었던 것이다.. 알고보니 같은 브랜치에 동일한 주소로 PR이 열려있으면, commit이 그 PR에 합쳐진다. 무의식중에는 알고 썼는데, 피곤하고 자고싶은 마음에 머릿속으로 생각을 못하고 push를 질러버린 나였다.. 하지만 진짜 문제는 이게 아니였다는게 함정.. 😂😂 😱 나는 왜 reset을 쳤는가...PR이 이상하게 합쳐..