WooKoo Blog

물과 같이

전체 글 121

포카마켓 iOS 팀의 여정 (세상에 나온 앱) - EP03

안녕하세요포카마켓 iOS 팀에서 개발을하고 있는 WooKoo 입니다. 저희 서비스는 제가 운영 및 유지보수를 전담하고 있는 국내 서비스와 웹앱으로 패키징 된 글로벌 서비스가 있습니다.기술적인 내용은 조금 건너서 이번 포스팅에서는 조금은 편안한 내용입니다. 옛날 얘기 좀 하고자 합니다..ㅎㅅㅎ...  국내서비스 세상에 공개되다. 2020년 3월 회사에 입사하여 반 년이 지난 후에야 제 자식과도 같은 서비스가 세상에 공개되었습니다.왜 반 년이나 걸렸냐면.. MVP 의 모델로 가볍게 시작하기보다는 기존에 리액트로 구성 된 작은 앱이 있었습니다. 작은 규모의 유저들도 있었구요. 그렇기에 기존에 지원하던 BM 기능과 실시간 채팅 등의 기능이 더 업그레이드 되어야 했습니다.(아마 다음 포스팅은 실시간 채팅에 대한 ..

개발/개발 2024.10.17

포카마켓 iOS 팀의 여정 (디버깅 및 검수) - EP02

안녕하세요포카마켓 iOS 팀에서 개발을하고 있는 WooKoo 입니다. 지금까지 포카마켓의 iOS 팀에서 어떤 식으로 디버깅 및 검수 QA 등을 진행하는지 이야기를 들려 드리고자합니다.이번 포스팅에서는 디버깅이란 단순히 버그를 수정해나아가는 과정을 넘어서, 문제를 조금 더 쉽게 발견하고, 잠재적인 이슈를 트래킹 할 수 있는 방법 등을 이야기 해보고자 합니다.  1. LookIn LookIn 이란 View 의 계층과 상태들을 요구사항과 맞는지 빠르게 확인 할 수 있는 중국산(?) 도구입니다. 개발 타겟의 앱에서 쉽게 UI 를 디자이너분들이 확인(간격, 크기 등) 할 수 있는 도구들은 없을까 고민하던 중에 발견했습니다.https://lookin.work/ https://lookin.work/ lookin.wo..

개발/개발 2024.10.16

포카마켓 iOS 팀의 여정(개발 전략 및 체계) - EP01

안녕하세요.포카마켓 iOS 팀에서 개발을하고 있는 WooKoo 입니다. 지금까지 포카마켓의 iOS 팀을 빌딩하면서 어떤 방식과 나름의 고민으로 개발 전략을 구성하게 되었는지 이야기를 들려드리고자 합니다.  2020년 03월 입사와 함께 아무 것도 존재하지않는 iOS 팀에 합류하게 되었습니다.Xcode 프로젝트 조차 없었기에 회사에 프로젝트를 개설하는 첫 창조주가 되었습니다. 보통은 작은 레거시 프로젝트라도 있기 마련인데 말이죠.. 1. 협업 충돌모든 프로젝트와 마찬가지로 제 컴퓨터의 로컬에만 존재했던 프로젝트였습니다. 초기에는 정말 많은 프로젝트 설정들이 변경되어야했습니다. 단순 Main Storyboard 를 info.plist 부터 날리는 것부터 권한 설정 및 기타 설정 등 팀원과의 깃 충돌은 어마무..

개발/개발 2024.10.14

5년 차 개발자의 넋두리

안녕하세요 오랜만에 글을 작성하러 왔습니다.그 동안 앞만 보고 달려오느라 뒤를 돌아보지 못했던 것 같아서 조금은 후회스럽습니다.어느 덧 만으로 4년 이제는 5년 차에 들어섰습니다. 너무 많은 일들이 있었고, 하고싶은 이야기가 산더미처럼 많아서 무슨 이야기를 꺼내야 할지 고민이 됩니다.  5년 차라고하면 주니어의 탈은 벗어나고 멋있게 1인분을 하는 그런 시기라고 생각을 많이 했었는데 막상 그런 연차가 되어보니 크게 달라진 것은 없는 것도 같고 아직도 기술은 많이 부족하다고 생각합니다. 그러나 중요하게 생각하는 가치관들의 변화가 많이 생기고 성장했던 시기인 것 같습니다.   1. 회의가 많아진다.리드 포지션을 맡게되면 작게는 iOS 팀의 의사결정부터 모바일팀, 크게는 프로덕트팀 전체의 의사결정에 의사를 내어..

개발/회고 2024.10.13

[iOS] - Quick/Nimble 문서로 Unit Test 배우기 - 2

https://lazyowl.tistory.com/374 지난 1편에 이어서 바로 시작하겠습니다. Nimble Assertions 를 사용하여 테스트 더욱 간결하게 하기 XCTest 로 개발한 테스트 케이스가 실패 할 경우 어떻게 나타날까요? 이렇게만 뜰꺼에요 우리는 이왕 정보를 얻을거 좀 더 많은 정보를 얻으면 좋겠죠? 무언가를 실패했는데? 그래서 뭔데? 등등 왜 실패했는지 원인을 찾는데 많은 시간을 들여요. 그래서 실패 시 이렇게 메세지를 작성했었죠 여기서 nimble 의 힘이 나타납니다! expect(sillyMonkeys).to(contain(kiki)) 이렇게 expect(). to() 를 이용하면 메세지를 작성하지 않아도 알아서 알려줍니다. Quick Example 과 Example 그룹으로 ..

개발/개발 2023.02.14

[iOS] - Quick/Nimble 문서로 Unit Test 배우기 - 1

지난 Unit Test 의 기본 개념에 이어서 https://lazyowl.tistory.com/370 [iOS] - Unit Test 기본 개념 공부하기 많은 개발자분들께서 테스트 코드를 작성이 중요하고 작성을 하고 있다는 것을 알게되었습니다. TDD 에 대하여 장단점을 논하면서 쓰자 쓰지말자 논쟁도 많았구요. 그러나 정말 중요한 것은 테 lazyowl.tistory.com 오늘은 Quick/Nimble 을 배워보려고합니다. Quick 문서가 너무나도 한국어로 잘되어있어서 배워보면서 정리해보려고합니다. Objective-C 와 라이브러리 설치, 프로젝트 설정 등은 과감하게 제외하고 테스트 관련 내용만 문서를 보고 정리하였습니다. https://github.com/Quick/Quick/tree/main/..

개발/개발 2023.02.14

[개발] Github vs AWS Code Commit

배경 얼마 전 동료 개발자분과 AWS 의 Code Commit 과 Github 의 선택에 있어서 대화를 나누었습니다. 나: "우리는 모르지만 인기있는 도구에 있어서는 그 이유가 있고 대세를 따라가서 나쁠게 없다. 그리고 코드리뷰 UI 개쩜!" 동료: "AWS 만의 장점이 있기때문에 납득할만한 이유가 없다면 넘어갈 이유가 없다!!! 그리고 Github 기본 기능 다 됌" 두 개의 형상도구를 서로 비교해보지 않아서 비교 자료를 찾아보고 정리해보았습니다. 형상 도구를 어떤 것을 선택하느냐보다 중요한 것은 어떤 전략을 가지고 Git 을 이용하냐인 것 같습니다. 형상 관리도구를 선택함에 있어 주된 목표는 파일들을 저장 할 수 있는 레퍼지토리를 제공하고 쉽게 논의하고 관리해야합니다. 또한 코드 및 바이너리 파일과 ..

개발/개발 2023.02.06

[iOS] - XcodeGen 에서 Tuist 로 전환 후기

안녕하세요. 2022년 올 해 마지막 목표였던 XcodeGen 에서 Tuist 로 전환하는 프로젝트가 무사히 끝났습니다. 이번 글에서는 Tuist 로 가기까지의 여정에 대한 글로써 남겨보고자 포스팅하게 되었습니다. 1. XcodeGen 도입 회사 프로젝트 초기에는 단순히 협업을 위한 충돌 방지 목적으로 XcodeGen과 Tuist 를 알게 되었습니다. (알아보다보니 모듈화 아키텍처까지 알게되었구요.) 그때 당시에는 지금처럼 모듈화에 대한 관심이나 개발 시장에서의 트렌드가 지금처럼 뜨겁지는 않았던 것 같아요. 오히려 TDD 가 유행했던 시절... 필요하신분들은 미리 공부하시고 적용하셨겠지만 전 초보 1년차 개발자였습니다. 처음에는 XcodeGen 을 선택했어요. XcodeGen 이후에 나온 Tuist 를 ..

개발/개발 2022.12.14

[iOS] - Unit Test 기본 개념 공부하기

많은 개발자분들께서 테스트 코드를 작성이 중요하고 작성을 하고 있다는 것을 알게되었습니다. TDD 에 대하여 장단점을 논하면서 쓰자 쓰지말자 논쟁도 많았구요. 그러나 정말 중요한 것은 테스터블한 코드를 작성하는 것과 핵심 로직에 테스트 코드가 있다면 분명 없는 것보다 좋은 것은 분명한 진리인 것 같습니다. 뭐 불평불만하기 전에 테스트 코드 작성을 할 줄은 알아야 된다고 생각해서 공부를 해보려고하나 많이 어려운 분야인 것 같아요. 그래서 테스트 코드라는 것에 대한 기초 개념이나 입문에 필요한 내용 위주로 글을 작성해보려고합니다. 테스트 코드란 무엇일까요? 말 그대로 내가 개발한 코드에 대해서 의도대로 동작하는지 확인 할 수 있는 코드를 말합니다. 이로써 소프트웨어의 품질이나 안정성을 확인 할 수 있는 것이..

개발/개발 2022.11.18

[Swift] - Array의 Count 함수는 과연 속도 차이가 있을까?

오늘 회사에서 컬렉션 뷰의 스크롤 위치를 최하단으로 내리는 것에 의견을 나누었다. 하나의 방식은 indexPath 를 바인딩한 Array의 count -1 을해서 마지막 셀로 이동하는 것과 contentHeight 를 구해서 setContent 로 지정된 contentHeight 로 가는 방안이었다. 방식의 차이 말고 무슨 차이가 있을까 고민하다가 count 는 아이템 갯수를 세아려해서 더 느리지않을까? 라는 의구심하고 아니다 갯수는 안세아릴꺼다 메모리에 갯수자체가 이미 들어있을꺼다. 의견이 있었고 과연 배열의 갯수가 크면 count 의 속도 차이가 있을까?? 사실 count 의 동작 원리는 찾아보기 어려웠다. 그래서 그냥 속도 차이라도 ?? 정말 있는지 테스트 해보았다. 어레이에 999999개 를 센 ..

개발/개발 2022.11.01