전체 글
-
import Foundation var inputs = readLine()!.components(separatedBy: " ").compactMap { Int($0) } let row = inputs.first! let col = inputs.last! let dx = [1, 0, -1, 0] let dy = [0, 1, 0, -1] var mx = 0 var num = 0 var boards: [[Bool]] = [] for _ in 0..
[Swift] 1926번 : 그림import Foundation var inputs = readLine()!.components(separatedBy: " ").compactMap { Int($0) } let row = inputs.first! let col = inputs.last! let dx = [1, 0, -1, 0] let dy = [0, 1, 0, -1] var mx = 0 var num = 0 var boards: [[Bool]] = [] for _ in 0..
2024.02.05 -
NaverMap SDK SPM 만들기 우리는 지도를 사용한 위치기반 서비스를 만들기로 했는데 여기서 Apple의 Mapkit과 NaverMap을 고민했다. 처음에는 외부 라이브러리 금지라는 요구사항이 있어 Mapkit을 사용하려고 했으나 네이버 클라우드의 크레딧을 활용할 수 있었기에 네이버 지도의 다양한 유료 API들을 사용해보고자 네이버 지도를 사용하기로 했다. 하지만 여기서 문제가 발생했는데 우리는 Tuist를 사용하여 프로젝트 셋팅을 했기에 SPM으로만 외부 라이브러리를 사용할 수 있었는데 NaverMapSDK는 CococaPods만 지원해주었다… Tuist에 CocoaPods를 사용할 수는 있었지만 그렇게 되면 프로젝트 파일이 복잡해지기 때문에 직접 패키지로 만들어 SPM으로 추가해주기로 했다. ..
부스트캠프 웹·모바일 8기 그룹프로젝트 2주차 회고NaverMap SDK SPM 만들기 우리는 지도를 사용한 위치기반 서비스를 만들기로 했는데 여기서 Apple의 Mapkit과 NaverMap을 고민했다. 처음에는 외부 라이브러리 금지라는 요구사항이 있어 Mapkit을 사용하려고 했으나 네이버 클라우드의 크레딧을 활용할 수 있었기에 네이버 지도의 다양한 유료 API들을 사용해보고자 네이버 지도를 사용하기로 했다. 하지만 여기서 문제가 발생했는데 우리는 Tuist를 사용하여 프로젝트 셋팅을 했기에 SPM으로만 외부 라이브러리를 사용할 수 있었는데 NaverMapSDK는 CococaPods만 지원해주었다… Tuist에 CocoaPods를 사용할 수는 있었지만 그렇게 되면 프로젝트 파일이 복잡해지기 때문에 직접 패키지로 만들어 SPM으로 추가해주기로 했다. ..
2024.02.03 -
외부 라이브러리 금지 그룹프로젝트의 요구사항이 공개되었다. iOS 파트에서 요구하는 것은 바로 외부 라이브러리 사용 금지였다. 사실 어느정도 예상을 했었던것이 멤버십 기간동안 받은 미션들이 외부 라이브러리 사용 금지였기 때문이다. 그래서 우리는 당연하게도 다른 파트들 또한 외부 라이브러리를 금지한 상태에서 미션을 진행한줄 알았다. 하지만 알고보니 iOS 파트에서만 이런 제한이 있었다는걸 이번 그룹프로젝트를 통해 알게되었다… 외부 라이브러리를 사용하지 않았기에 실력 향상은 정말 많이 되었지만 우리만 그런 제한사항이 있었다는것을 알게되니 뒷통수를 맞은 느낌이였다 … 앱 기획하기 그룹 프로젝트를 진행하기 위해 어떤것을 개발할지 회의를 했다. 우리는 6주라는 기간 동안 어떤 기술적 도전을 할지 또 어떻게 완성도..
부스트캠프 웹·모바일 8기 그룹프로젝트 1주차 회고외부 라이브러리 금지 그룹프로젝트의 요구사항이 공개되었다. iOS 파트에서 요구하는 것은 바로 외부 라이브러리 사용 금지였다. 사실 어느정도 예상을 했었던것이 멤버십 기간동안 받은 미션들이 외부 라이브러리 사용 금지였기 때문이다. 그래서 우리는 당연하게도 다른 파트들 또한 외부 라이브러리를 금지한 상태에서 미션을 진행한줄 알았다. 하지만 알고보니 iOS 파트에서만 이런 제한이 있었다는걸 이번 그룹프로젝트를 통해 알게되었다… 외부 라이브러리를 사용하지 않았기에 실력 향상은 정말 많이 되었지만 우리만 그런 제한사항이 있었다는것을 알게되니 뒷통수를 맞은 느낌이였다 … 앱 기획하기 그룹 프로젝트를 진행하기 위해 어떤것을 개발할지 회의를 했다. 우리는 6주라는 기간 동안 어떤 기술적 도전을 할지 또 어떻게 완성도..
2024.02.03 -
오프라인 모임의 시작 부스트캠프가 챌린지, 멤버십 모두 오프라인으로 진행되나보니 4개월이 넘는 시간동안 함께했지만 마스터나 다른 캠퍼들 다같이 오프라인으로 만난적이 없었다. 사는곳이 가까운 몇몇 캠퍼들과는 오프라인으로 만나서 미션을 같이 진행하거나 모각코를 같이 하긴 했었다. 사실 말을 꺼내기도 어려웠던것이 온라인으로 진행되나보니 부산에서 사시는분이나 광주, 울산, 대구 등등 다양한 곳에 캠퍼들이 거주하고 있기 때문에 다같이 모이기에는 물리적으로 힘들었기 때문이다. 하지만 4개월이란 시간동안 매일같이 온라인으로 만나다보니 다같이 친해질수 밖에 없었고 오프라인 모임에 대해 이야기가 나오게 되었다. 마스터 클래스에서 농담삼아서 오프라인 모임을 하면 마스터께서도 참석하시냐고 여쭤봤는데 마스터께서 흔쾌히 참석하..
부스트캠프 웹·모바일 8기 멤버십 iOS 오프라인 모임오프라인 모임의 시작 부스트캠프가 챌린지, 멤버십 모두 오프라인으로 진행되나보니 4개월이 넘는 시간동안 함께했지만 마스터나 다른 캠퍼들 다같이 오프라인으로 만난적이 없었다. 사는곳이 가까운 몇몇 캠퍼들과는 오프라인으로 만나서 미션을 같이 진행하거나 모각코를 같이 하긴 했었다. 사실 말을 꺼내기도 어려웠던것이 온라인으로 진행되나보니 부산에서 사시는분이나 광주, 울산, 대구 등등 다양한 곳에 캠퍼들이 거주하고 있기 때문에 다같이 모이기에는 물리적으로 힘들었기 때문이다. 하지만 4개월이란 시간동안 매일같이 온라인으로 만나다보니 다같이 친해질수 밖에 없었고 오프라인 모임에 대해 이야기가 나오게 되었다. 마스터 클래스에서 농담삼아서 오프라인 모임을 하면 마스터께서도 참석하시냐고 여쭤봤는데 마스터께서 흔쾌히 참석하..
2024.02.03 -
모듈화 그동안 모듈화에 대해 생각해본적이 없었는데 개선사항으로 모듈화가 나왔다. 페어와 나 둘 모두 모듈화를 해본적이 없어서 우선 왜 모듈화가 필요한지에 대해 이야기했다. 앱을 개발하다보면 네트워크를 처리하는 부분과 같이 프로젝트는 다르지만 항상 동일하게 구현하는 부분이 있었는데 그때마다 같은 코드를 반복해서 작성하고 있었다. 이를 모듈화하여 사용하면 코드를 반복적으로 작성하지 않고 모듈만 포함하면 된다. 수정또한 각각의 프로젝트를 수정하는것이 아니라 모듈을 작성한 곳에서만 수정해주면 되고 모듈의 교체또한 너무나 자유롭고 모듈화된 부분은 결합도가 낮아질 수 밖에 없어진다. 이야기를 하다보니 일상생활에서는 아주 많은 것들이 모듈화 되어 있다는 것을 알아차리게 되었다. 컴퓨터의 하드웨어 역시 모듈화되어있는데..
부스트캠프 웹·모바일 8기 멤버십 8주차 회고모듈화 그동안 모듈화에 대해 생각해본적이 없었는데 개선사항으로 모듈화가 나왔다. 페어와 나 둘 모두 모듈화를 해본적이 없어서 우선 왜 모듈화가 필요한지에 대해 이야기했다. 앱을 개발하다보면 네트워크를 처리하는 부분과 같이 프로젝트는 다르지만 항상 동일하게 구현하는 부분이 있었는데 그때마다 같은 코드를 반복해서 작성하고 있었다. 이를 모듈화하여 사용하면 코드를 반복적으로 작성하지 않고 모듈만 포함하면 된다. 수정또한 각각의 프로젝트를 수정하는것이 아니라 모듈을 작성한 곳에서만 수정해주면 되고 모듈의 교체또한 너무나 자유롭고 모듈화된 부분은 결합도가 낮아질 수 밖에 없어진다. 이야기를 하다보니 일상생활에서는 아주 많은 것들이 모듈화 되어 있다는 것을 알아차리게 되었다. 컴퓨터의 하드웨어 역시 모듈화되어있는데..
2024.02.03 -
페어 프로그래밍이 뭐야 ?? 7,8주차는 페어를 맺어서 페어프로그래밍으로 진행된다. 페어 프로그래밍이라는 단어도 처음 들어보고 누군가와 같이 프로그래밍을 해본적도 없어서 어떤식으로 진행되는지 굉장히 궁금했다. 페어 프로그래밍은 드라이버와 네비게이터로 나뉘며 네비게이터는 프로그래밍 방향을 제시하고 드라이버는 제시된 방향대로 프로그래밍 하는 것이라고 마스터께서 설명해주셨다. 또 네비게이터는 드라이버를 믿고 세세하게 지시하기보다는 큰틀을 지시하고 드라이버는 네비게이터가 지시한 내용의 완성도를 높이는 것에 초점을 맞추고 네비게이터와 드라이버의 역할은 주기적으로 돌아가면서 바꾸고 한번씩 역할을 바꾸었다면 휴식시간을 가지는 것을 강조하셨다. 페어 프로그래밍 경험하기 페어가 정해진 첫날인 월요일에 마스터께서 페어프로..
부스트캠프 웹·모바일 8기 멤버십 7주차 회고페어 프로그래밍이 뭐야 ?? 7,8주차는 페어를 맺어서 페어프로그래밍으로 진행된다. 페어 프로그래밍이라는 단어도 처음 들어보고 누군가와 같이 프로그래밍을 해본적도 없어서 어떤식으로 진행되는지 굉장히 궁금했다. 페어 프로그래밍은 드라이버와 네비게이터로 나뉘며 네비게이터는 프로그래밍 방향을 제시하고 드라이버는 제시된 방향대로 프로그래밍 하는 것이라고 마스터께서 설명해주셨다. 또 네비게이터는 드라이버를 믿고 세세하게 지시하기보다는 큰틀을 지시하고 드라이버는 네비게이터가 지시한 내용의 완성도를 높이는 것에 초점을 맞추고 네비게이터와 드라이버의 역할은 주기적으로 돌아가면서 바꾸고 한번씩 역할을 바꾸었다면 휴식시간을 가지는 것을 강조하셨다. 페어 프로그래밍 경험하기 페어가 정해진 첫날인 월요일에 마스터께서 페어프로..
2024.02.03 -
TableView vs ScrollView 디자인 가이드를 보니 TableView의 기능과 StackView의 기능이 혼합된 형태였다. 둘 중 하나를 선택하면 각각 쉽게 구현할 수 있는 부분과 어렵게 구현해야하는 부분이 대치를 이루고 있었다. 그래서 둘 중 어느것으로 선택할지 고민을 하다가 Group Style의 디자인이 있어 tableView를 사용하여 구현하고 tableHeaderView에 StackView의 기능이 있는것처럼 UI를 구현했는데 멘토님께서 UI부분에 대한 코멘트를 남겨주셨다. 코멘트를 보고나니 ScrollView를 활용한 StackView를 많이 사용해 보지 않아서 tableView로 구현한것들을 ScrollView과 StackView로 구현했다. TableView에서는 간단한 설정들..
부스트캠프 웹·모바일 8기 멤버십 6주차 회고TableView vs ScrollView 디자인 가이드를 보니 TableView의 기능과 StackView의 기능이 혼합된 형태였다. 둘 중 하나를 선택하면 각각 쉽게 구현할 수 있는 부분과 어렵게 구현해야하는 부분이 대치를 이루고 있었다. 그래서 둘 중 어느것으로 선택할지 고민을 하다가 Group Style의 디자인이 있어 tableView를 사용하여 구현하고 tableHeaderView에 StackView의 기능이 있는것처럼 UI를 구현했는데 멘토님께서 UI부분에 대한 코멘트를 남겨주셨다. 코멘트를 보고나니 ScrollView를 활용한 StackView를 많이 사용해 보지 않아서 tableView로 구현한것들을 ScrollView과 StackView로 구현했다. TableView에서는 간단한 설정들..
2024.02.03 -
디자인 가이드 멤버십 5주차 부터는 실제 현업에서 디자이너가 디자인을 주는것처럼 전체적인 디자인이 나오고 거기에 맞춰서 앱을 개발하게 된다. 처음에는 디자인이 다 되어있으니 나는 구현만하면 된다고 생각해서 좋아했지만 현실은 아니었다. 그동안에는 전부 내가 디자인하고 개발까지 했기 때문에 어떤 UI를 쓸지를 다 정해놓고 디자인을 해서 UI를 구현을 하는 것이 어렵지 않았다. 하지만 이번에는 다른 사람이 디자인해놓은것을 개발하는 것이다보니 앱 디자인을 보고 어떤 UI를 생각하고 디자인 한 것인지 알 수가없기 때문에 구현하는 것이 어려웠다. 내가 디자인을 할때는 TableView를 써서 각기 다른 Cell을 사용하고 TableView에서만 쓸 수 있는 디자인들을 추가해서 앱을 디자인하고 구현했다. 하지만 다른..
부스트캠프 웹·모바일 8기 멤버십 5주차 회고디자인 가이드 멤버십 5주차 부터는 실제 현업에서 디자이너가 디자인을 주는것처럼 전체적인 디자인이 나오고 거기에 맞춰서 앱을 개발하게 된다. 처음에는 디자인이 다 되어있으니 나는 구현만하면 된다고 생각해서 좋아했지만 현실은 아니었다. 그동안에는 전부 내가 디자인하고 개발까지 했기 때문에 어떤 UI를 쓸지를 다 정해놓고 디자인을 해서 UI를 구현을 하는 것이 어렵지 않았다. 하지만 이번에는 다른 사람이 디자인해놓은것을 개발하는 것이다보니 앱 디자인을 보고 어떤 UI를 생각하고 디자인 한 것인지 알 수가없기 때문에 구현하는 것이 어려웠다. 내가 디자인을 할때는 TableView를 써서 각기 다른 Cell을 사용하고 TableView에서만 쓸 수 있는 디자인들을 추가해서 앱을 디자인하고 구현했다. 하지만 다른..
2024.02.03