2022/09

πŸ’» 개발/iOS

[iOS / Swift] 상속 VS μ΅μŠ€ν…μ…˜

μ΅μŠ€ν…μ…˜ μŠ€μœ„ν”„νŠΈμ˜ κ°•λ ₯ν•œ κΈ°λŠ₯으둜, ꡬ쑰체, 클래슀, μ—΄κ±°ν˜•, ν”„λ‘œν† μ½œ νƒ€μž…μ— μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•  수 있게 ν•΄μ€€λ‹€. κΈ°λŠ₯을 μΆ”κ°€ν•˜λ €λŠ” νƒ€μž…μ˜ κ΅¬ν˜„λœ μ†ŒμŠ€ μ½”λ“œλ₯Ό μ•Œμ§€ λͺ»ν•˜λ”라도 νƒ€μž…λ§Œ μ•Œκ³  μžˆλ‹€λ©΄ κΈ°λŠ₯을 ν™•μž₯ν•  수 μžˆλ‹€. μ΅μŠ€ν…μ…˜μœΌλ‘œ νƒ€μž…μ— μΆ”κ°€ν•  수 μžˆλŠ” κ²ƒλ“€μ—λŠ” μ—°μ‚° νƒ€μž… ν”„λ‘œνΌν‹° / μ—°μ‚° μΈμŠ€ν„΄μŠ€ ν”„λ‘œνΌν‹° νƒ€μž… λ©”μ„œλ“œ / μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ μ΄ˆκΈ°ν™” μ„œλΈŒμŠ€ν¬λ¦½νŠΈ 쀑첩 νƒ€μž… νŠΉμ • ν”„λ‘œν† μ½œμ„ μ€€μˆ˜ν•  수 μžˆλ„λ‘ κΈ°λŠ₯ μΆ”κ°€ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•  μˆ˜λŠ” μžˆμ§€λ§Œ 기쑴에 μ‘΄μž¬ν•˜λŠ” κΈ°λŠ₯을 μž¬μ •μ˜(override)λŠ” λΆˆκ°€λŠ₯ν•˜λ‹€. 이것이 λ°”λ‘œ μƒμ†κ³Όμ˜ 차이이닀. 상속 VS μ΅μŠ€ν…μ…˜ 상속 - 클래슀 νƒ€μž…μ— ν™œμš© - 수직적으둜 ν™•μž₯ - μž¬μ •μ˜ κ°€λŠ₯ μ΅μŠ€ν…μ…˜ - 클래슀, ꡬ쑰체, μ—΄κ±°ν˜•, ν”„λ‘œν† μ½œ λ“± λͺ¨λ“  νƒ€μž…μ— ν™œμš© - 수..

⛹️ 라이프/회고

[NCSOFT] 2022 μ—”μ”¨μ†Œν”„νŠΈ 썸머 인턴 ν›„κΈ° - 2λΆ€

1뢀에 μ΄μ–΄μ„œ μ“°λŠ” κΈ€! 인턴은 총 7μ£Όκ°„ 진행됐닀. λ§ˆμ§€λ§‰ μ£ΌλŠ” μ΅œμ’… λ°œν‘œμ™€ μˆ˜λ£Œμ‹ λ“±μœΌλ‘œ 일정이 λ§Žμ•˜κΈ°μ— λ§ˆμ§€λ§‰ μ£Όλ₯Ό μ œμ™Έν•˜λ©΄ 6μ£ΌλΌλŠ” 짧은 μ‹œκ°„μ΄μ—ˆλ‹€. 사싀, 인턴 μ΄ˆκΈ°μ—λŠ” 7μ£Όκ°€ μ—„μ²­ 길게 λŠκ»΄μ‘ŒλŠ”λ° 인턴 과제λ₯Ό μˆ˜ν–‰ν•˜λ‹€λ³΄λ‹ˆ 7μ£ΌλΌλŠ” μ‹œκ°„μ΄ λ„ˆλ¬΄ 짧게 λŠκ»΄μ‘Œλ‹€. 1μ£Ό - νŒ€ 적응 κΈ°κ°„ 7μ›” 4일을 μ‹œμž‘μœΌλ‘œ 인턴이 μ‹œμž‘λ˜μ—ˆλ‹€. 각 νŒ€ λ³„λ‘œ 인턴이 1 ~ 2λͺ… 정도 λ°°μ •λ˜μ—ˆκ³  νŒ€μ—μ„œλŠ” 인턴이 λ‚˜ ν•œ λͺ…μ΄μ—ˆλ‹€. νŒ€μ˜ μƒμœ„ 쑰직인 μ‹€μ—μ„œλ„ 인턴이 λ‚˜ ν•œ λͺ…μ΄μ—ˆλ‹€. λ‚˜ ν˜Όμžμ˜€μ§€λ§Œ νŒ€ λΆ„μœ„κΈ°κ°€ λ„ˆλ¬΄ μ’‹μ•„μ„œ μ μ‘ν•˜λŠ”λ° 큰 어렀움은 μ—†μ—ˆλ˜ 것 κ°™λ‹€. μ•„λ¬΄νŠΌ, 첫째 μ£Όμ—λŠ” λ‚΄κ°€ μ†ν•œ νŒ€μ΄ 무엇을 ν•˜κ³  μžˆλŠ” νŒ€μΈμ§€μ™€ 과제둜 μˆ˜ν–‰ν•  아이디어에 λŒ€ν•œ ꡬ상 및 κΈ°νšμ„ μ§„ν–‰ν–ˆλ‹€. 인턴듀끼리도 μ‘°κ°€ μ •ν•΄μ‘Œλ‹€. λ‚΄κ°€ μ†ν•œ μ‘°..

πŸ’» 개발/였늘의 μ‚½μ§ˆ

[iOS / Swift] URL Encoding = nil...? (URL 인코딩이 λ˜μ§€ μ•Šμ„ λ•Œ)

곡곡데이터 ν¬ν„Έμ—μ„œ ν•œκ΅­ν™˜κ²½κ³΅λ‹¨μ—μ„œ μ œκ³΅ν•˜λŠ” λŒ€κΈ°μ§ˆ 정보λ₯Ό ν†΅ν•΄μ„œ κ°„λ‹¨ν•˜κ²Œ μΈ‘μ •μ†Œλ³„ λŒ€κΈ°μ§ˆ 정보λ₯Ό 확인할 수 μžˆλŠ” 앱을 λ§Œλ“€μ–΄λ³΄λ €κ³  ν–ˆλ‹€. ν•œκ΅­ν™˜κ²½κ³΅λ‹¨_에어코리아_μΈ‘μ •μ†Œμ •λ³΄ λŒ€κΈ°μ§ˆ μΈ‘μ •μ†Œ 정보λ₯Ό μ‘°νšŒν•˜κΈ° μœ„ν•œ μ„œλΉ„μŠ€λ‘œ TM μ’Œν‘œκΈ°λ°˜μ˜ κ°€κΉŒμš΄ μΈ‘μ •μ†Œ 및 μΈ‘μ •μ†Œ λͺ©λ‘κ³Ό μΈ‘μ •μ†Œμ˜ 정보λ₯Ό μ‘°νšŒν•  수 μžˆλ‹€. β€» μš΄μ˜κ³„μ •μœΌλ‘œ μ‚¬μš©ν•˜κ³ μž ν•  경우 에어코리아 OpenAPI μ‚¬μš©μž www.data.go.kr κ΅¬ν˜„ν•˜λ €λŠ” 앱은 총 3개의 ViewController둜, 지역λͺ…을 검색할 수 μžˆλŠ” νŽ˜μ΄μ§€ ν•΄λ‹Ή μ§€μ—­μ˜ μΈ‘μ •μ†Œ λͺ©λ‘μ„ λ³΄μ—¬μ£ΌλŠ” νŽ˜μ΄μ§€ νŠΉμ • μΈ‘μ •μ†Œμ˜ λŒ€κΈ°μ§ˆμ˜ 상세정보λ₯Ό λ³΄μ—¬μ£ΌλŠ” νŽ˜μ΄μ§€ 둜 κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. μš°μ„  지역λͺ…을 검색할 수 μžˆλŠ” νŽ˜μ΄μ§€μΈ ViewControllerλΆ€ν„° μ‚΄νŽ΄λ³΄μž. // // ViewControlle..

πŸ’» 개발/였늘의 μ‚½μ§ˆ

[iOS / Swift] Exception NSException * "-[UIView setText:]: unrecognized selector sent to instance

Delegate둜 νŠΉμ • Cell을 ν΄λ¦­ν–ˆμ„ λ•Œ 상세 정보 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λ„λ‘ κ΅¬ν˜„ν–ˆλ‹€. extension ViewController : UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { guard let viewController = self.storyboard?.instantiateViewController(identifier: "DiaryDetailViewController") as? DiaryDetailViewController else { return } let diary = self.diaryList[indexPath.row] ..

kodo_o
'2022/09 κΈ€ λͺ©λ‘