전체 글 160

[NCSOFT] 2022 NC Summer Intern 후기 - 2부 (Feat. 전환 실패)

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] ..

[TIL] 22.08.25

공부한 것 부스트코스 - iOS 프로그래밍을 위한 스위프트 기초 알게된 것 1. 옵셔널 // someOptionalParm에 nil이 할당될 수 있음 func someFunction(someOptionalParam: Int?) { // .... } /// someOptionalParm에 nil이 할당될 수 없음 func someFunction(someOptionalParam: Int) { // .... } nil이 할당될 수 있는지 없는지를 표현 nil의 가능성을 명시적(코드)으로 표현 가능 옵셔널이 아닌 경우 nil 체크 없이 바로 사용 가능 nil로 인한 예외 상황을 최소화 2. 옵셔널 표현 방법 // 암시적 추출 옵셔널 var optionalValue: Int! = 10 switch optionVa..

💻 개발/TIL 2022.08.25

[TIL] 22.08.24

공부한 것 부스트코스 - iOS 프로그래밍을 위한 스위프트 기초 알게된 것 1. 매개변수 기본 값 func setUserInfo(name : String, age : Int, region : String = "Deajeon") {} 함수를 정의할 때 매개변수에 기본적으로 전달될 값을 미리 저장할 수 있음 기본 값을 갖는 매개변수는 매개변수 목록 중 맨 뒤에 위치하는 것이 좋음 2. 전달인자 레이블 // 내부에서는 매개변수 이름 func greeting(to friend : String, from me : String) { print("Hello, \(friend)!, my name is \(me)") } // 호출할 때는 전달인자 레이블 greeting(to : "doko", from : "kodo") ..

💻 개발/TIL 2022.08.24

[iOS / Swift] unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard

TableView를 사용하면서 Cell을 재사용하기 위해 extension으로 UITableViewDataSource를 재정의하고 빌드를 진행했다. extension ViewController : UITableViewDataSource { func tableView(_ tableView : UITableView, numberOfRowsInSection section : Int) -> Int { return self.tasks.count } func tableView(_ tableView : UITableView, cellForRowAt indexPath : IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdenti..

[Android / Gradle] mockup1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature.

인턴 기간 동안 개발한 앱을 배포하려고 앱 아이콘 이미지를 첨부하고 Gradle에서 debug -> release 로 변경하고 Build Apk 를 눌렀는데! 아래와 같은 오류가 떴다. mockup1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature. 서칭을 해보니까 Gradle 버젼이 맞지 않는다. 다른 문제다~ 이런 글들이 많은데 뭔가 이상했다. 지금 사용하고 있는 버젼이 7인데 4까지 낮춰야한다고? 괜히 건드렸다가 다른 오류로 터미널이 터질 것 같다는 생각에 첨부한 앱 아이콘 이미지를 살펴봤다. 파일명은 ic..