[내일배움캠프] 260202 TIL

Bambu·2026년 2월 2일

내배캠 TIL

목록 보기
30/52

1. 앱 입문주차 과제

1) 과제 제출 및 피드백

가. delegate 함수 네이밍 컨벤션

delegate 함수 네이밍에도 컨벤션이 존재한다.

그냥 동작을 이름으로 사용하면 중복으로 생성되는 경우가 많아 어떤 객체에서 동작하는 함수인지 알기 어렵다.

protocol MoreButtonDelegate: AnyObject {
	func saveStatus(_ isMore: Bool)
    func update()
}

protocol SeriesButtonDelegate: AnyObject {
	func update()
}

위 경우, delegate?.update()로 사용한다면 누구를 대신하여 업데이트하려는 것인지 메서드 이름만으로는 알기 어렵다.

따라서 delegate 주체의 이름을 앞에 넣어주는 것이 컨벤션이다.

protocol MoreButtonDelegate: AnyObject {
	func moreButtonSaveStatus(_ isMore: Bool)
    func moreButtonUpdateSummaryStack()
}

protocol SeriesButtonDelegate: AnyObject {
	func seriesButtonContentsUpdate()
}

(제대로 바꾼건지 확신은 안들지만..) 일단 위처럼 동작을 위임하는 주체의 이름을 메서드 어두에 붙여주어야 한다.

나. JSON 파싱에 코딩키 사용하기

기존에는 코딩키를 따로 사용하지 않아 언더바가 포함된 JSON 데이터 형식을 그대로 프로퍼티 이름으로 사용하였다.

struct Book: Codable {
	let release_date: Date
}

그러나 프로퍼티 이름에 언더바를 사용하는 것은 일반적인 네이밍 방식이 아니기에 코딩키를 사용하여 수정하였다.

struct Book: Codable {
	let releaseDate: Date
    
    enum CodingKey: String, CodingKey {
    	case releaseDate = "release_date"
	}
}

2. 모닝 스터디

1) 비트 연산자

  • | : OR 비트 연산자
  • & : AND 비트 연산자

-> 보통 비트 연산을 하지 않다보니 || 혹은 &&을 많이 사용하여 위 연산자들의 존재를 잊고 있었다..

이번 문제는 문자열을 활용해서도 풀 수 있었지만, 비트 연산자를 활용하자 더 적은 코드로 반복되지 않게 풀 수 있었다.

프로그래머스 lv.1 - 비밀 지도 풀이

profile
안녕하세요, iOS 개발을 공부하고 있는 Bambu입니다. (프로필: Swifticons)

0개의 댓글